diff --git a/.prettierrc b/.prettierrc index 786dbdf5..9847402b 100644 --- a/.prettierrc +++ b/.prettierrc @@ -6,5 +6,6 @@ "singleQuote": true, "trailingComma": "none", "bracketSpacing": true, - "arrowParens": "avoid" + "arrowParens": "avoid", + "plugins": ["prettier-plugin-sh"] } diff --git a/bun.lock b/bun.lock index c718869b..1284312e 100755 --- a/bun.lock +++ b/bun.lock @@ -17,6 +17,7 @@ "@docusaurus/module-type-aliases": "3.7.0", "@docusaurus/tsconfig": "3.7.0", "@docusaurus/types": "3.7.0", + "graphql-request": "7.1.2", "typescript": "5.7.3", }, }, @@ -30,33 +31,33 @@ "@algolia/autocomplete-shared": ["@algolia/autocomplete-shared@1.17.7", "", { "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg=="], - "@algolia/client-abtesting": ["@algolia/client-abtesting@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-DLIrAukjsSrdMNNDx1ZTks72o4RH/1kOn8Wx5zZm8nnqFexG+JzY4SANnCNEjnFQPJTTvC+KpgiNW/CP2lumng=="], + "@algolia/client-abtesting": ["@algolia/client-abtesting@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-dMHwy2+nBL0SnIsC1iHvkBao64h4z+roGelOz11cxrDBrAdASxLxmfVMop8gmodQ2yZSacX0Rzevtxa+9SqxCw=="], - "@algolia/client-analytics": ["@algolia/client-analytics@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-0VpGG2uQW+h2aejxbG8VbnMCQ9ary9/ot7OASXi6OjE0SRkYQ/+pkW+q09+IScif3pmsVVYggmlMPtAsmYWHng=="], + "@algolia/client-analytics": ["@algolia/client-analytics@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-CDW4RwnCHzU10upPJqS6N6YwDpDHno7w6/qXT9KPbPbt8szIIzCHrva4O9KIfx1OhdsHzfGSI5hMAiOOYl4DEQ=="], - "@algolia/client-common": ["@algolia/client-common@5.18.0", "", {}, "sha512-X1WMSC+1ve2qlMsemyTF5bIjwipOT+m99Ng1Tyl36ZjQKTa54oajBKE0BrmM8LD8jGdtukAgkUhFoYOaRbMcmQ=="], + "@algolia/client-common": ["@algolia/client-common@5.19.0", "", {}, "sha512-2ERRbICHXvtj5kfFpY5r8qu9pJII/NAHsdgUXnUitQFwPdPL7wXiupcvZJC7DSntOnE8AE0lM7oDsPhrJfj5nQ=="], - "@algolia/client-insights": ["@algolia/client-insights@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-FAJRNANUOSs/FgYOJ/Njqp+YTe4TMz2GkeZtfsw1TMiA5mVNRS/nnMpxas9771aJz7KTEWvK9GwqPs0K6RMYWg=="], + "@algolia/client-insights": ["@algolia/client-insights@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-xPOiGjo6I9mfjdJO7Y+p035aWePcbsItizIp+qVyfkfZiGgD+TbNxM12g7QhFAHIkx/mlYaocxPY/TmwPzTe+A=="], - "@algolia/client-personalization": ["@algolia/client-personalization@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-I2dc94Oiwic3SEbrRp8kvTZtYpJjGtg5y5XnqubgnA15AgX59YIY8frKsFG8SOH1n2rIhUClcuDkxYQNXJLg+w=="], + "@algolia/client-personalization": ["@algolia/client-personalization@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-B9eoce/fk8NLboGje+pMr72pw+PV7c5Z01On477heTZ7jkxoZ4X92dobeGuEQop61cJ93Gaevd1of4mBr4hu2A=="], - "@algolia/client-query-suggestions": ["@algolia/client-query-suggestions@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-x6XKIQgKFTgK/bMasXhghoEjHhmgoP61pFPb9+TaUJ32aKOGc65b12usiGJ9A84yS73UDkXS452NjyP50Knh/g=="], + "@algolia/client-query-suggestions": ["@algolia/client-query-suggestions@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-6fcP8d4S8XRDtVogrDvmSM6g5g6DndLc0pEm1GCKe9/ZkAzCmM3ZmW1wFYYPxdjMeifWy1vVEDMJK7sbE4W7MA=="], - "@algolia/client-search": ["@algolia/client-search@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-qI3LcFsVgtvpsBGR7aNSJYxhsR+Zl46+958ODzg8aCxIcdxiK7QEVLMJMZAR57jGqW0Lg/vrjtuLFDMfSE53qA=="], + "@algolia/client-search": ["@algolia/client-search@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-Ctg3xXD/1VtcwmkulR5+cKGOMj4r0wC49Y/KZdGQcqpydKn+e86F6l3tb3utLJQVq4lpEJud6kdRykFgcNsp8Q=="], "@algolia/events": ["@algolia/events@4.0.1", "", {}, "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ=="], - "@algolia/ingestion": ["@algolia/ingestion@1.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-bGvJg7HnGGm+XWYMDruZXWgMDPVt4yCbBqq8DM6EoaMBK71SYC4WMfIdJaw+ABqttjBhe6aKNRkWf/bbvYOGyw=="], + "@algolia/ingestion": ["@algolia/ingestion@1.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-LO7w1MDV+ZLESwfPmXkp+KLeYeFrYEgtbCZG6buWjddhYraPQ9MuQWLhLLiaMlKxZ/sZvFTcZYuyI6Jx4WBhcg=="], - "@algolia/monitoring": ["@algolia/monitoring@1.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-lBssglINIeGIR+8KyzH05NAgAmn1BCrm5D2T6pMtr/8kbTHvvrm1Zvcltc5dKUQEFyyx3J5+MhNc7kfi8LdjVw=="], + "@algolia/monitoring": ["@algolia/monitoring@1.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-Mg4uoS0aIKeTpu6iv6O0Hj81s8UHagi5TLm9k2mLIib4vmMtX7WgIAHAcFIaqIZp5D6s5EVy1BaDOoZ7buuJHA=="], - "@algolia/recommend": ["@algolia/recommend@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-uSnkm0cdAuFwdMp4pGT5vHVQ84T6AYpTZ3I0b3k/M3wg4zXDhl3aCiY8NzokEyRLezz/kHLEEcgb/tTTobOYVw=="], + "@algolia/recommend": ["@algolia/recommend@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-PbgrMTbUPlmwfJsxjFhal4XqZO2kpBNRjemLVTkUiti4w/+kzcYO4Hg5zaBgVqPwvFDNQ8JS4SS3TBBem88u+g=="], - "@algolia/requester-browser-xhr": ["@algolia/requester-browser-xhr@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0" } }, "sha512-1XFjW0C3pV0dS/9zXbV44cKI+QM4ZIz9cpatXpsjRlq6SUCpLID3DZHsXyE6sTb8IhyPaUjk78GEJT8/3hviqg=="], + "@algolia/requester-browser-xhr": ["@algolia/requester-browser-xhr@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0" } }, "sha512-GfnhnQBT23mW/VMNs7m1qyEyZzhZz093aY2x8p0era96MMyNv8+FxGek5pjVX0b57tmSCZPf4EqNCpkGcGsmbw=="], - "@algolia/requester-fetch": ["@algolia/requester-fetch@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0" } }, "sha512-0uodeNdAHz1YbzJh6C5xeQ4T6x5WGiUxUq3GOaT/R4njh5t78dq+Rb187elr7KtnjUmETVVuCvmEYaThfTHzNg=="], + "@algolia/requester-fetch": ["@algolia/requester-fetch@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0" } }, "sha512-oyTt8ZJ4T4fYvW5avAnuEc6Laedcme9fAFryMD9ndUTIUe/P0kn3BuGcCLFjN3FDmdrETHSFkgPPf1hGy3sLCw=="], - "@algolia/requester-node-http": ["@algolia/requester-node-http@5.18.0", "", { "dependencies": { "@algolia/client-common": "5.18.0" } }, "sha512-tZCqDrqJ2YE2I5ukCQrYN8oiF6u3JIdCxrtKq+eniuLkjkO78TKRnXrVcKZTmfFJyyDK8q47SfDcHzAA3nHi6w=="], + "@algolia/requester-node-http": ["@algolia/requester-node-http@5.19.0", "", { "dependencies": { "@algolia/client-common": "5.19.0" } }, "sha512-p6t8ue0XZNjcRiqNkb5QAM0qQRAKsCiebZ6n9JjWA+p8fWf8BvnhO55y2fO28g3GW0Imj7PrAuyBuxq8aDVQwQ=="], "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], @@ -268,9 +269,9 @@ "@csstools/color-helpers": ["@csstools/color-helpers@5.0.1", "", {}, "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA=="], - "@csstools/css-calc": ["@csstools/css-calc@2.1.0", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw=="], + "@csstools/css-calc": ["@csstools/css-calc@2.1.1", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag=="], - "@csstools/css-color-parser": ["@csstools/css-color-parser@3.0.6", "", { "dependencies": { "@csstools/color-helpers": "^5.0.1", "@csstools/css-calc": "^2.1.0" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw=="], + "@csstools/css-color-parser": ["@csstools/css-color-parser@3.0.7", "", { "dependencies": { "@csstools/color-helpers": "^5.0.1", "@csstools/css-calc": "^2.1.1" }, "peerDependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA=="], "@csstools/css-parser-algorithms": ["@csstools/css-parser-algorithms@3.0.4", "", { "peerDependencies": { "@csstools/css-tokenizer": "^3.0.3" } }, "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A=="], @@ -280,21 +281,21 @@ "@csstools/postcss-cascade-layers": ["@csstools/postcss-cascade-layers@5.0.1", "", { "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ=="], - "@csstools/postcss-color-function": ["@csstools/postcss-color-function@4.0.6", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.6", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ=="], + "@csstools/postcss-color-function": ["@csstools/postcss-color-function@4.0.7", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ=="], - "@csstools/postcss-color-mix-function": ["@csstools/postcss-color-mix-function@3.0.6", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.6", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg=="], + "@csstools/postcss-color-mix-function": ["@csstools/postcss-color-mix-function@3.0.7", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g=="], "@csstools/postcss-content-alt-text": ["@csstools/postcss-content-alt-text@2.0.4", "", { "dependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw=="], - "@csstools/postcss-exponential-functions": ["@csstools/postcss-exponential-functions@2.0.5", "", { "dependencies": { "@csstools/css-calc": "^2.1.0", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ=="], + "@csstools/postcss-exponential-functions": ["@csstools/postcss-exponential-functions@2.0.6", "", { "dependencies": { "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g=="], "@csstools/postcss-font-format-keywords": ["@csstools/postcss-font-format-keywords@4.0.0", "", { "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw=="], - "@csstools/postcss-gamut-mapping": ["@csstools/postcss-gamut-mapping@2.0.6", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.6", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA=="], + "@csstools/postcss-gamut-mapping": ["@csstools/postcss-gamut-mapping@2.0.7", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw=="], - "@csstools/postcss-gradients-interpolation-method": ["@csstools/postcss-gradients-interpolation-method@5.0.6", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.6", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg=="], + "@csstools/postcss-gradients-interpolation-method": ["@csstools/postcss-gradients-interpolation-method@5.0.7", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA=="], - "@csstools/postcss-hwb-function": ["@csstools/postcss-hwb-function@4.0.6", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.6", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ=="], + "@csstools/postcss-hwb-function": ["@csstools/postcss-hwb-function@4.0.7", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA=="], "@csstools/postcss-ic-unit": ["@csstools/postcss-ic-unit@4.0.0", "", { "dependencies": { "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA=="], @@ -314,7 +315,7 @@ "@csstools/postcss-logical-viewport-units": ["@csstools/postcss-logical-viewport-units@3.0.3", "", { "dependencies": { "@csstools/css-tokenizer": "^3.0.3", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw=="], - "@csstools/postcss-media-minmax": ["@csstools/postcss-media-minmax@2.0.5", "", { "dependencies": { "@csstools/css-calc": "^2.1.0", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/media-query-list-parser": "^4.0.2" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew=="], + "@csstools/postcss-media-minmax": ["@csstools/postcss-media-minmax@2.0.6", "", { "dependencies": { "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/media-query-list-parser": "^4.0.2" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg=="], "@csstools/postcss-media-queries-aspect-ratio-number-values": ["@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4", "", { "dependencies": { "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/media-query-list-parser": "^4.0.2" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ=="], @@ -322,23 +323,23 @@ "@csstools/postcss-normalize-display-values": ["@csstools/postcss-normalize-display-values@4.0.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q=="], - "@csstools/postcss-oklab-function": ["@csstools/postcss-oklab-function@4.0.6", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.6", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A=="], + "@csstools/postcss-oklab-function": ["@csstools/postcss-oklab-function@4.0.7", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ=="], "@csstools/postcss-progressive-custom-properties": ["@csstools/postcss-progressive-custom-properties@4.0.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q=="], - "@csstools/postcss-random-function": ["@csstools/postcss-random-function@1.0.1", "", { "dependencies": { "@csstools/css-calc": "^2.1.0", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA=="], + "@csstools/postcss-random-function": ["@csstools/postcss-random-function@1.0.2", "", { "dependencies": { "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA=="], - "@csstools/postcss-relative-color-syntax": ["@csstools/postcss-relative-color-syntax@3.0.6", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.6", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg=="], + "@csstools/postcss-relative-color-syntax": ["@csstools/postcss-relative-color-syntax@3.0.7", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw=="], "@csstools/postcss-scope-pseudo-class": ["@csstools/postcss-scope-pseudo-class@4.0.1", "", { "dependencies": { "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q=="], - "@csstools/postcss-sign-functions": ["@csstools/postcss-sign-functions@1.1.0", "", { "dependencies": { "@csstools/css-calc": "^2.1.0", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA=="], + "@csstools/postcss-sign-functions": ["@csstools/postcss-sign-functions@1.1.1", "", { "dependencies": { "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA=="], - "@csstools/postcss-stepped-value-functions": ["@csstools/postcss-stepped-value-functions@4.0.5", "", { "dependencies": { "@csstools/css-calc": "^2.1.0", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw=="], + "@csstools/postcss-stepped-value-functions": ["@csstools/postcss-stepped-value-functions@4.0.6", "", { "dependencies": { "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA=="], "@csstools/postcss-text-decoration-shorthand": ["@csstools/postcss-text-decoration-shorthand@4.0.1", "", { "dependencies": { "@csstools/color-helpers": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw=="], - "@csstools/postcss-trigonometric-functions": ["@csstools/postcss-trigonometric-functions@4.0.5", "", { "dependencies": { "@csstools/css-calc": "^2.1.0", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA=="], + "@csstools/postcss-trigonometric-functions": ["@csstools/postcss-trigonometric-functions@4.0.6", "", { "dependencies": { "@csstools/css-calc": "^2.1.1", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A=="], "@csstools/postcss-unset-value": ["@csstools/postcss-unset-value@4.0.0", "", { "peerDependencies": { "postcss": "^8.4" } }, "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA=="], @@ -408,6 +409,8 @@ "@fontsource/figtree": ["@fontsource/figtree@5.1.2", "", {}, "sha512-WlauXrKAtHOadYti0l/dA2ez4lK7Yw2iQccv3ulmkMXgfKOdMjngob2AkIVxFyNLcvorVhh/Eq77DiWSGoR2bw=="], + "@graphql-typed-document-node/core": ["@graphql-typed-document-node/core@3.2.0", "", { "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ=="], + "@hapi/hoek": ["@hapi/hoek@9.3.0", "", {}, "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="], "@hapi/topo": ["@hapi/topo@5.1.0", "", { "dependencies": { "@hapi/hoek": "^9.0.0" } }, "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg=="], @@ -514,7 +517,7 @@ "@types/express": ["@types/express@4.17.21", "", { "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ=="], - "@types/express-serve-static-core": ["@types/express-serve-static-core@4.19.6", "", { "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A=="], + "@types/express-serve-static-core": ["@types/express-serve-static-core@5.0.4", "", { "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "sha512-5kz9ScmzBdzTgB/3susoCgfqNDzBjvLL4taparufgSvlwjdLy6UyUy9T/tCpYd2GIdIilCatC4iSQS0QSYHt0w=="], "@types/gtag.js": ["@types/gtag.js@0.0.12", "", {}, "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg=="], @@ -546,7 +549,7 @@ "@types/ms": ["@types/ms@0.7.34", "", {}, "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g=="], - "@types/node": ["@types/node@22.10.2", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ=="], + "@types/node": ["@types/node@22.10.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ=="], "@types/node-forge": ["@types/node-forge@1.3.11", "", { "dependencies": { "@types/node": "*" } }, "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ=="], @@ -560,7 +563,7 @@ "@types/range-parser": ["@types/range-parser@1.2.7", "", {}, "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="], - "@types/react": ["@types/react@19.0.2", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg=="], + "@types/react": ["@types/react@19.0.4", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-3O4QisJDYr1uTUMZHA2YswiQZRq+Pd8D+GdVFYikTutYsTz+QZgWkAPnP7rx9txoI6EXKcPiluMqWPFV3tT9Wg=="], "@types/react-router": ["@types/react-router@5.1.20", "", { "dependencies": { "@types/history": "^4.7.11", "@types/react": "*" } }, "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q=="], @@ -644,7 +647,7 @@ "ajv-keywords": ["ajv-keywords@3.5.2", "", { "peerDependencies": { "ajv": "^6.9.1" } }, "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="], - "algoliasearch": ["algoliasearch@5.18.0", "", { "dependencies": { "@algolia/client-abtesting": "5.18.0", "@algolia/client-analytics": "5.18.0", "@algolia/client-common": "5.18.0", "@algolia/client-insights": "5.18.0", "@algolia/client-personalization": "5.18.0", "@algolia/client-query-suggestions": "5.18.0", "@algolia/client-search": "5.18.0", "@algolia/ingestion": "1.18.0", "@algolia/monitoring": "1.18.0", "@algolia/recommend": "5.18.0", "@algolia/requester-browser-xhr": "5.18.0", "@algolia/requester-fetch": "5.18.0", "@algolia/requester-node-http": "5.18.0" } }, "sha512-/tfpK2A4FpS0o+S78o3YSdlqXr0MavJIDlFK3XZrlXLy7vaRXJvW5jYg3v5e/wCaF8y0IpMjkYLhoV6QqfpOgw=="], + "algoliasearch": ["algoliasearch@5.19.0", "", { "dependencies": { "@algolia/client-abtesting": "5.19.0", "@algolia/client-analytics": "5.19.0", "@algolia/client-common": "5.19.0", "@algolia/client-insights": "5.19.0", "@algolia/client-personalization": "5.19.0", "@algolia/client-query-suggestions": "5.19.0", "@algolia/client-search": "5.19.0", "@algolia/ingestion": "1.19.0", "@algolia/monitoring": "1.19.0", "@algolia/recommend": "5.19.0", "@algolia/requester-browser-xhr": "5.19.0", "@algolia/requester-fetch": "5.19.0", "@algolia/requester-node-http": "5.19.0" } }, "sha512-zrLtGhC63z3sVLDDKGW+SlCRN9eJHFTgdEmoAOpsVh6wgGL1GgTTDou7tpCBjevzgIvi3AIyDAQO3Xjbg5eqZg=="], "algoliasearch-helper": ["algoliasearch-helper@3.22.6", "", { "dependencies": { "@algolia/events": "^4.0.1" }, "peerDependencies": { "algoliasearch": ">= 3.1 < 6" } }, "sha512-F2gSb43QHyvZmvH/2hxIjbk/uFdO2MguQYTFP7J+RowMW1csjIODMobEnpLI8nbLQuzZnGZdIxl5Bpy1k9+CFQ=="], @@ -712,7 +715,7 @@ "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - "browserslist": ["browserslist@4.24.3", "", { "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" } }, "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA=="], + "browserslist": ["browserslist@4.24.4", "", { "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" } }, "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A=="], "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], @@ -736,7 +739,7 @@ "caniuse-api": ["caniuse-api@3.0.0", "", { "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="], - "caniuse-lite": ["caniuse-lite@1.0.30001690", "", {}, "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w=="], + "caniuse-lite": ["caniuse-lite@1.0.30001692", "", {}, "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A=="], "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], @@ -824,11 +827,11 @@ "copy-webpack-plugin": ["copy-webpack-plugin@11.0.0", "", { "dependencies": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ=="], - "core-js": ["core-js@3.39.0", "", {}, "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g=="], + "core-js": ["core-js@3.40.0", "", {}, "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ=="], - "core-js-compat": ["core-js-compat@3.39.0", "", { "dependencies": { "browserslist": "^4.24.2" } }, "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw=="], + "core-js-compat": ["core-js-compat@3.40.0", "", { "dependencies": { "browserslist": "^4.24.3" } }, "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ=="], - "core-js-pure": ["core-js-pure@3.39.0", "", {}, "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg=="], + "core-js-pure": ["core-js-pure@3.40.0", "", {}, "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A=="], "core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="], @@ -928,7 +931,7 @@ "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="], - "domutils": ["domutils@3.2.1", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw=="], + "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], "dot-case": ["dot-case@3.0.4", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w=="], @@ -942,7 +945,7 @@ "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - "electron-to-chromium": ["electron-to-chromium@1.5.76", "", {}, "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ=="], + "electron-to-chromium": ["electron-to-chromium@1.5.79", "", {}, "sha512-nYOxJNxQ9Om4EC88BE4pPoNI8xwSFf8pU/BAeOl4Hh/b/i6V4biTAzwV7pXi3ARKeoYO5JZKMIXTryXSVer5RA=="], "emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], @@ -1026,11 +1029,11 @@ "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], - "fast-glob": ["fast-glob@3.3.2", "", { "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" } }, "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow=="], + "fast-glob": ["fast-glob@3.3.3", "", { "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.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], - "fast-uri": ["fast-uri@3.0.3", "", {}, "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw=="], + "fast-uri": ["fast-uri@3.0.5", "", {}, "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q=="], "fastq": ["fastq@1.18.0", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw=="], @@ -1084,10 +1087,12 @@ "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], - "get-intrinsic": ["get-intrinsic@1.2.6", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "dunder-proto": "^1.0.0", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.0.0" } }, "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA=="], + "get-intrinsic": ["get-intrinsic@1.2.7", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", "get-proto": "^1.0.0", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA=="], "get-own-enumerable-property-symbols": ["get-own-enumerable-property-symbols@3.0.2", "", {}, "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="], + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + "get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], "github-slugger": ["github-slugger@1.5.0", "", {}, "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw=="], @@ -1114,6 +1119,10 @@ "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + "graphql": ["graphql@16.10.0", "", {}, "sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ=="], + + "graphql-request": ["graphql-request@7.1.2", "", { "dependencies": { "@graphql-typed-document-node/core": "^3.2.0" }, "peerDependencies": { "graphql": "14 - 16" } }, "sha512-+XE3iuC55C2di5ZUrB4pjgwe+nIQBuXVIK9J98wrVwojzDW3GMdSBZfxUk8l4j9TieIpjpggclxhNEU9ebGF8w=="], + "gray-matter": ["gray-matter@4.0.3", "", { "dependencies": { "js-yaml": "^3.13.1", "kind-of": "^6.0.2", "section-matter": "^1.0.0", "strip-bom-string": "^1.0.0" } }, "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q=="], "gzip-size": ["gzip-size@6.0.0", "", { "dependencies": { "duplexer": "^0.1.2" } }, "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q=="], @@ -1144,7 +1153,7 @@ "hast-util-select": ["hast-util-select@4.0.2", "", { "dependencies": { "bcp-47-match": "^1.0.0", "comma-separated-tokens": "^1.0.0", "css-selector-parser": "^1.0.0", "direction": "^1.0.0", "hast-util-has-property": "^1.0.0", "hast-util-is-element": "^1.0.0", "hast-util-to-string": "^1.0.0", "hast-util-whitespace": "^1.0.0", "not": "^0.1.0", "nth-check": "^2.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0", "unist-util-visit": "^2.0.0", "zwitch": "^1.0.0" } }, "sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg=="], - "hast-util-to-estree": ["hast-util-to-estree@3.1.0", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", "style-to-object": "^0.4.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw=="], + "hast-util-to-estree": ["hast-util-to-estree@3.1.1", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", "style-to-object": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ=="], "hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.2", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", "style-to-object": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg=="], @@ -1298,7 +1307,7 @@ "jest-util": ["jest-util@29.7.0", "", { "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" } }, "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA=="], - "jest-worker": ["jest-worker@27.5.1", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], + "jest-worker": ["jest-worker@29.7.0", "", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="], "jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], @@ -1374,7 +1383,7 @@ "mdast-util-directive": ["mdast-util-directive@3.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q=="], - "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA=="], + "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="], "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA=="], @@ -1500,9 +1509,9 @@ "mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], - "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "mime-db": ["mime-db@1.33.0", "", {}, "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="], - "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "mime-types": ["mime-types@2.1.18", "", { "dependencies": { "mime-db": "~1.33.0" } }, "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ=="], "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], @@ -1640,7 +1649,7 @@ "postcss-clamp": ["postcss-clamp@4.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.6" } }, "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow=="], - "postcss-color-functional-notation": ["postcss-color-functional-notation@7.0.6", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.6", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA=="], + "postcss-color-functional-notation": ["postcss-color-functional-notation@7.0.7", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw=="], "postcss-color-hex-alpha": ["postcss-color-hex-alpha@10.0.0", "", { "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w=="], @@ -1680,7 +1689,7 @@ "postcss-image-set-function": ["postcss-image-set-function@7.0.0", "", { "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA=="], - "postcss-lab-function": ["postcss-lab-function@7.0.6", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.6", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ=="], + "postcss-lab-function": ["postcss-lab-function@7.0.7", "", { "dependencies": { "@csstools/css-color-parser": "^3.0.7", "@csstools/css-parser-algorithms": "^3.0.4", "@csstools/css-tokenizer": "^3.0.3", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/utilities": "^2.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig=="], "postcss-loader": ["postcss-loader@7.3.4", "", { "dependencies": { "cosmiconfig": "^8.3.5", "jiti": "^1.20.0", "semver": "^7.5.4" }, "peerDependencies": { "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" } }, "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A=="], @@ -1738,7 +1747,7 @@ "postcss-place": ["postcss-place@10.0.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw=="], - "postcss-preset-env": ["postcss-preset-env@10.1.2", "", { "dependencies": { "@csstools/postcss-cascade-layers": "^5.0.1", "@csstools/postcss-color-function": "^4.0.6", "@csstools/postcss-color-mix-function": "^3.0.6", "@csstools/postcss-content-alt-text": "^2.0.4", "@csstools/postcss-exponential-functions": "^2.0.5", "@csstools/postcss-font-format-keywords": "^4.0.0", "@csstools/postcss-gamut-mapping": "^2.0.6", "@csstools/postcss-gradients-interpolation-method": "^5.0.6", "@csstools/postcss-hwb-function": "^4.0.6", "@csstools/postcss-ic-unit": "^4.0.0", "@csstools/postcss-initial": "^2.0.0", "@csstools/postcss-is-pseudo-class": "^5.0.1", "@csstools/postcss-light-dark-function": "^2.0.7", "@csstools/postcss-logical-float-and-clear": "^3.0.0", "@csstools/postcss-logical-overflow": "^2.0.0", "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", "@csstools/postcss-logical-resize": "^3.0.0", "@csstools/postcss-logical-viewport-units": "^3.0.3", "@csstools/postcss-media-minmax": "^2.0.5", "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", "@csstools/postcss-nested-calc": "^4.0.0", "@csstools/postcss-normalize-display-values": "^4.0.0", "@csstools/postcss-oklab-function": "^4.0.6", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/postcss-random-function": "^1.0.1", "@csstools/postcss-relative-color-syntax": "^3.0.6", "@csstools/postcss-scope-pseudo-class": "^4.0.1", "@csstools/postcss-sign-functions": "^1.1.0", "@csstools/postcss-stepped-value-functions": "^4.0.5", "@csstools/postcss-text-decoration-shorthand": "^4.0.1", "@csstools/postcss-trigonometric-functions": "^4.0.5", "@csstools/postcss-unset-value": "^4.0.0", "autoprefixer": "^10.4.19", "browserslist": "^4.23.1", "css-blank-pseudo": "^7.0.1", "css-has-pseudo": "^7.0.2", "css-prefers-color-scheme": "^10.0.0", "cssdb": "^8.2.3", "postcss-attribute-case-insensitive": "^7.0.1", "postcss-clamp": "^4.1.0", "postcss-color-functional-notation": "^7.0.6", "postcss-color-hex-alpha": "^10.0.0", "postcss-color-rebeccapurple": "^10.0.0", "postcss-custom-media": "^11.0.5", "postcss-custom-properties": "^14.0.4", "postcss-custom-selectors": "^8.0.4", "postcss-dir-pseudo-class": "^9.0.1", "postcss-double-position-gradients": "^6.0.0", "postcss-focus-visible": "^10.0.1", "postcss-focus-within": "^9.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^6.0.0", "postcss-image-set-function": "^7.0.0", "postcss-lab-function": "^7.0.6", "postcss-logical": "^8.0.0", "postcss-nesting": "^13.0.1", "postcss-opacity-percentage": "^3.0.0", "postcss-overflow-shorthand": "^6.0.0", "postcss-page-break": "^3.0.4", "postcss-place": "^10.0.0", "postcss-pseudo-class-any-link": "^10.0.1", "postcss-replace-overflow-wrap": "^4.0.0", "postcss-selector-not": "^8.0.1" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-OqUBZ9ByVfngWhMNuBEMy52Izj07oIFA6K/EOGBlaSv+P12MiE1+S2cqXtS1VuW82demQ/Tzc7typYk3uHunkA=="], + "postcss-preset-env": ["postcss-preset-env@10.1.3", "", { "dependencies": { "@csstools/postcss-cascade-layers": "^5.0.1", "@csstools/postcss-color-function": "^4.0.7", "@csstools/postcss-color-mix-function": "^3.0.7", "@csstools/postcss-content-alt-text": "^2.0.4", "@csstools/postcss-exponential-functions": "^2.0.6", "@csstools/postcss-font-format-keywords": "^4.0.0", "@csstools/postcss-gamut-mapping": "^2.0.7", "@csstools/postcss-gradients-interpolation-method": "^5.0.7", "@csstools/postcss-hwb-function": "^4.0.7", "@csstools/postcss-ic-unit": "^4.0.0", "@csstools/postcss-initial": "^2.0.0", "@csstools/postcss-is-pseudo-class": "^5.0.1", "@csstools/postcss-light-dark-function": "^2.0.7", "@csstools/postcss-logical-float-and-clear": "^3.0.0", "@csstools/postcss-logical-overflow": "^2.0.0", "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", "@csstools/postcss-logical-resize": "^3.0.0", "@csstools/postcss-logical-viewport-units": "^3.0.3", "@csstools/postcss-media-minmax": "^2.0.6", "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", "@csstools/postcss-nested-calc": "^4.0.0", "@csstools/postcss-normalize-display-values": "^4.0.0", "@csstools/postcss-oklab-function": "^4.0.7", "@csstools/postcss-progressive-custom-properties": "^4.0.0", "@csstools/postcss-random-function": "^1.0.2", "@csstools/postcss-relative-color-syntax": "^3.0.7", "@csstools/postcss-scope-pseudo-class": "^4.0.1", "@csstools/postcss-sign-functions": "^1.1.1", "@csstools/postcss-stepped-value-functions": "^4.0.6", "@csstools/postcss-text-decoration-shorthand": "^4.0.1", "@csstools/postcss-trigonometric-functions": "^4.0.6", "@csstools/postcss-unset-value": "^4.0.0", "autoprefixer": "^10.4.19", "browserslist": "^4.23.1", "css-blank-pseudo": "^7.0.1", "css-has-pseudo": "^7.0.2", "css-prefers-color-scheme": "^10.0.0", "cssdb": "^8.2.3", "postcss-attribute-case-insensitive": "^7.0.1", "postcss-clamp": "^4.1.0", "postcss-color-functional-notation": "^7.0.7", "postcss-color-hex-alpha": "^10.0.0", "postcss-color-rebeccapurple": "^10.0.0", "postcss-custom-media": "^11.0.5", "postcss-custom-properties": "^14.0.4", "postcss-custom-selectors": "^8.0.4", "postcss-dir-pseudo-class": "^9.0.1", "postcss-double-position-gradients": "^6.0.0", "postcss-focus-visible": "^10.0.1", "postcss-focus-within": "^9.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^6.0.0", "postcss-image-set-function": "^7.0.0", "postcss-lab-function": "^7.0.7", "postcss-logical": "^8.0.0", "postcss-nesting": "^13.0.1", "postcss-opacity-percentage": "^3.0.0", "postcss-overflow-shorthand": "^6.0.0", "postcss-page-break": "^3.0.4", "postcss-place": "^10.0.0", "postcss-pseudo-class-any-link": "^10.0.1", "postcss-replace-overflow-wrap": "^4.0.0", "postcss-selector-not": "^8.0.1" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw=="], "postcss-pseudo-class-any-link": ["postcss-pseudo-class-any-link@10.0.1", "", { "dependencies": { "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q=="], @@ -2112,7 +2121,7 @@ "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], - "update-browserslist-db": ["update-browserslist-db@1.1.1", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.0" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A=="], + "update-browserslist-db": ["update-browserslist-db@1.1.2", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg=="], "update-notifier": ["update-notifier@6.0.2", "", { "dependencies": { "boxen": "^7.0.0", "chalk": "^5.0.1", "configstore": "^6.0.0", "has-yarn": "^3.0.0", "import-lazy": "^4.0.0", "is-ci": "^3.0.1", "is-installed-globally": "^0.4.0", "is-npm": "^6.0.0", "is-yarn-global": "^0.4.0", "latest-version": "^7.0.0", "pupa": "^3.1.0", "semver": "^7.3.7", "semver-diff": "^4.0.0", "xdg-basedir": "^5.1.0" } }, "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og=="], @@ -2154,7 +2163,7 @@ "webpack-dev-server": ["webpack-dev-server@4.15.2", "", { "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", "@types/ws": "^8.5.5", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", "selfsigned": "^2.1.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.4", "ws": "^8.13.0" }, "peerDependencies": { "webpack": "^4.37.0 || ^5.0.0" }, "optionalPeers": ["webpack"], "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" } }, "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g=="], - "webpack-merge": ["webpack-merge@5.10.0", "", { "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", "wildcard": "^2.0.0" } }, "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA=="], + "webpack-merge": ["webpack-merge@6.0.1", "", { "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", "wildcard": "^2.0.1" } }, "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg=="], "webpack-sources": ["webpack-sources@3.2.3", "", {}, "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="], @@ -2206,14 +2215,18 @@ "@babel/preset-env/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@docusaurus/core/webpack-merge": ["webpack-merge@6.0.1", "", { "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", "wildcard": "^2.0.1" } }, "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg=="], - "@docusaurus/mdx-loader/unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], + "@docusaurus/types/webpack-merge": ["webpack-merge@5.10.0", "", { "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", "wildcard": "^2.0.0" } }, "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA=="], + "@mdx-js/mdx/unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], "@pnpm/network.ca-file/graceful-fs": ["graceful-fs@4.2.10", "", {}, "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="], + "@types/express/@types/express-serve-static-core": ["@types/express-serve-static-core@4.19.6", "", { "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A=="], + + "accepts/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "accepts/negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], "ajv-formats/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], @@ -2238,6 +2251,8 @@ "cli-table3/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "compressible/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "compression/bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], "compression/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], @@ -2250,8 +2265,6 @@ "crypto-random-string/type-fest": ["type-fest@1.4.0", "", {}, "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA=="], - "css-minimizer-webpack-plugin/jest-worker": ["jest-worker@29.7.0", "", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="], - "css-minimizer-webpack-plugin/schema-utils": ["schema-utils@4.3.0", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g=="], "css-select/domhandler": ["domhandler@4.3.1", "", { "dependencies": { "domelementtype": "^2.2.0" } }, "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="], @@ -2322,8 +2335,6 @@ "hast-util-to-estree/space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], - "hast-util-to-estree/style-to-object": ["style-to-object@0.4.4", "", { "dependencies": { "inline-style-parser": "0.1.1" } }, "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg=="], - "hast-util-to-estree/zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], "hast-util-to-jsx-runtime/comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], @@ -2544,14 +2555,14 @@ "send/range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], - "serve-handler/mime-types": ["mime-types@2.1.18", "", { "dependencies": { "mime-db": "~1.33.0" } }, "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ=="], - "serve-handler/path-to-regexp": ["path-to-regexp@3.3.0", "", {}, "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw=="], "serve-index/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], "serve-index/http-errors": ["http-errors@1.6.3", "", { "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" } }, "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A=="], + "serve-index/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "sitemap/@types/node": ["@types/node@17.0.45", "", {}, "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="], "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], @@ -2566,10 +2577,14 @@ "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + "terser-webpack-plugin/jest-worker": ["jest-worker@27.5.1", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], + "terser-webpack-plugin/schema-utils": ["schema-utils@4.3.0", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g=="], "to-vfile/vfile": ["vfile@4.2.1", "", { "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", "unist-util-stringify-position": "^2.0.0", "vfile-message": "^2.0.0" } }, "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA=="], + "type-is/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "unified/vfile": ["vfile@4.2.1", "", { "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", "unist-util-stringify-position": "^2.0.0", "vfile-message": "^2.0.0" } }, "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA=="], "unist-util-visit/unist-util-is": ["unist-util-is@6.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw=="], @@ -2582,8 +2597,14 @@ "url-loader/loader-utils": ["loader-utils@2.0.4", "", { "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" } }, "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw=="], + "url-loader/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + + "webpack/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "webpack-bundle-analyzer/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], + "webpack-dev-middleware/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "webpack-dev-middleware/range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], "webpack-dev-middleware/schema-utils": ["schema-utils@4.3.0", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g=="], @@ -2612,6 +2633,8 @@ "@mdx-js/mdx/unified/trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + "accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "ajv-formats/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], "ansi-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -2632,8 +2655,6 @@ "copy-webpack-plugin/schema-utils/ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], - "css-minimizer-webpack-plugin/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "css-minimizer-webpack-plugin/schema-utils/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], "css-minimizer-webpack-plugin/schema-utils/ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], @@ -2668,8 +2689,6 @@ "hast-util-select/unist-util-visit/unist-util-visit-parents": ["unist-util-visit-parents@3.1.1", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" } }, "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg=="], - "hast-util-to-estree/style-to-object/inline-style-parser": ["inline-style-parser@0.1.1", "", {}, "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="], - "hastscript/@types/hast/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], "hpack.js/readable-stream/isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], @@ -2760,8 +2779,6 @@ "send/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "serve-handler/mime-types/mime-db": ["mime-db@1.33.0", "", {}, "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="], - "serve-index/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], "serve-index/http-errors/depd": ["depd@1.1.2", "", {}, "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="], @@ -2772,8 +2789,12 @@ "serve-index/http-errors/statuses": ["statuses@1.5.0", "", {}, "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="], + "serve-index/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "string-width/strip-ansi/ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="], + "terser-webpack-plugin/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "terser-webpack-plugin/schema-utils/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], "terser-webpack-plugin/schema-utils/ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], @@ -2784,6 +2805,8 @@ "to-vfile/vfile/vfile-message": ["vfile-message@2.0.4", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" } }, "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ=="], + "type-is/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "unified/vfile/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], "unified/vfile/unist-util-stringify-position": ["unist-util-stringify-position@2.0.3", "", { "dependencies": { "@types/unist": "^2.0.2" } }, "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g=="], @@ -2792,6 +2815,10 @@ "update-notifier/boxen/camelcase": ["camelcase@7.0.1", "", {}, "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw=="], + "url-loader/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + + "webpack-dev-middleware/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "webpack-dev-middleware/schema-utils/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], "webpack-dev-middleware/schema-utils/ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], @@ -2800,6 +2827,8 @@ "webpack-dev-server/schema-utils/ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], + "webpack/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "webpackbar/wrap-ansi/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], "wide-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], diff --git a/docs/about-settlemint/4_components.mdx b/docs/about-settlemint/4_components.mdx index 1dd555dd..bf9b483b 100644 --- a/docs/about-settlemint/4_components.mdx +++ b/docs/about-settlemint/4_components.mdx @@ -28,7 +28,7 @@ The first step to building anything on SettleMint is to [create an application](../../using-platform/create-an-application). You can think of an application as the collection of resources that you need to build your blockchain application. This includes a blockchain network, smart contracts, -middleware, storage, and integrations.{' '} +middleware, storage, integrations, and insights.{' '} ## Add a Blockchain Network and Node @@ -73,8 +73,9 @@ application. /> Blockchain applications produce data that lives on the blockchain, but we need to be able to access that data in order to use it. Creating a -[middleware](../../using-platform/middleware/) allows us SettleMint currently -offers two middleware services: The Graph and Smart Contract Portal Middleware.{' '} +[middleware](../../using-platform/middleware/) allows us to do so. SettleMint +currently offers three middleware services: The Graph, Smart Contract Portal +Middleware and Firefly Fabconnect.{' '} ## Add Storage @@ -113,5 +114,7 @@ Your blockchain application may require custom components or frontend applicatio ## Getting Started -Now that you have a better idea of each of the components that make up SettleMint, try deploying -your first application with our [Hello World Guide](../../launch-platform/managed-cloud-deployment/quickstart/). +Ready to build? Head over to: + +- [Building with SettleMint](using-platform/1_add-a-network-to-an-application.md) for detailed platform instructions +- [Developer Guides](developer-guides/guide-library.mdx) for step-by-step tutorials on common use cases diff --git a/docs/account-billing/add-a-client.mdx b/docs/account-billing/add-a-client.mdx index 90d08a8a..f05edb58 100644 --- a/docs/account-billing/add-a-client.mdx +++ b/docs/account-billing/add-a-client.mdx @@ -9,7 +9,7 @@ This guide explains how to add a client's organization to your organization as a :::tip -If you are not a SettleMint partner, this guide may not be useful for you. For general account and organization information, visit the [Create an Account](../launch-platform/managed-cloud-deployment/2_create-an-account.md) or [About Organization](../launch-platform/managed-cloud-deployment/3_about-organizations.md) sections. +If you are not a SettleMint partner, this guide may not be useful for you. For general account and organization information, visit the [Create an Account](../launch-platform/managed-cloud-deployment/1_create-an-account.md) or [About Organization](../launch-platform/managed-cloud-deployment/2_about-organizations.md) sections. Learn about the SettleMint Partner program and how to become a partner on our [Partner Program Page](https://www.settlemint.com/partner-program). diff --git a/docs/account-billing/join-a-partner.mdx b/docs/account-billing/join-a-partner.mdx index 80eafe1d..b9d49bfc 100644 --- a/docs/account-billing/join-a-partner.mdx +++ b/docs/account-billing/join-a-partner.mdx @@ -8,7 +8,7 @@ This guide explains how to transfer your organization to a SettleMint partner. T :::tip -If you have not been in contact with a SettleMint partner, this guide may not be useful for you. For general account and organization information, visit the [Create an Account](../launch-platform/managed-cloud-deployment/2_create-an-account.md) or [About Organization](../launch-platform/managed-cloud-deployment/3_about-organizations.md) sections. +If you have not been in contact with a SettleMint partner, this guide may not be useful for you. For general account and organization information, visit the [Create an Account](../launch-platform/managed-cloud-deployment/1_create-an-account.md) or [About Organization](../launch-platform/managed-cloud-deployment/2_about-organizations.md) sections. ::: ## Understanding the Client-Partner Model diff --git a/docs/blockchain-guides/0_Ethereum/5_ethereum-integration-tools.md b/docs/blockchain-guides/0_Ethereum/5_ethereum-integration-tools.md index 4f12d8e2..003534a6 100644 --- a/docs/blockchain-guides/0_Ethereum/5_ethereum-integration-tools.md +++ b/docs/blockchain-guides/0_Ethereum/5_ethereum-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Ethereum smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Ethereum.](../0_Ethereum/Template-library/1_ethereum-erc-20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/10_Polygon-zkEVM/5_polygon-zkevm-integration-tools.md b/docs/blockchain-guides/10_Polygon-zkEVM/5_polygon-zkevm-integration-tools.md index 3290a1c4..003534a6 100644 --- a/docs/blockchain-guides/10_Polygon-zkEVM/5_polygon-zkevm-integration-tools.md +++ b/docs/blockchain-guides/10_Polygon-zkEVM/5_polygon-zkevm-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Polygon zkEVM smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Polygon zkEVM.](../10_Polygon-zkEVM/Template-library/1_polygon-zkevm-erc-20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/11_Fantom/5_fantom-integration-tools.md b/docs/blockchain-guides/11_Fantom/5_fantom-integration-tools.md index c5be17ec..003534a6 100644 --- a/docs/blockchain-guides/11_Fantom/5_fantom-integration-tools.md +++ b/docs/blockchain-guides/11_Fantom/5_fantom-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Fantom smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Fantom.](../11_Fantom/Template-library/1_fantom-erc-20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/12_Soneium/5_soneium-integration-tools.md b/docs/blockchain-guides/12_Soneium/5_soneium-integration-tools.md index 621f7bea..003534a6 100644 --- a/docs/blockchain-guides/12_Soneium/5_soneium-integration-tools.md +++ b/docs/blockchain-guides/12_Soneium/5_soneium-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Soneium smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Soneium.](../12_Soneium/Template-library/1_soneium-erc-20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/1_Hyperledger-Besu/6_enterprise-ethereum-integration-tools.md b/docs/blockchain-guides/1_Hyperledger-Besu/6_enterprise-ethereum-integration-tools.md index 4ff7c7dc..003534a6 100644 --- a/docs/blockchain-guides/1_Hyperledger-Besu/6_enterprise-ethereum-integration-tools.md +++ b/docs/blockchain-guides/1_Hyperledger-Besu/6_enterprise-ethereum-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Ethereum smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Hyperledger Besu.](../1_Hyperledger-Besu/Template-library/1_enterprise-ethereum-erc20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/2_Avalanche/5_avalanche-integration-tools.md b/docs/blockchain-guides/2_Avalanche/5_avalanche-integration-tools.md index 566a49e5..003534a6 100644 --- a/docs/blockchain-guides/2_Avalanche/5_avalanche-integration-tools.md +++ b/docs/blockchain-guides/2_Avalanche/5_avalanche-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Avalanche smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Avalanche.](../2_Avalanche/Template-library/1_avalanche-erc-20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/4_Polygon/5_polygon-integration-tools.md b/docs/blockchain-guides/4_Polygon/5_polygon-integration-tools.md index 5c60e8f4..003534a6 100644 --- a/docs/blockchain-guides/4_Polygon/5_polygon-integration-tools.md +++ b/docs/blockchain-guides/4_Polygon/5_polygon-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Polygon smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Polygon.](../4_Polygon/Template-library/1_polygon-erc-20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/5_Hyperledger-Fabric/6_hyperledger-fabric-integration-tools.md b/docs/blockchain-guides/5_Hyperledger-Fabric/6_hyperledger-fabric-integration-tools.md index 9045c418..003534a6 100644 --- a/docs/blockchain-guides/5_Hyperledger-Fabric/6_hyperledger-fabric-integration-tools.md +++ b/docs/blockchain-guides/5_Hyperledger-Fabric/6_hyperledger-fabric-integration-tools.md @@ -1,52 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Hyperledger Fabric smart contracts can be Go or Typescript. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -On the left, in the **"Explorer"** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **"src"** folder. You can edit them, or use them as is if the template fits all your needs. You can have as many smart contract folders as you want, think of them as packages. - -The **"scripts"** folder contains the executable files that enable packaging, installing, approving, committing, and if needed, initializing the smart contract package. These scripts execute against the blockchain node connected to the smart contract set. - -The **"node"** folder contains the node's configuration files, `core.yaml` and `configtx.yaml`. This folder is set as the `FABRIC_CFG_PATH` environment variable in your IDE. - -The **"network"** folder contains the network's configuration files, CA certificates for the orderer and peer nodes. - -## Yarn scripts - -On the left, in the **"Task Manager"** panel, you can run predefined yarn scripts such as: - -**"chaincode:package"** to package the smart contract code into a gzipped tar file and store it in the smart contract folder. - -**"chaincode:install"** to install the chaincode definition on the peer node. - -**"chaincode:approve"** to approve for your organization the chaincode definition previously installed on the peer node. - -**"chaincode:check-commit"** to check the approval status of the chaincode definition. - -**"chaincode:commit"** to commit the chaincode definition. Run this task when a sufficient number of channel members have approved the chaincode definition. If the chaincode definition has been approved by the majority (or all, it depends on the network's configuration) of the channel members, it will commit the chaincode definition. - -**"chaincode:invoke-init"** to initialize the chaincode. Run this task when the chaincode definition has been committed and if it has an init function. Adjust (if needed) the arguments passed to the `init` function in the `./scripts/invoke-init-chaincode.sh` file. - -You can view and explore these scripts in the package.json file in the project root. In case the **Task Manager** does not load, you can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `chaincode:package` task using the terminal, open a new terminal and run the command `yarn chaincode:package`. - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/7_Arbitrum/5_arbitrum-integration-tools.md b/docs/blockchain-guides/7_Arbitrum/5_arbitrum-integration-tools.md index f4219bce..003534a6 100644 --- a/docs/blockchain-guides/7_Arbitrum/5_arbitrum-integration-tools.md +++ b/docs/blockchain-guides/7_Arbitrum/5_arbitrum-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Arbitrum smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Arbitrum.](../7_Arbitrum/Template-library/1_arbitrum-erc-20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/8_Optimism/5_optimism-integration-tools.md b/docs/blockchain-guides/8_Optimism/5_optimism-integration-tools.md index cd2e93d9..003534a6 100644 --- a/docs/blockchain-guides/8_Optimism/5_optimism-integration-tools.md +++ b/docs/blockchain-guides/8_Optimism/5_optimism-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Optimism smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Optimism.](../8_Optimism/Template-library/1_optimism-erc-20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/blockchain-guides/9_Hedera/5_hedera-integration-tools.md b/docs/blockchain-guides/9_Hedera/5_hedera-integration-tools.md index 3e668203..003534a6 100644 --- a/docs/blockchain-guides/9_Hedera/5_hedera-integration-tools.md +++ b/docs/blockchain-guides/9_Hedera/5_hedera-integration-tools.md @@ -1,70 +1,5 @@ -# Smart contracts IDE +# Smart Contract Sets -The SettleMint IDE is the only tool you need to edit the smart contract set template you have selected, or **write** your own brand **new** smart contracts. The programming language used for your Hedera smart contracts is Solidity. +You can launch a Smart Contract Set to significantly accelerate the development of your smart contracts. -## Using the IDE - -When you open the IDE, you land in an instance of Visual Studio Code similar to the image below. - -![ide](../../../static/img/blockchain-guide/IDE.png) - -On the left, in the **“Explorer”** panel, you can see all the folders and files related to the smart contract set. - -The smart contract files are located in the **“contracts”** folder. You can edit them, or use them as they are if the template fits all your needs. - -The **“deploy”** folder contains the scripts that enable the deployment of the smart contract set on the blockchain. You might have to edit these scripts if you add new arguments to the constructor of your smart contract. - -The **“test”** folder contains a script that lets you test the functionalities of your smart contracts. You can add new ones if you edit the template. Do not hesitate to go through the test cases as they provide valuable information on how to use your smart contracts. - -The **subgraph** folder holds all the files needed to index your smart contract using the Graph protocol. - -## Scripts - -Several scripts are defined in `package.json` to help you use the smart contract set: - -- **lint** to lint your smart contracts, i.e. find the stylistic errors. -- **compile** to compile your smart contracts. -- **test** to run the test script in the “test” folder. -- **smartcontract:deploy** to deploy the smart contract set on the blockchain. -- **smartcontract:deploy:reset** to deploy from scratch after a first deployment. -- **graph:config** to create the middleware configuration file. -- **graph:compile** to compile the middleware files. -- **graph:codegen** to create the middleware schema. -- **graph:build** to build the middleware. -- **graph:deploy** to deploy the middleware. -- **graph:all** to execute all the graph scripts in one command. - -:::warning Note - -To execute the scripts related to the Graph middleware, you need a middleware instance in your app. - -::: - -You can execute these scripts in the terminal integrated with the IDE by running `yarn name-of-script`. -For example, to run the `smartcontract:deploy` task using the terminal, open a new terminal (ctrl + shift + \`) and run the command`yarn smartcontract:deploy`. - -## Private key - -To be able to deploy your smart contract set on the blockchain you need to have a private key enabled on your node to sign the transaction, and you need to fund this key with Ether to cover the cost for the transaction. You can create a private key and fund it in the **Private keys section** of your application. [More about private keys.](../../using-platform/12_private-keys.md) - -## Template library - -Every instance of the IDE contains a set of pre-built smart contract templates. These templates are easily customizable to match your specific use case. [Discover the smart contract set templates for Hedera.](../9_Hedera/Template-library/1_hedera-erc-20.md) - -## Generative AI plugin - -The integration of an OpenAI GPT plugin into the Smart Contract IDE of the SettleMint platform brings forth significant advantages for the fast development of new smart contracts. Generative AI technology empowers developers by providing them with automated code suggestions, smart contract templates, and code completion capabilities. This accelerates the development process by reducing manual effort and improving code efficiency. - -Additionally, the interactive debugging and explanation features offered by the GPT plugin greatly benefit developers of all skill levels. Beginners can leverage the plugin’s explanations to understand complex concepts, improve their coding skills, and gain insights into best practices. Experienced developers can utilize the debugging features to quickly identify and resolve issues, leading to more robust and error-free smart contracts. - -Overall, the integration of the OpenAI GPT plugin into the SettleMint platform’s Smart Contract IDE combines the power of generative AI and interactive debugging to enhance productivity, code quality, and learning opportunities for developers in the blockchain space. - -You can find this plugin in the sidebar (magic lamp icon), in context menu and the action panel. The first time you use the plugin you will get asked for an OpenAI API key. Depending on your OpenAI API access you can use the default GPT 3.5 model or the GPT 4 model which is slower, but more accurate. Check out the settings in the IDE to configure this and other settings (like using your own Azure GPT service) - -Here are some prompts to get you started: - -- Write a Solidity ERC20 token representing a bond, based on OpenZeppelin. Include a bond repayment and coupon payments. -- Write a Solidity ERC721 token representing real estate, based on OpenZeppelin and allow fractional ownership of this NFT in the form of ERC20 tokens. -- Write The Graph indexing code that indexes an ERC721 token on the Ethereum Mainnet. - - +[Learn here how to use Smart Contract Sets to deploy your smart contracts](../../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). diff --git a/docs/developer-guides/asset-tokenization.md b/docs/developer-guides/asset-tokenization.md index f7aacd15..2d2fb22d 100644 --- a/docs/developer-guides/asset-tokenization.md +++ b/docs/developer-guides/asset-tokenization.md @@ -99,15 +99,14 @@ option. Create a name and select the node that you deployed in the earlier step. Now that you have deployed the needed resources, you can create and deploy the Asset Tokenization smart contract. -### 1. Create a Smart Contract +### 1. Create a Smart Contract Set -![Create a Smart Contract](../../static/img/developer-guides/asset-tokenization/create-smart-contract.gif) - -First, you need to deploy a `Smart Contract Set`. Select the `Smart Contract Sets` option -on the left. +To create a Smart contract set, navigate to the `Dev tools` section in the left sidebar. From there, click on `Add a dev tool`, choose `Code Studio` and then `Smart Contract Set`. You will now be given the option to select a template. Choose the `Empty` option. -Create a name and select the same deployment plan as you did earlier. +Create a name and select the same deployment plan as you did earlier. For more information on how to add a smart contract set, [see our Smart Contract Sets section](using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/3_add-smart-contract-set.md). + +![Create a Smart Contract](../../static/img/developer-guides/asset-tokenization/create-empty-smart-contract.png) ### 2. Opening the Integrated Development Environment (IDE) @@ -413,15 +412,17 @@ The URL can be found by: Save this URL as you will use it later in this guide when building the integration. ::: -### 3. Create a SettleMint API Key +### 3. Creating an access token + +To connect to your node and storage, you will need an access token. We recommend you use an application access token. + +You can create an application access token by navigating to the application dashboard, and then clicking on the `Access Tokens` section in the left sidebar. -To ensure that your network is secure, you will also need to generate an API to have access to it. -![Create an API Key](./../../static/img/developer-guides/asset-tokenization/create-api-key.png) +![API Keys](../../static/img/developer-guides/asset-tokenization/access-token-node-storage.png) -To create an API key, click on your profile icon in the top right. Then select `API Keys` and `Generate a new API Key`. -![Generate API Key](./../../static/img/developer-guides/asset-tokenization/generate-key.png) +You can now create an application access token with an expiration and the scopes you want to use. For this guide, we recommend you create an access token scoped to your node and storage. -You can now name your API key and check all of the resources below to give your key access to your entire application. +You will now see your access token. Copy the token since you cannot see it again! For more information on how to use access tokens, [see our Access Tokens section](using-platform/16_application-access-tokens.md). ### 4. Setup Integration Studio Deployment @@ -459,7 +460,7 @@ To import the below JSON file: "type": "function", "z": "a781da6f697711d2", "name": "Set Global Variables", -"func": "const glbVar = {\n privateKey: \"PRIVATE_KEY\",\n privateKeyAddress: \"ADDRESS\",\n smartContract: \"ADDRESS\",\n bpassKey: \"API_KEY\",\n rpcEndpoint: \"RCP_ENDPOINT\",\n abi: [\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"balance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"needed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"tokenId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ERC1155InsufficientBalance\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"approver\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155InvalidApprover\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"idsLength\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"valuesLength\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ERC1155InvalidArrayLength\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155InvalidOperator\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155InvalidReceiver\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155InvalidSender\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155MissingApprovalForAll\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedInnerCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableInvalidOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableUnauthorizedAccount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"approved\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"ApprovalForAll\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"assetIds\",\n \"type\": \"uint256[]\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }\n ],\n \"name\": \"AssetTransferEvent\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"values\",\n \"type\": \"uint256[]\"\n }\n ],\n \"name\": \"TransferBatch\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"TransferSingle\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"string\",\n \"name\": \"value\",\n \"type\": \"string\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"URI\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"assetToDetails\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxSupply\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faceValue\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maturityTimestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"assetUri\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"balanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"accounts\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }\n ],\n \"name\": \"balanceOfBatch\",\n \"outputs\": [\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amounts\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"burn\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"assetIds\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }\n ],\n \"name\": \"burnBatch\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxSupply\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faceValue\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maturityTimestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"assetUri\",\n \"type\": \"string\"\n }\n ],\n \"name\": \"createAsset\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"exists\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isApprovedForAll\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amounts\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"mint\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"assetIds\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"mintBatch\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"values\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"safeBatchTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"safeTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"approved\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"setApprovalForAll\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes4\",\n \"name\": \"interfaceId\",\n \"type\": \"bytes4\"\n }\n ],\n \"name\": \"supportsInterface\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"totalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"uri\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n ]\n\n}\n\nglobal.set('privateKey', glbVar.privateKey);\nglobal.set('privateKeyAddress',glbVar.privateKeyAddress)\nglobal.set('contract', glbVar.smartContract);\nglobal.set('bpassKey', glbVar.bpassKey);\nglobal.set('rpcEndpoint', glbVar.rpcEndpoint);\nglobal.set('abi',glbVar.abi)\n\nreturn msg;", +"func": "const glbVar = {\n privateKey: \"PRIVATE_KEY\",\n privateKeyAddress: \"ADDRESS\",\n smartContract: \"ADDRESS\",\n accessToken: \"ACCESS_TOKEN\",\n rpcEndpoint: \"RCP_ENDPOINT\",\n abi: [\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"target\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"AddressEmptyCode\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"balance\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"needed\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"tokenId\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ERC1155InsufficientBalance\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"approver\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155InvalidApprover\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"idsLength\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"valuesLength\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"ERC1155InvalidArrayLength\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155InvalidOperator\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"receiver\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155InvalidReceiver\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"sender\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155InvalidSender\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1155MissingApprovalForAll\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"ERC1967InvalidImplementation\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"ERC1967NonPayable\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"FailedInnerCall\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"InvalidInitialization\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"NotInitializing\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"owner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableInvalidOwner\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnableUnauthorizedAccount\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [],\n \"name\": \"UUPSUnauthorizedCallContext\",\n \"type\": \"error\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"slot\",\n \"type\": \"bytes32\"\n }\n ],\n \"name\": \"UUPSUnsupportedProxiableUUID\",\n \"type\": \"error\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"bool\",\n \"name\": \"approved\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"ApprovalForAll\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"assetIds\",\n \"type\": \"uint256[]\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }\n ],\n \"name\": \"AssetTransferEvent\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"uint64\",\n \"name\": \"version\",\n \"type\": \"uint64\"\n }\n ],\n \"name\": \"Initialized\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"previousOwner\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"OwnershipTransferred\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256[]\",\n \"name\": \"values\",\n \"type\": \"uint256[]\"\n }\n ],\n \"name\": \"TransferBatch\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n },\n {\n \"indexed\": false,\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"TransferSingle\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": false,\n \"internalType\": \"string\",\n \"name\": \"value\",\n \"type\": \"string\"\n },\n {\n \"indexed\": true,\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"URI\",\n \"type\": \"event\"\n },\n {\n \"anonymous\": false,\n \"inputs\": [\n {\n \"indexed\": true,\n \"internalType\": \"address\",\n \"name\": \"implementation\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"Upgraded\",\n \"type\": \"event\"\n },\n {\n \"inputs\": [],\n \"name\": \"UPGRADE_INTERFACE_VERSION\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"assetToDetails\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxSupply\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faceValue\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maturityTimestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"assetUri\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"balanceOf\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"accounts\",\n \"type\": \"address[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n }\n ],\n \"name\": \"balanceOfBatch\",\n \"outputs\": [\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"\",\n \"type\": \"uint256[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amounts\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"burn\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"assetIds\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n }\n ],\n \"name\": \"burnBatch\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"symbol\",\n \"type\": \"string\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maxSupply\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"faceValue\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"maturityTimestamp\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"string\",\n \"name\": \"assetUri\",\n \"type\": \"string\"\n }\n ],\n \"name\": \"createAsset\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"exists\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"initialize\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"account\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"isApprovedForAll\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"assetId\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"amounts\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"mint\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"assetIds\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"amounts\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"recipient\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"mintBatch\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"owner\",\n \"outputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"proxiableUUID\",\n \"outputs\": [\n {\n \"internalType\": \"bytes32\",\n \"name\": \"\",\n \"type\": \"bytes32\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"renounceOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"ids\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"uint256[]\",\n \"name\": \"values\",\n \"type\": \"uint256[]\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"safeBatchTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"from\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"address\",\n \"name\": \"to\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"uint256\",\n \"name\": \"value\",\n \"type\": \"uint256\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"safeTransferFrom\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"operator\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bool\",\n \"name\": \"approved\",\n \"type\": \"bool\"\n }\n ],\n \"name\": \"setApprovalForAll\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"bytes4\",\n \"name\": \"interfaceId\",\n \"type\": \"bytes4\"\n }\n ],\n \"name\": \"supportsInterface\",\n \"outputs\": [\n {\n \"internalType\": \"bool\",\n \"name\": \"\",\n \"type\": \"bool\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [],\n \"name\": \"totalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"totalSupply\",\n \"outputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"\",\n \"type\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newOwner\",\n \"type\": \"address\"\n }\n ],\n \"name\": \"transferOwnership\",\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address\",\n \"name\": \"newImplementation\",\n \"type\": \"address\"\n },\n {\n \"internalType\": \"bytes\",\n \"name\": \"data\",\n \"type\": \"bytes\"\n }\n ],\n \"name\": \"upgradeToAndCall\",\n \"outputs\": [],\n \"stateMutability\": \"payable\",\n \"type\": \"function\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"uint256\",\n \"name\": \"id\",\n \"type\": \"uint256\"\n }\n ],\n \"name\": \"uri\",\n \"outputs\": [\n {\n \"internalType\": \"string\",\n \"name\": \"\",\n \"type\": \"string\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n ]\n\n}\n\nglobal.set('privateKey', glbVar.privateKey);\nglobal.set('privateKeyAddress',glbVar.privateKeyAddress)\nglobal.set('contract', glbVar.smartContract);\nglobal.set('accessToken', glbVar.accessToken);\nglobal.set('rpcEndpoint', glbVar.rpcEndpoint);\nglobal.set('abi',glbVar.abi)\n\nreturn msg;", "outputs": 1, "timeout": "", "noerr": 0, @@ -497,7 +498,7 @@ To do this, click on the middle item in the diagram labeled `Set Global Variable 1. **privateKey** - Enter your private key that you created in [Part 1 / Step 4](#4-deploy-a-private-key) 2. **privateKeyAdress** - The address created after completing [Part 1 / Step 4](#4-deploy-a-private-key) 3. **smartContract** - The address of your deployed smart contract after completing [Part 2 / Step 5](#5-deploy-the-contract) -4. **bpassKey** - The API key created when completing [Part 3 / Step 3](#3-create-a-settlemint-api-key) +4. **accessToken** - The API key created when completing [Part 3 / Step 3](#3-creating-an-access-token) 5. **rpcEndpoint** - The JSON RPC URL that was shown when completing [Part 3 / Step 2](#2-get-the-json-rpc-endpoint) With this information entered, click on the blue square next to the `Inject` item. diff --git a/docs/developer-guides/attestation-service.md b/docs/developer-guides/attestation-service.md index 5698fd34..83735be3 100644 --- a/docs/developer-guides/attestation-service.md +++ b/docs/developer-guides/attestation-service.md @@ -89,12 +89,12 @@ Before deploying the EAS contracts, you must add the smart contract set to your ### Adding the Smart Contract Set -1. **Navigate to the Contract Sets Section**: In the SettleMint platform, go to the **Smart Contract Sets** section. -2. **Select the Attestation Service Set**: Choose the **Attestation Service Set** template from the available options. +1. **Navigate to the Dev tools Section**: Go to the application dashboard of the application where you want to deploy the EAS contracts, then navigate to the **Dev tools** section in the left sidebar. +2. **Select the Attestation Service Set**: From there, click on **Add a dev tool**, choose **Code Studio** and then **Smart Contract Set**. Choose the **Attestation Service** template. 3. **Customize**: Modify the set as needed for your specific project. 4. **Save**: Save the configuration. -For detailed instructions, visit the [Smart Contract Deployment Documentation](https://console.settlemint.com/documentation/docs/using-platform/add_smart_contract_sets/create_smart_contract_set/). +For detailed instructions, visit the [Smart Contract Sets Documentation](../using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md). --- diff --git a/docs/developer-guides/connect-frontend.md b/docs/developer-guides/connect-frontend.md index 21d6025a..dca62355 100644 --- a/docs/developer-guides/connect-frontend.md +++ b/docs/developer-guides/connect-frontend.md @@ -1,5 +1,5 @@ --- -title: Connect A Front End - NextJS +title: Connect a Front End - NextJS description: A Guide to Connecting a Frontend to Your Blockchain Application sidebar_position: 2 keywords: [frontend, nextjs, web3auth, polygon, erc20] @@ -67,19 +67,17 @@ Insert your Wallet Address and click the `Submit` button. Depending on faucet tr You can confirm that you have received the test tokens by going to the `Balances` section of your `Private Keys`. -**Image Here of the Dashboard** - ### Deploying the Smart Contract -We are now ready to create and deploy a smart contract. Go to the `Smart Contract Sets` on the dashboard on the right. From there, select `Add a Smart Contract Set` and the `TokenSender` node that you have created. +We are now ready to create and deploy a smart contract. Navigate to the `Dev tools` section in the left sidebar. From there, click on `Add a dev tool`, choose `Code Studio` and then `Smart Contract Set`. -You now have the option to select a smart contract template. These are pre-populated smart contracts of popular ERC standards and use cases. +You now have the option to select a smart contract set template. These are pre-built smart contract sets based on popular ERC standards and use cases. For this guide, we will use the ERC-20 Token template: -![Choose a template](../../static/img/developer-guides/choose-tempalte.png) +![Choose a template](../../static/img/developer-guides/connect-frontend-erc20-template.png) -You can continue to use the naming and deployment plan that you used earlier for the other resources. +You can continue to use the naming and deployment plan that you used earlier for the other resources. For more information on how to add a smart contract set, [see our Smart Contract Sets section](using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/3_add-smart-contract-set.md). ### Editing the Contract @@ -142,23 +140,23 @@ After that is completed, open the folder in your favorite code editor. ### Adding the ABI -The first thing we will do is add the ABI and address of our deployed contract. This allows our front end to know where to read and write data to it. This information can be found in the SettleMint IDE where you deployed your contract. +The first thing we will do is add the ABI and address of our deployed contract. This allows our front end to know where to read and write data to it. This information can be found in the smart contract set where you deployed your contract. Go to the `ignition/deployments/chain-46622/artifacts` folder in the file explorer and copy the `GenericERC20Module#GenericERC20.json` file to the `contractData` directory. ![Copy ABI](../../static/img/developer-guides/copy-abi.png) -### Adding the API Key +### Adding the access token -For security reasons, we don't want just anyone accessing your node. So you will also need to generate an API key to get access. +To connect to your node and middleware, you will need an access token. We recommend you use an application access token. -This is done by navigating to your profile in the top right next to the grid icon. From there, select `API Keys`: +You can create an application access token by navigating to the application dashboard, and then clicking on the `Access Tokens` section in the left sidebar. -![API Keys](../../static/img/developer-guides/api-keys.png) +![API Keys](../../static/img/developer-guides/access-token.png) -From there, select the `Generate new API Key`. You can now create an API key name, expiration, and access. For this guide, selecting `All blockchain nodes in all organizations` and `All middlewares in all organizations` will work. +You can now create an application access token with an expiration and the scopes you want to use. For this guide, we recommend you create an access token scoped to your node and middleware. -You will now see your API key that was generated only once. Copy this and add it as the `BTP_TOKEN` variable value in the `.env` file. +You will now see your access token. Copy the token since you cannot see it again! Then, add it as the `BTP_TOKEN` variable value in the `.env` file. For more information on how to use access tokens, [see our Access Tokens section](using-platform/16_application-access-tokens.md). ### Configuring web3auth diff --git a/docs/launch-platform/managed-cloud-deployment/2_create-an-account.md b/docs/launch-platform/managed-cloud-deployment/1_create-an-account.md similarity index 61% rename from docs/launch-platform/managed-cloud-deployment/2_create-an-account.md rename to docs/launch-platform/managed-cloud-deployment/1_create-an-account.md index 2cd1c7c8..7ac845a4 100644 --- a/docs/launch-platform/managed-cloud-deployment/2_create-an-account.md +++ b/docs/launch-platform/managed-cloud-deployment/1_create-an-account.md @@ -1,29 +1,23 @@ --- -title: Creating an Account -description: Guide to Create an account on SettleMint -sidebar_position: 3 +title: Creating an account +description: Guide to create an account on SettleMint --- # Create an account -:::info Sign up and get €250 to try SettleMint - -If you create an account on SettleMint you get €250 free credit to try out the platform. This gives you a unique opportunity to experience low-code blockchain, and see for yourself how easy and fast you can build blockchain applications. - -::: ![SignUp](../../../static/img/about-settlemint/sign-up.png) Navigate to [SettleMint](https://console.settlemint.com/) and follow these steps to create an account: -1. Choose to sign up with **Google**, **Github**, **Ethereum** or with a **magic link**. - Magic links let you sign up and log in without a password. When you provide your email address, you get a magic link sent to your email that will sign you up instantly. +1. Choose to sign up with **Google**, **Github**, **Auth0** or with a **magic link**. + Magic links let you sign up and log in without a password. When you provide your email address, you get a magic link sent to your email. Once you click on the link, you will be logged in. -1. Enter your **first and last name**, and choose a name for your **organization**. - An organization is the highest level of hierarchy in SettleMint. It's at this level that you create and manage blockchain applications, invite team members to collaborate, and manage billing. You can create as many organizations as you want. Choose a name that is easily recognizable in your dashboards (like your company name, department name, team name, etc.). You can change the name of your organization at any time. [More about organizations](3_about-organizations.md) +2. Enter your **first and last name**, and choose a name for your **organization**. + An organization is the highest level of hierarchy in SettleMint. It's at this level that you create and manage blockchain applications, invite team members to collaborate, and manage billing. You can create as many organizations as you want. Choose a name that is easily recognizable in your dashboards (like your company name, department name, team name, etc.). You can change the name of your organization at any time. [More about organizations](2_about-organizations.md) -1. Choose a name for your first **blockchain application**. +3. Choose a name for your first **blockchain application**. You may want to choose a name related to what you are building, e.g. track and trace, NFT, data exchange, etc. Names like "my first app" or "test app" are also fine. You can change the name of an application at any time. [More about applications](../../using-platform/0_create-an-application.md) -1. You're all set up now, and ready to start building your first application. +4. You're all set up now, and ready to start building your first application. Start by [adding a network to your application](../../using-platform/1_add-a-network-to-an-application.md). diff --git a/docs/launch-platform/managed-cloud-deployment/3_about-organizations.md b/docs/launch-platform/managed-cloud-deployment/2_about-organizations.md similarity index 98% rename from docs/launch-platform/managed-cloud-deployment/3_about-organizations.md rename to docs/launch-platform/managed-cloud-deployment/2_about-organizations.md index 0095eeb5..b384b087 100644 --- a/docs/launch-platform/managed-cloud-deployment/3_about-organizations.md +++ b/docs/launch-platform/managed-cloud-deployment/2_about-organizations.md @@ -1,7 +1,6 @@ --- title: Managing Organizations -description: Guide to Managing Organizations -sidebar_position: 4 +description: Guide to managing Organizations --- # About organizations diff --git a/docs/launch-platform/managed-cloud-deployment/13_deployment-plans.md b/docs/launch-platform/managed-cloud-deployment/3_deployment-plans.md similarity index 95% rename from docs/launch-platform/managed-cloud-deployment/13_deployment-plans.md rename to docs/launch-platform/managed-cloud-deployment/3_deployment-plans.md index 16a231bb..171bcb4f 100644 --- a/docs/launch-platform/managed-cloud-deployment/13_deployment-plans.md +++ b/docs/launch-platform/managed-cloud-deployment/3_deployment-plans.md @@ -1,7 +1,6 @@ --- -title: Deployment Plans -description: A list of the available Deployment Plans for SettleMint -sidebar_position: 2 +title: Deployment plans +description: A list of the available deployment plans for SettleMint --- # Deployment plans diff --git a/docs/launch-platform/managed-cloud-deployment/1_quickstart.md b/docs/launch-platform/managed-cloud-deployment/4_quickstart.md similarity index 99% rename from docs/launch-platform/managed-cloud-deployment/1_quickstart.md rename to docs/launch-platform/managed-cloud-deployment/4_quickstart.md index 0dae6cb7..c25b4def 100644 --- a/docs/launch-platform/managed-cloud-deployment/1_quickstart.md +++ b/docs/launch-platform/managed-cloud-deployment/4_quickstart.md @@ -1,7 +1,6 @@ --- title: Getting Started - Hello World description: A step-by-step guide on building your first application on SettleMint -sidebar_position: 3 --- # Getting Started - Hello World diff --git a/docs/launch-platform/managed-cloud-deployment/_category_.json b/docs/launch-platform/managed-cloud-deployment/_category_.json index ccb18d0a..1c56f12a 100644 --- a/docs/launch-platform/managed-cloud-deployment/_category_.json +++ b/docs/launch-platform/managed-cloud-deployment/_category_.json @@ -1,4 +1,4 @@ { - "label": "Managed cloud Deployment", + "label": "Managed Cloud Deployment", "position": 1 } diff --git a/docs/using-platform/10_insights.md b/docs/using-platform/10_insights.md index f9c781f6..a8b380d0 100644 --- a/docs/using-platform/10_insights.md +++ b/docs/using-platform/10_insights.md @@ -13,7 +13,7 @@ Follow these steps to add the blockchain explorer: 1. Select **Blockchain Explorer** 2. Select the target **blockchain node** for the blockchain explorer and click **Continue**. Make sure you have a **Hyperledger Besu node or Polygon Edge node** in place. 3. Enter a **name** for this instance of the blockchain explorer. -4. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans](../launch-platform/managed-cloud-deployment/13_deployment-plans.md) +4. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans](launch-platform/managed-cloud-deployment/3_deployment-plans.md) 5. You see the **resource cost** for this blockchain explorer displayed at the bottom of the form. Click **Confirm** to add the blockchain explorer. ## Using the blockchain explorer diff --git a/docs/using-platform/11_storage.md b/docs/using-platform/11_storage.md index 9a3e1a1c..a93f5376 100644 --- a/docs/using-platform/11_storage.md +++ b/docs/using-platform/11_storage.md @@ -10,7 +10,7 @@ Follow these steps to add storage: 1. Choose **'IPFS'** or **'MinIO'** 2. Choose a **name** for your storage. Choose one that will be easily recognizable in your dashboards. -3. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans](../launch-platform/managed-cloud-deployment/13_deployment-plans.md) +3. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans](launch-platform/managed-cloud-deployment/3_deployment-plans.md) 4. You can see the resource cost for your storage displayed at the bottom of the form. Click **Confirm** to add the storage. When the storage is deployed, click on it from the list, and go to the **Interface tab** to start adding files. You can connect to your storage using the details provided in the **Connect tab**. diff --git a/docs/using-platform/12_private-keys.md b/docs/using-platform/12_private-keys.md index 5243047b..ff5721c5 100644 --- a/docs/using-platform/12_private-keys.md +++ b/docs/using-platform/12_private-keys.md @@ -1,10 +1,10 @@ -# Private keys +# Private Keys To send transactions to a blockchain network, you need a private key to sign these transcations, and the private key should contain enough funds to cover the gas price for the transaction. You can sign transactions with private keys you created outside SettleMint with e.g. MetaMask or other wallet solutions. SettleMint however provides an option to **create and manage private keys within the platform**. -When you deploy a blockchain node it contains a signing proxy that captures the eth_sendTransaction call, uses the appropriate key from the private key section to sign it, and sends it onwards to the blockchain node. You can use this proxy directly via the nodes JSON-RPC endpoints ([https://eth.wiki/json-rpc/API](https://eth.wiki/json-rpc/API)) and via tools like Hardhat ([https://hardhat.org/config/#json-rpc-based-networks](https://hardhat.org/config/#json-rpc-based-networks)) configured to use the “remote” default option for signing. The smart contract set IDE is preconfigured to use this signing proxy. +When you deploy a blockchain node it contains a signing proxy that captures the eth_sendTransaction call, uses the appropriate key from the private key section to sign it, and sends it onwards to the blockchain node. You can use this proxy directly via the nodes JSON-RPC endpoints ([https://eth.wiki/json-rpc/API](https://eth.wiki/json-rpc/API)) and via tools like Hardhat ([https://hardhat.org/config/#json-rpc-based-networks](https://hardhat.org/config/#json-rpc-based-networks)) configured to use the “remote” default option for signing. ## Create a private key diff --git a/docs/using-platform/15_dev-tools/0_code-studio/0_code-studio.md b/docs/using-platform/15_dev-tools/0_code-studio/0_code-studio.md index 1078a991..6d6c4136 100644 --- a/docs/using-platform/15_dev-tools/0_code-studio/0_code-studio.md +++ b/docs/using-platform/15_dev-tools/0_code-studio/0_code-studio.md @@ -16,4 +16,4 @@ With the built-in SettleMint SDK Command Line Interface (CLI), you can easily us Currently, we offer the following types of Code Studio: -- [Smart contract sets](./1_smart-contract-sets/1_smart-contract-sets.md) - Smart contract sets Code Studio is a powerful tool that simplifies the development of your smart contracts. It includes pre-built smart contract set templates for your chosen use case, which are easily customizable to match your needs. The IDE also includes compilation and migration scripts that drastically simplify deployment to the relevant blockchain. +- [Smart contract sets](./1_smart-contract-sets/1_smart-contract-sets.md) - A powerful tool that accelerates the development of your smart contracts. This code studio comes with pre-built smart contract set templates for your chosen use case, which are easily customizable to match your needs. It also includes compilation and migration scripts that drastically simplify deployment to the relevant blockchain. diff --git a/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md b/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md index 3d451480..2dde9890 100644 --- a/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md +++ b/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/1_smart-contract-sets.md @@ -1,32 +1,22 @@ --- -title: Smart contract sets -description: Smart contract sets -sidebar_position: 0 +title: Smart Contract Sets +description: Smart Contract Sets --- -# Smart contract sets +# Smart Contract Sets ## Introduction -To make developing smart contracts easier, we offer an open-source [template library](2_smart-contract-templates.md) which includes pre-built smart contracts which you can customize to meet your specific needs. +A Smart Contract Set is a [code studio](../../0_code-studio/0_code-studio.md) that comes with a [smart contract set template](2_smart-contract-templates.md) for your chosen use case. It is a powerful tool that accelerates the development of your smart contracts. -If you need a fundamental explanation of what smart contracts are and how they work, we recommend contacting our team to join our Learn World Blockchain course. Our experts will guide you through the basics, ensuring you have a solid foundation before diving into development. For a practical guide, please visit [deploying a contract](4_deploying-a-contract.md). - -SettleMint's smart contract sets include both Hardhat and Foundry, enabling you to compile, test, and deploy using your preferred framework or a combination of both. This flexibility allows you to optimize your development process to best suit your project needs and preferences. - -The programming languages for smart contracts differ depending on the protocol. For blockchain networks that are EVM (Ethereum Virtual Machine) compatible, and are listed below, the programming language used is Solidity. - -- [Hyperledger Besu Smart contract set](../../../../blockchain-guides/1_Hyperledger-Besu/6_enterprise-ethereum-integration-tools.md) -- [Ethereum Smart contract set](../../../../blockchain-guides/0_Ethereum/5_ethereum-integration-tools.md) -- [Avalanche Smart contract set](../../../../blockchain-guides/2_Avalanche/5_avalanche-integration-tools.md) -- [Polygon Smart contract set](../../../../blockchain-guides/4_Polygon/5_polygon-integration-tools.md) +You can choose from a wide variety of templates in our open-source [template library](2_smart-contract-templates.md#template-library). Each template includes pre-built smart contracts which you can then customize to meet your specific needs. -For Hyperledger Fabric, the programming language used is TypeScript and Go. - -- [Hyperledger Fabric Smart contract set](../../../../blockchain-guides/5_Hyperledger-Fabric/6_hyperledger-fabric-integration-tools.md) +If you need a fundamental explanation of what smart contracts are and how they work, we recommend contacting our team to join our Learn World Blockchain course. Our experts will guide you through the basics, ensuring you have a solid foundation before diving into development. For a practical guide, please visit [deploying a contract](4_deploying-a-contract.md). ## Overview of the Smart Contract Deployment Process on SettleMint +SettleMint's smart contract sets include both Hardhat and Foundry, enabling you to compile, test, and deploy using your preferred framework or a combination of both. This flexibility allows you to optimize your development process to best suit your project needs and preferences. + The following is a high-level overview of smart contract development processes at SettleMint. ### 1. Adding a Smart Contract Set diff --git a/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/2_smart-contract-templates.md b/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/2_smart-contract-templates.md index d7054396..4b923830 100644 --- a/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/2_smart-contract-templates.md +++ b/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/2_smart-contract-templates.md @@ -1,16 +1,51 @@ --- -title: Templates +title: Smart contract template library description: Rapid deployment with smart contract templates -sidebar_position: 1 --- SettleMint's smart contract templates serve as open-source, ready-to-use foundations for blockchain application development, significantly accelerating the deployment process. These templates enable users to quickly customize and extend their blockchain applications, leveraging tested and community-enhanced frameworks to reduce development time and accelerate market entry. -### Open-Source Smart Contract Templates under the MIT License +## Open-Source Smart Contract Templates under the MIT License Benefit from the expertise of the blockchain community and trust in the reliability of your smart contracts. These templates are vetted and used by major enterprises and institutions, ensuring enhanced security and confidence in your deployments. -### Create Your Own Smart Contract Templates for Your Consortium +## Template library + +The programming languages for smart contracts differ depending on the protocol. For blockchain networks that are EVM (Ethereum Virtual Machine) compatible, the programming language used is Solidity. For Hyperledger Fabric, the programming languages used are TypeScript and Go. + +- [Empty](https://github.com/settlemint/solidity-empty) + +- [ERC20 token](https://github.com/settlemint/solidity-token-erc20) + +- [ERC1155 token](https://github.com/settlemint/solidity-token-erc1155) + +- [ERC20 token with MetaTx](https://github.com/settlemint/solidity-token-erc20-metatx) + +- [Supplychain](https://github.com/settlemint/solidity-supplychain) + +- [Empty typescript](https://github.com/settlemint/chaincode-ts-empty) + +- [Empty typescript with PDC](https://github.com/settlemint/chaincode-ts-empty-pdc) + +- [Empty go](https://github.com/settlemint/chaincode-go-empty) + +- [State Machine](https://github.com/settlemint/solidity-statemachine) + +- [ERC20 token with crowdsale mechanism](https://github.com/settlemint/solidity-token-erc20-crowdsale) + +- [ERC721](https://github.com/settlemint/solidity-token-erc721) + +- [ERC721a](https://github.com/settlemint/solidity-token-erc721a) + +- [ERC721 Generative Art](https://github.com/settlemint/solidity-token-erc721-generative-art) + +- [Soulbound Token](https://github.com/settlemint/solidity-token-soulbound) + +- [Diamond bond](https://github.com/settlemint/solidity-diamond-bond) + +- [Attestation Service](https://github.com/settlemint/solidity-attestation-service) + +## Create Your Own Smart Contract Templates for Your Consortium Within the self-managed Blockchain Transformation Platform (BTP), you can create and add your own templates for use within your consortium. This fosters a collaborative environment where templates can be reused and built upon, promoting innovation and efficiency within your network. diff --git a/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/3_add-smart-contract-set.md b/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/3_add-smart-contract-set.md index 1b11e1ae..b25d9214 100644 --- a/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/3_add-smart-contract-set.md +++ b/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/3_add-smart-contract-set.md @@ -1,16 +1,15 @@ --- -title: Add a Smart contract set -description: Add a Smart contract set -sidebar_position: 1 +title: Add a Smart Contract Set +description: Add a Smart Contract Set --- -# Add a Smart contract set +# Add a Smart Contract Set By using smart contracts, you can add **business logic** to your application. Smart contracts are programs that run on the blockchain and define the rules of your use case. They are self-executing with an 'if this, then that' pattern and activate when predefined conditions are met, such as a smart contract that transfers the ownership of a car once a certain amount of money is transferred to the seller's account. -## How to Add a Smart contract set +## How to Add a Smart Contract Set Navigate to the **application** where you want to add the Smart contract set. @@ -40,7 +39,7 @@ Follow these steps to add the Smart contract set: ![Enter name and user](../../../../../static/img/smart-contract-sets/enter-name-user.png) -7. Choose a **Deployment Plan**. Select the type, cloud provider, region, and resource pack. [More about deployment plans](/docs/launch-platform/managed-cloud-deployment/13_deployment-plans.md). +7. Choose a **Deployment Plan**. Select the type, cloud provider, region, and resource pack. [More about deployment plans](../../../../launch-platform/managed-cloud-deployment/3_deployment-plans.md). 8. Review the resource cost for this smart contract set displayed at the bottom of the form. Click **Confirm** to add the Smart contract set. ![Confirm](../../../../../static/img/smart-contract-sets/confirm.png) diff --git a/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/4_deploying-a-contract.md b/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/4_deploying-a-contract.md index 9f7757fb..4f059234 100644 --- a/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/4_deploying-a-contract.md +++ b/docs/using-platform/15_dev-tools/0_code-studio/1_smart-contract-sets/4_deploying-a-contract.md @@ -1,7 +1,6 @@ --- title: Deploying a smart contract description: Deploying a smart contract -sidebar_position: 3 --- # Deploying a smart contract diff --git a/docs/using-platform/17_personal-access-tokens.md b/docs/using-platform/17_personal-access-tokens.md index 8e9c353b..e0f29cc8 100644 --- a/docs/using-platform/17_personal-access-tokens.md +++ b/docs/using-platform/17_personal-access-tokens.md @@ -1,4 +1,4 @@ -# Personal access tokens +# Personal Access Tokens Personal access tokens (or [Application access tokens](16_application-access-tokens.md)) let you connect your SettleMint services with other apps securely. They represent an individual user, and have the same rights as the user's role in the organization (admin or user). They can be used to connect to all services that the user has access to. diff --git a/docs/using-platform/19_resource-usage.md b/docs/using-platform/19_resource-usage.md index 2f373a87..cd3073a3 100644 --- a/docs/using-platform/19_resource-usage.md +++ b/docs/using-platform/19_resource-usage.md @@ -5,7 +5,7 @@ description: Guide to monitoring resource usage # Resource usage -When you add a service (network, node, smart contract set, etc.), you select the amount of resources to allocate to that service by choosing a small, medium or large [resource pack](../launch-platform/managed-cloud-deployment/13_deployment-plans.md). Resources are the **memory**, **vCPU**, and **disk space** you need to keep your services running. You can see the resources allocated to your services at any time, and follow up on the current resource usage. +When you add a service (network, node, smart contract set, etc.), you select the amount of resources to allocate to that service by choosing a small, medium or large [resource pack](launch-platform/managed-cloud-deployment/3_deployment-plans.md). Resources are the **memory**, **vCPU**, and **disk space** you need to keep your services running. You can see the resources allocated to your services at any time, and follow up on the current resource usage. ## Resource usage metrics diff --git a/docs/using-platform/1_add-a-network-to-an-application.md b/docs/using-platform/1_add-a-network-to-an-application.md index 34d15a7c..a2d8ca12 100644 --- a/docs/using-platform/1_add-a-network-to-an-application.md +++ b/docs/using-platform/1_add-a-network-to-an-application.md @@ -6,7 +6,7 @@ sidebar_position: 2 # Add a network to an application -Before setting up a blockchain network, ensure you have an application in place. You must always [create an application](0_create-an-application.md) first, as this provides the context for organizing networks, nodes, smart contract sets, etc. +Before setting up a blockchain network, ensure you have an application in place. You must always [create an application](0_create-an-application.md) first, as this provides the context for organizing networks, nodes, dev tools, etc. ## Permissioned and public blockchain networks @@ -58,7 +58,7 @@ Note that your network requires at least 1 validating node to be operational. We ::: -3. Choose a **deployment plan**. Select the type, cloud provider, region, and resource pack. [Learn more about deployment plans](../launch-platform/managed-cloud-deployment/13_deployment-plans.md) +3. Choose a **deployment plan**. Select the type, cloud provider, region, and resource pack. [Learn more about deployment plans](launch-platform/managed-cloud-deployment/3_deployment-plans.md) 4. For [Hyperledger Besu](../blockchain-guides/1_Hyperledger-Besu/2_enterprise-ethereum-network-settings.md) and [Hyperledger Fabric](../blockchain-guides/5_Hyperledger-Fabric/2_hyperledger-fabric-network-settings.md) only (optional): **Configure the network settings**. You can keep the default settings or configure them according to your preferences. Note that these settings cannot be changed once your network is deployed. 5. Review the **resource costs** associated with this network displayed at the bottom of the form. Click **Confirm** to add the network to your application. diff --git a/docs/using-platform/3_join-a-network-by-invitation.md b/docs/using-platform/3_join-a-network-by-invitation.md index 12874eb8..a7bc4e65 100644 --- a/docs/using-platform/3_join-a-network-by-invitation.md +++ b/docs/using-platform/3_join-a-network-by-invitation.md @@ -4,7 +4,7 @@ In a permissioned blockchain network (often called a consortium network), partic Follow these steps if you received an invitation to join a blockchain network: -1. [Log in](https://console.settlemint.com/) to SettleMint, or [create an account](../launch-platform/managed-cloud-deployment/2_create-an-account.md). +1. [Log in](https://console.settlemint.com/) to SettleMint, or [create an account](../launch-platform/managed-cloud-deployment/1_create-an-account.md). 2. Navigate to an existing blockchain application, or create a new one. 3. Click **Blockchain network** in the left navigation. 4. Click **Add a blockchain network**. This will open a form. diff --git a/docs/using-platform/4_add-a-node-to-a-network.md b/docs/using-platform/4_add-a-node-to-a-network.md index 8ab4cbac..479d6215 100644 --- a/docs/using-platform/4_add-a-node-to-a-network.md +++ b/docs/using-platform/4_add-a-node-to-a-network.md @@ -7,7 +7,7 @@ description: Guide to adding a Blockchain Node to a Network Once you have deployed a permissioned network or joined a public network, you can add more nodes to it. -When you added a permissioned network or joined a public network, we already deployed 1 node for you as this is the minimum for your network to be operational. Now you can start adding more nodes. The number of nodes needed to keep your permissioned network up and running in case some nodes fail, as well as the type of nodes you need, depends on your network's protocol. +When you added a permissioned network or joined a public network, we already deploy 1 node for you as this is the minimum for your network to be operational. Now you can start adding more nodes. The number of nodes needed to keep your permissioned network up and running in case some nodes fail, and the type of nodes you need, depends on your network's protocol. ## How to add a node @@ -31,7 +31,7 @@ Follow these steps to add the blockchain node: 1. Select to which **blockchain network** you want to add this node, and click **Continue**. 2. Choose a **node name**. Choose a name that is easily recognizable in your dashboards. 3. Only for nodes in permissioned networks: Select what **type of node** you want to add. For more information on the types of nodes, refer to the Nodes sections in the blockchain guides (see the links above). For nodes on a public network, we deploy a full node by default. -4. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans](../launch-platform/managed-cloud-deployment/13_deployment-plans.md) +4. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans](launch-platform/managed-cloud-deployment/3_deployment-plans.md) 5. You see the **resource cost** for this node displayed at the bottom of the form. Click **Confirm** to add the node. The node is now added to the **blockchain node overview** with the status "deploying". When your node is fully deployed, the status will change to "running". This will only take a few minutes. @@ -50,7 +50,7 @@ Click **Manage node** to see available actions. You can only perform these actio :::info Info -Nodes do not autoscale. However, you can scale your deployment if you notice that your node does not have enough resources. [More on deployment plans](../launch-platform/managed-cloud-deployment/13_deployment-plans.md) +Nodes do not autoscale. However, you can scale your deployment if you notice that your node does not have enough resources. [More on deployment plans](launch-platform/managed-cloud-deployment/3_deployment-plans.md) ::: diff --git a/docs/using-platform/7_middleware.md b/docs/using-platform/7_middleware.md index be6c708f..10718012 100644 --- a/docs/using-platform/7_middleware.md +++ b/docs/using-platform/7_middleware.md @@ -15,7 +15,7 @@ Follow these steps to add the middleware: 1. Choose [Graph Middleware](#the-graph-middleware) or [Smart Contract Portal Middleware](#the-smart-contract-portal-middleware) 2. Choose a **Middleware name**. Choose one that will be easily recognizable in your dashboards. 3. Select the **blockchain node** you want to connect to. This is the blockchain node that will be used to index the blockchain data. -4. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans.](../launch-platform/managed-cloud-deployment/13_deployment-plans.md) +4. Choose a **deployment plan**. Select the type, cloud provider, region and resource pack. [More about deployment plans.](launch-platform/managed-cloud-deployment/3_deployment-plans.md) 5. You see the **resource cost** for this middleware displayed at the bottom of the form. Click **Confirm** to add the smart contract set. When the middleware is deployed, click it from the list and start using it. @@ -26,7 +26,7 @@ When the middleware is deployed, click it from the list and start using it. Using the Graph protocol, you can create **subgraphs** that define which blockchain data will be indexed. The middleware will then use these subgraphs to correctly index your smart contracts and expose a developer-friendly and efficient **GraphQL API**, allowing you to query the data you need. -We have some prebuilt subgraph indexing modules included in the smart contract set IDE, and you can build your own modules if you have a custom smart contract set. +We have some prebuilt subgraph indexing modules included in the smart contract set, and you can build your own modules if you have a custom smart contract set. :::warning Warning @@ -114,7 +114,7 @@ Benefits of using the smart contract portal: Before you start, make sure you are running: - An EVM-compatible network (Ethereum, Polygon, Hyperledger Besu, Avalanche, etc.) -- A private key +- A Private Key ::: @@ -289,12 +289,14 @@ Firefly FabConnect is an open-source middleware that lets you interact with your Before you start, make sure you are running: -- A Fabric Network. -- A Fabric smart contract set. +- A Fabric peer node +- A Fabric orderer node ::: -## Manage Identities +For the curl commands below, you will need to replace `your-token` with an access token. You can create an Application Access Token scoped to the middleware, peer and orderer node, or use a Personal Access Token. For more information on how to create an access token, please see our [access token documentation](./16_application-access-tokens.md). + +### Manage Identities Identities on a Fabric network are managed in two steps. First, a CA admin must register users. This is a process in which the CA admin gives an ID and secret to an identity. Then, the user of the identity enrolls the ID and secret pair to get a public/private key pair to sign transactions. @@ -302,8 +304,8 @@ Registering an identity can be done as follows using Firefly FabConnect: ```shell curl --request POST \ - --url https://fireflyfab-7853.gke-europe.settlemint.com/identities \ - --header 'Authorization: Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiYW1icm9pc2UiLCJlbWFpbCI6ImFtYnJvaXNlQHNldHRsZW1pbnQuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20v…' \ + --url https://example.settlemint.com/identities \ + --header 'x-auth: ' \ --header 'Content-Type: application/json' \ --data '{ "type": "client", @@ -315,39 +317,34 @@ curl --request POST \ This request returns the secret associated with name user3: ```shell - { -"name": "user3", -"secret": "fkrTKPOZZYWO" + "name": "user3", + "secret": "fkrTKPOZZYWO" } - ``` The end user of that identity can enroll it as follows: ```shell - curl --request POST \ - --url \ - --header 'Authorization: Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiYW1icm9pc2UiLCJlbWFpbCI6ImFtYnJvaXNlQHNldHRsZW1pbnQuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20v…' \ - --header 'Content-Type: application/json' \ - --data '{ + --url https://example.settlemint.com/identities/user3/enroll \ + --header 'x-auth: ' \ + --header 'Content-Type: application/json' \ + --data '{ "secret": "fkrTKPOZZYWO" "attributes": {} }' - ``` -## Sending Transactions +### Sending Transactions Assuming that you have a [chaincode deployed](../blockchain-guides/5_Hyperledger-Fabric/6_hyperledger-fabric-integration-tools.md) on your network, you can send a transaction through the middleware: ```shell - curl --request POST \ - --url \ - --header 'Authorization: Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiYW1icm9pc2UiLCJlbWFpbCI6ImFtYnJvaXNlQHNldHRsZW1pbnQuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20v…' \ - --header 'Content-Type: application/json' --data '{ + --url https://example.settlemint.com//transactions \ + --header 'x-auth: ' \ + --header 'Content-Type: application/json' --data '{ "headers": { "type": "SendTransaction", "signer": "user3", @@ -360,24 +357,22 @@ curl --request POST \ ], "init": false, "fly-sync": true }' - ``` This transaction creates an asset in the assetTransfer chaincode deployed on the Fabric network. -## Create Event Streams +### Create Event Streams Firefly FabConnect can also be used to stream events happening on your network. You can either use webhook or websocket to deliver the data. This request create a stream using webhooks: ```shell - curl --request POST \ - --url \ - --header 'Authorization: Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiYW1icm9pc2UiLCJlbWFpbCI6ImFtYnJvaXNlQHNldHRsZW1pbnQuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20v…' \ - --header 'Content-Type: application/json' \ - --data '{ + --url https://example.settlemint.com/eventstreams \ + --header 'x-auth: ' \ + --header 'Content-Type: application/json' \ + --data '{ "type": "webhook", "name": "AssetTransfer", "webhook": { @@ -385,18 +380,16 @@ curl --request POST \ "tlsSkipVerifyHost": "true" } }' - ``` The response contains an event stream ID that is required to create a subscription: ```shell - curl --request POST \ - --url \ - --header 'Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiYW1icm9pc2UiLCJlbWFpbCI6ImFtYnJvaXNlQHNldHRsZW1pbnQuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20v…' \ - --header 'Content-Type: application/json' \ - --data '{ + --url https://example.settlemint.com//subscriptions \ + --header 'x-auth: ' \ + --header 'Content-Type: application/json' \ + --data '{ "payloadType": "string", "name": "mySubscription", "channel": "default-channel", @@ -409,5 +402,4 @@ curl --request POST \ "eventFilter": "" } }' - ``` diff --git a/docs/using-platform/8_integration-studio.md b/docs/using-platform/8_integration-studio.md index 5d4a7859..16422156 100644 --- a/docs/using-platform/8_integration-studio.md +++ b/docs/using-platform/8_integration-studio.md @@ -28,7 +28,7 @@ Follow these steps to add the Integration Studio: 1. Select **Integration Studio** and click **Continue** to proceed. 2. Choose a **name** for your Integration Studio. Choose one that will be easily recognizable in your dashboards (eg. Crowdsale Flow) -3. Choose a deployment plan. Select the type, cloud provider, region and resource pack. [More about deployment plans](../launch-platform/managed-cloud-deployment/13_deployment-plans.md) +3. Choose a deployment plan. Select the type, cloud provider, region and resource pack. [More about deployment plans](launch-platform/managed-cloud-deployment/3_deployment-plans.md) 4. You can see the **resource cost** for the Integration Studio displayed at the bottom of the form. Click **Confirm** to add the Integration Studio. ## Using the Integration Studio diff --git a/docs/using-platform/9_hasura-backend-as-a-service.md b/docs/using-platform/9_hasura-backend-as-a-service.md index b67022cd..16992a8e 100644 --- a/docs/using-platform/9_hasura-backend-as-a-service.md +++ b/docs/using-platform/9_hasura-backend-as-a-service.md @@ -10,7 +10,7 @@ Follow these steps to add the Hasura: 1. Select **Hasura**, and click **Continue**. 2. Choose a **name** for your own backend-as-a-service. Choose one that will be easily recognizable in your dashboards. -3. Choose a deployment plan. Select the type, cloud provider, region and resource pack. [More about deployment plans](../launch-platform/managed-cloud-deployment/13_deployment-plans.md). +3. Choose a deployment plan. Select the type, cloud provider, region and resource pack. [More about deployment plans](launch-platform/managed-cloud-deployment/3_deployment-plans.md). 4. You see the **resource cost** for your backend-as-a-service displayed at the bottom of the form. Click **Confirm** to add it. When Hasura is deployed, you can build and manage your database in the **Interface tab**. diff --git a/package.json b/package.json index b5094ce4..00ee53e3 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@docusaurus/module-type-aliases": "3.7.0", "@docusaurus/tsconfig": "3.7.0", "@docusaurus/types": "3.7.0", + "graphql-request": "7.1.2", "typescript": "5.7.3" }, "browserslist": { diff --git a/smart-contract-templates.ts b/smart-contract-templates.ts new file mode 100644 index 00000000..07f2d410 --- /dev/null +++ b/smart-contract-templates.ts @@ -0,0 +1,62 @@ +import { gql, GraphQLClient } from 'graphql-request'; +type SmartContractTemplate = { + id: string; + name: string; + featureflagged: boolean; +}; + +type SmartContractTemplateResult = { + config: { + smartContractSets: { + id: string; + sets: SmartContractTemplate[]; + }; + }; +}; +const GRAPHQL_ENDPOINT = 'https://console.settlemint.com/api/graphql'; + +const query = gql` + query platformConfig { + config { + smartContractSets { + id + sets { + id + name + featureflagged + __typename + } + __typename + } + __typename + } + } +`; + +async function generateMarkdownTemplates() { + const client = new GraphQLClient(GRAPHQL_ENDPOINT); + + try { + const response = await client.request(query); + + // Generate markdown for each set + const markdownStrings = response.config.smartContractSets.sets + .filter(set => !set.featureflagged) // Optional: skip feature flagged items + .map( + set => ` +- [${set.name}](https://github.com/settlemint/${set.id}) +` + ) + .join('\n'); + + console.log('Generated Markdown:'); + console.log(markdownStrings); + return markdownStrings; + } catch (error) { + console.error('Error generating markdown:', error); + throw error; + } +} + +// Call the function +generateMarkdownTemplates(); diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 65c3e604..caed0ad3 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -19,7 +19,7 @@ function HomepageHeader() { diff --git a/static/img/about-settlemint/sign-up.png b/static/img/about-settlemint/sign-up.png index 37b73ce7..71f08634 100644 Binary files a/static/img/about-settlemint/sign-up.png and b/static/img/about-settlemint/sign-up.png differ diff --git a/static/img/developer-guides/access-token.png b/static/img/developer-guides/access-token.png new file mode 100644 index 00000000..3045d76b Binary files /dev/null and b/static/img/developer-guides/access-token.png differ diff --git a/static/img/developer-guides/api-keys.png b/static/img/developer-guides/api-keys.png deleted file mode 100644 index 61a39dd6..00000000 Binary files a/static/img/developer-guides/api-keys.png and /dev/null differ diff --git a/static/img/developer-guides/asset-tokenization/access-token-node-storage.png b/static/img/developer-guides/asset-tokenization/access-token-node-storage.png new file mode 100644 index 00000000..30da9ce2 Binary files /dev/null and b/static/img/developer-guides/asset-tokenization/access-token-node-storage.png differ diff --git a/static/img/developer-guides/asset-tokenization/create-api-key.png b/static/img/developer-guides/asset-tokenization/create-api-key.png deleted file mode 100644 index 6d9628f7..00000000 Binary files a/static/img/developer-guides/asset-tokenization/create-api-key.png and /dev/null differ diff --git a/static/img/developer-guides/asset-tokenization/create-empty-smart-contract.png b/static/img/developer-guides/asset-tokenization/create-empty-smart-contract.png new file mode 100644 index 00000000..2d8a6c56 Binary files /dev/null and b/static/img/developer-guides/asset-tokenization/create-empty-smart-contract.png differ diff --git a/static/img/developer-guides/asset-tokenization/create-smart-contract.gif b/static/img/developer-guides/asset-tokenization/create-smart-contract.gif deleted file mode 100644 index fc38b9c4..00000000 Binary files a/static/img/developer-guides/asset-tokenization/create-smart-contract.gif and /dev/null differ diff --git a/static/img/developer-guides/connect-frontend-erc20-template.png b/static/img/developer-guides/connect-frontend-erc20-template.png new file mode 100644 index 00000000..018717ec Binary files /dev/null and b/static/img/developer-guides/connect-frontend-erc20-template.png differ