├── .gitignore ├── sway-store ├── sway-programs │ ├── .gitignore │ ├── Forc.toml │ ├── script │ │ ├── src │ │ │ └── main.sw │ │ └── Forc.toml │ ├── contract │ │ ├── Forc.toml │ │ ├── build.rs │ │ ├── Cargo.toml │ │ ├── src │ │ │ ├── docs_hub_misc.sw │ │ │ └── main.sw │ │ ├── tests │ │ │ └── harness.rs │ │ └── Cargo.lock │ ├── predicate │ │ ├── Forc.toml │ │ └── src │ │ │ └── main.sw │ └── Forc.lock ├── src │ ├── vite-env.d.ts │ ├── sway-api │ │ ├── contract-ids.json │ │ ├── index.ts │ │ ├── scripts │ │ │ ├── index.ts │ │ │ └── TestScript.ts │ │ ├── predicates │ │ │ ├── index.ts │ │ │ └── TestPredicate.ts │ │ └── contracts │ │ │ ├── index.ts │ │ │ ├── common.d.ts │ │ │ ├── TestContract.ts │ │ │ └── TestContractFactory.ts │ ├── index.css │ ├── hooks │ │ ├── useRouter.ts │ │ └── useNotification.tsx │ ├── main.tsx │ ├── App.css │ ├── lib.tsx │ ├── components │ │ ├── ItemCard.tsx │ │ ├── AllItems.tsx │ │ └── ListItem.tsx │ └── App.tsx ├── tsconfig.node.tsbuildinfo ├── vercel.json ├── public │ ├── favicon.ico │ └── logo_white.png ├── .env.example ├── postcss.config.js ├── fuel-toolchain.toml ├── tsconfig.json ├── vitest.config.mts ├── tsconfig.app.tsbuildinfo ├── vite.config.ts ├── index.html ├── tsconfig.node.json ├── fuels.config.ts ├── .gitignore ├── tsconfig.app.json ├── eslint.config.js ├── README.md ├── tailwind.config.js ├── playwright.config.ts └── package.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /sway-store/sway-programs/.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | target -------------------------------------------------------------------------------- /sway-store/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /sway-store/tsconfig.node.tsbuildinfo: -------------------------------------------------------------------------------- 1 | {"root":["./vite.config.ts"],"version":"5.6.2"} -------------------------------------------------------------------------------- /sway-store/src/sway-api/contract-ids.json: -------------------------------------------------------------------------------- 1 | { 2 | "testContract": "dummy-contract-id" 3 | } 4 | -------------------------------------------------------------------------------- /sway-store/sway-programs/Forc.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = [ "contract", "predicate", "script" ] 3 | -------------------------------------------------------------------------------- /sway-store/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "rewrites": [{ "source": "/:path*", "destination": "/index.html" }] 3 | } 4 | -------------------------------------------------------------------------------- /sway-store/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FuelLabs/intro-to-sway/HEAD/sway-store/public/favicon.ico -------------------------------------------------------------------------------- /sway-store/.env.example: -------------------------------------------------------------------------------- 1 | VITE_FUEL_NODE_PORT=4000 2 | VITE_DAPP_ENVIRONMENT=local 3 | VITE_GENESIS_WALLET_PRIVATE_KEY=0x01 -------------------------------------------------------------------------------- /sway-store/public/logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FuelLabs/intro-to-sway/HEAD/sway-store/public/logo_white.png -------------------------------------------------------------------------------- /sway-store/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /sway-store/src/sway-api/index.ts: -------------------------------------------------------------------------------- 1 | export * from './contracts'; 2 | export * from './scripts'; 3 | export * from './predicates'; 4 | -------------------------------------------------------------------------------- /sway-store/fuel-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "testnet" 3 | 4 | [components] 5 | forc = "0.66.1" 6 | fuel-core = "0.40.0" 7 | -------------------------------------------------------------------------------- /sway-store/sway-programs/script/src/main.sw: -------------------------------------------------------------------------------- 1 | script; 2 | 3 | // This script simply returns the input value. 4 | fn main(input: u64) -> u64 { 5 | return input; 6 | } 7 | -------------------------------------------------------------------------------- /sway-store/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { "path": "./tsconfig.app.json" }, 5 | { "path": "./tsconfig.node.json" } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /sway-store/sway-programs/contract/Forc.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | authors = ["Fuel Labs "] 3 | entry = "main.sw" 4 | license = "Apache-2.0" 5 | name = "test-contract" 6 | 7 | [dependencies] 8 | -------------------------------------------------------------------------------- /sway-store/sway-programs/script/Forc.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | authors = ["Fuel Labs "] 3 | entry = "main.sw" 4 | license = "Apache-2.0" 5 | name = "test-script" 6 | 7 | [dependencies] 8 | -------------------------------------------------------------------------------- /sway-store/sway-programs/predicate/Forc.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | authors = ["Fuel Labs "] 3 | entry = "main.sw" 4 | license = "Apache-2.0" 5 | name = "test-predicate" 6 | 7 | [dependencies] 8 | -------------------------------------------------------------------------------- /sway-store/vitest.config.mts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vitest/config"; 2 | 3 | export default defineConfig({ 4 | esbuild: { target: "es2022" }, 5 | test: { 6 | exclude: ["**/test/ui/**"], 7 | }, 8 | }); 9 | -------------------------------------------------------------------------------- /sway-store/sway-programs/contract/build.rs: -------------------------------------------------------------------------------- 1 | //! This build script is used to compile the sway project using `forc` prior to running tests. 2 | 3 | use std::process::Command; 4 | 5 | fn main() { 6 | Command::new("forc").args(&["build"]).status().unwrap(); 7 | } 8 | -------------------------------------------------------------------------------- /sway-store/tsconfig.app.tsbuildinfo: -------------------------------------------------------------------------------- 1 | {"root":["./src/app.tsx","./src/lib.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/allitems.tsx","./src/components/itemcard.tsx","./src/components/listitem.tsx","./src/hooks/usenotification.tsx","./src/hooks/userouter.ts"],"version":"5.6.2"} -------------------------------------------------------------------------------- /sway-store/sway-programs/predicate/src/main.sw: -------------------------------------------------------------------------------- 1 | predicate; 2 | 3 | /// This predicate checks if the given password is 1337. 4 | /// If it is, the predicate is 'unlocked' and the transaction is allowed to proceed. 5 | /// Otherwise, it is reverted. 6 | fn main(password: u64) -> bool { 7 | return password == 1337; 8 | } 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Intro to Sway for JS Devs 2 | 3 | If you know JavaScript, you can quickly learn to build full-stack dapps, or decentralized applications, on Fuel with Sway. Once you learn some Sway fundamentals, you'll be ready to start building your own dapp. 4 | 5 | Checkout the full guide here: 6 | https://docs.fuel.network/guides/intro-to-sway/ -------------------------------------------------------------------------------- /sway-store/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig, loadEnv } from 'vite'; 2 | import react from '@vitejs/plugin-react'; 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig(({ mode }) => { 6 | const env = loadEnv(mode, process.cwd(), ''); 7 | return { 8 | define: { 9 | 'process.env': env, 10 | }, 11 | plugins: [react()], 12 | }; 13 | }); 14 | -------------------------------------------------------------------------------- /sway-store/src/sway-api/scripts/index.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* eslint-disable max-classes-per-file */ 4 | /* eslint-disable @typescript-eslint/no-unused-vars */ 5 | /* eslint-disable @typescript-eslint/consistent-type-imports */ 6 | 7 | /* 8 | Fuels version: 0.94.8 9 | Forc version: 0.64.0 10 | Fuel-Core version: 0.37.0 11 | */ 12 | 13 | export { TestScript } from './TestScript'; 14 | -------------------------------------------------------------------------------- /sway-store/src/sway-api/predicates/index.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* eslint-disable max-classes-per-file */ 4 | /* eslint-disable @typescript-eslint/no-unused-vars */ 5 | /* eslint-disable @typescript-eslint/consistent-type-imports */ 6 | 7 | /* 8 | Fuels version: 0.94.8 9 | Forc version: 0.64.0 10 | Fuel-Core version: 0.37.0 11 | */ 12 | 13 | export { TestPredicate } from './TestPredicate'; 14 | -------------------------------------------------------------------------------- /sway-store/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Fuel dApp 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /sway-store/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /sway-store/src/sway-api/contracts/index.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* eslint-disable max-classes-per-file */ 4 | /* eslint-disable @typescript-eslint/no-unused-vars */ 5 | /* eslint-disable @typescript-eslint/consistent-type-imports */ 6 | 7 | /* 8 | Fuels version: 0.94.8 9 | Forc version: 0.64.0 10 | Fuel-Core version: 0.37.0 11 | */ 12 | 13 | export { TestContract } from './TestContract'; 14 | export { TestContractFactory } from './TestContractFactory'; 15 | -------------------------------------------------------------------------------- /sway-store/sway-programs/Forc.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "core" 3 | source = "path+from-root-9C8BBF4FF32C2CC9" 4 | 5 | [[package]] 6 | name = "std" 7 | source = "git+https://github.com/fuellabs/sway?tag=v0.66.1#d5662c6bd0e5519446aa1b3ebb6af703025accec" 8 | dependencies = ["core"] 9 | 10 | [[package]] 11 | name = "test-contract" 12 | source = "member" 13 | dependencies = ["std"] 14 | 15 | [[package]] 16 | name = "test-predicate" 17 | source = "member" 18 | dependencies = ["std"] 19 | 20 | [[package]] 21 | name = "test-script" 22 | source = "member" 23 | dependencies = ["std"] 24 | -------------------------------------------------------------------------------- /sway-store/sway-programs/contract/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "sway-store" 3 | description = "A cargo-generate template for Rust + Sway integration testing." 4 | version = "0.1.0" 5 | edition = "2021" 6 | authors = ["Call Delegation <106365423+calldelegation@users.noreply.github.com>"] 7 | license = "Apache-2.0" 8 | 9 | [dev-dependencies] 10 | fuels = "0.66.9" 11 | fuel-core-client = { version = "0.40", default-features = false } 12 | tokio = { version = "1.12", features = ["rt", "macros"] } 13 | 14 | [[test]] 15 | harness = true 16 | name = "integration_tests" 17 | path = "tests/harness.rs" 18 | -------------------------------------------------------------------------------- /sway-store/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "lib": ["ES2023"], 5 | "module": "ESNext", 6 | "skipLibCheck": true, 7 | 8 | /* Bundler mode */ 9 | "moduleResolution": "bundler", 10 | "allowImportingTsExtensions": true, 11 | "isolatedModules": true, 12 | "moduleDetection": "force", 13 | "noEmit": true, 14 | 15 | /* Linting */ 16 | "strict": true, 17 | "noUnusedLocals": true, 18 | "noUnusedParameters": true, 19 | "noFallthroughCasesInSwitch": true 20 | }, 21 | "include": ["vite.config.ts"] 22 | } 23 | -------------------------------------------------------------------------------- /sway-store/fuels.config.ts: -------------------------------------------------------------------------------- 1 | import { createConfig } from 'fuels'; 2 | import dotenv from 'dotenv'; 3 | import { providerUrl } from './src/lib'; 4 | 5 | dotenv.config({ 6 | path: ['.env.local', '.env'], 7 | }); 8 | 9 | // If your node is running on a port other than 4000, you can set it here 10 | const fuelCorePort = +(process.env.VITE_FUEL_NODE_PORT as string) || 4000; 11 | 12 | export default createConfig({ 13 | workspace: './sway-programs', // Path to your Sway workspace 14 | output: './src/sway-api', // Where your generated types will be saved 15 | fuelCorePort, 16 | providerUrl, 17 | }); 18 | -------------------------------------------------------------------------------- /sway-store/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | .fuels 27 | 28 | sway-programs/**/out 29 | .turbo 30 | 31 | test-results 32 | playwright-report 33 | 34 | # Uncomment the lines below if you don't wish 35 | # to commit the generated files to git 36 | 37 | # src/sway-api/contracts 38 | # src/sway-api/predicates 39 | # src/sway-api/scripts 40 | # src/sway-api/index.ts -------------------------------------------------------------------------------- /sway-store/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "isolatedModules": true, 13 | "moduleDetection": "force", 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": false, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true 22 | }, 23 | "include": ["src", "test"], 24 | "exclude": ["src/sway-api"] 25 | } 26 | -------------------------------------------------------------------------------- /sway-store/eslint.config.js: -------------------------------------------------------------------------------- 1 | import js from '@eslint/js'; 2 | import reactHooks from 'eslint-plugin-react-hooks'; 3 | import reactRefresh from 'eslint-plugin-react-refresh'; 4 | import globals from 'globals'; 5 | import tseslint from 'typescript-eslint'; 6 | 7 | export default tseslint.config({ 8 | extends: [js.configs.recommended, ...tseslint.configs.recommended], 9 | files: ['**/*.{ts,tsx}'], 10 | ignores: ['dist'], 11 | languageOptions: { 12 | ecmaVersion: 2020, 13 | globals: globals.browser, 14 | }, 15 | plugins: { 16 | 'react-hooks': reactHooks, 17 | 'react-refresh': reactRefresh, 18 | }, 19 | rules: { 20 | ...reactHooks.configs.recommended.rules, 21 | 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }], 22 | }, 23 | }); 24 | -------------------------------------------------------------------------------- /sway-store/README.md: -------------------------------------------------------------------------------- 1 | This is a [Vite](https://vitejs.dev/) project bootstrapped with [`create-fuels`](https://github.com/FuelLabs/fuels-ts/tree/master/packages/create-fuels). 2 | 3 | ## Getting Started 4 | 5 | 1. Start the Fuel development server. This server will start a local Fuel node and provide hot-reloading for your smart contracts. 6 | 7 | ```bash 8 | pnpm fuels:dev 9 | ``` 10 | 11 | 2. Start the Next.js development server. 12 | 13 | ```bash 14 | pnpm dev 15 | ``` 16 | 17 | ## Deploying to Testnet 18 | 19 | To learn how to deploy your Fuel dApp to the testnet, you can follow our [Deploying to Testnet](https://docs.fuel.network/docs/fuels-ts/creating-a-fuel-dapp/deploying-a-dapp-to-testnet/) guide. 20 | 21 | ## Learn More 22 | 23 | - [Fuel TS SDK docs](https://docs.fuel.network/docs/fuels-ts/) 24 | - [Fuel Docs Portal](https://docs.fuel.network/) 25 | -------------------------------------------------------------------------------- /sway-store/sway-programs/contract/src/docs_hub_misc.sw: -------------------------------------------------------------------------------- 1 | /* ANCHOR: all */ 2 | // ANCHOR: import_single 3 | use std::auth::msg_sender; 4 | // ANCHOR_END: import_single 5 | 6 | // ANCHOR: import_multi 7 | use std::{ 8 | auth::msg_sender, 9 | storage::StorageVec, 10 | } 11 | // ANCHOR_END: import_multi 12 | 13 | // ANCHOR: contract_skeleton 14 | impl SwayStore for Contract { 15 | #[storage(read, write)] 16 | fn list_item(price: u64, metadata: str[20]){ 17 | 18 | } 19 | 20 | #[storage(read, write), payable] 21 | fn buy_item(item_id: u64) { 22 | 23 | } 24 | 25 | #[storage(read)] 26 | fn get_item(item_id: u64) -> Item { 27 | 28 | } 29 | 30 | #[storage(read, write)] 31 | fn initialize_owner() -> Identity { 32 | 33 | } 34 | 35 | #[storage(read)] 36 | fn withdraw_funds(){ 37 | 38 | } 39 | 40 | #[storage(read)] 41 | fn get_count() -> u64{ 42 | 43 | } 44 | } 45 | // ANCHOR_END: contract_skeleton 46 | /* ANCHOR_END: all */ 47 | -------------------------------------------------------------------------------- /sway-store/src/hooks/useRouter.ts: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from 'react'; 2 | 3 | /** 4 | * Hook for basic route and view management 5 | */ 6 | export const useRouter = () => { 7 | const views = ['wallet', 'contract', 'predicate', 'script', 'faucet']; 8 | const [view, setView] = useState('wallet'); 9 | const queryParam = 'v'; 10 | 11 | const getViewFromUrl = () => { 12 | const url = new URL(window.location.href); 13 | return url.searchParams.get(queryParam); 14 | }; 15 | 16 | const setRoute = (newView: string) => { 17 | const url = new URL(window.location.href); 18 | url.searchParams.set(queryParam, newView); 19 | window.history.pushState({}, '', url); 20 | setView(newView); 21 | }; 22 | 23 | useEffect(() => { 24 | const viewFromUrl = getViewFromUrl(); 25 | if (viewFromUrl) { 26 | setView(viewFromUrl); 27 | } 28 | }, []); 29 | 30 | return { 31 | view, 32 | views, 33 | setRoute, 34 | }; 35 | }; 36 | -------------------------------------------------------------------------------- /sway-store/src/sway-api/contracts/common.d.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* eslint-disable max-classes-per-file */ 4 | /* eslint-disable @typescript-eslint/no-unused-vars */ 5 | /* eslint-disable @typescript-eslint/consistent-type-imports */ 6 | 7 | /* 8 | Fuels version: 0.94.8 9 | Forc version: 0.64.0 10 | Fuel-Core version: 0.37.0 11 | */ 12 | 13 | /** 14 | * Mimics Sway Enum. 15 | * Requires one and only one Key-Value pair and raises error if more are provided. 16 | */ 17 | export type Enum = { 18 | [K in keyof T]: Pick & { [P in Exclude]?: never }; 19 | }[keyof T]; 20 | 21 | /** 22 | * Mimics Sway Option and Vectors. 23 | * Vectors are treated like arrays in Typescript. 24 | */ 25 | export type Option = T | undefined; 26 | 27 | export type Vec = T[]; 28 | 29 | /** 30 | * Mimics Sway Result enum type. 31 | * Ok represents the success case, while Err represents the error case. 32 | */ 33 | export type Result = Enum<{Ok: T, Err: E}>; 34 | -------------------------------------------------------------------------------- /sway-store/src/main.tsx: -------------------------------------------------------------------------------- 1 | import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; 2 | import { defaultConnectors } from "@fuels/connectors"; 3 | import { FuelProvider } from "@fuels/react"; 4 | import { StrictMode } from "react"; 5 | import { createRoot } from "react-dom/client"; 6 | import { ToastContainer } from "react-toastify"; 7 | import { Provider } from "fuels"; 8 | 9 | import App from "./App.tsx"; 10 | import { providerUrl } from "./lib.tsx"; 11 | 12 | import "react-toastify/dist/ReactToastify.css"; 13 | import "./index.css"; 14 | 15 | const queryClient = new QueryClient(); 16 | 17 | const connectors = defaultConnectors({ 18 | devMode: true, 19 | burnerWalletConfig: { fuelProvider: Provider.create(providerUrl) }, 20 | }); 21 | 22 | createRoot(document.getElementById("root")!).render( 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | , 31 | ); 32 | -------------------------------------------------------------------------------- /sway-store/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ['./index.html', './src/**/*.{js,jsx,ts,tsx}'], 4 | theme: { 5 | fontFamily: { 6 | sans: ['Segoe UI', 'Roboto', 'sans-serif'], 7 | mono: ['monospace'], 8 | }, 9 | extend: { 10 | keyframes: { 11 | hide: { 12 | from: { opacity: '1' }, 13 | to: { opacity: '0' }, 14 | }, 15 | slideIn: { 16 | from: { 17 | transform: 'translateX(calc(100% + var(--viewport-padding)))', 18 | }, 19 | to: { transform: 'translateX(0)' }, 20 | }, 21 | swipeOut: { 22 | from: { transform: 'translateX(var(--radix-toast-swipe-end-x))' }, 23 | to: { transform: 'translateX(calc(100% + var(--viewport-padding)))' }, 24 | }, 25 | }, 26 | animation: { 27 | hide: 'hide 100ms ease-in', 28 | slideIn: 'slideIn 150ms cubic-bezier(0.16, 1, 0.3, 1)', 29 | swipeOut: 'swipeOut 100ms ease-out', 30 | }, 31 | }, 32 | }, 33 | plugins: [], 34 | }; 35 | -------------------------------------------------------------------------------- /sway-store/playwright.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig, devices } from '@playwright/test'; 2 | 3 | /** 4 | * See https://playwright.dev/docs/test-configuration. 5 | */ 6 | export default defineConfig({ 7 | testDir: './test/ui', 8 | /* Run tests in files in parallel */ 9 | fullyParallel: true, 10 | /* Fail the build on CI if you accidentally left test.only in the source code. */ 11 | forbidOnly: !!process.env.CI, 12 | /* Retry on CI only */ 13 | retries: process.env.CI ? 2 : 0, 14 | /* Opt out of parallel tests on CI. */ 15 | workers: process.env.CI ? 1 : undefined, 16 | /* Reporter to use. See https://playwright.dev/docs/test-reporters */ 17 | reporter: [['html', { open: 'never' }]], 18 | /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ 19 | use: { 20 | /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ 21 | trace: 'on-first-retry', 22 | }, 23 | timeout: 60000, 24 | projects: [ 25 | { 26 | name: 'chromium', 27 | use: { ...devices['Desktop Chrome'] }, 28 | }, 29 | ], 30 | webServer: [ 31 | { 32 | command: 'pnpm run dev', 33 | port: 5173, 34 | reuseExistingServer: !process.env.CI, 35 | }, 36 | { 37 | command: 'pnpm run fuels:dev', 38 | port: 4000, 39 | reuseExistingServer: !process.env.CI, 40 | }, 41 | ], 42 | }); 43 | -------------------------------------------------------------------------------- /sway-store/src/App.css: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_css */ 2 | .App { 3 | text-align: center; 4 | } 5 | 6 | nav > ul { 7 | list-style-type: none; 8 | display: flex; 9 | justify-content: center; 10 | gap: 1rem; 11 | padding-inline-start: 0; 12 | } 13 | 14 | nav > ul > li { 15 | cursor: pointer; 16 | } 17 | 18 | .form-control{ 19 | text-align: left; 20 | font-size: 18px; 21 | display: flex; 22 | flex-direction: column; 23 | margin: 0 auto; 24 | max-width: 400px; 25 | } 26 | 27 | .form-control > input { 28 | margin-bottom: 1rem; 29 | } 30 | 31 | .form-control > button { 32 | cursor: pointer; 33 | background: #054a9f; 34 | color: white; 35 | border: none; 36 | border-radius: 8px; 37 | padding: 10px 0; 38 | font-size: 20px; 39 | } 40 | 41 | .items-container{ 42 | display: flex; 43 | flex-wrap: wrap; 44 | justify-content: center; 45 | gap: 2rem; 46 | margin: 1rem 0; 47 | } 48 | 49 | .item-card{ 50 | box-shadow: 0px 0px 10px 2px rgba(0, 0, 0, 0.2); 51 | border-radius: 8px; 52 | max-width: 300px; 53 | padding: 1rem; 54 | display: flex; 55 | flex-direction: column; 56 | gap: 4px; 57 | } 58 | 59 | .active-tab{ 60 | border-bottom: 4px solid #77b6d8; 61 | } 62 | 63 | button { 64 | cursor: pointer; 65 | background: #054a9f; 66 | border: none; 67 | border-radius: 12px; 68 | padding: 10px 20px; 69 | margin-top: 20px; 70 | font-size: 20px; 71 | color: white; 72 | } 73 | /* ANCHOR_END: fe_css */ 74 | -------------------------------------------------------------------------------- /sway-store/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "template-vite", 3 | "private": true, 4 | "version": "0.0.1", 5 | "type": "module", 6 | "scripts": { 7 | "prebuild": "fuels build", 8 | "dev": "vite", 9 | "build": "pnpm prebuild && tsc -b && vite build", 10 | "lint": "eslint .", 11 | "fuels:dev": "fuels dev", 12 | "test": "vitest", 13 | "test:ui": "./test/ui/test-ui.sh" 14 | }, 15 | "dependencies": { 16 | "@fuels/connectors": "^0.27.1", 17 | "@fuels/react": "^0.27.1", 18 | "@tanstack/react-query": "^5.55.4", 19 | "clsx": "2.1.1", 20 | "@wagmi/connectors": "^5.1.14", 21 | "@wagmi/core": "^2.13.8", 22 | "dotenv": "^16.4.5", 23 | "fuels": "0.96.1", 24 | "react": "^18.3.1", 25 | "react-dom": "^18.3.1", 26 | "react-toastify": "^10.0.5" 27 | }, 28 | "devDependencies": { 29 | "@vitejs/plugin-react": "^4.3.1", 30 | "@eslint/js": "^9.10.0", 31 | "@tanstack/router-plugin": "^1.58.12", 32 | "@playwright/test": "^1.47.2", 33 | "@types/react": "^18.3.10", 34 | "@types/react-dom": "^18.3", 35 | "autoprefixer": "^10.4.20", 36 | "eslint": "^8.57.0", 37 | "eslint-plugin-react-hooks": "^4.6.2", 38 | "eslint-plugin-react-refresh": "^0.4.12", 39 | "globals": "^15.9.0", 40 | "postcss": "^8.4.47", 41 | "tailwindcss": "^3.4.12", 42 | "typescript": "~5.6.2", 43 | "typescript-eslint": "^8.5.0", 44 | "vite": "^5.4.8", 45 | "vitest": "~2.0.5" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /sway-store/src/lib.tsx: -------------------------------------------------------------------------------- 1 | import { BN } from "fuels"; 2 | import contractIds from "./sway-api/contract-ids.json"; 3 | 4 | export const environments = { LOCAL: "local", TESTNET: "testnet" }; 5 | export const environment = 6 | process.env.VITE_DAPP_ENVIRONMENT || environments.LOCAL; 7 | export const isLocal = environment === environments.LOCAL; 8 | export const isTestnet = environment === environments.TESTNET; 9 | 10 | export const localProviderUrl = `http://127.0.0.1:${process.env.VITE_FUEL_NODE_PORT || 4000}/v1/graphql`; 11 | export const testnetProviderUrl = "https://testnet.fuel.network/v1/graphql"; 12 | export const providerUrl = isLocal ? localProviderUrl : testnetProviderUrl; 13 | export const playgroundUrl = providerUrl.replace("v1/graphql", "v1/playground"); 14 | 15 | export const localContractId = contractIds.testContract; 16 | export const testnetContractId = process.env.VITE_TESTNET_CONTRACT_ID as string; 17 | export const contractId = isLocal ? localContractId : testnetContractId; 18 | 19 | export const testnetFaucetUrl = "https://faucet-testnet.fuel.network/"; 20 | 21 | export const renderTransactionId = (transactionId: string) => { 22 | if (isLocal) { 23 | return transactionId; 24 | } 25 | 26 | return ( 27 | 33 | {transactionId} 34 | 35 | ); 36 | }; 37 | 38 | export const renderFormattedBalance = (balance: BN) => { 39 | return balance.format({ precision: 4 }); 40 | }; 41 | -------------------------------------------------------------------------------- /sway-store/src/hooks/useNotification.tsx: -------------------------------------------------------------------------------- 1 | import { ReactNode, useRef } from "react"; 2 | 3 | import { toast, Id, TypeOptions } from "react-toastify"; 4 | import { renderTransactionId } from "../lib.tsx"; 5 | 6 | /** 7 | * Hook to handle app notifications 8 | */ 9 | export const useNotification = () => { 10 | const notification = useRef(null); 11 | 12 | const onClose = () => { 13 | notification.current = null; 14 | }; 15 | 16 | const showNotification = (render: string | ReactNode, type: TypeOptions) => { 17 | if (notification.current) { 18 | toast.update(notification.current, { render, type, onClose }); 19 | } else { 20 | notification.current = 21 | type === "default" 22 | ? toast.info(render, { onClose }) 23 | : toast[type](render, { onClose }); 24 | } 25 | }; 26 | 27 | return { 28 | infoNotification: (render: string | ReactNode) => 29 | showNotification(render, "info"), 30 | successNotification: (render: string | ReactNode) => 31 | showNotification(render, "success"), 32 | errorNotification: (render: string | ReactNode) => 33 | showNotification(render, "error"), 34 | transactionSubmitNotification: (transactionId: string) => 35 | showNotification( 36 | 37 | Transaction submitted: {renderTransactionId(transactionId)} 38 | , 39 | "info", 40 | ), 41 | transactionSuccessNotification: (transactionId: string) => 42 | showNotification( 43 | 44 | Transaction successful: {renderTransactionId(transactionId)} 45 | , 46 | "success", 47 | ), 48 | }; 49 | }; 50 | -------------------------------------------------------------------------------- /sway-store/src/components/ItemCard.tsx: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_item_card_all */ 2 | // ANCHOR: fe_item_card_template 3 | import { useState } from "react"; 4 | import { ItemOutput } from "../sway-api/contracts/TestContract"; 5 | import { TestContract } from "../sway-api"; 6 | import { BN } from 'fuels'; 7 | 8 | interface ItemCardProps { 9 | contract: TestContract | null; 10 | item: ItemOutput; 11 | } 12 | 13 | export default function ItemCard({ item, contract }: ItemCardProps) { 14 | // ANCHOR_END: fe_item_card_template 15 | // ANCHOR: fe_item_card_status 16 | const [status, setStatus] = useState<'success' | 'error' | 'loading' | 'none'>('none'); 17 | // ANCHOR_END: fe_item_card_status 18 | // ANCHOR: fe_item_card_buy_item 19 | async function handleBuyItem() { 20 | if (contract !== null) { 21 | setStatus('loading') 22 | try { 23 | const baseAssetId = contract.provider.getBaseAssetId(); 24 | await contract.functions.buy_item(item.id) 25 | .txParams({ 26 | variableOutputs: 1, 27 | }) 28 | .callParams({ 29 | forward: [item.price, baseAssetId], 30 | }) 31 | .call() 32 | setStatus("success"); 33 | } catch (e) { 34 | console.log("ERROR:", e); 35 | setStatus("error"); 36 | } 37 | } 38 | } 39 | // ANCHOR_END: fe_item_card_buy_item 40 | // ANCHOR: fe_item_cards 41 | return ( 42 |
43 |
Id: {new BN(item.id).toNumber()}
44 |
Metadata: {item.metadata}
45 |
Price: {new BN(item.price).formatUnits()} ETH
46 |

Total Bought: {new BN(item.total_bought).toNumber()}

47 | {status === 'success' &&
Purchased ✅
} 48 | {status === 'error' &&
Something went wrong ❌
} 49 | {status === 'none' && } 50 | {status === 'loading' &&
Buying item..
} 51 |
52 | ); 53 | } 54 | // ANCHOR_END: fe_item_cards 55 | /* ANCHOR_END: fe_item_card_all */ 56 | -------------------------------------------------------------------------------- /sway-store/src/sway-api/scripts/TestScript.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* eslint-disable max-classes-per-file */ 4 | /* eslint-disable @typescript-eslint/no-unused-vars */ 5 | /* eslint-disable @typescript-eslint/consistent-type-imports */ 6 | 7 | /* 8 | Fuels version: 0.94.8 9 | Forc version: 0.64.0 10 | Fuel-Core version: 0.37.0 11 | */ 12 | 13 | import { 14 | Account, 15 | BigNumberish, 16 | BN, 17 | decompressBytecode, 18 | Script, 19 | } from 'fuels'; 20 | 21 | export type TestScriptInputs = [input: BigNumberish]; 22 | export type TestScriptOutput = BN; 23 | 24 | const abi = { 25 | "programType": "script", 26 | "specVersion": "1", 27 | "encodingVersion": "1", 28 | "concreteTypes": [ 29 | { 30 | "type": "u64", 31 | "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 32 | } 33 | ], 34 | "metadataTypes": [], 35 | "functions": [ 36 | { 37 | "inputs": [ 38 | { 39 | "name": "input", 40 | "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 41 | } 42 | ], 43 | "name": "main", 44 | "output": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0", 45 | "attributes": null 46 | } 47 | ], 48 | "loggedTypes": [], 49 | "messagesTypes": [], 50 | "configurables": [] 51 | }; 52 | 53 | const bytecode = decompressBytecode('H4sIAAAAAAAAA02Sv4sTQRzFX9YVgo2jbiTMeZricmwZsFGvcJbdsFlDcA4DWjhs7CzDInLl/glaqFdaWs6ChaWl5ZWW2wq3YCNErohvNobcNPPmM98fb76M/D3CG8BDu7yFWX/viPUa8lzjPTyhn1b6lcK1vMFj7j73hzquVjq1y2KCbjj2Sz2tFoWizgLw7meRUEcHysT2yEQAcyKnHd9LAiUiX5EdkUWsc0J9nXmv23pRUOq02tWOq7MtZ/wj+QsYrO7jxUXt6Yvap/eXMj5zPVw/VSQ+DhNAJkvoqT3NG3HLMe5Bfo4ePfTD5kCx7w/W7YfpV+f/pNDUWQ/sPWj1eOjy+ztuyy03z60wz+wNk9qbzpvIgrKXDfF2gg79XCXz9o6T8lAD4f5cyfkSIpurPAPcnETEOaW2zht9J2/UPr3f1bEdtX427++2evP+d5d4fYnXPD/Yne1kF2ftlpupva2PheD9Km8G9/QYrjZnm7i4BbX4X+9Lqzd9vm05/YpwFsBEo46ZjTCcAR+AKx+7nDH/iIw/Q6Y15B+e/wqckn/i/ZMVkPJH/QPs/31HYAIAAA=='); 54 | 55 | export class TestScript extends Script { 56 | 57 | static readonly abi = abi; 58 | static readonly bytecode = bytecode; 59 | 60 | constructor(wallet: Account) { 61 | super(bytecode, abi, wallet); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /sway-store/src/App.tsx: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_app_all */ 2 | // ANCHOR: fe_app_template 3 | import { useState, useMemo } from "react"; 4 | // ANCHOR: fe_import_hooks 5 | import { useConnectUI, useIsConnected, useWallet } from "@fuels/react"; 6 | // ANCHOR_END: fe_import_hooks 7 | import { TestContract } from "./sway-api"; 8 | import AllItems from "./components/AllItems.tsx"; 9 | import ListItem from "./components/ListItem.tsx"; 10 | import "./App.css"; 11 | 12 | // ANCHOR: fe_contract_id 13 | const CONTRACT_ID = 14 | "0x797d208d0104131c2ab1f1e09c4914c7aef5b699fb494be864a5c37057076921"; 15 | // ANCHOR_END: fe_contract_id 16 | 17 | function App() { 18 | // ANCHOR_END: fe_app_template 19 | // ANCHOR: fe_state_active 20 | const [active, setActive] = useState<"all-items" | "list-item">("all-items"); 21 | // ANCHOR_END: fe_state_active 22 | // ANCHOR: fe_call_hooks 23 | const { isConnected } = useIsConnected(); 24 | const { connect, isConnecting } = useConnectUI(); 25 | // ANCHOR: fe_wallet 26 | const { wallet } = useWallet(); 27 | // ANCHOR_END: fe_wallet 28 | // ANCHOR_END: fe_call_hooks 29 | 30 | // ANCHOR: fe_use_memo 31 | const contract = useMemo(() => { 32 | if (wallet) { 33 | const contract = new TestContract(CONTRACT_ID, wallet) 34 | return contract; 35 | } 36 | return null; 37 | }, [wallet]); 38 | // ANCHOR_END: fe_use_memo 39 | 40 | return ( 41 |
42 |
43 |

Sway Marketplace

44 |
45 | {/* // ANCHOR: fe_ui_state_active */} 46 | 62 | {/* // ANCHOR: fe_ui_state_active */} 63 | {/* // ANCHOR: fe_fuel_obj */} 64 |
65 | {isConnected ? ( 66 |
67 | {active === "all-items" && } 68 | {active === "list-item" && } 69 |
70 | ) : ( 71 |
72 | 79 |
80 | )} 81 |
82 | {/* // ANCHOR_END: fe_fuel_obj */} 83 |
84 | ); 85 | } 86 | 87 | export default App; 88 | /* ANCHOR_END: fe_app_all */ 89 | -------------------------------------------------------------------------------- /sway-store/src/components/AllItems.tsx: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_all_items_all */ 2 | // ANCHOR: fe_all_items_template 3 | import { useState, useEffect } from "react"; 4 | import { TestContract } from "../sway-api"; 5 | import ItemCard from "./ItemCard"; 6 | import { BN } from "fuels"; 7 | import { ItemOutput } from "../sway-api/contracts/TestContract"; 8 | 9 | interface AllItemsProps { 10 | contract: TestContract | null; 11 | } 12 | 13 | export default function AllItems({ contract }: AllItemsProps) { 14 | // ANCHOR_END: fe_all_items_template 15 | // ANCHOR: fe_all_items_state_variables 16 | const [items, setItems] = useState([]); 17 | const [itemCount, setItemCount] = useState(0); 18 | const [status, setStatus] = useState<"success" | "loading" | "error">( 19 | "loading" 20 | ); 21 | // ANCHOR_END: fe_all_items_state_variables 22 | // ANCHOR: fe_all_items_use_effect 23 | useEffect(() => { 24 | async function getAllItems() { 25 | if (contract !== null) { 26 | try { 27 | let { value } = await contract.functions 28 | .get_count() 29 | .txParams({ 30 | gasLimit: 100_000, 31 | }) 32 | .get(); 33 | let formattedValue = new BN(value).toNumber(); 34 | setItemCount(formattedValue); 35 | let max = formattedValue + 1; 36 | let tempItems = []; 37 | for (let i = 1; i < max; i++) { 38 | let resp = await contract.functions 39 | .get_item(i) 40 | .txParams({ 41 | gasLimit: 100_000, 42 | }) 43 | .get(); 44 | tempItems.push(resp.value); 45 | } 46 | setItems(tempItems); 47 | setStatus("success"); 48 | } catch (e) { 49 | setStatus("error"); 50 | console.log("ERROR:", e); 51 | } 52 | } 53 | } 54 | getAllItems(); 55 | }, [contract]); 56 | // ANCHOR_END: fe_all_items_use_effect 57 | // ANCHOR: fe_all_items_cards 58 | return ( 59 |
60 |

All Items

61 | {status === "success" && ( 62 |
63 | {itemCount === 0 ? ( 64 |
Uh oh! No items have been listed yet
65 | ) : ( 66 |
67 |
Total items: {itemCount}
68 |
69 | {items.map((item) => ( 70 | 75 | ))} 76 |
77 |
78 | )} 79 |
80 | )} 81 | {status === "error" && ( 82 |
Something went wrong, try reloading the page.
83 | )} 84 | {status === "loading" &&
Loading...
} 85 |
86 | ); 87 | } 88 | // ANCHOR_END: fe_all_items_cards 89 | /* ANCHOR_END: fe_all_items_all */ 90 | -------------------------------------------------------------------------------- /sway-store/src/sway-api/predicates/TestPredicate.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* eslint-disable max-classes-per-file */ 4 | /* eslint-disable @typescript-eslint/no-unused-vars */ 5 | /* eslint-disable @typescript-eslint/consistent-type-imports */ 6 | 7 | /* 8 | Fuels version: 0.94.8 9 | Forc version: 0.64.0 10 | Fuel-Core version: 0.37.0 11 | */ 12 | 13 | import { 14 | BigNumberish, 15 | BN, 16 | decompressBytecode, 17 | InputValue, 18 | Predicate, 19 | PredicateParams, 20 | Provider, 21 | } from 'fuels'; 22 | 23 | export type TestPredicateConfigurables = undefined; 24 | 25 | export type TestPredicateInputs = [password: BigNumberish]; 26 | 27 | export type TestPredicateParameters = Omit< 28 | PredicateParams, 29 | 'abi' | 'bytecode' 30 | >; 31 | 32 | const abi = { 33 | "programType": "predicate", 34 | "specVersion": "1", 35 | "encodingVersion": "1", 36 | "concreteTypes": [ 37 | { 38 | "type": "bool", 39 | "concreteTypeId": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903" 40 | }, 41 | { 42 | "type": "u64", 43 | "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 44 | } 45 | ], 46 | "metadataTypes": [], 47 | "functions": [ 48 | { 49 | "inputs": [ 50 | { 51 | "name": "password", 52 | "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 53 | } 54 | ], 55 | "name": "main", 56 | "output": "b760f44fa5965c2474a3b471467a22c43185152129295af588b022ae50b50903", 57 | "attributes": [ 58 | { 59 | "name": "doc-comment", 60 | "arguments": [ 61 | " This predicate checks if the given password is 1337." 62 | ] 63 | }, 64 | { 65 | "name": "doc-comment", 66 | "arguments": [ 67 | " If it is, the predicate is 'unlocked' and the transaction is allowed to proceed." 68 | ] 69 | }, 70 | { 71 | "name": "doc-comment", 72 | "arguments": [ 73 | " Otherwise, it is reverted." 74 | ] 75 | } 76 | ] 77 | } 78 | ], 79 | "loggedTypes": [], 80 | "messagesTypes": [], 81 | "configurables": [] 82 | }; 83 | 84 | const bytecode = decompressBytecode('H4sIAAAAAAAAA01QP0vDQBx9iRGDjTaQDuVcinTIWBBEtwtpSWyWGzsYxc1Rg4hjvoKDf0Y/wg1+AD+CHyGrYMFFaOmQvhy05ODg3fu99+7xE38jPAA2zLGe8vrL8usa4lfhGSjvJXau5/DyTHs30TFUovtXE0DFun8ZAQHvo0SweRdj2EHkSHLWKRPpmdJ/yPkdvX6Rwg0nTsn3wOCoV6pMh/S54YUj2cWlx6PngJpbw88daTSSOPts/h4ZPhpKZp61MmebzDzWnZx9mNNtcKM/Gvekz27kOuS69LrEFn1y2yXRaStPtfL2xQ8wWJxgtqpstaqcZm8i/sZQAi/A3qsLszcRf0AkFYp095y7KMU/+aWPd87fqJsugDV20P+heAEAAA=='); 85 | 86 | export class TestPredicate extends Predicate< 87 | TestPredicateInputs, 88 | TestPredicateConfigurables 89 | > { 90 | static readonly abi = abi; 91 | static readonly bytecode = bytecode; 92 | 93 | constructor(params: TestPredicateParameters) { 94 | super({ abi, bytecode, ...params }); 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /sway-store/src/components/ListItem.tsx: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_list_items_all */ 2 | // ANCHOR: fe_list_items_import 3 | import { useState } from "react"; 4 | import { TestContract } from "../sway-api"; 5 | import { bn } from "fuels"; 6 | // ANCHOR_END: fe_list_items_import 7 | 8 | // ANCHOR: fe_list_items_interface 9 | interface ListItemsProps { 10 | contract: TestContract | null; 11 | } 12 | // ANCHOR_END: fe_list_items_interface 13 | 14 | // ANCHOR: fe_list_items_function 15 | export default function ListItem({contract}: ListItemsProps){ 16 | // ANCHOR_END: fe_list_items_function 17 | // ANCHOR: fe_list_items_state_variables 18 | const [metadata, setMetadata] = useState(""); 19 | const [price, setPrice] = useState("0"); 20 | const [status, setStatus] = useState<'success' | 'error' | 'loading' | 'none'>('none'); 21 | // ANCHOR_END: fe_list_items_state_variables 22 | // ANCHOR: fe_list_items_handle_submit 23 | async function handleSubmit(e: React.FormEvent){ 24 | e.preventDefault(); 25 | setStatus('loading') 26 | if(contract !== null){ 27 | try { 28 | const priceInput = bn.parseUnits(price.toString()); 29 | await contract.functions 30 | .list_item(priceInput, metadata) 31 | .txParams({ 32 | gasLimit: 300_000, 33 | }) 34 | .call(); 35 | setStatus('success') 36 | } catch (e) { 37 | console.log("ERROR:", e); 38 | setStatus('error') 39 | } 40 | } else { 41 | console.log("ERROR: Contract is null"); 42 | } 43 | } 44 | // ANCHOR_END: fe_list_items_handle_submit 45 | // ANCHOR: fe_list_items_form 46 | return ( 47 |
48 |

List an Item

49 | {status === 'none' && 50 |
51 |
52 | 53 | setMetadata(e.target.value)} 60 | /> 61 |
62 | 63 |
64 | 65 | { 74 | setPrice(e.target.value); 75 | }} 76 | /> 77 |
78 | 79 |
80 | 81 |
82 |
83 | } 84 | 85 | {status === 'success' &&
Item successfully listed!
} 86 | {status === 'error' &&
Error listing item. Please try again.
} 87 | {status === 'loading' &&
Listing item...
} 88 | 89 |
90 | ) 91 | } 92 | // ANCHOR_END: fe_list_items_form 93 | /* ANCHOR_END: fe_list_items_all */ 94 | -------------------------------------------------------------------------------- /sway-store/sway-programs/contract/src/main.sw: -------------------------------------------------------------------------------- 1 | /* ANCHOR: all */ 2 | // ANCHOR: contract 3 | contract; 4 | // ANCHOR_END: contract 5 | 6 | // ANCHOR: import 7 | use std::{ 8 | auth::msg_sender, 9 | call_frames::msg_asset_id, 10 | context::{ 11 | msg_amount, 12 | this_balance, 13 | }, 14 | asset::transfer, 15 | hash::Hash, 16 | }; 17 | // ANCHOR_END: import 18 | 19 | // ANCHOR: struct 20 | struct Item { 21 | id: u64, 22 | price: u64, 23 | owner: Identity, 24 | metadata: str[20], 25 | total_bought: u64, 26 | } 27 | // ANCHOR_END: struct 28 | 29 | // ANCHOR: abi 30 | abi SwayStore { 31 | // a function to list an item for sale 32 | // takes the price and metadata as args 33 | #[storage(read, write)] 34 | fn list_item(price: u64, metadata: str[20]); 35 | 36 | // a function to buy an item 37 | // takes the item id as the arg 38 | #[storage(read, write), payable] 39 | fn buy_item(item_id: u64); 40 | 41 | // a function to get a certain item 42 | #[storage(read)] 43 | fn get_item(item_id: u64) -> Item; 44 | 45 | // a function to set the contract owner 46 | #[storage(read, write)] 47 | fn initialize_owner() -> Identity; 48 | 49 | // a function to withdraw contract funds 50 | #[storage(read)] 51 | fn withdraw_funds(); 52 | 53 | // return the number of items listed 54 | #[storage(read)] 55 | fn get_count() -> u64; 56 | } 57 | // ANCHOR_END: abi 58 | 59 | // ANCHOR: storage 60 | storage { 61 | // counter for total items listed 62 | item_counter: u64 = 0, 63 | 64 | // ANCHOR: storage_map 65 | // map of item IDs to Items 66 | item_map: StorageMap = StorageMap {}, 67 | // ANCHOR_END: storage_map 68 | 69 | // ANCHOR: storage_option 70 | // owner of the contract 71 | owner: Option = Option::None, 72 | // ANCHOR_END: storage_option 73 | } 74 | // ANCHOR_END: storage 75 | 76 | // ANCHOR: error_handling 77 | enum InvalidError { 78 | IncorrectAssetId: AssetId, 79 | NotEnoughTokens: u64, 80 | OnlyOwner: Identity, 81 | } 82 | // ANCHOR_END: error_handling 83 | 84 | impl SwayStore for Contract { 85 | // ANCHOR: list_item_parent 86 | #[storage(read, write)] 87 | fn list_item(price: u64, metadata: str[20]) { 88 | 89 | // ANCHOR: list_item_increment 90 | // increment the item counter 91 | storage.item_counter.write(storage.item_counter.try_read().unwrap() + 1); 92 | // ANCHOR_END: list_item_increment 93 | 94 | // ANCHOR: list_item_sender 95 | // get the message sender 96 | let sender = msg_sender().unwrap(); 97 | // ANCHOR_END: list_item_sender 98 | 99 | // ANCHOR: list_item_new_item 100 | // configure the item 101 | let new_item: Item = Item { 102 | id: storage.item_counter.try_read().unwrap(), 103 | price: price, 104 | owner: sender, 105 | metadata: metadata, 106 | total_bought: 0, 107 | }; 108 | // ANCHOR_END: list_item_new_item 109 | 110 | // ANCHOR: list_item_insert 111 | // save the new item to storage using the counter value 112 | storage.item_map.insert(storage.item_counter.try_read().unwrap(), new_item); 113 | // ANCHOR_END: list_item_insert 114 | } 115 | // ANCHOR_END: list_item_parent 116 | 117 | // ANCHOR: buy_item_parent 118 | #[storage(read, write), payable] 119 | fn buy_item(item_id: u64) { 120 | // get the asset id for the asset sent 121 | // ANCHOR: buy_item_asset 122 | let asset_id = msg_asset_id(); 123 | // ANCHOR_END: buy_item_asset 124 | 125 | // require that the correct asset was sent 126 | // ANCHOR: buy_item_require_not_base 127 | require(asset_id == AssetId::base(), InvalidError::IncorrectAssetId(asset_id)); 128 | // ANCHOR_END: buy_item_require_not_base 129 | 130 | // get the amount of coins sent 131 | // ANCHOR: buy_item_msg_amount 132 | let amount = msg_amount(); 133 | // ANCHOR_END: buy_item_msg_amount 134 | 135 | // get the item to buy 136 | // ANCHOR: buy_item_get_item 137 | let mut item = storage.item_map.get(item_id).try_read().unwrap(); 138 | // ANCHOR_END: buy_item_get_item 139 | 140 | // require that the amount is at least the price of the item 141 | // ANCHOR: buy_item_require_ge_amount 142 | require(amount >= item.price, InvalidError::NotEnoughTokens(amount)); 143 | // ANCHOR_END: buy_item_require_ge_amount 144 | 145 | // ANCHOR: buy_item_require_update_storage 146 | // update the total amount bought 147 | item.total_bought += 1; 148 | 149 | // update the item in the storage map 150 | storage.item_map.insert(item_id, item); 151 | // ANCHOR_END: buy_item_require_update_storage 152 | 153 | // ANCHOR: buy_item_require_transferring_payment 154 | // only charge commission if price is more than 0.1 ETH 155 | if amount > 100_000_000 { 156 | // keep a 5% commission 157 | let commission = amount / 20; 158 | let new_amount = amount - commission; 159 | // send the payout minus commission to the seller 160 | transfer(item.owner, asset_id, new_amount); 161 | } else { 162 | // send the full payout to the seller 163 | transfer(item.owner, asset_id, amount); 164 | } 165 | // ANCHOR_END: buy_item_require_transferring_payment 166 | } 167 | // ANCHOR_END: buy_item_parent 168 | 169 | // ANCHOR: get_item 170 | #[storage(read)] 171 | fn get_item(item_id: u64) -> Item { 172 | // returns the item for the given item_id 173 | return storage.item_map.get(item_id).try_read().unwrap(); 174 | } 175 | // ANCHOR_END: get_item 176 | 177 | // ANCHOR: initialize_owner_parent 178 | #[storage(read, write)] 179 | fn initialize_owner() -> Identity { 180 | // ANCHOR: initialize_owner_get_owner 181 | let owner = storage.owner.try_read().unwrap(); 182 | 183 | // make sure the owner has NOT already been initialized 184 | require(owner.is_none(), "owner already initialized"); 185 | // ANCHOR_END: initialize_owner_get_owner 186 | 187 | // ANCHOR: initialize_owner_set_owner 188 | // get the identity of the sender 189 | let sender = msg_sender().unwrap(); 190 | 191 | // set the owner to the sender's identity 192 | storage.owner.write(Option::Some(sender)); 193 | // ANCHOR_END: initialize_owner_set_owner 194 | 195 | // ANCHOR: initialize_owner_return_owner 196 | // return the owner 197 | return sender; 198 | // ANCHOR_END: initialize_owner_return_owner 199 | } 200 | // ANCHOR_END: initialize_owner_parent 201 | 202 | // ANCHOR: withdraw_funds_parent 203 | #[storage(read)] 204 | fn withdraw_funds() { 205 | // ANCHOR: withdraw_funds_set_owner 206 | let owner = storage.owner.try_read().unwrap(); 207 | 208 | // make sure the owner has been initialized 209 | require(owner.is_some(), "owner not initialized"); 210 | // ANCHOR_END: withdraw_funds_set_owner 211 | 212 | // ANCHOR: withdraw_funds_require_owner 213 | let sender = msg_sender().unwrap(); 214 | 215 | // require the sender to be the owner 216 | require(sender == owner.unwrap(), InvalidError::OnlyOwner(sender)); 217 | // ANCHOR_END: withdraw_funds_require_owner 218 | 219 | // ANCHOR: withdraw_funds_require_base_asset 220 | // get the current balance of this contract for the base asset 221 | let amount = this_balance(AssetId::base()); 222 | 223 | // require the contract balance to be more than 0 224 | require(amount > 0, InvalidError::NotEnoughTokens(amount)); 225 | // ANCHOR_END: withdraw_funds_require_base_asset 226 | 227 | // ANCHOR: withdraw_funds_transfer_owner 228 | // send the amount to the owner 229 | transfer(owner.unwrap(), AssetId::base(), amount); 230 | // ANCHOR_END: withdraw_funds_transfer_owner 231 | } 232 | // ANCHOR_END: withdraw_funds_parent 233 | 234 | // ANCHOR: get_count_parent 235 | #[storage(read)] 236 | fn get_count() -> u64 { 237 | return storage.item_counter.try_read().unwrap(); 238 | } 239 | // ANCHOR_END: get_count_parent 240 | } 241 | /* ANCHOR_END: all */ 242 | -------------------------------------------------------------------------------- /sway-store/src/sway-api/contracts/TestContract.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* eslint-disable max-classes-per-file */ 4 | /* eslint-disable @typescript-eslint/no-unused-vars */ 5 | /* eslint-disable @typescript-eslint/consistent-type-imports */ 6 | 7 | /* 8 | Fuels version: 0.94.8 9 | Forc version: 0.64.0 10 | Fuel-Core version: 0.37.0 11 | */ 12 | 13 | import { Contract, Interface } from "fuels"; 14 | import type { 15 | Provider, 16 | Account, 17 | StorageSlot, 18 | AbstractAddress, 19 | BigNumberish, 20 | BN, 21 | FunctionFragment, 22 | InvokeFunction, 23 | StrSlice, 24 | } from 'fuels'; 25 | 26 | import type { Enum } from "./common"; 27 | 28 | export type IdentityInput = Enum<{ Address: AddressInput, ContractId: ContractIdInput }>; 29 | export type IdentityOutput = Enum<{ Address: AddressOutput, ContractId: ContractIdOutput }>; 30 | export type InvalidErrorInput = Enum<{ IncorrectAssetId: AssetIdInput, NotEnoughTokens: BigNumberish, OnlyOwner: IdentityInput }>; 31 | export type InvalidErrorOutput = Enum<{ IncorrectAssetId: AssetIdOutput, NotEnoughTokens: BN, OnlyOwner: IdentityOutput }>; 32 | 33 | export type AddressInput = { bits: string }; 34 | export type AddressOutput = AddressInput; 35 | export type AssetIdInput = { bits: string }; 36 | export type AssetIdOutput = AssetIdInput; 37 | export type ContractIdInput = { bits: string }; 38 | export type ContractIdOutput = ContractIdInput; 39 | export type ItemInput = { id: BigNumberish, price: BigNumberish, owner: IdentityInput, metadata: string, total_bought: BigNumberish }; 40 | export type ItemOutput = { id: BN, price: BN, owner: IdentityOutput, metadata: string, total_bought: BN }; 41 | 42 | const abi = { 43 | "programType": "contract", 44 | "specVersion": "1", 45 | "encodingVersion": "1", 46 | "concreteTypes": [ 47 | { 48 | "type": "()", 49 | "concreteTypeId": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d" 50 | }, 51 | { 52 | "type": "enum InvalidError", 53 | "concreteTypeId": "85a139d61290013fdfeb54e57606f4b698f12e78570c66e08fc4dd1edf1cd265", 54 | "metadataTypeId": 1 55 | }, 56 | { 57 | "type": "enum std::identity::Identity", 58 | "concreteTypeId": "ab7cd04e05be58e3fc15d424c2c4a57f824a2a2d97d67252440a3925ebdc1335", 59 | "metadataTypeId": 2 60 | }, 61 | { 62 | "type": "str", 63 | "concreteTypeId": "8c25cb3686462e9a86d2883c5688a22fe738b0bbc85f458d2d2b5f3f667c6d5a" 64 | }, 65 | { 66 | "type": "str[20]", 67 | "concreteTypeId": "a98e4767c3ecda3eceabd3dc3445ae9df6165338dacb16336ca4d23df0bc3fec" 68 | }, 69 | { 70 | "type": "struct Item", 71 | "concreteTypeId": "bf8e1c08dc4f13e8c17d64e919065a2eb1dc42b5f3cce2e40c5aebc3680e86b6", 72 | "metadataTypeId": 3 73 | }, 74 | { 75 | "type": "u64", 76 | "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 77 | } 78 | ], 79 | "metadataTypes": [ 80 | { 81 | "type": "b256", 82 | "metadataTypeId": 0 83 | }, 84 | { 85 | "type": "enum InvalidError", 86 | "metadataTypeId": 1, 87 | "components": [ 88 | { 89 | "name": "IncorrectAssetId", 90 | "typeId": 5 91 | }, 92 | { 93 | "name": "NotEnoughTokens", 94 | "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 95 | }, 96 | { 97 | "name": "OnlyOwner", 98 | "typeId": 2 99 | } 100 | ] 101 | }, 102 | { 103 | "type": "enum std::identity::Identity", 104 | "metadataTypeId": 2, 105 | "components": [ 106 | { 107 | "name": "Address", 108 | "typeId": 4 109 | }, 110 | { 111 | "name": "ContractId", 112 | "typeId": 6 113 | } 114 | ] 115 | }, 116 | { 117 | "type": "struct Item", 118 | "metadataTypeId": 3, 119 | "components": [ 120 | { 121 | "name": "id", 122 | "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 123 | }, 124 | { 125 | "name": "price", 126 | "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 127 | }, 128 | { 129 | "name": "owner", 130 | "typeId": 2 131 | }, 132 | { 133 | "name": "metadata", 134 | "typeId": "a98e4767c3ecda3eceabd3dc3445ae9df6165338dacb16336ca4d23df0bc3fec" 135 | }, 136 | { 137 | "name": "total_bought", 138 | "typeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 139 | } 140 | ] 141 | }, 142 | { 143 | "type": "struct std::address::Address", 144 | "metadataTypeId": 4, 145 | "components": [ 146 | { 147 | "name": "bits", 148 | "typeId": 0 149 | } 150 | ] 151 | }, 152 | { 153 | "type": "struct std::asset_id::AssetId", 154 | "metadataTypeId": 5, 155 | "components": [ 156 | { 157 | "name": "bits", 158 | "typeId": 0 159 | } 160 | ] 161 | }, 162 | { 163 | "type": "struct std::contract_id::ContractId", 164 | "metadataTypeId": 6, 165 | "components": [ 166 | { 167 | "name": "bits", 168 | "typeId": 0 169 | } 170 | ] 171 | } 172 | ], 173 | "functions": [ 174 | { 175 | "inputs": [ 176 | { 177 | "name": "item_id", 178 | "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 179 | } 180 | ], 181 | "name": "buy_item", 182 | "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", 183 | "attributes": [ 184 | { 185 | "name": "storage", 186 | "arguments": [ 187 | "read", 188 | "write" 189 | ] 190 | }, 191 | { 192 | "name": "payable", 193 | "arguments": [] 194 | } 195 | ] 196 | }, 197 | { 198 | "inputs": [], 199 | "name": "get_count", 200 | "output": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0", 201 | "attributes": [ 202 | { 203 | "name": "storage", 204 | "arguments": [ 205 | "read" 206 | ] 207 | } 208 | ] 209 | }, 210 | { 211 | "inputs": [ 212 | { 213 | "name": "item_id", 214 | "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 215 | } 216 | ], 217 | "name": "get_item", 218 | "output": "bf8e1c08dc4f13e8c17d64e919065a2eb1dc42b5f3cce2e40c5aebc3680e86b6", 219 | "attributes": [ 220 | { 221 | "name": "storage", 222 | "arguments": [ 223 | "read" 224 | ] 225 | } 226 | ] 227 | }, 228 | { 229 | "inputs": [], 230 | "name": "initialize_owner", 231 | "output": "ab7cd04e05be58e3fc15d424c2c4a57f824a2a2d97d67252440a3925ebdc1335", 232 | "attributes": [ 233 | { 234 | "name": "storage", 235 | "arguments": [ 236 | "read", 237 | "write" 238 | ] 239 | } 240 | ] 241 | }, 242 | { 243 | "inputs": [ 244 | { 245 | "name": "price", 246 | "concreteTypeId": "1506e6f44c1d6291cdf46395a8e573276a4fa79e8ace3fc891e092ef32d1b0a0" 247 | }, 248 | { 249 | "name": "metadata", 250 | "concreteTypeId": "a98e4767c3ecda3eceabd3dc3445ae9df6165338dacb16336ca4d23df0bc3fec" 251 | } 252 | ], 253 | "name": "list_item", 254 | "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", 255 | "attributes": [ 256 | { 257 | "name": "storage", 258 | "arguments": [ 259 | "read", 260 | "write" 261 | ] 262 | } 263 | ] 264 | }, 265 | { 266 | "inputs": [], 267 | "name": "withdraw_funds", 268 | "output": "2e38e77b22c314a449e91fafed92a43826ac6aa403ae6a8acb6cf58239fbaf5d", 269 | "attributes": [ 270 | { 271 | "name": "storage", 272 | "arguments": [ 273 | "read" 274 | ] 275 | } 276 | ] 277 | } 278 | ], 279 | "loggedTypes": [ 280 | { 281 | "logId": "9629041069892043071", 282 | "concreteTypeId": "85a139d61290013fdfeb54e57606f4b698f12e78570c66e08fc4dd1edf1cd265" 283 | }, 284 | { 285 | "logId": "10098701174489624218", 286 | "concreteTypeId": "8c25cb3686462e9a86d2883c5688a22fe738b0bbc85f458d2d2b5f3f667c6d5a" 287 | } 288 | ], 289 | "messagesTypes": [], 290 | "configurables": [] 291 | }; 292 | 293 | const storageSlots: StorageSlot[] = [ 294 | { 295 | "key": "0b1f6bd52ed4a44a28beeca29e5322bd0972c0b3263eeaba255eda108bff0ba5", 296 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 297 | }, 298 | { 299 | "key": "1d63cc2495bbf5570c9a6d7f632018dc033107e7f4452405c44601bb771a4a5d", 300 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 301 | }, 302 | { 303 | "key": "1d63cc2495bbf5570c9a6d7f632018dc033107e7f4452405c44601bb771a4a5e", 304 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 305 | } 306 | ]; 307 | 308 | export class TestContractInterface extends Interface { 309 | constructor() { 310 | super(abi); 311 | } 312 | 313 | declare functions: { 314 | buy_item: FunctionFragment; 315 | get_count: FunctionFragment; 316 | get_item: FunctionFragment; 317 | initialize_owner: FunctionFragment; 318 | list_item: FunctionFragment; 319 | withdraw_funds: FunctionFragment; 320 | }; 321 | } 322 | 323 | export class TestContract extends Contract { 324 | static readonly abi = abi; 325 | static readonly storageSlots = storageSlots; 326 | 327 | declare interface: TestContractInterface; 328 | declare functions: { 329 | buy_item: InvokeFunction<[item_id: BigNumberish], void>; 330 | get_count: InvokeFunction<[], BN>; 331 | get_item: InvokeFunction<[item_id: BigNumberish], ItemOutput>; 332 | initialize_owner: InvokeFunction<[], IdentityOutput>; 333 | list_item: InvokeFunction<[price: BigNumberish, metadata: string], void>; 334 | withdraw_funds: InvokeFunction<[], void>; 335 | }; 336 | 337 | constructor( 338 | id: string | AbstractAddress, 339 | accountOrProvider: Account | Provider, 340 | ) { 341 | super(id, abi, accountOrProvider); 342 | } 343 | } 344 | -------------------------------------------------------------------------------- /sway-store/sway-programs/contract/tests/harness.rs: -------------------------------------------------------------------------------- 1 | // ANCHOR: rs_import 2 | use fuels::{ 3 | prelude::*, 4 | client::FuelClient, 5 | types::{ 6 | Bytes32, 7 | Identity, 8 | SizedAsciiString 9 | } 10 | }; 11 | use fuel_core_client::client::types::TransactionStatus; 12 | // ANCHOR_END: rs_import 13 | 14 | // ANCHOR: rs_abi 15 | // Load abi from json 16 | abigen!(Contract(name="SwayStore", abi="out/debug/test-contract-abi.json")); 17 | // ANCHOR_END: rs_abi 18 | 19 | // ANCHOR: rs_contract_instance_parent 20 | async fn get_contract_instance() -> (SwayStore, ContractId, Vec) { 21 | // Launch a local network and deploy the contract 22 | let wallets = launch_custom_provider_and_get_wallets( 23 | WalletsConfig::new( 24 | Some(3), /* Three wallets */ 25 | Some(1), /* Single coin (UTXO) */ 26 | Some(1_000_000_000), /* Amount per coin */ 27 | ), 28 | None, 29 | None, 30 | ) 31 | .await 32 | .unwrap(); 33 | 34 | let wallet = wallets.get(0).unwrap().clone(); 35 | 36 | // ANCHOR: rs_contract_instance_config 37 | let id = Contract::load_from( 38 | "./out/debug/test-contract.bin", 39 | LoadConfiguration::default(), 40 | ) 41 | .unwrap() 42 | .deploy(&wallet, TxPolicies::default()) 43 | .await 44 | .unwrap(); 45 | // ANCHOR_END: rs_contract_instance_config 46 | 47 | let instance = SwayStore::new(id.clone(), wallet); 48 | 49 | (instance, id.into(), wallets) 50 | } 51 | 52 | // ANCHOR: rs_get_tx_fee_helper 53 | async fn get_tx_fee(client: &FuelClient, tx_id: &Bytes32) -> u64 { 54 | match client.transaction_status(tx_id).await.unwrap() { 55 | TransactionStatus::Success { total_fee, .. } 56 | | TransactionStatus::Failure { total_fee, .. } => total_fee, 57 | _ => 0, 58 | } 59 | } 60 | // ANCHOR_END: rs_get_tx_fee_helper 61 | // ANCHOR_END: rs_contract_instance_parent 62 | 63 | // ANCHOR: rs_test_set_owner 64 | #[tokio::test] 65 | async fn can_set_owner() { 66 | let (instance, _id, wallets) = get_contract_instance().await; 67 | 68 | // get access to a test wallet 69 | let wallet_1 = wallets.get(0).unwrap(); 70 | 71 | // initialize wallet_1 as the owner 72 | let owner_result = instance 73 | .with_account(wallet_1.clone()) 74 | .methods() 75 | .initialize_owner() 76 | .call() 77 | .await 78 | .unwrap(); 79 | 80 | // make sure the returned identity matches wallet_1 81 | assert!(Identity::Address(wallet_1.address().into()) == owner_result.value); 82 | } 83 | // ANCHOR_END: rs_test_set_owner 84 | 85 | // ANCHOR: rs_test_set_owner_once 86 | #[tokio::test] 87 | #[should_panic] 88 | async fn can_set_owner_only_once() { 89 | let (instance, _id, wallets) = get_contract_instance().await; 90 | 91 | // get access to some test wallets 92 | let wallet_1 = wallets.get(0).unwrap(); 93 | let wallet_2 = wallets.get(1).unwrap(); 94 | 95 | // initialize wallet_1 as the owner 96 | let _owner_result = instance.clone() 97 | .with_account(wallet_1.clone()) 98 | .methods() 99 | .initialize_owner() 100 | .call() 101 | .await 102 | .unwrap(); 103 | 104 | // this should fail 105 | // try to set the owner from wallet_2 106 | let _fail_owner_result = instance.clone() 107 | .with_account(wallet_2.clone()) 108 | .methods() 109 | .initialize_owner() 110 | .call() 111 | .await 112 | .unwrap(); 113 | } 114 | // ANCHOR_END: rs_test_set_owner_once 115 | 116 | // ANCHOR: rs_test_list_and_buy_item 117 | #[tokio::test] 118 | async fn can_list_and_buy_item() { 119 | let (instance, _id, wallets) = get_contract_instance().await; 120 | // Now you have an instance of your contract you can use to test each function 121 | 122 | // get access to some test wallets 123 | let wallet_1 = wallets.get(0).unwrap(); 124 | let mut total_wallet_1_fees = 0; 125 | let wallet_1_starting_balance: u64 = wallet_1 126 | .get_asset_balance(&AssetId::zeroed()) 127 | .await 128 | .unwrap(); 129 | 130 | let wallet_2 = wallets.get(1).unwrap(); 131 | let mut total_wallet_2_fees = 0; 132 | let wallet_2_starting_balance: u64 = wallet_2 133 | .get_asset_balance(&AssetId::zeroed()) 134 | .await 135 | .unwrap(); 136 | 137 | let provider = wallet_1.provider().unwrap().clone(); 138 | let client = FuelClient::new(provider.url()).unwrap(); 139 | 140 | // item 1 params 141 | let item_1_metadata: SizedAsciiString<20> = "metadata__url__here_" 142 | .try_into() 143 | .expect("Should have succeeded"); 144 | let item_1_price: u64 = 15; 145 | 146 | // list item 1 from wallet_1 147 | let response = instance 148 | .clone() 149 | .with_account(wallet_1.clone()) 150 | .methods() 151 | .list_item(item_1_price, item_1_metadata) 152 | .call() 153 | .await 154 | .unwrap(); 155 | let tx = response.tx_id.unwrap(); 156 | total_wallet_1_fees += get_tx_fee(&client, &tx).await; 157 | 158 | // call params to send the project price in the buy_item fn 159 | let call_params = CallParameters::default().with_amount(item_1_price); 160 | 161 | // buy item 1 from wallet_2 162 | let response = instance 163 | .clone() 164 | .with_account(wallet_2.clone()) 165 | .methods() 166 | .buy_item(1) 167 | .with_variable_output_policy(VariableOutputPolicy::Exactly(1)) 168 | .call_params(call_params) 169 | .unwrap() 170 | .call() 171 | .await 172 | .unwrap(); 173 | total_wallet_2_fees += get_tx_fee(&client, &response.tx_id.unwrap()).await; 174 | 175 | // check the balances of wallet_1 and wallet_2 176 | let wallet_1_balance: u64 = wallet_1 177 | .get_asset_balance(&AssetId::zeroed()) 178 | .await 179 | .unwrap(); 180 | let wallet_2_balance: u64 = wallet_2 181 | .get_asset_balance(&AssetId::zeroed()) 182 | .await 183 | .unwrap(); 184 | 185 | // make sure the price was transferred from wallet_2 to 186 | assert_eq!( 187 | wallet_1_balance, 188 | wallet_1_starting_balance - total_wallet_1_fees + item_1_price 189 | ); 190 | assert_eq!( 191 | wallet_2_balance, 192 | wallet_2_starting_balance - total_wallet_2_fees - item_1_price 193 | ); 194 | 195 | let item_1 = instance.methods().get_item(1).call().await.unwrap(); 196 | 197 | assert!(item_1.value.price == item_1_price); 198 | assert!(item_1.value.id == 1); 199 | assert!(item_1.value.total_bought == 1); 200 | } 201 | // ANCHOR_END: rs_test_list_and_buy_item 202 | 203 | // ANCHOR: rs_test_withdraw_funds 204 | #[tokio::test] 205 | async fn can_withdraw_funds() { 206 | let (instance, _id, wallets) = get_contract_instance().await; 207 | // Now you have an instance of your contract you can use to test each function 208 | 209 | // get access to some test wallets 210 | let wallet_1 = wallets.get(0).unwrap(); 211 | let mut total_wallet_1_fees = 0; 212 | let wallet_1_starting_balance: u64 = wallet_1 213 | .get_asset_balance(&AssetId::zeroed()) 214 | .await 215 | .unwrap(); 216 | 217 | let wallet_2 = wallets.get(1).unwrap(); 218 | let mut total_wallet_2_fees = 0; 219 | let wallet_2_starting_balance: u64 = wallet_2 220 | .get_asset_balance(&AssetId::zeroed()) 221 | .await 222 | .unwrap(); 223 | 224 | let wallet_3 = wallets.get(2).unwrap(); 225 | let mut total_wallet_3_fees = 0; 226 | let wallet_3_starting_balance: u64 = wallet_3 227 | .get_asset_balance(&AssetId::zeroed()) 228 | .await 229 | .unwrap(); 230 | 231 | let provider = wallet_1.provider().unwrap().clone(); 232 | let client = FuelClient::new(provider.url()).unwrap(); 233 | 234 | // initialize wallet_1 as the owner 235 | let response = instance 236 | .clone() 237 | .with_account(wallet_1.clone()) 238 | .methods() 239 | .initialize_owner() 240 | .call() 241 | .await 242 | .unwrap(); 243 | let tx = response.tx_id.unwrap(); 244 | total_wallet_1_fees += get_tx_fee(&client, &tx).await; 245 | 246 | // make sure the returned identity matches wallet_1 247 | assert!(Identity::Address(wallet_1.address().into()) == response.value); 248 | 249 | // item 1 params 250 | let item_1_metadata: SizedAsciiString<20> = "metadata__url__here_" 251 | .try_into() 252 | .expect("Should have succeeded"); 253 | let item_1_price: u64 = 150_000_000; 254 | 255 | // list item 1 from wallet_2 256 | let response = instance 257 | .clone() 258 | .with_account(wallet_2.clone()) 259 | .methods() 260 | .list_item(item_1_price, item_1_metadata) 261 | .call() 262 | .await; 263 | assert!(response.is_ok()); 264 | total_wallet_2_fees += get_tx_fee(&client, &response.unwrap().tx_id.unwrap()).await; 265 | 266 | // make sure the item count increased 267 | let count = instance.clone() 268 | .methods() 269 | .get_count() 270 | .simulate(Execution::default()) 271 | .await 272 | .unwrap(); 273 | assert_eq!(count.value, 1); 274 | 275 | // call params to send the project price in the buy_item fn 276 | let call_params = CallParameters::default().with_amount(item_1_price); 277 | 278 | // buy item 1 from wallet_3 279 | let response = instance.clone() 280 | .with_account(wallet_3.clone()) 281 | .methods() 282 | .buy_item(1) 283 | .with_variable_output_policy(VariableOutputPolicy::Exactly(1)) 284 | .call_params(call_params) 285 | .unwrap() 286 | .call() 287 | .await; 288 | assert!(response.is_ok()); 289 | total_wallet_3_fees += get_tx_fee(&client, &response.unwrap().tx_id.unwrap()).await; 290 | 291 | // make sure the item's total_bought count increased 292 | let listed_item = instance 293 | .methods() 294 | .get_item(1) 295 | .simulate(Execution::default()) 296 | .await 297 | .unwrap(); 298 | assert_eq!(listed_item.value.total_bought, 1); 299 | 300 | // withdraw the balance from the owner's wallet 301 | let response = instance 302 | .with_account(wallet_1.clone()) 303 | .methods() 304 | .withdraw_funds() 305 | .with_variable_output_policy(VariableOutputPolicy::Exactly(1)) 306 | .call() 307 | .await; 308 | assert!(response.is_ok()); 309 | total_wallet_1_fees += get_tx_fee(&client, &response.unwrap().tx_id.unwrap()).await; 310 | 311 | 312 | // check the balances of wallet_1 and wallet_2 313 | let balance_1: u64 = wallet_1.get_asset_balance(&AssetId::zeroed()).await.unwrap(); 314 | let balance_2: u64 = wallet_2.get_asset_balance(&AssetId::zeroed()).await.unwrap(); 315 | let balance_3: u64 = wallet_3.get_asset_balance(&AssetId::zeroed()).await.unwrap(); 316 | 317 | assert!(balance_1 == wallet_1_starting_balance - total_wallet_1_fees + (item_1_price / 20)); // 5% commission 318 | assert!(balance_2 == wallet_2_starting_balance - total_wallet_2_fees + item_1_price - ((item_1_price / 20))); // sell price - 5% commission 319 | assert!(balance_3 == wallet_3_starting_balance - total_wallet_3_fees - item_1_price); 320 | } 321 | // ANCHOR_END: rs_test_withdraw_funds 322 | -------------------------------------------------------------------------------- /sway-store/src/sway-api/contracts/TestContractFactory.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* eslint-disable max-classes-per-file */ 4 | /* eslint-disable @typescript-eslint/no-unused-vars */ 5 | /* eslint-disable @typescript-eslint/consistent-type-imports */ 6 | 7 | /* 8 | Fuels version: 0.94.8 9 | Forc version: 0.64.0 10 | Fuel-Core version: 0.37.0 11 | */ 12 | 13 | import { Contract, ContractFactory, decompressBytecode } from "fuels"; 14 | import type { Provider, Account, DeployContractOptions, DeployContractResult } from "fuels"; 15 | 16 | import { TestContract } from "./TestContract"; 17 | 18 | const bytecode = decompressBytecode("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"); 19 | 20 | export class TestContractFactory extends ContractFactory { 21 | 22 | static readonly bytecode = bytecode; 23 | 24 | constructor(accountOrProvider: Account | Provider) { 25 | super(bytecode, TestContract.abi, accountOrProvider); 26 | } 27 | 28 | deploy( 29 | deployOptions?: DeployContractOptions 30 | ): Promise> { 31 | return super.deploy({ 32 | storageSlots: TestContract.storageSlots, 33 | ...deployOptions, 34 | }); 35 | } 36 | 37 | static async deploy ( 38 | wallet: Account, 39 | options: DeployContractOptions = {} 40 | ): Promise> { 41 | const factory = new TestContractFactory(wallet); 42 | return factory.deploy(options); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /sway-store/sway-programs/contract/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "Inflector" 7 | version = "0.11.4" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" 10 | dependencies = [ 11 | "lazy_static", 12 | "regex", 13 | ] 14 | 15 | [[package]] 16 | name = "addr2line" 17 | version = "0.24.2" 18 | source = "registry+https://github.com/rust-lang/crates.io-index" 19 | checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 20 | dependencies = [ 21 | "gimli", 22 | ] 23 | 24 | [[package]] 25 | name = "adler2" 26 | version = "2.0.0" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 29 | 30 | [[package]] 31 | name = "aes" 32 | version = "0.8.4" 33 | source = "registry+https://github.com/rust-lang/crates.io-index" 34 | checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" 35 | dependencies = [ 36 | "cfg-if", 37 | "cipher", 38 | "cpufeatures", 39 | ] 40 | 41 | [[package]] 42 | name = "ahash" 43 | version = "0.8.11" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" 46 | dependencies = [ 47 | "cfg-if", 48 | "once_cell", 49 | "version_check", 50 | "zerocopy", 51 | ] 52 | 53 | [[package]] 54 | name = "aho-corasick" 55 | version = "1.1.3" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 58 | dependencies = [ 59 | "memchr", 60 | ] 61 | 62 | [[package]] 63 | name = "allocator-api2" 64 | version = "0.2.18" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" 67 | 68 | [[package]] 69 | name = "android-tzdata" 70 | version = "0.1.1" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 73 | 74 | [[package]] 75 | name = "android_system_properties" 76 | version = "0.1.5" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 79 | dependencies = [ 80 | "libc", 81 | ] 82 | 83 | [[package]] 84 | name = "anyhow" 85 | version = "1.0.89" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" 88 | 89 | [[package]] 90 | name = "ascii" 91 | version = "0.9.3" 92 | source = "registry+https://github.com/rust-lang/crates.io-index" 93 | checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" 94 | 95 | [[package]] 96 | name = "async-trait" 97 | version = "0.1.83" 98 | source = "registry+https://github.com/rust-lang/crates.io-index" 99 | checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" 100 | dependencies = [ 101 | "proc-macro2", 102 | "quote", 103 | "syn 2.0.79", 104 | ] 105 | 106 | [[package]] 107 | name = "atomic-polyfill" 108 | version = "1.0.3" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" 111 | dependencies = [ 112 | "critical-section", 113 | ] 114 | 115 | [[package]] 116 | name = "autocfg" 117 | version = "1.4.0" 118 | source = "registry+https://github.com/rust-lang/crates.io-index" 119 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 120 | 121 | [[package]] 122 | name = "backtrace" 123 | version = "0.3.74" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" 126 | dependencies = [ 127 | "addr2line", 128 | "cfg-if", 129 | "libc", 130 | "miniz_oxide", 131 | "object", 132 | "rustc-demangle", 133 | "serde", 134 | "windows-targets 0.52.6", 135 | ] 136 | 137 | [[package]] 138 | name = "base16ct" 139 | version = "0.2.0" 140 | source = "registry+https://github.com/rust-lang/crates.io-index" 141 | checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" 142 | 143 | [[package]] 144 | name = "base64" 145 | version = "0.21.7" 146 | source = "registry+https://github.com/rust-lang/crates.io-index" 147 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 148 | 149 | [[package]] 150 | name = "base64" 151 | version = "0.22.1" 152 | source = "registry+https://github.com/rust-lang/crates.io-index" 153 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 154 | 155 | [[package]] 156 | name = "base64ct" 157 | version = "1.6.0" 158 | source = "registry+https://github.com/rust-lang/crates.io-index" 159 | checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" 160 | 161 | [[package]] 162 | name = "bech32" 163 | version = "0.9.1" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" 166 | 167 | [[package]] 168 | name = "bitflags" 169 | version = "1.3.2" 170 | source = "registry+https://github.com/rust-lang/crates.io-index" 171 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 172 | 173 | [[package]] 174 | name = "bitflags" 175 | version = "2.6.0" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 178 | dependencies = [ 179 | "serde", 180 | ] 181 | 182 | [[package]] 183 | name = "bitvec" 184 | version = "1.0.1" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 187 | dependencies = [ 188 | "funty", 189 | "radium", 190 | "tap", 191 | "wyz", 192 | ] 193 | 194 | [[package]] 195 | name = "block-buffer" 196 | version = "0.10.4" 197 | source = "registry+https://github.com/rust-lang/crates.io-index" 198 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 199 | dependencies = [ 200 | "generic-array", 201 | ] 202 | 203 | [[package]] 204 | name = "bs58" 205 | version = "0.5.1" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" 208 | dependencies = [ 209 | "sha2", 210 | "tinyvec", 211 | ] 212 | 213 | [[package]] 214 | name = "bumpalo" 215 | version = "3.16.0" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 218 | 219 | [[package]] 220 | name = "byteorder" 221 | version = "1.5.0" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 224 | 225 | [[package]] 226 | name = "bytes" 227 | version = "1.7.2" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" 230 | 231 | [[package]] 232 | name = "cc" 233 | version = "1.1.27" 234 | source = "registry+https://github.com/rust-lang/crates.io-index" 235 | checksum = "677207f6eaec43fcfd092a718c847fc38aa261d0e19b8ef6797e0ccbe789e738" 236 | dependencies = [ 237 | "shlex", 238 | ] 239 | 240 | [[package]] 241 | name = "cfg-if" 242 | version = "1.0.0" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 245 | 246 | [[package]] 247 | name = "chrono" 248 | version = "0.4.38" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" 251 | dependencies = [ 252 | "android-tzdata", 253 | "iana-time-zone", 254 | "js-sys", 255 | "num-traits", 256 | "serde", 257 | "wasm-bindgen", 258 | "windows-targets 0.52.6", 259 | ] 260 | 261 | [[package]] 262 | name = "cipher" 263 | version = "0.4.4" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" 266 | dependencies = [ 267 | "crypto-common", 268 | "inout", 269 | ] 270 | 271 | [[package]] 272 | name = "cobs" 273 | version = "0.2.3" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" 276 | 277 | [[package]] 278 | name = "coins-bip32" 279 | version = "0.8.7" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" 282 | dependencies = [ 283 | "bs58", 284 | "coins-core", 285 | "digest", 286 | "hmac", 287 | "k256", 288 | "serde", 289 | "sha2", 290 | "thiserror", 291 | ] 292 | 293 | [[package]] 294 | name = "coins-bip39" 295 | version = "0.8.7" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" 298 | dependencies = [ 299 | "bitvec", 300 | "coins-bip32", 301 | "hmac", 302 | "once_cell", 303 | "pbkdf2 0.12.2", 304 | "rand", 305 | "sha2", 306 | "thiserror", 307 | ] 308 | 309 | [[package]] 310 | name = "coins-core" 311 | version = "0.8.7" 312 | source = "registry+https://github.com/rust-lang/crates.io-index" 313 | checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" 314 | dependencies = [ 315 | "base64 0.21.7", 316 | "bech32", 317 | "bs58", 318 | "digest", 319 | "generic-array", 320 | "hex", 321 | "ripemd", 322 | "serde", 323 | "serde_derive", 324 | "sha2", 325 | "sha3", 326 | "thiserror", 327 | ] 328 | 329 | [[package]] 330 | name = "combine" 331 | version = "3.8.1" 332 | source = "registry+https://github.com/rust-lang/crates.io-index" 333 | checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" 334 | dependencies = [ 335 | "ascii", 336 | "byteorder", 337 | "either", 338 | "memchr", 339 | "unreachable", 340 | ] 341 | 342 | [[package]] 343 | name = "const-oid" 344 | version = "0.9.6" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 347 | 348 | [[package]] 349 | name = "convert_case" 350 | version = "0.4.0" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 353 | 354 | [[package]] 355 | name = "cookie" 356 | version = "0.17.0" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24" 359 | dependencies = [ 360 | "percent-encoding", 361 | "time", 362 | "version_check", 363 | ] 364 | 365 | [[package]] 366 | name = "cookie_store" 367 | version = "0.20.0" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "387461abbc748185c3a6e1673d826918b450b87ff22639429c694619a83b6cf6" 370 | dependencies = [ 371 | "cookie", 372 | "idna 0.3.0", 373 | "log", 374 | "publicsuffix", 375 | "serde", 376 | "serde_derive", 377 | "serde_json", 378 | "time", 379 | "url", 380 | ] 381 | 382 | [[package]] 383 | name = "core-foundation" 384 | version = "0.9.4" 385 | source = "registry+https://github.com/rust-lang/crates.io-index" 386 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 387 | dependencies = [ 388 | "core-foundation-sys", 389 | "libc", 390 | ] 391 | 392 | [[package]] 393 | name = "core-foundation-sys" 394 | version = "0.8.7" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 397 | 398 | [[package]] 399 | name = "counter" 400 | version = "0.5.7" 401 | source = "registry+https://github.com/rust-lang/crates.io-index" 402 | checksum = "2d458e66999348f56fd3ffcfbb7f7951542075ca8359687c703de6500c1ddccd" 403 | dependencies = [ 404 | "num-traits", 405 | ] 406 | 407 | [[package]] 408 | name = "cpufeatures" 409 | version = "0.2.14" 410 | source = "registry+https://github.com/rust-lang/crates.io-index" 411 | checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" 412 | dependencies = [ 413 | "libc", 414 | ] 415 | 416 | [[package]] 417 | name = "critical-section" 418 | version = "1.1.3" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" 421 | 422 | [[package]] 423 | name = "crunchy" 424 | version = "0.2.2" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 427 | 428 | [[package]] 429 | name = "crypto-bigint" 430 | version = "0.5.5" 431 | source = "registry+https://github.com/rust-lang/crates.io-index" 432 | checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" 433 | dependencies = [ 434 | "generic-array", 435 | "rand_core", 436 | "subtle", 437 | "zeroize", 438 | ] 439 | 440 | [[package]] 441 | name = "crypto-common" 442 | version = "0.1.6" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 445 | dependencies = [ 446 | "generic-array", 447 | "typenum", 448 | ] 449 | 450 | [[package]] 451 | name = "ctr" 452 | version = "0.9.2" 453 | source = "registry+https://github.com/rust-lang/crates.io-index" 454 | checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" 455 | dependencies = [ 456 | "cipher", 457 | ] 458 | 459 | [[package]] 460 | name = "curve25519-dalek" 461 | version = "4.1.3" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" 464 | dependencies = [ 465 | "cfg-if", 466 | "cpufeatures", 467 | "curve25519-dalek-derive", 468 | "digest", 469 | "fiat-crypto", 470 | "rustc_version", 471 | "subtle", 472 | ] 473 | 474 | [[package]] 475 | name = "curve25519-dalek-derive" 476 | version = "0.1.1" 477 | source = "registry+https://github.com/rust-lang/crates.io-index" 478 | checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" 479 | dependencies = [ 480 | "proc-macro2", 481 | "quote", 482 | "syn 2.0.79", 483 | ] 484 | 485 | [[package]] 486 | name = "cynic" 487 | version = "2.2.8" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "b1afa0591b1021e427e548a1f0f147fe6168f6c7c7f7006bace77f28856051b8" 490 | dependencies = [ 491 | "cynic-proc-macros", 492 | "reqwest", 493 | "serde", 494 | "serde_json", 495 | "static_assertions", 496 | "thiserror", 497 | ] 498 | 499 | [[package]] 500 | name = "cynic-codegen" 501 | version = "2.2.8" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | checksum = "70a1bb05cc554f46079d0fa72abe995a2d32d0737d410a41da75b31e3f7ef768" 504 | dependencies = [ 505 | "counter", 506 | "darling 0.13.4", 507 | "graphql-parser", 508 | "once_cell", 509 | "proc-macro2", 510 | "quote", 511 | "strsim 0.10.0", 512 | "syn 1.0.109", 513 | ] 514 | 515 | [[package]] 516 | name = "cynic-proc-macros" 517 | version = "2.2.8" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "aa595c4ed7a5374e0e58c5c34f9d93bd6b7d45062790963bd4b4c3c0bf520c4d" 520 | dependencies = [ 521 | "cynic-codegen", 522 | "syn 1.0.109", 523 | ] 524 | 525 | [[package]] 526 | name = "darling" 527 | version = "0.13.4" 528 | source = "registry+https://github.com/rust-lang/crates.io-index" 529 | checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" 530 | dependencies = [ 531 | "darling_core 0.13.4", 532 | "darling_macro 0.13.4", 533 | ] 534 | 535 | [[package]] 536 | name = "darling" 537 | version = "0.20.10" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" 540 | dependencies = [ 541 | "darling_core 0.20.10", 542 | "darling_macro 0.20.10", 543 | ] 544 | 545 | [[package]] 546 | name = "darling_core" 547 | version = "0.13.4" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" 550 | dependencies = [ 551 | "fnv", 552 | "ident_case", 553 | "proc-macro2", 554 | "quote", 555 | "strsim 0.10.0", 556 | "syn 1.0.109", 557 | ] 558 | 559 | [[package]] 560 | name = "darling_core" 561 | version = "0.20.10" 562 | source = "registry+https://github.com/rust-lang/crates.io-index" 563 | checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" 564 | dependencies = [ 565 | "fnv", 566 | "ident_case", 567 | "proc-macro2", 568 | "quote", 569 | "strsim 0.11.1", 570 | "syn 2.0.79", 571 | ] 572 | 573 | [[package]] 574 | name = "darling_macro" 575 | version = "0.13.4" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" 578 | dependencies = [ 579 | "darling_core 0.13.4", 580 | "quote", 581 | "syn 1.0.109", 582 | ] 583 | 584 | [[package]] 585 | name = "darling_macro" 586 | version = "0.20.10" 587 | source = "registry+https://github.com/rust-lang/crates.io-index" 588 | checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" 589 | dependencies = [ 590 | "darling_core 0.20.10", 591 | "quote", 592 | "syn 2.0.79", 593 | ] 594 | 595 | [[package]] 596 | name = "der" 597 | version = "0.7.9" 598 | source = "registry+https://github.com/rust-lang/crates.io-index" 599 | checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" 600 | dependencies = [ 601 | "const-oid", 602 | "zeroize", 603 | ] 604 | 605 | [[package]] 606 | name = "deranged" 607 | version = "0.3.11" 608 | source = "registry+https://github.com/rust-lang/crates.io-index" 609 | checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 610 | dependencies = [ 611 | "powerfmt", 612 | "serde", 613 | ] 614 | 615 | [[package]] 616 | name = "derivative" 617 | version = "2.2.0" 618 | source = "registry+https://github.com/rust-lang/crates.io-index" 619 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 620 | dependencies = [ 621 | "proc-macro2", 622 | "quote", 623 | "syn 1.0.109", 624 | ] 625 | 626 | [[package]] 627 | name = "derive_more" 628 | version = "0.99.18" 629 | source = "registry+https://github.com/rust-lang/crates.io-index" 630 | checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" 631 | dependencies = [ 632 | "convert_case", 633 | "proc-macro2", 634 | "quote", 635 | "rustc_version", 636 | "syn 2.0.79", 637 | ] 638 | 639 | [[package]] 640 | name = "digest" 641 | version = "0.10.7" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 644 | dependencies = [ 645 | "block-buffer", 646 | "const-oid", 647 | "crypto-common", 648 | "subtle", 649 | ] 650 | 651 | [[package]] 652 | name = "dtoa" 653 | version = "1.0.9" 654 | source = "registry+https://github.com/rust-lang/crates.io-index" 655 | checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" 656 | 657 | [[package]] 658 | name = "ecdsa" 659 | version = "0.16.9" 660 | source = "registry+https://github.com/rust-lang/crates.io-index" 661 | checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" 662 | dependencies = [ 663 | "der", 664 | "digest", 665 | "elliptic-curve", 666 | "rfc6979", 667 | "signature", 668 | "spki", 669 | ] 670 | 671 | [[package]] 672 | name = "ed25519" 673 | version = "2.2.3" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" 676 | dependencies = [ 677 | "signature", 678 | ] 679 | 680 | [[package]] 681 | name = "ed25519-dalek" 682 | version = "2.1.1" 683 | source = "registry+https://github.com/rust-lang/crates.io-index" 684 | checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" 685 | dependencies = [ 686 | "curve25519-dalek", 687 | "ed25519", 688 | "sha2", 689 | "subtle", 690 | ] 691 | 692 | [[package]] 693 | name = "either" 694 | version = "1.13.0" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 697 | 698 | [[package]] 699 | name = "elliptic-curve" 700 | version = "0.13.8" 701 | source = "registry+https://github.com/rust-lang/crates.io-index" 702 | checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" 703 | dependencies = [ 704 | "base16ct", 705 | "crypto-bigint", 706 | "digest", 707 | "ff", 708 | "generic-array", 709 | "group", 710 | "pkcs8", 711 | "rand_core", 712 | "sec1", 713 | "subtle", 714 | "zeroize", 715 | ] 716 | 717 | [[package]] 718 | name = "embedded-io" 719 | version = "0.4.0" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" 722 | 723 | [[package]] 724 | name = "embedded-io" 725 | version = "0.6.1" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 728 | 729 | [[package]] 730 | name = "encoding_rs" 731 | version = "0.8.34" 732 | source = "registry+https://github.com/rust-lang/crates.io-index" 733 | checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" 734 | dependencies = [ 735 | "cfg-if", 736 | ] 737 | 738 | [[package]] 739 | name = "enum-iterator" 740 | version = "1.5.0" 741 | source = "registry+https://github.com/rust-lang/crates.io-index" 742 | checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94" 743 | dependencies = [ 744 | "enum-iterator-derive", 745 | ] 746 | 747 | [[package]] 748 | name = "enum-iterator-derive" 749 | version = "1.4.0" 750 | source = "registry+https://github.com/rust-lang/crates.io-index" 751 | checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" 752 | dependencies = [ 753 | "proc-macro2", 754 | "quote", 755 | "syn 2.0.79", 756 | ] 757 | 758 | [[package]] 759 | name = "equivalent" 760 | version = "1.0.1" 761 | source = "registry+https://github.com/rust-lang/crates.io-index" 762 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 763 | 764 | [[package]] 765 | name = "errno" 766 | version = "0.3.9" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 769 | dependencies = [ 770 | "libc", 771 | "windows-sys 0.52.0", 772 | ] 773 | 774 | [[package]] 775 | name = "eth-keystore" 776 | version = "0.5.0" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" 779 | dependencies = [ 780 | "aes", 781 | "ctr", 782 | "digest", 783 | "hex", 784 | "hmac", 785 | "pbkdf2 0.11.0", 786 | "rand", 787 | "scrypt", 788 | "serde", 789 | "serde_json", 790 | "sha2", 791 | "sha3", 792 | "thiserror", 793 | "uuid", 794 | ] 795 | 796 | [[package]] 797 | name = "ethnum" 798 | version = "1.5.0" 799 | source = "registry+https://github.com/rust-lang/crates.io-index" 800 | checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" 801 | 802 | [[package]] 803 | name = "eventsource-client" 804 | version = "0.13.0" 805 | source = "registry+https://github.com/rust-lang/crates.io-index" 806 | checksum = "43ddc25e1ad2cc0106d5e2d967397b4fb2068a66677ee9b0eea4600e5cfe8fb4" 807 | dependencies = [ 808 | "futures", 809 | "hyper", 810 | "hyper-rustls", 811 | "hyper-timeout", 812 | "log", 813 | "pin-project", 814 | "rand", 815 | "tokio", 816 | ] 817 | 818 | [[package]] 819 | name = "fastrand" 820 | version = "2.1.1" 821 | source = "registry+https://github.com/rust-lang/crates.io-index" 822 | checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" 823 | 824 | [[package]] 825 | name = "ff" 826 | version = "0.13.0" 827 | source = "registry+https://github.com/rust-lang/crates.io-index" 828 | checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" 829 | dependencies = [ 830 | "rand_core", 831 | "subtle", 832 | ] 833 | 834 | [[package]] 835 | name = "fiat-crypto" 836 | version = "0.2.9" 837 | source = "registry+https://github.com/rust-lang/crates.io-index" 838 | checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" 839 | 840 | [[package]] 841 | name = "fixed-hash" 842 | version = "0.8.0" 843 | source = "registry+https://github.com/rust-lang/crates.io-index" 844 | checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" 845 | dependencies = [ 846 | "static_assertions", 847 | ] 848 | 849 | [[package]] 850 | name = "fnv" 851 | version = "1.0.7" 852 | source = "registry+https://github.com/rust-lang/crates.io-index" 853 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 854 | 855 | [[package]] 856 | name = "form_urlencoded" 857 | version = "1.2.1" 858 | source = "registry+https://github.com/rust-lang/crates.io-index" 859 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 860 | dependencies = [ 861 | "percent-encoding", 862 | ] 863 | 864 | [[package]] 865 | name = "fuel-abi-types" 866 | version = "0.7.0" 867 | source = "registry+https://github.com/rust-lang/crates.io-index" 868 | checksum = "bce44ac13b1971be7cea024a2003cf944522093dafec454fea9ff792f0ff2577" 869 | dependencies = [ 870 | "itertools 0.10.5", 871 | "lazy_static", 872 | "proc-macro2", 873 | "quote", 874 | "regex", 875 | "serde", 876 | "serde_json", 877 | "syn 2.0.79", 878 | "thiserror", 879 | ] 880 | 881 | [[package]] 882 | name = "fuel-asm" 883 | version = "0.58.2" 884 | source = "registry+https://github.com/rust-lang/crates.io-index" 885 | checksum = "5f325971bf9047ec70004f80a989e03456316bc19cbef3ff3a39a38b192ab56e" 886 | dependencies = [ 887 | "bitflags 2.6.0", 888 | "fuel-types", 889 | "serde", 890 | "strum 0.24.1", 891 | ] 892 | 893 | [[package]] 894 | name = "fuel-core-chain-config" 895 | version = "0.40.0" 896 | source = "registry+https://github.com/rust-lang/crates.io-index" 897 | checksum = "990db3029efd3766c4ae7c92a53c159ae66abf6f568ac6a3d58354f11400e6e2" 898 | dependencies = [ 899 | "anyhow", 900 | "bech32", 901 | "derivative", 902 | "fuel-core-storage", 903 | "fuel-core-types", 904 | "itertools 0.12.1", 905 | "postcard", 906 | "rand", 907 | "serde", 908 | "serde_json", 909 | "serde_with", 910 | "tracing", 911 | ] 912 | 913 | [[package]] 914 | name = "fuel-core-client" 915 | version = "0.40.0" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "f09b3a35e82226d77b10653829beb508dc4bcf698fbdaa96610faf894e794444" 918 | dependencies = [ 919 | "anyhow", 920 | "base64 0.22.1", 921 | "cynic", 922 | "derive_more", 923 | "eventsource-client", 924 | "fuel-core-types", 925 | "futures", 926 | "hex", 927 | "hyper-rustls", 928 | "itertools 0.12.1", 929 | "reqwest", 930 | "schemafy_lib", 931 | "serde", 932 | "serde_json", 933 | "tai64", 934 | "thiserror", 935 | "tracing", 936 | ] 937 | 938 | [[package]] 939 | name = "fuel-core-metrics" 940 | version = "0.40.0" 941 | source = "registry+https://github.com/rust-lang/crates.io-index" 942 | checksum = "94a1c3eb92040d95d27f7c658801bb5c04ad4aaf67de380cececbeed5aab6e61" 943 | dependencies = [ 944 | "once_cell", 945 | "parking_lot", 946 | "pin-project-lite", 947 | "prometheus-client", 948 | "regex", 949 | "strum 0.25.0", 950 | "strum_macros 0.25.3", 951 | "tracing", 952 | ] 953 | 954 | [[package]] 955 | name = "fuel-core-poa" 956 | version = "0.40.0" 957 | source = "registry+https://github.com/rust-lang/crates.io-index" 958 | checksum = "2f6f78fa31dc56b9458e3ca9a7058b4bea381e16e49fcab0db49923be8a30f9c" 959 | dependencies = [ 960 | "anyhow", 961 | "async-trait", 962 | "fuel-core-chain-config", 963 | "fuel-core-services", 964 | "fuel-core-storage", 965 | "fuel-core-types", 966 | "serde", 967 | "serde_json", 968 | "tokio", 969 | "tokio-stream", 970 | "tracing", 971 | ] 972 | 973 | [[package]] 974 | name = "fuel-core-services" 975 | version = "0.40.0" 976 | source = "registry+https://github.com/rust-lang/crates.io-index" 977 | checksum = "8312b598da4b9a6503c9263c1c2a7ea58d34ab1f86e7f345490e12d309fb29bb" 978 | dependencies = [ 979 | "anyhow", 980 | "async-trait", 981 | "fuel-core-metrics", 982 | "futures", 983 | "parking_lot", 984 | "pin-project-lite", 985 | "tokio", 986 | "tracing", 987 | ] 988 | 989 | [[package]] 990 | name = "fuel-core-storage" 991 | version = "0.40.0" 992 | source = "registry+https://github.com/rust-lang/crates.io-index" 993 | checksum = "bda9242ebc9e8ef3251b9eae85f4ce5cdb376348baa30925606f3ce602db7ec5" 994 | dependencies = [ 995 | "anyhow", 996 | "derive_more", 997 | "enum-iterator", 998 | "fuel-core-types", 999 | "fuel-vm", 1000 | "impl-tools", 1001 | "itertools 0.12.1", 1002 | "num_enum", 1003 | "paste", 1004 | "postcard", 1005 | "primitive-types", 1006 | "serde", 1007 | "strum 0.25.0", 1008 | "strum_macros 0.25.3", 1009 | ] 1010 | 1011 | [[package]] 1012 | name = "fuel-core-types" 1013 | version = "0.40.0" 1014 | source = "registry+https://github.com/rust-lang/crates.io-index" 1015 | checksum = "6ee3a95b189bf729d21354a761862bb481298cbd883550adc3fef1bc7beb0b67" 1016 | dependencies = [ 1017 | "anyhow", 1018 | "bs58", 1019 | "derivative", 1020 | "derive_more", 1021 | "fuel-vm", 1022 | "rand", 1023 | "secrecy", 1024 | "serde", 1025 | "tai64", 1026 | "zeroize", 1027 | ] 1028 | 1029 | [[package]] 1030 | name = "fuel-crypto" 1031 | version = "0.58.2" 1032 | source = "registry+https://github.com/rust-lang/crates.io-index" 1033 | checksum = "65e318850ca64890ff123a99b6b866954ef49da94ab9bc6827cf6ee045568585" 1034 | dependencies = [ 1035 | "coins-bip32", 1036 | "coins-bip39", 1037 | "ecdsa", 1038 | "ed25519-dalek", 1039 | "fuel-types", 1040 | "k256", 1041 | "lazy_static", 1042 | "p256", 1043 | "rand", 1044 | "secp256k1", 1045 | "serde", 1046 | "sha2", 1047 | "zeroize", 1048 | ] 1049 | 1050 | [[package]] 1051 | name = "fuel-derive" 1052 | version = "0.58.2" 1053 | source = "registry+https://github.com/rust-lang/crates.io-index" 1054 | checksum = "ab0bc46a3552964bae5169e79b383761a54bd115ea66951a1a7a229edcefa55a" 1055 | dependencies = [ 1056 | "proc-macro2", 1057 | "quote", 1058 | "syn 2.0.79", 1059 | "synstructure", 1060 | ] 1061 | 1062 | [[package]] 1063 | name = "fuel-merkle" 1064 | version = "0.58.2" 1065 | source = "registry+https://github.com/rust-lang/crates.io-index" 1066 | checksum = "c79eca6a452311c70978a5df796c0f99f27e474b69719e0db4c1d82e68800d07" 1067 | dependencies = [ 1068 | "derive_more", 1069 | "digest", 1070 | "fuel-storage", 1071 | "hashbrown 0.13.2", 1072 | "hex", 1073 | "serde", 1074 | "sha2", 1075 | ] 1076 | 1077 | [[package]] 1078 | name = "fuel-storage" 1079 | version = "0.58.2" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "2d0c46b5d76b3e11197bd31e036cd8b1cb46c4d822cacc48836638080c6d2b76" 1082 | 1083 | [[package]] 1084 | name = "fuel-tx" 1085 | version = "0.58.2" 1086 | source = "registry+https://github.com/rust-lang/crates.io-index" 1087 | checksum = "6723bb8710ba2b70516ac94d34459593225870c937670fb3afaf82e0354667ac" 1088 | dependencies = [ 1089 | "bitflags 2.6.0", 1090 | "derivative", 1091 | "derive_more", 1092 | "fuel-asm", 1093 | "fuel-crypto", 1094 | "fuel-merkle", 1095 | "fuel-types", 1096 | "hashbrown 0.14.5", 1097 | "itertools 0.10.5", 1098 | "postcard", 1099 | "rand", 1100 | "serde", 1101 | "strum 0.24.1", 1102 | "strum_macros 0.24.3", 1103 | ] 1104 | 1105 | [[package]] 1106 | name = "fuel-types" 1107 | version = "0.58.2" 1108 | source = "registry+https://github.com/rust-lang/crates.io-index" 1109 | checksum = "982265415a99b5bd6277bc24194a233bb2e18764df11c937b3dbb11a02c9e545" 1110 | dependencies = [ 1111 | "fuel-derive", 1112 | "hex", 1113 | "rand", 1114 | "serde", 1115 | ] 1116 | 1117 | [[package]] 1118 | name = "fuel-vm" 1119 | version = "0.58.2" 1120 | source = "registry+https://github.com/rust-lang/crates.io-index" 1121 | checksum = "54b5362d7d072c72eec20581f67fc5400090c356a7f3ae77c79880b3b177b667" 1122 | dependencies = [ 1123 | "anyhow", 1124 | "async-trait", 1125 | "backtrace", 1126 | "bitflags 2.6.0", 1127 | "derivative", 1128 | "derive_more", 1129 | "ethnum", 1130 | "fuel-asm", 1131 | "fuel-crypto", 1132 | "fuel-merkle", 1133 | "fuel-storage", 1134 | "fuel-tx", 1135 | "fuel-types", 1136 | "hashbrown 0.14.5", 1137 | "itertools 0.10.5", 1138 | "libm", 1139 | "paste", 1140 | "percent-encoding", 1141 | "primitive-types", 1142 | "rand", 1143 | "serde", 1144 | "serde_with", 1145 | "sha3", 1146 | "static_assertions", 1147 | "strum 0.24.1", 1148 | "tai64", 1149 | ] 1150 | 1151 | [[package]] 1152 | name = "fuels" 1153 | version = "0.66.9" 1154 | source = "registry+https://github.com/rust-lang/crates.io-index" 1155 | checksum = "6ed08053e72bdb285d5a167c27a7a0d10f1dc4e27d1e6e5296dd2a67813bd13f" 1156 | dependencies = [ 1157 | "fuel-core-client", 1158 | "fuel-crypto", 1159 | "fuel-tx", 1160 | "fuels-accounts", 1161 | "fuels-core", 1162 | "fuels-macros", 1163 | "fuels-programs", 1164 | "fuels-test-helpers", 1165 | ] 1166 | 1167 | [[package]] 1168 | name = "fuels-accounts" 1169 | version = "0.66.9" 1170 | source = "registry+https://github.com/rust-lang/crates.io-index" 1171 | checksum = "49fee90e8f3a4fc9392a6cde3010c561fa50da0f805d66fdb659eaa4d5d8a504" 1172 | dependencies = [ 1173 | "async-trait", 1174 | "chrono", 1175 | "cynic", 1176 | "elliptic-curve", 1177 | "eth-keystore", 1178 | "fuel-core-client", 1179 | "fuel-core-types", 1180 | "fuel-crypto", 1181 | "fuel-tx", 1182 | "fuel-types", 1183 | "fuels-core", 1184 | "itertools 0.12.1", 1185 | "rand", 1186 | "semver", 1187 | "tai64", 1188 | "thiserror", 1189 | "tokio", 1190 | "zeroize", 1191 | ] 1192 | 1193 | [[package]] 1194 | name = "fuels-code-gen" 1195 | version = "0.66.9" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | checksum = "f857b7ff658400506ca6be57bb84fedda44b566e78f5f0a8d0782242f41615c0" 1198 | dependencies = [ 1199 | "Inflector", 1200 | "fuel-abi-types", 1201 | "itertools 0.12.1", 1202 | "proc-macro2", 1203 | "quote", 1204 | "regex", 1205 | "serde_json", 1206 | "syn 2.0.79", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "fuels-core" 1211 | version = "0.66.9" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "baccbdd81e624f57950dcb136b32b853c520dd954badf26b9f58de33f3d71c7e" 1214 | dependencies = [ 1215 | "async-trait", 1216 | "bech32", 1217 | "chrono", 1218 | "fuel-abi-types", 1219 | "fuel-asm", 1220 | "fuel-core-chain-config", 1221 | "fuel-core-client", 1222 | "fuel-core-types", 1223 | "fuel-crypto", 1224 | "fuel-tx", 1225 | "fuel-types", 1226 | "fuel-vm", 1227 | "fuels-macros", 1228 | "hex", 1229 | "itertools 0.12.1", 1230 | "postcard", 1231 | "serde", 1232 | "serde_json", 1233 | "sha2", 1234 | "thiserror", 1235 | "uint", 1236 | ] 1237 | 1238 | [[package]] 1239 | name = "fuels-macros" 1240 | version = "0.66.9" 1241 | source = "registry+https://github.com/rust-lang/crates.io-index" 1242 | checksum = "5da75294c5e9da312bdc49239736699ee84ea9c5bfbc19a61a8ee588a1247aa1" 1243 | dependencies = [ 1244 | "fuels-code-gen", 1245 | "itertools 0.12.1", 1246 | "proc-macro2", 1247 | "quote", 1248 | "syn 2.0.79", 1249 | ] 1250 | 1251 | [[package]] 1252 | name = "fuels-programs" 1253 | version = "0.66.9" 1254 | source = "registry+https://github.com/rust-lang/crates.io-index" 1255 | checksum = "32675ed1c08edd28ddb648dfae0c60a1946d4368a69ddfa6434f2316e33f0520" 1256 | dependencies = [ 1257 | "async-trait", 1258 | "fuel-abi-types", 1259 | "fuel-asm", 1260 | "fuel-tx", 1261 | "fuel-types", 1262 | "fuels-accounts", 1263 | "fuels-core", 1264 | "itertools 0.12.1", 1265 | "rand", 1266 | "serde_json", 1267 | "tokio", 1268 | ] 1269 | 1270 | [[package]] 1271 | name = "fuels-test-helpers" 1272 | version = "0.66.9" 1273 | source = "registry+https://github.com/rust-lang/crates.io-index" 1274 | checksum = "02176c0fb1bf8cf58b8a9e5372efb650324740abcd4847b45bd0b041a0f133a2" 1275 | dependencies = [ 1276 | "fuel-core-chain-config", 1277 | "fuel-core-client", 1278 | "fuel-core-poa", 1279 | "fuel-core-services", 1280 | "fuel-core-types", 1281 | "fuel-crypto", 1282 | "fuel-tx", 1283 | "fuel-types", 1284 | "fuels-accounts", 1285 | "fuels-core", 1286 | "futures", 1287 | "portpicker", 1288 | "rand", 1289 | "tempfile", 1290 | "tokio", 1291 | "which", 1292 | ] 1293 | 1294 | [[package]] 1295 | name = "funty" 1296 | version = "2.0.0" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 1299 | 1300 | [[package]] 1301 | name = "futures" 1302 | version = "0.3.31" 1303 | source = "registry+https://github.com/rust-lang/crates.io-index" 1304 | checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 1305 | dependencies = [ 1306 | "futures-channel", 1307 | "futures-core", 1308 | "futures-executor", 1309 | "futures-io", 1310 | "futures-sink", 1311 | "futures-task", 1312 | "futures-util", 1313 | ] 1314 | 1315 | [[package]] 1316 | name = "futures-channel" 1317 | version = "0.3.31" 1318 | source = "registry+https://github.com/rust-lang/crates.io-index" 1319 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 1320 | dependencies = [ 1321 | "futures-core", 1322 | "futures-sink", 1323 | ] 1324 | 1325 | [[package]] 1326 | name = "futures-core" 1327 | version = "0.3.31" 1328 | source = "registry+https://github.com/rust-lang/crates.io-index" 1329 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 1330 | 1331 | [[package]] 1332 | name = "futures-executor" 1333 | version = "0.3.31" 1334 | source = "registry+https://github.com/rust-lang/crates.io-index" 1335 | checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 1336 | dependencies = [ 1337 | "futures-core", 1338 | "futures-task", 1339 | "futures-util", 1340 | ] 1341 | 1342 | [[package]] 1343 | name = "futures-io" 1344 | version = "0.3.31" 1345 | source = "registry+https://github.com/rust-lang/crates.io-index" 1346 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 1347 | 1348 | [[package]] 1349 | name = "futures-macro" 1350 | version = "0.3.31" 1351 | source = "registry+https://github.com/rust-lang/crates.io-index" 1352 | checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 1353 | dependencies = [ 1354 | "proc-macro2", 1355 | "quote", 1356 | "syn 2.0.79", 1357 | ] 1358 | 1359 | [[package]] 1360 | name = "futures-sink" 1361 | version = "0.3.31" 1362 | source = "registry+https://github.com/rust-lang/crates.io-index" 1363 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 1364 | 1365 | [[package]] 1366 | name = "futures-task" 1367 | version = "0.3.31" 1368 | source = "registry+https://github.com/rust-lang/crates.io-index" 1369 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 1370 | 1371 | [[package]] 1372 | name = "futures-util" 1373 | version = "0.3.31" 1374 | source = "registry+https://github.com/rust-lang/crates.io-index" 1375 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 1376 | dependencies = [ 1377 | "futures-channel", 1378 | "futures-core", 1379 | "futures-io", 1380 | "futures-macro", 1381 | "futures-sink", 1382 | "futures-task", 1383 | "memchr", 1384 | "pin-project-lite", 1385 | "pin-utils", 1386 | "slab", 1387 | ] 1388 | 1389 | [[package]] 1390 | name = "generic-array" 1391 | version = "0.14.7" 1392 | source = "registry+https://github.com/rust-lang/crates.io-index" 1393 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1394 | dependencies = [ 1395 | "typenum", 1396 | "version_check", 1397 | "zeroize", 1398 | ] 1399 | 1400 | [[package]] 1401 | name = "getrandom" 1402 | version = "0.2.15" 1403 | source = "registry+https://github.com/rust-lang/crates.io-index" 1404 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 1405 | dependencies = [ 1406 | "cfg-if", 1407 | "libc", 1408 | "wasi", 1409 | ] 1410 | 1411 | [[package]] 1412 | name = "gimli" 1413 | version = "0.31.1" 1414 | source = "registry+https://github.com/rust-lang/crates.io-index" 1415 | checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 1416 | 1417 | [[package]] 1418 | name = "graphql-parser" 1419 | version = "0.4.0" 1420 | source = "registry+https://github.com/rust-lang/crates.io-index" 1421 | checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" 1422 | dependencies = [ 1423 | "combine", 1424 | "thiserror", 1425 | ] 1426 | 1427 | [[package]] 1428 | name = "group" 1429 | version = "0.13.0" 1430 | source = "registry+https://github.com/rust-lang/crates.io-index" 1431 | checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" 1432 | dependencies = [ 1433 | "ff", 1434 | "rand_core", 1435 | "subtle", 1436 | ] 1437 | 1438 | [[package]] 1439 | name = "h2" 1440 | version = "0.3.26" 1441 | source = "registry+https://github.com/rust-lang/crates.io-index" 1442 | checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" 1443 | dependencies = [ 1444 | "bytes", 1445 | "fnv", 1446 | "futures-core", 1447 | "futures-sink", 1448 | "futures-util", 1449 | "http", 1450 | "indexmap 2.6.0", 1451 | "slab", 1452 | "tokio", 1453 | "tokio-util", 1454 | "tracing", 1455 | ] 1456 | 1457 | [[package]] 1458 | name = "hash32" 1459 | version = "0.2.1" 1460 | source = "registry+https://github.com/rust-lang/crates.io-index" 1461 | checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" 1462 | dependencies = [ 1463 | "byteorder", 1464 | ] 1465 | 1466 | [[package]] 1467 | name = "hashbrown" 1468 | version = "0.12.3" 1469 | source = "registry+https://github.com/rust-lang/crates.io-index" 1470 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1471 | 1472 | [[package]] 1473 | name = "hashbrown" 1474 | version = "0.13.2" 1475 | source = "registry+https://github.com/rust-lang/crates.io-index" 1476 | checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" 1477 | dependencies = [ 1478 | "ahash", 1479 | ] 1480 | 1481 | [[package]] 1482 | name = "hashbrown" 1483 | version = "0.14.5" 1484 | source = "registry+https://github.com/rust-lang/crates.io-index" 1485 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1486 | dependencies = [ 1487 | "ahash", 1488 | "allocator-api2", 1489 | "serde", 1490 | ] 1491 | 1492 | [[package]] 1493 | name = "hashbrown" 1494 | version = "0.15.0" 1495 | source = "registry+https://github.com/rust-lang/crates.io-index" 1496 | checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" 1497 | 1498 | [[package]] 1499 | name = "heapless" 1500 | version = "0.7.17" 1501 | source = "registry+https://github.com/rust-lang/crates.io-index" 1502 | checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" 1503 | dependencies = [ 1504 | "atomic-polyfill", 1505 | "hash32", 1506 | "rustc_version", 1507 | "serde", 1508 | "spin", 1509 | "stable_deref_trait", 1510 | ] 1511 | 1512 | [[package]] 1513 | name = "heck" 1514 | version = "0.4.1" 1515 | source = "registry+https://github.com/rust-lang/crates.io-index" 1516 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1517 | 1518 | [[package]] 1519 | name = "hermit-abi" 1520 | version = "0.3.9" 1521 | source = "registry+https://github.com/rust-lang/crates.io-index" 1522 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 1523 | 1524 | [[package]] 1525 | name = "hex" 1526 | version = "0.4.3" 1527 | source = "registry+https://github.com/rust-lang/crates.io-index" 1528 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1529 | dependencies = [ 1530 | "serde", 1531 | ] 1532 | 1533 | [[package]] 1534 | name = "hmac" 1535 | version = "0.12.1" 1536 | source = "registry+https://github.com/rust-lang/crates.io-index" 1537 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1538 | dependencies = [ 1539 | "digest", 1540 | ] 1541 | 1542 | [[package]] 1543 | name = "home" 1544 | version = "0.5.9" 1545 | source = "registry+https://github.com/rust-lang/crates.io-index" 1546 | checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" 1547 | dependencies = [ 1548 | "windows-sys 0.52.0", 1549 | ] 1550 | 1551 | [[package]] 1552 | name = "http" 1553 | version = "0.2.12" 1554 | source = "registry+https://github.com/rust-lang/crates.io-index" 1555 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 1556 | dependencies = [ 1557 | "bytes", 1558 | "fnv", 1559 | "itoa", 1560 | ] 1561 | 1562 | [[package]] 1563 | name = "http-body" 1564 | version = "0.4.6" 1565 | source = "registry+https://github.com/rust-lang/crates.io-index" 1566 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 1567 | dependencies = [ 1568 | "bytes", 1569 | "http", 1570 | "pin-project-lite", 1571 | ] 1572 | 1573 | [[package]] 1574 | name = "httparse" 1575 | version = "1.9.5" 1576 | source = "registry+https://github.com/rust-lang/crates.io-index" 1577 | checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" 1578 | 1579 | [[package]] 1580 | name = "httpdate" 1581 | version = "1.0.3" 1582 | source = "registry+https://github.com/rust-lang/crates.io-index" 1583 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1584 | 1585 | [[package]] 1586 | name = "hyper" 1587 | version = "0.14.30" 1588 | source = "registry+https://github.com/rust-lang/crates.io-index" 1589 | checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" 1590 | dependencies = [ 1591 | "bytes", 1592 | "futures-channel", 1593 | "futures-core", 1594 | "futures-util", 1595 | "h2", 1596 | "http", 1597 | "http-body", 1598 | "httparse", 1599 | "httpdate", 1600 | "itoa", 1601 | "pin-project-lite", 1602 | "socket2", 1603 | "tokio", 1604 | "tower-service", 1605 | "tracing", 1606 | "want", 1607 | ] 1608 | 1609 | [[package]] 1610 | name = "hyper-rustls" 1611 | version = "0.24.2" 1612 | source = "registry+https://github.com/rust-lang/crates.io-index" 1613 | checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" 1614 | dependencies = [ 1615 | "futures-util", 1616 | "http", 1617 | "hyper", 1618 | "log", 1619 | "rustls", 1620 | "rustls-native-certs", 1621 | "tokio", 1622 | "tokio-rustls", 1623 | "webpki-roots", 1624 | ] 1625 | 1626 | [[package]] 1627 | name = "hyper-timeout" 1628 | version = "0.4.1" 1629 | source = "registry+https://github.com/rust-lang/crates.io-index" 1630 | checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" 1631 | dependencies = [ 1632 | "hyper", 1633 | "pin-project-lite", 1634 | "tokio", 1635 | "tokio-io-timeout", 1636 | ] 1637 | 1638 | [[package]] 1639 | name = "iana-time-zone" 1640 | version = "0.1.61" 1641 | source = "registry+https://github.com/rust-lang/crates.io-index" 1642 | checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" 1643 | dependencies = [ 1644 | "android_system_properties", 1645 | "core-foundation-sys", 1646 | "iana-time-zone-haiku", 1647 | "js-sys", 1648 | "wasm-bindgen", 1649 | "windows-core", 1650 | ] 1651 | 1652 | [[package]] 1653 | name = "iana-time-zone-haiku" 1654 | version = "0.1.2" 1655 | source = "registry+https://github.com/rust-lang/crates.io-index" 1656 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1657 | dependencies = [ 1658 | "cc", 1659 | ] 1660 | 1661 | [[package]] 1662 | name = "ident_case" 1663 | version = "1.0.1" 1664 | source = "registry+https://github.com/rust-lang/crates.io-index" 1665 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1666 | 1667 | [[package]] 1668 | name = "idna" 1669 | version = "0.3.0" 1670 | source = "registry+https://github.com/rust-lang/crates.io-index" 1671 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 1672 | dependencies = [ 1673 | "unicode-bidi", 1674 | "unicode-normalization", 1675 | ] 1676 | 1677 | [[package]] 1678 | name = "idna" 1679 | version = "0.5.0" 1680 | source = "registry+https://github.com/rust-lang/crates.io-index" 1681 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 1682 | dependencies = [ 1683 | "unicode-bidi", 1684 | "unicode-normalization", 1685 | ] 1686 | 1687 | [[package]] 1688 | name = "impl-tools" 1689 | version = "0.10.0" 1690 | source = "registry+https://github.com/rust-lang/crates.io-index" 1691 | checksum = "d82c305b1081f1a99fda262883c788e50ab57d36c00830bdd7e0a82894ad965c" 1692 | dependencies = [ 1693 | "autocfg", 1694 | "impl-tools-lib", 1695 | "proc-macro-error", 1696 | "syn 2.0.79", 1697 | ] 1698 | 1699 | [[package]] 1700 | name = "impl-tools-lib" 1701 | version = "0.10.0" 1702 | source = "registry+https://github.com/rust-lang/crates.io-index" 1703 | checksum = "85d3946d886eaab0702fa0c6585adcced581513223fa9df7ccfabbd9fa331a88" 1704 | dependencies = [ 1705 | "proc-macro-error", 1706 | "proc-macro2", 1707 | "quote", 1708 | "syn 2.0.79", 1709 | ] 1710 | 1711 | [[package]] 1712 | name = "indexmap" 1713 | version = "1.9.3" 1714 | source = "registry+https://github.com/rust-lang/crates.io-index" 1715 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 1716 | dependencies = [ 1717 | "autocfg", 1718 | "hashbrown 0.12.3", 1719 | "serde", 1720 | ] 1721 | 1722 | [[package]] 1723 | name = "indexmap" 1724 | version = "2.6.0" 1725 | source = "registry+https://github.com/rust-lang/crates.io-index" 1726 | checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" 1727 | dependencies = [ 1728 | "equivalent", 1729 | "hashbrown 0.15.0", 1730 | "serde", 1731 | ] 1732 | 1733 | [[package]] 1734 | name = "inout" 1735 | version = "0.1.3" 1736 | source = "registry+https://github.com/rust-lang/crates.io-index" 1737 | checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" 1738 | dependencies = [ 1739 | "generic-array", 1740 | ] 1741 | 1742 | [[package]] 1743 | name = "ipnet" 1744 | version = "2.10.1" 1745 | source = "registry+https://github.com/rust-lang/crates.io-index" 1746 | checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" 1747 | 1748 | [[package]] 1749 | name = "itertools" 1750 | version = "0.10.5" 1751 | source = "registry+https://github.com/rust-lang/crates.io-index" 1752 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 1753 | dependencies = [ 1754 | "either", 1755 | ] 1756 | 1757 | [[package]] 1758 | name = "itertools" 1759 | version = "0.12.1" 1760 | source = "registry+https://github.com/rust-lang/crates.io-index" 1761 | checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" 1762 | dependencies = [ 1763 | "either", 1764 | ] 1765 | 1766 | [[package]] 1767 | name = "itoa" 1768 | version = "1.0.11" 1769 | source = "registry+https://github.com/rust-lang/crates.io-index" 1770 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 1771 | 1772 | [[package]] 1773 | name = "js-sys" 1774 | version = "0.3.70" 1775 | source = "registry+https://github.com/rust-lang/crates.io-index" 1776 | checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" 1777 | dependencies = [ 1778 | "wasm-bindgen", 1779 | ] 1780 | 1781 | [[package]] 1782 | name = "k256" 1783 | version = "0.13.4" 1784 | source = "registry+https://github.com/rust-lang/crates.io-index" 1785 | checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" 1786 | dependencies = [ 1787 | "cfg-if", 1788 | "ecdsa", 1789 | "elliptic-curve", 1790 | "once_cell", 1791 | "sha2", 1792 | "signature", 1793 | ] 1794 | 1795 | [[package]] 1796 | name = "keccak" 1797 | version = "0.1.5" 1798 | source = "registry+https://github.com/rust-lang/crates.io-index" 1799 | checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" 1800 | dependencies = [ 1801 | "cpufeatures", 1802 | ] 1803 | 1804 | [[package]] 1805 | name = "lazy_static" 1806 | version = "1.5.0" 1807 | source = "registry+https://github.com/rust-lang/crates.io-index" 1808 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1809 | 1810 | [[package]] 1811 | name = "libc" 1812 | version = "0.2.159" 1813 | source = "registry+https://github.com/rust-lang/crates.io-index" 1814 | checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" 1815 | 1816 | [[package]] 1817 | name = "libm" 1818 | version = "0.2.8" 1819 | source = "registry+https://github.com/rust-lang/crates.io-index" 1820 | checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" 1821 | 1822 | [[package]] 1823 | name = "linux-raw-sys" 1824 | version = "0.4.14" 1825 | source = "registry+https://github.com/rust-lang/crates.io-index" 1826 | checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 1827 | 1828 | [[package]] 1829 | name = "lock_api" 1830 | version = "0.4.12" 1831 | source = "registry+https://github.com/rust-lang/crates.io-index" 1832 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1833 | dependencies = [ 1834 | "autocfg", 1835 | "scopeguard", 1836 | ] 1837 | 1838 | [[package]] 1839 | name = "log" 1840 | version = "0.4.22" 1841 | source = "registry+https://github.com/rust-lang/crates.io-index" 1842 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 1843 | 1844 | [[package]] 1845 | name = "memchr" 1846 | version = "2.7.4" 1847 | source = "registry+https://github.com/rust-lang/crates.io-index" 1848 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1849 | 1850 | [[package]] 1851 | name = "mime" 1852 | version = "0.3.17" 1853 | source = "registry+https://github.com/rust-lang/crates.io-index" 1854 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1855 | 1856 | [[package]] 1857 | name = "miniz_oxide" 1858 | version = "0.8.0" 1859 | source = "registry+https://github.com/rust-lang/crates.io-index" 1860 | checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 1861 | dependencies = [ 1862 | "adler2", 1863 | ] 1864 | 1865 | [[package]] 1866 | name = "mio" 1867 | version = "1.0.2" 1868 | source = "registry+https://github.com/rust-lang/crates.io-index" 1869 | checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" 1870 | dependencies = [ 1871 | "hermit-abi", 1872 | "libc", 1873 | "wasi", 1874 | "windows-sys 0.52.0", 1875 | ] 1876 | 1877 | [[package]] 1878 | name = "num-conv" 1879 | version = "0.1.0" 1880 | source = "registry+https://github.com/rust-lang/crates.io-index" 1881 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 1882 | 1883 | [[package]] 1884 | name = "num-traits" 1885 | version = "0.2.19" 1886 | source = "registry+https://github.com/rust-lang/crates.io-index" 1887 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1888 | dependencies = [ 1889 | "autocfg", 1890 | ] 1891 | 1892 | [[package]] 1893 | name = "num_enum" 1894 | version = "0.7.3" 1895 | source = "registry+https://github.com/rust-lang/crates.io-index" 1896 | checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" 1897 | dependencies = [ 1898 | "num_enum_derive", 1899 | ] 1900 | 1901 | [[package]] 1902 | name = "num_enum_derive" 1903 | version = "0.7.3" 1904 | source = "registry+https://github.com/rust-lang/crates.io-index" 1905 | checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" 1906 | dependencies = [ 1907 | "proc-macro-crate", 1908 | "proc-macro2", 1909 | "quote", 1910 | "syn 2.0.79", 1911 | ] 1912 | 1913 | [[package]] 1914 | name = "object" 1915 | version = "0.36.5" 1916 | source = "registry+https://github.com/rust-lang/crates.io-index" 1917 | checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" 1918 | dependencies = [ 1919 | "memchr", 1920 | ] 1921 | 1922 | [[package]] 1923 | name = "once_cell" 1924 | version = "1.20.2" 1925 | source = "registry+https://github.com/rust-lang/crates.io-index" 1926 | checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" 1927 | 1928 | [[package]] 1929 | name = "openssl-probe" 1930 | version = "0.1.5" 1931 | source = "registry+https://github.com/rust-lang/crates.io-index" 1932 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 1933 | 1934 | [[package]] 1935 | name = "p256" 1936 | version = "0.13.2" 1937 | source = "registry+https://github.com/rust-lang/crates.io-index" 1938 | checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" 1939 | dependencies = [ 1940 | "ecdsa", 1941 | "elliptic-curve", 1942 | "primeorder", 1943 | "sha2", 1944 | ] 1945 | 1946 | [[package]] 1947 | name = "parking_lot" 1948 | version = "0.12.3" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1951 | dependencies = [ 1952 | "lock_api", 1953 | "parking_lot_core", 1954 | ] 1955 | 1956 | [[package]] 1957 | name = "parking_lot_core" 1958 | version = "0.9.10" 1959 | source = "registry+https://github.com/rust-lang/crates.io-index" 1960 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1961 | dependencies = [ 1962 | "cfg-if", 1963 | "libc", 1964 | "redox_syscall", 1965 | "smallvec", 1966 | "windows-targets 0.52.6", 1967 | ] 1968 | 1969 | [[package]] 1970 | name = "paste" 1971 | version = "1.0.15" 1972 | source = "registry+https://github.com/rust-lang/crates.io-index" 1973 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1974 | 1975 | [[package]] 1976 | name = "pbkdf2" 1977 | version = "0.11.0" 1978 | source = "registry+https://github.com/rust-lang/crates.io-index" 1979 | checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" 1980 | dependencies = [ 1981 | "digest", 1982 | ] 1983 | 1984 | [[package]] 1985 | name = "pbkdf2" 1986 | version = "0.12.2" 1987 | source = "registry+https://github.com/rust-lang/crates.io-index" 1988 | checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" 1989 | dependencies = [ 1990 | "digest", 1991 | "hmac", 1992 | ] 1993 | 1994 | [[package]] 1995 | name = "percent-encoding" 1996 | version = "2.3.1" 1997 | source = "registry+https://github.com/rust-lang/crates.io-index" 1998 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1999 | 2000 | [[package]] 2001 | name = "pin-project" 2002 | version = "1.1.6" 2003 | source = "registry+https://github.com/rust-lang/crates.io-index" 2004 | checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" 2005 | dependencies = [ 2006 | "pin-project-internal", 2007 | ] 2008 | 2009 | [[package]] 2010 | name = "pin-project-internal" 2011 | version = "1.1.6" 2012 | source = "registry+https://github.com/rust-lang/crates.io-index" 2013 | checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" 2014 | dependencies = [ 2015 | "proc-macro2", 2016 | "quote", 2017 | "syn 2.0.79", 2018 | ] 2019 | 2020 | [[package]] 2021 | name = "pin-project-lite" 2022 | version = "0.2.14" 2023 | source = "registry+https://github.com/rust-lang/crates.io-index" 2024 | checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 2025 | 2026 | [[package]] 2027 | name = "pin-utils" 2028 | version = "0.1.0" 2029 | source = "registry+https://github.com/rust-lang/crates.io-index" 2030 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2031 | 2032 | [[package]] 2033 | name = "pkcs8" 2034 | version = "0.10.2" 2035 | source = "registry+https://github.com/rust-lang/crates.io-index" 2036 | checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 2037 | dependencies = [ 2038 | "der", 2039 | "spki", 2040 | ] 2041 | 2042 | [[package]] 2043 | name = "portpicker" 2044 | version = "0.1.1" 2045 | source = "registry+https://github.com/rust-lang/crates.io-index" 2046 | checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9" 2047 | dependencies = [ 2048 | "rand", 2049 | ] 2050 | 2051 | [[package]] 2052 | name = "postcard" 2053 | version = "1.0.10" 2054 | source = "registry+https://github.com/rust-lang/crates.io-index" 2055 | checksum = "5f7f0a8d620d71c457dd1d47df76bb18960378da56af4527aaa10f515eee732e" 2056 | dependencies = [ 2057 | "cobs", 2058 | "embedded-io 0.4.0", 2059 | "embedded-io 0.6.1", 2060 | "heapless", 2061 | "serde", 2062 | ] 2063 | 2064 | [[package]] 2065 | name = "powerfmt" 2066 | version = "0.2.0" 2067 | source = "registry+https://github.com/rust-lang/crates.io-index" 2068 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 2069 | 2070 | [[package]] 2071 | name = "ppv-lite86" 2072 | version = "0.2.20" 2073 | source = "registry+https://github.com/rust-lang/crates.io-index" 2074 | checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 2075 | dependencies = [ 2076 | "zerocopy", 2077 | ] 2078 | 2079 | [[package]] 2080 | name = "primeorder" 2081 | version = "0.13.6" 2082 | source = "registry+https://github.com/rust-lang/crates.io-index" 2083 | checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" 2084 | dependencies = [ 2085 | "elliptic-curve", 2086 | ] 2087 | 2088 | [[package]] 2089 | name = "primitive-types" 2090 | version = "0.12.2" 2091 | source = "registry+https://github.com/rust-lang/crates.io-index" 2092 | checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" 2093 | dependencies = [ 2094 | "fixed-hash", 2095 | "uint", 2096 | ] 2097 | 2098 | [[package]] 2099 | name = "proc-macro-crate" 2100 | version = "3.2.0" 2101 | source = "registry+https://github.com/rust-lang/crates.io-index" 2102 | checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" 2103 | dependencies = [ 2104 | "toml_edit", 2105 | ] 2106 | 2107 | [[package]] 2108 | name = "proc-macro-error" 2109 | version = "1.0.4" 2110 | source = "registry+https://github.com/rust-lang/crates.io-index" 2111 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 2112 | dependencies = [ 2113 | "proc-macro-error-attr", 2114 | "proc-macro2", 2115 | "quote", 2116 | "version_check", 2117 | ] 2118 | 2119 | [[package]] 2120 | name = "proc-macro-error-attr" 2121 | version = "1.0.4" 2122 | source = "registry+https://github.com/rust-lang/crates.io-index" 2123 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 2124 | dependencies = [ 2125 | "proc-macro2", 2126 | "quote", 2127 | "version_check", 2128 | ] 2129 | 2130 | [[package]] 2131 | name = "proc-macro2" 2132 | version = "1.0.86" 2133 | source = "registry+https://github.com/rust-lang/crates.io-index" 2134 | checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 2135 | dependencies = [ 2136 | "unicode-ident", 2137 | ] 2138 | 2139 | [[package]] 2140 | name = "prometheus-client" 2141 | version = "0.22.3" 2142 | source = "registry+https://github.com/rust-lang/crates.io-index" 2143 | checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca" 2144 | dependencies = [ 2145 | "dtoa", 2146 | "itoa", 2147 | "parking_lot", 2148 | "prometheus-client-derive-encode", 2149 | ] 2150 | 2151 | [[package]] 2152 | name = "prometheus-client-derive-encode" 2153 | version = "0.4.2" 2154 | source = "registry+https://github.com/rust-lang/crates.io-index" 2155 | checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" 2156 | dependencies = [ 2157 | "proc-macro2", 2158 | "quote", 2159 | "syn 2.0.79", 2160 | ] 2161 | 2162 | [[package]] 2163 | name = "psl-types" 2164 | version = "2.0.11" 2165 | source = "registry+https://github.com/rust-lang/crates.io-index" 2166 | checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" 2167 | 2168 | [[package]] 2169 | name = "publicsuffix" 2170 | version = "2.2.3" 2171 | source = "registry+https://github.com/rust-lang/crates.io-index" 2172 | checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" 2173 | dependencies = [ 2174 | "idna 0.3.0", 2175 | "psl-types", 2176 | ] 2177 | 2178 | [[package]] 2179 | name = "quote" 2180 | version = "1.0.37" 2181 | source = "registry+https://github.com/rust-lang/crates.io-index" 2182 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 2183 | dependencies = [ 2184 | "proc-macro2", 2185 | ] 2186 | 2187 | [[package]] 2188 | name = "radium" 2189 | version = "0.7.0" 2190 | source = "registry+https://github.com/rust-lang/crates.io-index" 2191 | checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 2192 | 2193 | [[package]] 2194 | name = "rand" 2195 | version = "0.8.5" 2196 | source = "registry+https://github.com/rust-lang/crates.io-index" 2197 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2198 | dependencies = [ 2199 | "libc", 2200 | "rand_chacha", 2201 | "rand_core", 2202 | ] 2203 | 2204 | [[package]] 2205 | name = "rand_chacha" 2206 | version = "0.3.1" 2207 | source = "registry+https://github.com/rust-lang/crates.io-index" 2208 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2209 | dependencies = [ 2210 | "ppv-lite86", 2211 | "rand_core", 2212 | ] 2213 | 2214 | [[package]] 2215 | name = "rand_core" 2216 | version = "0.6.4" 2217 | source = "registry+https://github.com/rust-lang/crates.io-index" 2218 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2219 | dependencies = [ 2220 | "getrandom", 2221 | ] 2222 | 2223 | [[package]] 2224 | name = "redox_syscall" 2225 | version = "0.5.7" 2226 | source = "registry+https://github.com/rust-lang/crates.io-index" 2227 | checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" 2228 | dependencies = [ 2229 | "bitflags 2.6.0", 2230 | ] 2231 | 2232 | [[package]] 2233 | name = "regex" 2234 | version = "1.11.0" 2235 | source = "registry+https://github.com/rust-lang/crates.io-index" 2236 | checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" 2237 | dependencies = [ 2238 | "aho-corasick", 2239 | "memchr", 2240 | "regex-automata", 2241 | "regex-syntax", 2242 | ] 2243 | 2244 | [[package]] 2245 | name = "regex-automata" 2246 | version = "0.4.8" 2247 | source = "registry+https://github.com/rust-lang/crates.io-index" 2248 | checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" 2249 | dependencies = [ 2250 | "aho-corasick", 2251 | "memchr", 2252 | "regex-syntax", 2253 | ] 2254 | 2255 | [[package]] 2256 | name = "regex-syntax" 2257 | version = "0.8.5" 2258 | source = "registry+https://github.com/rust-lang/crates.io-index" 2259 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 2260 | 2261 | [[package]] 2262 | name = "reqwest" 2263 | version = "0.11.27" 2264 | source = "registry+https://github.com/rust-lang/crates.io-index" 2265 | checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" 2266 | dependencies = [ 2267 | "base64 0.21.7", 2268 | "bytes", 2269 | "cookie", 2270 | "cookie_store", 2271 | "encoding_rs", 2272 | "futures-core", 2273 | "futures-util", 2274 | "h2", 2275 | "http", 2276 | "http-body", 2277 | "hyper", 2278 | "hyper-rustls", 2279 | "ipnet", 2280 | "js-sys", 2281 | "log", 2282 | "mime", 2283 | "once_cell", 2284 | "percent-encoding", 2285 | "pin-project-lite", 2286 | "rustls", 2287 | "rustls-pemfile", 2288 | "serde", 2289 | "serde_json", 2290 | "serde_urlencoded", 2291 | "sync_wrapper", 2292 | "system-configuration", 2293 | "tokio", 2294 | "tokio-rustls", 2295 | "tower-service", 2296 | "url", 2297 | "wasm-bindgen", 2298 | "wasm-bindgen-futures", 2299 | "web-sys", 2300 | "webpki-roots", 2301 | "winreg", 2302 | ] 2303 | 2304 | [[package]] 2305 | name = "rfc6979" 2306 | version = "0.4.0" 2307 | source = "registry+https://github.com/rust-lang/crates.io-index" 2308 | checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" 2309 | dependencies = [ 2310 | "hmac", 2311 | "subtle", 2312 | ] 2313 | 2314 | [[package]] 2315 | name = "ring" 2316 | version = "0.17.8" 2317 | source = "registry+https://github.com/rust-lang/crates.io-index" 2318 | checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" 2319 | dependencies = [ 2320 | "cc", 2321 | "cfg-if", 2322 | "getrandom", 2323 | "libc", 2324 | "spin", 2325 | "untrusted", 2326 | "windows-sys 0.52.0", 2327 | ] 2328 | 2329 | [[package]] 2330 | name = "ripemd" 2331 | version = "0.1.3" 2332 | source = "registry+https://github.com/rust-lang/crates.io-index" 2333 | checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" 2334 | dependencies = [ 2335 | "digest", 2336 | ] 2337 | 2338 | [[package]] 2339 | name = "rustc-demangle" 2340 | version = "0.1.24" 2341 | source = "registry+https://github.com/rust-lang/crates.io-index" 2342 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 2343 | 2344 | [[package]] 2345 | name = "rustc_version" 2346 | version = "0.4.1" 2347 | source = "registry+https://github.com/rust-lang/crates.io-index" 2348 | checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 2349 | dependencies = [ 2350 | "semver", 2351 | ] 2352 | 2353 | [[package]] 2354 | name = "rustix" 2355 | version = "0.38.37" 2356 | source = "registry+https://github.com/rust-lang/crates.io-index" 2357 | checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" 2358 | dependencies = [ 2359 | "bitflags 2.6.0", 2360 | "errno", 2361 | "libc", 2362 | "linux-raw-sys", 2363 | "windows-sys 0.52.0", 2364 | ] 2365 | 2366 | [[package]] 2367 | name = "rustls" 2368 | version = "0.21.12" 2369 | source = "registry+https://github.com/rust-lang/crates.io-index" 2370 | checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" 2371 | dependencies = [ 2372 | "log", 2373 | "ring", 2374 | "rustls-webpki", 2375 | "sct", 2376 | ] 2377 | 2378 | [[package]] 2379 | name = "rustls-native-certs" 2380 | version = "0.6.3" 2381 | source = "registry+https://github.com/rust-lang/crates.io-index" 2382 | checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" 2383 | dependencies = [ 2384 | "openssl-probe", 2385 | "rustls-pemfile", 2386 | "schannel", 2387 | "security-framework", 2388 | ] 2389 | 2390 | [[package]] 2391 | name = "rustls-pemfile" 2392 | version = "1.0.4" 2393 | source = "registry+https://github.com/rust-lang/crates.io-index" 2394 | checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" 2395 | dependencies = [ 2396 | "base64 0.21.7", 2397 | ] 2398 | 2399 | [[package]] 2400 | name = "rustls-webpki" 2401 | version = "0.101.7" 2402 | source = "registry+https://github.com/rust-lang/crates.io-index" 2403 | checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" 2404 | dependencies = [ 2405 | "ring", 2406 | "untrusted", 2407 | ] 2408 | 2409 | [[package]] 2410 | name = "rustversion" 2411 | version = "1.0.17" 2412 | source = "registry+https://github.com/rust-lang/crates.io-index" 2413 | checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" 2414 | 2415 | [[package]] 2416 | name = "ryu" 2417 | version = "1.0.18" 2418 | source = "registry+https://github.com/rust-lang/crates.io-index" 2419 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 2420 | 2421 | [[package]] 2422 | name = "salsa20" 2423 | version = "0.10.2" 2424 | source = "registry+https://github.com/rust-lang/crates.io-index" 2425 | checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" 2426 | dependencies = [ 2427 | "cipher", 2428 | ] 2429 | 2430 | [[package]] 2431 | name = "schannel" 2432 | version = "0.1.24" 2433 | source = "registry+https://github.com/rust-lang/crates.io-index" 2434 | checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" 2435 | dependencies = [ 2436 | "windows-sys 0.59.0", 2437 | ] 2438 | 2439 | [[package]] 2440 | name = "schemafy_core" 2441 | version = "0.5.2" 2442 | source = "registry+https://github.com/rust-lang/crates.io-index" 2443 | checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" 2444 | dependencies = [ 2445 | "serde", 2446 | "serde_json", 2447 | ] 2448 | 2449 | [[package]] 2450 | name = "schemafy_lib" 2451 | version = "0.5.2" 2452 | source = "registry+https://github.com/rust-lang/crates.io-index" 2453 | checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" 2454 | dependencies = [ 2455 | "Inflector", 2456 | "proc-macro2", 2457 | "quote", 2458 | "schemafy_core", 2459 | "serde", 2460 | "serde_derive", 2461 | "serde_json", 2462 | "syn 1.0.109", 2463 | ] 2464 | 2465 | [[package]] 2466 | name = "scopeguard" 2467 | version = "1.2.0" 2468 | source = "registry+https://github.com/rust-lang/crates.io-index" 2469 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2470 | 2471 | [[package]] 2472 | name = "scrypt" 2473 | version = "0.10.0" 2474 | source = "registry+https://github.com/rust-lang/crates.io-index" 2475 | checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" 2476 | dependencies = [ 2477 | "hmac", 2478 | "pbkdf2 0.11.0", 2479 | "salsa20", 2480 | "sha2", 2481 | ] 2482 | 2483 | [[package]] 2484 | name = "sct" 2485 | version = "0.7.1" 2486 | source = "registry+https://github.com/rust-lang/crates.io-index" 2487 | checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" 2488 | dependencies = [ 2489 | "ring", 2490 | "untrusted", 2491 | ] 2492 | 2493 | [[package]] 2494 | name = "sec1" 2495 | version = "0.7.3" 2496 | source = "registry+https://github.com/rust-lang/crates.io-index" 2497 | checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" 2498 | dependencies = [ 2499 | "base16ct", 2500 | "der", 2501 | "generic-array", 2502 | "pkcs8", 2503 | "subtle", 2504 | "zeroize", 2505 | ] 2506 | 2507 | [[package]] 2508 | name = "secp256k1" 2509 | version = "0.29.1" 2510 | source = "registry+https://github.com/rust-lang/crates.io-index" 2511 | checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" 2512 | dependencies = [ 2513 | "rand", 2514 | "secp256k1-sys", 2515 | ] 2516 | 2517 | [[package]] 2518 | name = "secp256k1-sys" 2519 | version = "0.10.1" 2520 | source = "registry+https://github.com/rust-lang/crates.io-index" 2521 | checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" 2522 | dependencies = [ 2523 | "cc", 2524 | ] 2525 | 2526 | [[package]] 2527 | name = "secrecy" 2528 | version = "0.8.0" 2529 | source = "registry+https://github.com/rust-lang/crates.io-index" 2530 | checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" 2531 | dependencies = [ 2532 | "zeroize", 2533 | ] 2534 | 2535 | [[package]] 2536 | name = "security-framework" 2537 | version = "2.11.1" 2538 | source = "registry+https://github.com/rust-lang/crates.io-index" 2539 | checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 2540 | dependencies = [ 2541 | "bitflags 2.6.0", 2542 | "core-foundation", 2543 | "core-foundation-sys", 2544 | "libc", 2545 | "security-framework-sys", 2546 | ] 2547 | 2548 | [[package]] 2549 | name = "security-framework-sys" 2550 | version = "2.12.0" 2551 | source = "registry+https://github.com/rust-lang/crates.io-index" 2552 | checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" 2553 | dependencies = [ 2554 | "core-foundation-sys", 2555 | "libc", 2556 | ] 2557 | 2558 | [[package]] 2559 | name = "semver" 2560 | version = "1.0.23" 2561 | source = "registry+https://github.com/rust-lang/crates.io-index" 2562 | checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" 2563 | 2564 | [[package]] 2565 | name = "serde" 2566 | version = "1.0.210" 2567 | source = "registry+https://github.com/rust-lang/crates.io-index" 2568 | checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" 2569 | dependencies = [ 2570 | "serde_derive", 2571 | ] 2572 | 2573 | [[package]] 2574 | name = "serde_derive" 2575 | version = "1.0.210" 2576 | source = "registry+https://github.com/rust-lang/crates.io-index" 2577 | checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" 2578 | dependencies = [ 2579 | "proc-macro2", 2580 | "quote", 2581 | "syn 2.0.79", 2582 | ] 2583 | 2584 | [[package]] 2585 | name = "serde_json" 2586 | version = "1.0.128" 2587 | source = "registry+https://github.com/rust-lang/crates.io-index" 2588 | checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" 2589 | dependencies = [ 2590 | "itoa", 2591 | "memchr", 2592 | "ryu", 2593 | "serde", 2594 | ] 2595 | 2596 | [[package]] 2597 | name = "serde_urlencoded" 2598 | version = "0.7.1" 2599 | source = "registry+https://github.com/rust-lang/crates.io-index" 2600 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 2601 | dependencies = [ 2602 | "form_urlencoded", 2603 | "itoa", 2604 | "ryu", 2605 | "serde", 2606 | ] 2607 | 2608 | [[package]] 2609 | name = "serde_with" 2610 | version = "3.11.0" 2611 | source = "registry+https://github.com/rust-lang/crates.io-index" 2612 | checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" 2613 | dependencies = [ 2614 | "base64 0.22.1", 2615 | "chrono", 2616 | "hex", 2617 | "indexmap 1.9.3", 2618 | "indexmap 2.6.0", 2619 | "serde", 2620 | "serde_derive", 2621 | "serde_json", 2622 | "serde_with_macros", 2623 | "time", 2624 | ] 2625 | 2626 | [[package]] 2627 | name = "serde_with_macros" 2628 | version = "3.11.0" 2629 | source = "registry+https://github.com/rust-lang/crates.io-index" 2630 | checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" 2631 | dependencies = [ 2632 | "darling 0.20.10", 2633 | "proc-macro2", 2634 | "quote", 2635 | "syn 2.0.79", 2636 | ] 2637 | 2638 | [[package]] 2639 | name = "sha2" 2640 | version = "0.10.8" 2641 | source = "registry+https://github.com/rust-lang/crates.io-index" 2642 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 2643 | dependencies = [ 2644 | "cfg-if", 2645 | "cpufeatures", 2646 | "digest", 2647 | ] 2648 | 2649 | [[package]] 2650 | name = "sha3" 2651 | version = "0.10.8" 2652 | source = "registry+https://github.com/rust-lang/crates.io-index" 2653 | checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" 2654 | dependencies = [ 2655 | "digest", 2656 | "keccak", 2657 | ] 2658 | 2659 | [[package]] 2660 | name = "shlex" 2661 | version = "1.3.0" 2662 | source = "registry+https://github.com/rust-lang/crates.io-index" 2663 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 2664 | 2665 | [[package]] 2666 | name = "signal-hook-registry" 2667 | version = "1.4.2" 2668 | source = "registry+https://github.com/rust-lang/crates.io-index" 2669 | checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 2670 | dependencies = [ 2671 | "libc", 2672 | ] 2673 | 2674 | [[package]] 2675 | name = "signature" 2676 | version = "2.2.0" 2677 | source = "registry+https://github.com/rust-lang/crates.io-index" 2678 | checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" 2679 | dependencies = [ 2680 | "digest", 2681 | "rand_core", 2682 | ] 2683 | 2684 | [[package]] 2685 | name = "slab" 2686 | version = "0.4.9" 2687 | source = "registry+https://github.com/rust-lang/crates.io-index" 2688 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 2689 | dependencies = [ 2690 | "autocfg", 2691 | ] 2692 | 2693 | [[package]] 2694 | name = "smallvec" 2695 | version = "1.13.2" 2696 | source = "registry+https://github.com/rust-lang/crates.io-index" 2697 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 2698 | 2699 | [[package]] 2700 | name = "socket2" 2701 | version = "0.5.7" 2702 | source = "registry+https://github.com/rust-lang/crates.io-index" 2703 | checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 2704 | dependencies = [ 2705 | "libc", 2706 | "windows-sys 0.52.0", 2707 | ] 2708 | 2709 | [[package]] 2710 | name = "spin" 2711 | version = "0.9.8" 2712 | source = "registry+https://github.com/rust-lang/crates.io-index" 2713 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 2714 | dependencies = [ 2715 | "lock_api", 2716 | ] 2717 | 2718 | [[package]] 2719 | name = "spki" 2720 | version = "0.7.3" 2721 | source = "registry+https://github.com/rust-lang/crates.io-index" 2722 | checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 2723 | dependencies = [ 2724 | "base64ct", 2725 | "der", 2726 | ] 2727 | 2728 | [[package]] 2729 | name = "stable_deref_trait" 2730 | version = "1.2.0" 2731 | source = "registry+https://github.com/rust-lang/crates.io-index" 2732 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 2733 | 2734 | [[package]] 2735 | name = "static_assertions" 2736 | version = "1.1.0" 2737 | source = "registry+https://github.com/rust-lang/crates.io-index" 2738 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 2739 | 2740 | [[package]] 2741 | name = "strsim" 2742 | version = "0.10.0" 2743 | source = "registry+https://github.com/rust-lang/crates.io-index" 2744 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 2745 | 2746 | [[package]] 2747 | name = "strsim" 2748 | version = "0.11.1" 2749 | source = "registry+https://github.com/rust-lang/crates.io-index" 2750 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 2751 | 2752 | [[package]] 2753 | name = "strum" 2754 | version = "0.24.1" 2755 | source = "registry+https://github.com/rust-lang/crates.io-index" 2756 | checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" 2757 | dependencies = [ 2758 | "strum_macros 0.24.3", 2759 | ] 2760 | 2761 | [[package]] 2762 | name = "strum" 2763 | version = "0.25.0" 2764 | source = "registry+https://github.com/rust-lang/crates.io-index" 2765 | checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" 2766 | 2767 | [[package]] 2768 | name = "strum_macros" 2769 | version = "0.24.3" 2770 | source = "registry+https://github.com/rust-lang/crates.io-index" 2771 | checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" 2772 | dependencies = [ 2773 | "heck", 2774 | "proc-macro2", 2775 | "quote", 2776 | "rustversion", 2777 | "syn 1.0.109", 2778 | ] 2779 | 2780 | [[package]] 2781 | name = "strum_macros" 2782 | version = "0.25.3" 2783 | source = "registry+https://github.com/rust-lang/crates.io-index" 2784 | checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" 2785 | dependencies = [ 2786 | "heck", 2787 | "proc-macro2", 2788 | "quote", 2789 | "rustversion", 2790 | "syn 2.0.79", 2791 | ] 2792 | 2793 | [[package]] 2794 | name = "subtle" 2795 | version = "2.6.1" 2796 | source = "registry+https://github.com/rust-lang/crates.io-index" 2797 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 2798 | 2799 | [[package]] 2800 | name = "sway-store" 2801 | version = "0.1.0" 2802 | dependencies = [ 2803 | "fuel-core-client", 2804 | "fuels", 2805 | "tokio", 2806 | ] 2807 | 2808 | [[package]] 2809 | name = "syn" 2810 | version = "1.0.109" 2811 | source = "registry+https://github.com/rust-lang/crates.io-index" 2812 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2813 | dependencies = [ 2814 | "proc-macro2", 2815 | "quote", 2816 | "unicode-ident", 2817 | ] 2818 | 2819 | [[package]] 2820 | name = "syn" 2821 | version = "2.0.79" 2822 | source = "registry+https://github.com/rust-lang/crates.io-index" 2823 | checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" 2824 | dependencies = [ 2825 | "proc-macro2", 2826 | "quote", 2827 | "unicode-ident", 2828 | ] 2829 | 2830 | [[package]] 2831 | name = "sync_wrapper" 2832 | version = "0.1.2" 2833 | source = "registry+https://github.com/rust-lang/crates.io-index" 2834 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 2835 | 2836 | [[package]] 2837 | name = "synstructure" 2838 | version = "0.13.1" 2839 | source = "registry+https://github.com/rust-lang/crates.io-index" 2840 | checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 2841 | dependencies = [ 2842 | "proc-macro2", 2843 | "quote", 2844 | "syn 2.0.79", 2845 | ] 2846 | 2847 | [[package]] 2848 | name = "system-configuration" 2849 | version = "0.5.1" 2850 | source = "registry+https://github.com/rust-lang/crates.io-index" 2851 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 2852 | dependencies = [ 2853 | "bitflags 1.3.2", 2854 | "core-foundation", 2855 | "system-configuration-sys", 2856 | ] 2857 | 2858 | [[package]] 2859 | name = "system-configuration-sys" 2860 | version = "0.5.0" 2861 | source = "registry+https://github.com/rust-lang/crates.io-index" 2862 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 2863 | dependencies = [ 2864 | "core-foundation-sys", 2865 | "libc", 2866 | ] 2867 | 2868 | [[package]] 2869 | name = "tai64" 2870 | version = "4.0.0" 2871 | source = "registry+https://github.com/rust-lang/crates.io-index" 2872 | checksum = "ed7401421025f4132e6c1f7af5e7f8287383969f36e6628016cd509b8d3da9dc" 2873 | dependencies = [ 2874 | "serde", 2875 | ] 2876 | 2877 | [[package]] 2878 | name = "tap" 2879 | version = "1.0.1" 2880 | source = "registry+https://github.com/rust-lang/crates.io-index" 2881 | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 2882 | 2883 | [[package]] 2884 | name = "tempfile" 2885 | version = "3.13.0" 2886 | source = "registry+https://github.com/rust-lang/crates.io-index" 2887 | checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" 2888 | dependencies = [ 2889 | "cfg-if", 2890 | "fastrand", 2891 | "once_cell", 2892 | "rustix", 2893 | "windows-sys 0.59.0", 2894 | ] 2895 | 2896 | [[package]] 2897 | name = "thiserror" 2898 | version = "1.0.64" 2899 | source = "registry+https://github.com/rust-lang/crates.io-index" 2900 | checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" 2901 | dependencies = [ 2902 | "thiserror-impl", 2903 | ] 2904 | 2905 | [[package]] 2906 | name = "thiserror-impl" 2907 | version = "1.0.64" 2908 | source = "registry+https://github.com/rust-lang/crates.io-index" 2909 | checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" 2910 | dependencies = [ 2911 | "proc-macro2", 2912 | "quote", 2913 | "syn 2.0.79", 2914 | ] 2915 | 2916 | [[package]] 2917 | name = "time" 2918 | version = "0.3.36" 2919 | source = "registry+https://github.com/rust-lang/crates.io-index" 2920 | checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 2921 | dependencies = [ 2922 | "deranged", 2923 | "itoa", 2924 | "num-conv", 2925 | "powerfmt", 2926 | "serde", 2927 | "time-core", 2928 | "time-macros", 2929 | ] 2930 | 2931 | [[package]] 2932 | name = "time-core" 2933 | version = "0.1.2" 2934 | source = "registry+https://github.com/rust-lang/crates.io-index" 2935 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 2936 | 2937 | [[package]] 2938 | name = "time-macros" 2939 | version = "0.2.18" 2940 | source = "registry+https://github.com/rust-lang/crates.io-index" 2941 | checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" 2942 | dependencies = [ 2943 | "num-conv", 2944 | "time-core", 2945 | ] 2946 | 2947 | [[package]] 2948 | name = "tinyvec" 2949 | version = "1.8.0" 2950 | source = "registry+https://github.com/rust-lang/crates.io-index" 2951 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 2952 | dependencies = [ 2953 | "tinyvec_macros", 2954 | ] 2955 | 2956 | [[package]] 2957 | name = "tinyvec_macros" 2958 | version = "0.1.1" 2959 | source = "registry+https://github.com/rust-lang/crates.io-index" 2960 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2961 | 2962 | [[package]] 2963 | name = "tokio" 2964 | version = "1.40.0" 2965 | source = "registry+https://github.com/rust-lang/crates.io-index" 2966 | checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" 2967 | dependencies = [ 2968 | "backtrace", 2969 | "bytes", 2970 | "libc", 2971 | "mio", 2972 | "parking_lot", 2973 | "pin-project-lite", 2974 | "signal-hook-registry", 2975 | "socket2", 2976 | "tokio-macros", 2977 | "windows-sys 0.52.0", 2978 | ] 2979 | 2980 | [[package]] 2981 | name = "tokio-io-timeout" 2982 | version = "1.2.0" 2983 | source = "registry+https://github.com/rust-lang/crates.io-index" 2984 | checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" 2985 | dependencies = [ 2986 | "pin-project-lite", 2987 | "tokio", 2988 | ] 2989 | 2990 | [[package]] 2991 | name = "tokio-macros" 2992 | version = "2.4.0" 2993 | source = "registry+https://github.com/rust-lang/crates.io-index" 2994 | checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" 2995 | dependencies = [ 2996 | "proc-macro2", 2997 | "quote", 2998 | "syn 2.0.79", 2999 | ] 3000 | 3001 | [[package]] 3002 | name = "tokio-rustls" 3003 | version = "0.24.1" 3004 | source = "registry+https://github.com/rust-lang/crates.io-index" 3005 | checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" 3006 | dependencies = [ 3007 | "rustls", 3008 | "tokio", 3009 | ] 3010 | 3011 | [[package]] 3012 | name = "tokio-stream" 3013 | version = "0.1.16" 3014 | source = "registry+https://github.com/rust-lang/crates.io-index" 3015 | checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" 3016 | dependencies = [ 3017 | "futures-core", 3018 | "pin-project-lite", 3019 | "tokio", 3020 | ] 3021 | 3022 | [[package]] 3023 | name = "tokio-util" 3024 | version = "0.7.12" 3025 | source = "registry+https://github.com/rust-lang/crates.io-index" 3026 | checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" 3027 | dependencies = [ 3028 | "bytes", 3029 | "futures-core", 3030 | "futures-sink", 3031 | "pin-project-lite", 3032 | "tokio", 3033 | ] 3034 | 3035 | [[package]] 3036 | name = "toml_datetime" 3037 | version = "0.6.8" 3038 | source = "registry+https://github.com/rust-lang/crates.io-index" 3039 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 3040 | 3041 | [[package]] 3042 | name = "toml_edit" 3043 | version = "0.22.22" 3044 | source = "registry+https://github.com/rust-lang/crates.io-index" 3045 | checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" 3046 | dependencies = [ 3047 | "indexmap 2.6.0", 3048 | "toml_datetime", 3049 | "winnow", 3050 | ] 3051 | 3052 | [[package]] 3053 | name = "tower-service" 3054 | version = "0.3.3" 3055 | source = "registry+https://github.com/rust-lang/crates.io-index" 3056 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 3057 | 3058 | [[package]] 3059 | name = "tracing" 3060 | version = "0.1.40" 3061 | source = "registry+https://github.com/rust-lang/crates.io-index" 3062 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 3063 | dependencies = [ 3064 | "pin-project-lite", 3065 | "tracing-attributes", 3066 | "tracing-core", 3067 | ] 3068 | 3069 | [[package]] 3070 | name = "tracing-attributes" 3071 | version = "0.1.27" 3072 | source = "registry+https://github.com/rust-lang/crates.io-index" 3073 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 3074 | dependencies = [ 3075 | "proc-macro2", 3076 | "quote", 3077 | "syn 2.0.79", 3078 | ] 3079 | 3080 | [[package]] 3081 | name = "tracing-core" 3082 | version = "0.1.32" 3083 | source = "registry+https://github.com/rust-lang/crates.io-index" 3084 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 3085 | dependencies = [ 3086 | "once_cell", 3087 | ] 3088 | 3089 | [[package]] 3090 | name = "try-lock" 3091 | version = "0.2.5" 3092 | source = "registry+https://github.com/rust-lang/crates.io-index" 3093 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 3094 | 3095 | [[package]] 3096 | name = "typenum" 3097 | version = "1.17.0" 3098 | source = "registry+https://github.com/rust-lang/crates.io-index" 3099 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 3100 | 3101 | [[package]] 3102 | name = "uint" 3103 | version = "0.9.5" 3104 | source = "registry+https://github.com/rust-lang/crates.io-index" 3105 | checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" 3106 | dependencies = [ 3107 | "byteorder", 3108 | "crunchy", 3109 | "hex", 3110 | "static_assertions", 3111 | ] 3112 | 3113 | [[package]] 3114 | name = "unicode-bidi" 3115 | version = "0.3.17" 3116 | source = "registry+https://github.com/rust-lang/crates.io-index" 3117 | checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" 3118 | 3119 | [[package]] 3120 | name = "unicode-ident" 3121 | version = "1.0.13" 3122 | source = "registry+https://github.com/rust-lang/crates.io-index" 3123 | checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 3124 | 3125 | [[package]] 3126 | name = "unicode-normalization" 3127 | version = "0.1.24" 3128 | source = "registry+https://github.com/rust-lang/crates.io-index" 3129 | checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 3130 | dependencies = [ 3131 | "tinyvec", 3132 | ] 3133 | 3134 | [[package]] 3135 | name = "unreachable" 3136 | version = "1.0.0" 3137 | source = "registry+https://github.com/rust-lang/crates.io-index" 3138 | checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" 3139 | dependencies = [ 3140 | "void", 3141 | ] 3142 | 3143 | [[package]] 3144 | name = "untrusted" 3145 | version = "0.9.0" 3146 | source = "registry+https://github.com/rust-lang/crates.io-index" 3147 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 3148 | 3149 | [[package]] 3150 | name = "url" 3151 | version = "2.5.2" 3152 | source = "registry+https://github.com/rust-lang/crates.io-index" 3153 | checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" 3154 | dependencies = [ 3155 | "form_urlencoded", 3156 | "idna 0.5.0", 3157 | "percent-encoding", 3158 | ] 3159 | 3160 | [[package]] 3161 | name = "uuid" 3162 | version = "0.8.2" 3163 | source = "registry+https://github.com/rust-lang/crates.io-index" 3164 | checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" 3165 | dependencies = [ 3166 | "getrandom", 3167 | "serde", 3168 | ] 3169 | 3170 | [[package]] 3171 | name = "version_check" 3172 | version = "0.9.5" 3173 | source = "registry+https://github.com/rust-lang/crates.io-index" 3174 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 3175 | 3176 | [[package]] 3177 | name = "void" 3178 | version = "1.0.2" 3179 | source = "registry+https://github.com/rust-lang/crates.io-index" 3180 | checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 3181 | 3182 | [[package]] 3183 | name = "want" 3184 | version = "0.3.1" 3185 | source = "registry+https://github.com/rust-lang/crates.io-index" 3186 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 3187 | dependencies = [ 3188 | "try-lock", 3189 | ] 3190 | 3191 | [[package]] 3192 | name = "wasi" 3193 | version = "0.11.0+wasi-snapshot-preview1" 3194 | source = "registry+https://github.com/rust-lang/crates.io-index" 3195 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 3196 | 3197 | [[package]] 3198 | name = "wasm-bindgen" 3199 | version = "0.2.93" 3200 | source = "registry+https://github.com/rust-lang/crates.io-index" 3201 | checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" 3202 | dependencies = [ 3203 | "cfg-if", 3204 | "once_cell", 3205 | "wasm-bindgen-macro", 3206 | ] 3207 | 3208 | [[package]] 3209 | name = "wasm-bindgen-backend" 3210 | version = "0.2.93" 3211 | source = "registry+https://github.com/rust-lang/crates.io-index" 3212 | checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" 3213 | dependencies = [ 3214 | "bumpalo", 3215 | "log", 3216 | "once_cell", 3217 | "proc-macro2", 3218 | "quote", 3219 | "syn 2.0.79", 3220 | "wasm-bindgen-shared", 3221 | ] 3222 | 3223 | [[package]] 3224 | name = "wasm-bindgen-futures" 3225 | version = "0.4.43" 3226 | source = "registry+https://github.com/rust-lang/crates.io-index" 3227 | checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" 3228 | dependencies = [ 3229 | "cfg-if", 3230 | "js-sys", 3231 | "wasm-bindgen", 3232 | "web-sys", 3233 | ] 3234 | 3235 | [[package]] 3236 | name = "wasm-bindgen-macro" 3237 | version = "0.2.93" 3238 | source = "registry+https://github.com/rust-lang/crates.io-index" 3239 | checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" 3240 | dependencies = [ 3241 | "quote", 3242 | "wasm-bindgen-macro-support", 3243 | ] 3244 | 3245 | [[package]] 3246 | name = "wasm-bindgen-macro-support" 3247 | version = "0.2.93" 3248 | source = "registry+https://github.com/rust-lang/crates.io-index" 3249 | checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" 3250 | dependencies = [ 3251 | "proc-macro2", 3252 | "quote", 3253 | "syn 2.0.79", 3254 | "wasm-bindgen-backend", 3255 | "wasm-bindgen-shared", 3256 | ] 3257 | 3258 | [[package]] 3259 | name = "wasm-bindgen-shared" 3260 | version = "0.2.93" 3261 | source = "registry+https://github.com/rust-lang/crates.io-index" 3262 | checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" 3263 | 3264 | [[package]] 3265 | name = "web-sys" 3266 | version = "0.3.70" 3267 | source = "registry+https://github.com/rust-lang/crates.io-index" 3268 | checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" 3269 | dependencies = [ 3270 | "js-sys", 3271 | "wasm-bindgen", 3272 | ] 3273 | 3274 | [[package]] 3275 | name = "webpki-roots" 3276 | version = "0.25.4" 3277 | source = "registry+https://github.com/rust-lang/crates.io-index" 3278 | checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" 3279 | 3280 | [[package]] 3281 | name = "which" 3282 | version = "6.0.3" 3283 | source = "registry+https://github.com/rust-lang/crates.io-index" 3284 | checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" 3285 | dependencies = [ 3286 | "either", 3287 | "home", 3288 | "rustix", 3289 | "winsafe", 3290 | ] 3291 | 3292 | [[package]] 3293 | name = "windows-core" 3294 | version = "0.52.0" 3295 | source = "registry+https://github.com/rust-lang/crates.io-index" 3296 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 3297 | dependencies = [ 3298 | "windows-targets 0.52.6", 3299 | ] 3300 | 3301 | [[package]] 3302 | name = "windows-sys" 3303 | version = "0.48.0" 3304 | source = "registry+https://github.com/rust-lang/crates.io-index" 3305 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3306 | dependencies = [ 3307 | "windows-targets 0.48.5", 3308 | ] 3309 | 3310 | [[package]] 3311 | name = "windows-sys" 3312 | version = "0.52.0" 3313 | source = "registry+https://github.com/rust-lang/crates.io-index" 3314 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 3315 | dependencies = [ 3316 | "windows-targets 0.52.6", 3317 | ] 3318 | 3319 | [[package]] 3320 | name = "windows-sys" 3321 | version = "0.59.0" 3322 | source = "registry+https://github.com/rust-lang/crates.io-index" 3323 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 3324 | dependencies = [ 3325 | "windows-targets 0.52.6", 3326 | ] 3327 | 3328 | [[package]] 3329 | name = "windows-targets" 3330 | version = "0.48.5" 3331 | source = "registry+https://github.com/rust-lang/crates.io-index" 3332 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 3333 | dependencies = [ 3334 | "windows_aarch64_gnullvm 0.48.5", 3335 | "windows_aarch64_msvc 0.48.5", 3336 | "windows_i686_gnu 0.48.5", 3337 | "windows_i686_msvc 0.48.5", 3338 | "windows_x86_64_gnu 0.48.5", 3339 | "windows_x86_64_gnullvm 0.48.5", 3340 | "windows_x86_64_msvc 0.48.5", 3341 | ] 3342 | 3343 | [[package]] 3344 | name = "windows-targets" 3345 | version = "0.52.6" 3346 | source = "registry+https://github.com/rust-lang/crates.io-index" 3347 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 3348 | dependencies = [ 3349 | "windows_aarch64_gnullvm 0.52.6", 3350 | "windows_aarch64_msvc 0.52.6", 3351 | "windows_i686_gnu 0.52.6", 3352 | "windows_i686_gnullvm", 3353 | "windows_i686_msvc 0.52.6", 3354 | "windows_x86_64_gnu 0.52.6", 3355 | "windows_x86_64_gnullvm 0.52.6", 3356 | "windows_x86_64_msvc 0.52.6", 3357 | ] 3358 | 3359 | [[package]] 3360 | name = "windows_aarch64_gnullvm" 3361 | version = "0.48.5" 3362 | source = "registry+https://github.com/rust-lang/crates.io-index" 3363 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 3364 | 3365 | [[package]] 3366 | name = "windows_aarch64_gnullvm" 3367 | version = "0.52.6" 3368 | source = "registry+https://github.com/rust-lang/crates.io-index" 3369 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 3370 | 3371 | [[package]] 3372 | name = "windows_aarch64_msvc" 3373 | version = "0.48.5" 3374 | source = "registry+https://github.com/rust-lang/crates.io-index" 3375 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 3376 | 3377 | [[package]] 3378 | name = "windows_aarch64_msvc" 3379 | version = "0.52.6" 3380 | source = "registry+https://github.com/rust-lang/crates.io-index" 3381 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 3382 | 3383 | [[package]] 3384 | name = "windows_i686_gnu" 3385 | version = "0.48.5" 3386 | source = "registry+https://github.com/rust-lang/crates.io-index" 3387 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 3388 | 3389 | [[package]] 3390 | name = "windows_i686_gnu" 3391 | version = "0.52.6" 3392 | source = "registry+https://github.com/rust-lang/crates.io-index" 3393 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 3394 | 3395 | [[package]] 3396 | name = "windows_i686_gnullvm" 3397 | version = "0.52.6" 3398 | source = "registry+https://github.com/rust-lang/crates.io-index" 3399 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 3400 | 3401 | [[package]] 3402 | name = "windows_i686_msvc" 3403 | version = "0.48.5" 3404 | source = "registry+https://github.com/rust-lang/crates.io-index" 3405 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 3406 | 3407 | [[package]] 3408 | name = "windows_i686_msvc" 3409 | version = "0.52.6" 3410 | source = "registry+https://github.com/rust-lang/crates.io-index" 3411 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 3412 | 3413 | [[package]] 3414 | name = "windows_x86_64_gnu" 3415 | version = "0.48.5" 3416 | source = "registry+https://github.com/rust-lang/crates.io-index" 3417 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 3418 | 3419 | [[package]] 3420 | name = "windows_x86_64_gnu" 3421 | version = "0.52.6" 3422 | source = "registry+https://github.com/rust-lang/crates.io-index" 3423 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 3424 | 3425 | [[package]] 3426 | name = "windows_x86_64_gnullvm" 3427 | version = "0.48.5" 3428 | source = "registry+https://github.com/rust-lang/crates.io-index" 3429 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 3430 | 3431 | [[package]] 3432 | name = "windows_x86_64_gnullvm" 3433 | version = "0.52.6" 3434 | source = "registry+https://github.com/rust-lang/crates.io-index" 3435 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 3436 | 3437 | [[package]] 3438 | name = "windows_x86_64_msvc" 3439 | version = "0.48.5" 3440 | source = "registry+https://github.com/rust-lang/crates.io-index" 3441 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 3442 | 3443 | [[package]] 3444 | name = "windows_x86_64_msvc" 3445 | version = "0.52.6" 3446 | source = "registry+https://github.com/rust-lang/crates.io-index" 3447 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 3448 | 3449 | [[package]] 3450 | name = "winnow" 3451 | version = "0.6.20" 3452 | source = "registry+https://github.com/rust-lang/crates.io-index" 3453 | checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" 3454 | dependencies = [ 3455 | "memchr", 3456 | ] 3457 | 3458 | [[package]] 3459 | name = "winreg" 3460 | version = "0.50.0" 3461 | source = "registry+https://github.com/rust-lang/crates.io-index" 3462 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 3463 | dependencies = [ 3464 | "cfg-if", 3465 | "windows-sys 0.48.0", 3466 | ] 3467 | 3468 | [[package]] 3469 | name = "winsafe" 3470 | version = "0.0.19" 3471 | source = "registry+https://github.com/rust-lang/crates.io-index" 3472 | checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" 3473 | 3474 | [[package]] 3475 | name = "wyz" 3476 | version = "0.5.1" 3477 | source = "registry+https://github.com/rust-lang/crates.io-index" 3478 | checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 3479 | dependencies = [ 3480 | "tap", 3481 | ] 3482 | 3483 | [[package]] 3484 | name = "zerocopy" 3485 | version = "0.7.35" 3486 | source = "registry+https://github.com/rust-lang/crates.io-index" 3487 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 3488 | dependencies = [ 3489 | "byteorder", 3490 | "zerocopy-derive", 3491 | ] 3492 | 3493 | [[package]] 3494 | name = "zerocopy-derive" 3495 | version = "0.7.35" 3496 | source = "registry+https://github.com/rust-lang/crates.io-index" 3497 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 3498 | dependencies = [ 3499 | "proc-macro2", 3500 | "quote", 3501 | "syn 2.0.79", 3502 | ] 3503 | 3504 | [[package]] 3505 | name = "zeroize" 3506 | version = "1.8.1" 3507 | source = "registry+https://github.com/rust-lang/crates.io-index" 3508 | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 3509 | dependencies = [ 3510 | "zeroize_derive", 3511 | ] 3512 | 3513 | [[package]] 3514 | name = "zeroize_derive" 3515 | version = "1.4.2" 3516 | source = "registry+https://github.com/rust-lang/crates.io-index" 3517 | checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" 3518 | dependencies = [ 3519 | "proc-macro2", 3520 | "quote", 3521 | "syn 2.0.79", 3522 | ] 3523 | --------------------------------------------------------------------------------