From 1c6deac1eaeb84fe2d6d500e0d3bfa6a567cd989 Mon Sep 17 00:00:00 2001 From: lza_menace Date: Thu, 17 Nov 2022 13:58:49 -0800 Subject: [PATCH] init --- .gitignore | 24 + .vscode/extensions.json | 3 + README.md | 47 + index.html | 14 + jsconfig.json | 33 + package-lock.json | 394 +++++ package.json | 21 + public/vite.svg | 1 + src/App.svelte | 50 + src/Contracts.svelte | 85 + src/Providers.svelte | 52 + src/app.css | 97 ++ src/assets/ethereum.svg | 21 + src/assets/svelte.svg | 1 + src/assets/vitejs.svg | 1 + src/lib/nft.json | 1556 +++++++++++++++++ src/lib/sendit.json | 3534 +++++++++++++++++++++++++++++++++++++++ src/main.js | 8 + src/vite-env.d.ts | 2 + vite.config.js | 7 + 20 files changed, 5951 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 index.html create mode 100644 jsconfig.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 src/App.svelte create mode 100644 src/Contracts.svelte create mode 100644 src/Providers.svelte create mode 100644 src/app.css create mode 100644 src/assets/ethereum.svg create mode 100644 src/assets/svelte.svg create mode 100644 src/assets/vitejs.svg create mode 100644 src/lib/nft.json create mode 100644 src/lib/sendit.json create mode 100644 src/main.js create mode 100644 src/vite-env.d.ts create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..bdef820 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["svelte.svelte-vscode"] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..69c2ac5 --- /dev/null +++ b/README.md @@ -0,0 +1,47 @@ +# Svelte + Vite + +This template should help get you started developing with Svelte in Vite. + +## Recommended IDE Setup + +[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). + +## Need an official Svelte framework? + +Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more. + +## Technical considerations + +**Why use this over SvelteKit?** + +- It brings its own routing solution which might not be preferable for some users. +- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app. + +This template contains as little as possible to get started with Vite + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project. + +Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate. + +**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?** + +Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information. + +**Why include `.vscode/extensions.json`?** + +Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project. + +**Why enable `checkJs` in the JS template?** + +It is likely that most cases of changing variable types in runtime are likely to be accidental, rather than deliberate. This provides advanced typechecking out of the box. Should you like to take advantage of the dynamically-typed nature of JavaScript, it is trivial to change the configuration. + +**Why is HMR not preserving my local component state?** + +HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr). + +If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR. + +```js +// store.js +// An extremely simple external store +import { writable } from 'svelte/store' +export default writable(0) +``` diff --git a/index.html b/index.html new file mode 100644 index 0000000..21400ea --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + Vite + Svelte + + +
+ + + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..e596c58 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "moduleResolution": "Node", + "target": "ESNext", + "module": "ESNext", + /** + * svelte-preprocess cannot figure out whether you have + * a value or a type, so tell TypeScript to enforce using + * `import type` instead of `import` for Types. + */ + "importsNotUsedAsValues": "error", + "isolatedModules": true, + "resolveJsonModule": true, + /** + * To have warnings / errors of the Svelte compiler at the + * correct position, enable source maps by default. + */ + "sourceMap": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + /** + * Typecheck JS in `.svelte` and `.js` files by default. + * Disable this if you'd like to use dynamic types. + */ + "checkJs": true + }, + /** + * Use global.d.ts instead of compilerOptions.types + * to avoid limiting type declarations. + */ + "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..44a6139 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,394 @@ +{ + "name": "sendit-app", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.14.tgz", + "integrity": "sha512-+Rb20XXxRGisNu2WmNKk+scpanb7nL5yhuI1KR9wQFiC43ddPj/V1fmNyzlFC9bKiG4mYzxW7egtoHVcynr+OA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.14.tgz", + "integrity": "sha512-eQi9rosGNVQFJyJWV0HCA5WZae/qWIQME7s8/j8DMvnylfBv62Pbu+zJ2eUDqNf2O4u3WB+OEXyfkpBoe194sg==", + "dev": true, + "optional": true + }, + "@openzeppelin/contracts": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.8.0.tgz", + "integrity": "sha512-AGuwhRRL+NaKx73WKRNzeCxOCOCxpaqF+kp8TJ89QzAipSwZy/NoflkWaL9bywXFRhIzXt8j38sfF7KBKCPWLw==" + }, + "@sveltejs/vite-plugin-svelte": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.2.0.tgz", + "integrity": "sha512-DT2oUkWAloH1tO7X5cQ4uDxQofaIS76skyFMElKtoqT6HJao+D82LI5i+0jPaSSmO7ex3Pa6jGYMlWy9ZJ1cdQ==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "deepmerge": "^4.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.26.7", + "svelte-hmr": "^0.15.1", + "vitefu": "^0.2.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "esbuild": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.14.tgz", + "integrity": "sha512-pJN8j42fvWLFWwSMG4luuupl2Me7mxciUOsMegKvwCmhEbJ2covUdFnihxm0FMIBV+cbwbtMoHgMCCI+pj1btQ==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.15.14", + "@esbuild/linux-loong64": "0.15.14", + "esbuild-android-64": "0.15.14", + "esbuild-android-arm64": "0.15.14", + "esbuild-darwin-64": "0.15.14", + "esbuild-darwin-arm64": "0.15.14", + "esbuild-freebsd-64": "0.15.14", + "esbuild-freebsd-arm64": "0.15.14", + "esbuild-linux-32": "0.15.14", + "esbuild-linux-64": "0.15.14", + "esbuild-linux-arm": "0.15.14", + "esbuild-linux-arm64": "0.15.14", + "esbuild-linux-mips64le": "0.15.14", + "esbuild-linux-ppc64le": "0.15.14", + "esbuild-linux-riscv64": "0.15.14", + "esbuild-linux-s390x": "0.15.14", + "esbuild-netbsd-64": "0.15.14", + "esbuild-openbsd-64": "0.15.14", + "esbuild-sunos-64": "0.15.14", + "esbuild-windows-32": "0.15.14", + "esbuild-windows-64": "0.15.14", + "esbuild-windows-arm64": "0.15.14" + } + }, + "esbuild-android-64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.14.tgz", + "integrity": "sha512-HuilVIb4rk9abT4U6bcFdU35UHOzcWVGLSjEmC58OVr96q5UiRqzDtWjPlCMugjhgUGKEs8Zf4ueIvYbOStbIg==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.14.tgz", + "integrity": "sha512-/QnxRVxsR2Vtf3XottAHj7hENAMW2wCs6S+OZcAbc/8nlhbAL/bCQRCVD78VtI5mdwqWkVi3wMqM94kScQCgqg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.14.tgz", + "integrity": "sha512-ToNuf1uifu8hhwWvoZJGCdLIX/1zpo8cOGnT0XAhDQXiKOKYaotVNx7pOVB1f+wHoWwTLInrOmh3EmA7Fd+8Vg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.14.tgz", + "integrity": "sha512-KgGP+y77GszfYJgceO0Wi/PiRtYo5y2Xo9rhBUpxTPaBgWDJ14gqYN0+NMbu+qC2fykxXaipHxN4Scaj9tUS1A==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.14.tgz", + "integrity": "sha512-xr0E2n5lyWw3uFSwwUXHc0EcaBDtsal/iIfLioflHdhAe10KSctV978Te7YsfnsMKzcoGeS366+tqbCXdqDHQA==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.14.tgz", + "integrity": "sha512-8XH96sOQ4b1LhMlO10eEWOjEngmZ2oyw3pW4o8kvBcpF6pULr56eeYVP5radtgw54g3T8nKHDHYEI5AItvskZg==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.14.tgz", + "integrity": "sha512-6ssnvwaTAi8AzKN8By2V0nS+WF5jTP7SfuK6sStGnDP7MCJo/4zHgM9oE1eQTS2jPmo3D673rckuCzRlig+HMA==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.14.tgz", + "integrity": "sha512-ONySx3U0wAJOJuxGUlXBWxVKFVpWv88JEv0NZ6NlHknmDd1yCbf4AEdClSgLrqKQDXYywmw4gYDvdLsS6z0hcw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.14.tgz", + "integrity": "sha512-D2LImAIV3QzL7lHURyCHBkycVFbKwkDb1XEUWan+2fb4qfW7qAeUtul7ZIcIwFKZgPcl+6gKZmvLgPSj26RQ2Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.14.tgz", + "integrity": "sha512-kle2Ov6a1e5AjlHlMQl1e+c4myGTeggrRzArQFmWp6O6JoqqB9hT+B28EW4tjFWgV/NxUq46pWYpgaWXsXRPAg==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.14.tgz", + "integrity": "sha512-FVdMYIzOLXUq+OE7XYKesuEAqZhmAIV6qOoYahvUp93oXy0MOVTP370ECbPfGXXUdlvc0TNgkJa3YhEwyZ6MRA==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.14.tgz", + "integrity": "sha512-2NzH+iuzMDA+jjtPjuIz/OhRDf8tzbQ1tRZJI//aT25o1HKc0reMMXxKIYq/8nSHXiJSnYV4ODzTiv45s+h73w==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.14.tgz", + "integrity": "sha512-VqxvutZNlQxmUNS7Ac+aczttLEoHBJ9e3OYGqnULrfipRvG97qLrAv9EUY9iSrRKBqeEbSvS9bSfstZqwz0T4Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.14.tgz", + "integrity": "sha512-+KVHEUshX5n6VP6Vp/AKv9fZIl5kr2ph8EUFmQUJnDpHwcfTSn2AQgYYm0HTBR2Mr4d0Wlr0FxF/Cs5pbFgiOw==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.14.tgz", + "integrity": "sha512-6D/dr17piEgevIm1xJfZP2SjB9Z+g8ERhNnBdlZPBWZl+KSPUKLGF13AbvC+nzGh8IxOH2TyTIdRMvKMP0nEzQ==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.14.tgz", + "integrity": "sha512-rREQBIlMibBetgr2E9Lywt2Qxv2ZdpmYahR4IUlAQ1Efv/A5gYdO0/VIN3iowDbCNTLxp0bb57Vf0LFcffD6kA==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.14.tgz", + "integrity": "sha512-DNVjSp/BY4IfwtdUAvWGIDaIjJXY5KI4uD82+15v6k/w7px9dnaDaJJ2R6Mu+KCgr5oklmFc0KjBjh311Gxl9Q==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.14.tgz", + "integrity": "sha512-pHBWrcA+/oLgvViuG9FO3kNPO635gkoVrRQwe6ZY1S0jdET07xe2toUvQoJQ8KT3/OkxqUasIty5hpuKFLD+eg==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.14.tgz", + "integrity": "sha512-CszIGQVk/P8FOS5UgAH4hKc9zOaFo69fe+k1rqgBHx3CSK3Opyk5lwYriIamaWOVjBt7IwEP6NALz+tkVWdFog==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.14", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.14.tgz", + "integrity": "sha512-KW9W4psdZceaS9A7Jsgl4WialOznSURvqX/oHZk3gOP7KbjtHLSsnmSvNdzagGJfxbAe30UVGXRe8q8nDsOSQw==", + "dev": true, + "optional": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "solmate": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/solmate/-/solmate-6.6.1.tgz", + "integrity": "sha512-WHvRXQvGtgR6R9nmkDTz/d+oULMqf/D33rlzQyadTX2SbuTmaW7ToEjGjGtWUVCQwZsZ/JP3vbOEVv7fB50btg==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svelte": { + "version": "3.53.1", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.53.1.tgz", + "integrity": "sha512-Q4/hHkktZogGhN5iqxqSi9sjEVoe/NbIxX4hXEHoasTxj+TxEQVAq66LnDMdAZxjmsodkoI5F3slqsS68U7FNw==" + }, + "svelte-hmr": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", + "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==", + "dev": true + }, + "svelte-proxied-store": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/svelte-proxied-store/-/svelte-proxied-store-1.1.4.tgz", + "integrity": "sha512-Vz8egScKBx3Ve1+MlaX0D6hEgYgtIQzpZx4HtzI6+J0mJiVgfaxnEdvSVGDWNb5E+zGzGGXdmzxqjfOIyNEswQ==" + }, + "svelte-web3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/svelte-web3/-/svelte-web3-4.0.0.tgz", + "integrity": "sha512-PyCxPycc2a6CZhd3T1+SLu3iwntgdPXkMdFhs8rLzbGHwekLXByeq6z4pOLqKH70MMZ3tXY1wICq9Zfb+LAG+Q==", + "requires": { + "svelte": "^3.0.0", + "svelte-proxied-store": "^1.1.4" + } + }, + "vite": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.4.tgz", + "integrity": "sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==", + "dev": true, + "requires": { + "esbuild": "^0.15.9", + "fsevents": "~2.3.2", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + } + }, + "vitefu": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.1.tgz", + "integrity": "sha512-clkvXTAeUf+XQKm3bhWUhT4pye+3acm6YCTGaWhxxIvZZ/QjnA3JA8Zud+z/mO5y5XYvJJhevs5Sjkv/FI8nRw==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ef99006 --- /dev/null +++ b/package.json @@ -0,0 +1,21 @@ +{ + "name": "sendit-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^1.1.0", + "svelte": "^3.52.0", + "vite": "^3.2.3" + }, + "dependencies": { + "@openzeppelin/contracts": "^4.8.0", + "solmate": "^6.6.1", + "svelte-web3": "^4.0.0" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.svelte b/src/App.svelte new file mode 100644 index 0000000..d15be3f --- /dev/null +++ b/src/App.svelte @@ -0,0 +1,50 @@ + + +
+ +
+ + + + + + + + + +
+

Vite + Svelte + web3.js

+ +
+ +
+ + + +
+ + diff --git a/src/Contracts.svelte b/src/Contracts.svelte new file mode 100644 index 0000000..30e0211 --- /dev/null +++ b/src/Contracts.svelte @@ -0,0 +1,85 @@ + + + +
+ {#if $selectedAccount } + {#if $chainId !== 1337 } +

+ Your are connected to the wrong network. +

+ {:else if $contracts.nft} + {#await $contracts.nft.methods.balanceOf($selectedAccount).call() } + checking balance... + {:then balance} +

+ Gas Required to send 10 NFTs via OpenZeppelin ERC721 safeTransferFrom: {gasLimit} +
+ Gas Required to send 10 NFTs via SendIt ERC721 contractBulkTransfer: {si_gasLimit} +
+ {$selectedAccount} has {balance} NFTs on local net (anvil). +

+ + {/await} + {/if} + {:else} +

+ Please first connect your wallet to be able to use this page. +

+ {/if} + +
diff --git a/src/Providers.svelte b/src/Providers.svelte new file mode 100644 index 0000000..5ead2c0 --- /dev/null +++ b/src/Providers.svelte @@ -0,0 +1,52 @@ + + + +
+ {#if !$selectedAccount} + + {:else} +

+ You are now connected to the blockchain (account {$selectedAccount}) +

+ +

Current stores values:

+ + {/if} +
+ + diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..2785858 --- /dev/null +++ b/src/app.css @@ -0,0 +1,97 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} + +/* svelte-web3|ethers */ + +.content { + font-size: 90%; + min-height: calc(100vh - 10em); +} + +.menu { + display: flex; + +} + +.menu a { + width: 30%; +} diff --git a/src/assets/ethereum.svg b/src/assets/ethereum.svg new file mode 100644 index 0000000..684e968 --- /dev/null +++ b/src/assets/ethereum.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svelte.svg b/src/assets/svelte.svg new file mode 100644 index 0000000..c5e0848 --- /dev/null +++ b/src/assets/svelte.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/vitejs.svg b/src/assets/vitejs.svg new file mode 100644 index 0000000..7d39245 --- /dev/null +++ b/src/assets/vitejs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/lib/nft.json b/src/lib/nft.json new file mode 100644 index 0000000..b200938 --- /dev/null +++ b/src/lib/nft.json @@ -0,0 +1,1556 @@ +{ + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "currentTokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "r", + "type": "address" + }, + { + "internalType": "uint256", + "name": "mintAmount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x60806040523480156200001157600080fd5b5060408051808201825260038082526213919560ea1b60208084018290528451808601909552918452908301529060006200004d83826200010a565b5060016200005c82826200010a565b505050620001d6565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200009057607f821691505b602082108103620000b157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200010557600081815260208120601f850160051c81016020861015620000e05750805b601f850160051c820191505b818110156200010157828155600101620000ec565b5050505b505050565b81516001600160401b0381111562000126576200012662000065565b6200013e816200013784546200007b565b84620000b7565b602080601f8311600181146200017657600084156200015d5750858301515b600019600386901b1c1916600185901b17855562000101565b600085815260208120601f198616915b82811015620001a75788860151825594840194600190910190840162000186565b5085821015620001c65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61100980620001e66000396000f3fe608060405234801561001057600080fd5b50600436106100f45760003560e01c806342842e0e11610097578063a22cb46511610066578063a22cb4651461020a578063b88d4fde1461021d578063c87b56dd14610230578063e985e9c51461024357600080fd5b806342842e0e146101c95780636352211e146101dc57806370a08231146101ef57806395d89b411461020257600080fd5b8063081812fc116100d3578063081812fc1461014d578063095ea7b31461018e57806323b872dd146101a357806340c10f19146101b657600080fd5b80629a9b7b146100f957806301ffc9a71461011557806306fdde0314610138575b600080fd5b61010260065481565b6040519081526020015b60405180910390f35b610128610123366004610c79565b610271565b604051901515815260200161010c565b6101406102c3565b60405161010c9190610c9d565b61017661015b366004610ceb565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161010c565b6101a161019c366004610d1b565b610351565b005b6101a16101b1366004610d45565b610438565b6101a16101c4366004610d1b565b6105ff565b6101a16101d7366004610d45565b610647565b6101766101ea366004610ceb565b610717565b6101026101fd366004610d81565b61076e565b6101406107d1565b6101a1610218366004610d9c565b6107de565b6101a161022b366004610dd8565b61084a565b61014061023e366004610ceb565b61090f565b610128610251366004610e73565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806102a257506380ac58cd60e01b6001600160e01b03198316145b806102bd5750635b5e139f60e01b6001600160e01b03198316145b92915050565b600080546102d090610ea6565b80601f01602080910402602001604051908101604052809291908181526020018280546102fc90610ea6565b80156103495780601f1061031e57610100808354040283529160200191610349565b820191906000526020600020905b81548152906001019060200180831161032c57829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b03163381148061039a57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6103dc5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b0384811691161461048e5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103d3565b6001600160a01b0382166104d85760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103d3565b336001600160a01b038416148061051257506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b8061053357506000818152600460205260409020546001600160a01b031633145b6105705760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016103d3565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60005b818110156106425760016006600082825461061d9190610ef6565b925050819055506106308360065461091a565b8061063a81610f09565b915050610602565b505050565b610652838383610438565b6001600160a01b0382163b15806106fb5750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156106cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ef9190610f22565b6001600160e01b031916145b6106425760405162461bcd60e51b81526004016103d390610f3f565b6000818152600260205260409020546001600160a01b0316806107695760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103d3565b919050565b60006001600160a01b0382166107b55760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103d3565b506001600160a01b031660009081526003602052604090205490565b600180546102d090610ea6565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610855858585610438565b6001600160a01b0384163b15806108ec5750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a029061089d9033908a90899089908990600401610f69565b6020604051808303816000875af11580156108bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e09190610f22565b6001600160e01b031916145b6109085760405162461bcd60e51b81526004016103d390610f3f565b5050505050565b60606102bd826109ea565b6109248282610a7d565b6001600160a01b0382163b15806109ca5750604051630a85bd0160e11b80825233600483015260006024830181905260448301849052608060648401526084830152906001600160a01b0384169063150b7a029060a4016020604051808303816000875af115801561099a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109be9190610f22565b6001600160e01b031916145b6109e65760405162461bcd60e51b81526004016103d390610f3f565b5050565b606060006109f783610b88565b600101905060008167ffffffffffffffff811115610a1757610a17610fbd565b6040519080825280601f01601f191660200182016040528015610a41576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a4b57509392505050565b6001600160a01b038216610ac75760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103d3565b6000818152600260205260409020546001600160a01b031615610b1d5760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016103d3565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bc75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bf3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c1157662386f26fc10000830492506010015b6305f5e1008310610c29576305f5e100830492506008015b6127108310610c3d57612710830492506004015b60648310610c4f576064830492506002015b600a83106102bd5760010192915050565b6001600160e01b031981168114610c7657600080fd5b50565b600060208284031215610c8b57600080fd5b8135610c9681610c60565b9392505050565b600060208083528351808285015260005b81811015610cca57858101830151858201604001528201610cae565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215610cfd57600080fd5b5035919050565b80356001600160a01b038116811461076957600080fd5b60008060408385031215610d2e57600080fd5b610d3783610d04565b946020939093013593505050565b600080600060608486031215610d5a57600080fd5b610d6384610d04565b9250610d7160208501610d04565b9150604084013590509250925092565b600060208284031215610d9357600080fd5b610c9682610d04565b60008060408385031215610daf57600080fd5b610db883610d04565b915060208301358015158114610dcd57600080fd5b809150509250929050565b600080600080600060808688031215610df057600080fd5b610df986610d04565b9450610e0760208701610d04565b935060408601359250606086013567ffffffffffffffff80821115610e2b57600080fd5b818801915088601f830112610e3f57600080fd5b813581811115610e4e57600080fd5b896020828501011115610e6057600080fd5b9699959850939650602001949392505050565b60008060408385031215610e8657600080fd5b610e8f83610d04565b9150610e9d60208401610d04565b90509250929050565b600181811c90821680610eba57607f821691505b602082108103610eda57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102bd576102bd610ee0565b600060018201610f1b57610f1b610ee0565b5060010190565b600060208284031215610f3457600080fd5b8151610c9681610c60565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220ff39abf54fcc412369a9e53052e2464995ba60c5d9d532ee8292eaa9c2923b1364736f6c63430008110033", + "sourceMap": "153:435:20:-:0;;;218:37;;;;;;;;;-1:-1:-1;2154:111:18;;;;;;;;;;;;-1:-1:-1;;;2154:111:18;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2220:12:18;2154:111;-1:-1:-1;2220:12:18;:::i;:::-;-1:-1:-1;2242:6:18;:16;2251:7;2242:6;:16;:::i;:::-;;2154:111;;153:435:20;;14:127:23;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:23;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:23;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:23;;;2580:26;2531:89;-1:-1:-1;;1335:1:23;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:23;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:23;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:23;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:23:o;:::-;153:435:20;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b50600436106100f45760003560e01c806342842e0e11610097578063a22cb46511610066578063a22cb4651461020a578063b88d4fde1461021d578063c87b56dd14610230578063e985e9c51461024357600080fd5b806342842e0e146101c95780636352211e146101dc57806370a08231146101ef57806395d89b411461020257600080fd5b8063081812fc116100d3578063081812fc1461014d578063095ea7b31461018e57806323b872dd146101a357806340c10f19146101b657600080fd5b80629a9b7b146100f957806301ffc9a71461011557806306fdde0314610138575b600080fd5b61010260065481565b6040519081526020015b60405180910390f35b610128610123366004610c79565b610271565b604051901515815260200161010c565b6101406102c3565b60405161010c9190610c9d565b61017661015b366004610ceb565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161010c565b6101a161019c366004610d1b565b610351565b005b6101a16101b1366004610d45565b610438565b6101a16101c4366004610d1b565b6105ff565b6101a16101d7366004610d45565b610647565b6101766101ea366004610ceb565b610717565b6101026101fd366004610d81565b61076e565b6101406107d1565b6101a1610218366004610d9c565b6107de565b6101a161022b366004610dd8565b61084a565b61014061023e366004610ceb565b61090f565b610128610251366004610e73565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806102a257506380ac58cd60e01b6001600160e01b03198316145b806102bd5750635b5e139f60e01b6001600160e01b03198316145b92915050565b600080546102d090610ea6565b80601f01602080910402602001604051908101604052809291908181526020018280546102fc90610ea6565b80156103495780601f1061031e57610100808354040283529160200191610349565b820191906000526020600020905b81548152906001019060200180831161032c57829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b03163381148061039a57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6103dc5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b0384811691161461048e5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103d3565b6001600160a01b0382166104d85760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103d3565b336001600160a01b038416148061051257506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b8061053357506000818152600460205260409020546001600160a01b031633145b6105705760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016103d3565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60005b818110156106425760016006600082825461061d9190610ef6565b925050819055506106308360065461091a565b8061063a81610f09565b915050610602565b505050565b610652838383610438565b6001600160a01b0382163b15806106fb5750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156106cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ef9190610f22565b6001600160e01b031916145b6106425760405162461bcd60e51b81526004016103d390610f3f565b6000818152600260205260409020546001600160a01b0316806107695760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103d3565b919050565b60006001600160a01b0382166107b55760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103d3565b506001600160a01b031660009081526003602052604090205490565b600180546102d090610ea6565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610855858585610438565b6001600160a01b0384163b15806108ec5750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a029061089d9033908a90899089908990600401610f69565b6020604051808303816000875af11580156108bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e09190610f22565b6001600160e01b031916145b6109085760405162461bcd60e51b81526004016103d390610f3f565b5050505050565b60606102bd826109ea565b6109248282610a7d565b6001600160a01b0382163b15806109ca5750604051630a85bd0160e11b80825233600483015260006024830181905260448301849052608060648401526084830152906001600160a01b0384169063150b7a029060a4016020604051808303816000875af115801561099a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109be9190610f22565b6001600160e01b031916145b6109e65760405162461bcd60e51b81526004016103d390610f3f565b5050565b606060006109f783610b88565b600101905060008167ffffffffffffffff811115610a1757610a17610fbd565b6040519080825280601f01601f191660200182016040528015610a41576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610a4b57509392505050565b6001600160a01b038216610ac75760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103d3565b6000818152600260205260409020546001600160a01b031615610b1d5760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016103d3565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bc75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610bf3576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c1157662386f26fc10000830492506010015b6305f5e1008310610c29576305f5e100830492506008015b6127108310610c3d57612710830492506004015b60648310610c4f576064830492506002015b600a83106102bd5760010192915050565b6001600160e01b031981168114610c7657600080fd5b50565b600060208284031215610c8b57600080fd5b8135610c9681610c60565b9392505050565b600060208083528351808285015260005b81811015610cca57858101830151858201604001528201610cae565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215610cfd57600080fd5b5035919050565b80356001600160a01b038116811461076957600080fd5b60008060408385031215610d2e57600080fd5b610d3783610d04565b946020939093013593505050565b600080600060608486031215610d5a57600080fd5b610d6384610d04565b9250610d7160208501610d04565b9150604084013590509250925092565b600060208284031215610d9357600080fd5b610c9682610d04565b60008060408385031215610daf57600080fd5b610db883610d04565b915060208301358015158114610dcd57600080fd5b809150509250929050565b600080600080600060808688031215610df057600080fd5b610df986610d04565b9450610e0760208701610d04565b935060408601359250606086013567ffffffffffffffff80821115610e2b57600080fd5b818801915088601f830112610e3f57600080fd5b813581811115610e4e57600080fd5b896020828501011115610e6057600080fd5b9699959850939650602001949392505050565b60008060408385031215610e8657600080fd5b610e8f83610d04565b9150610e9d60208401610d04565b90509250929050565b600181811c90821680610eba57607f821691505b602082108103610eda57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156102bd576102bd610ee0565b600060018201610f1b57610f1b610ee0565b5060010190565b600060208284031215610f3457600080fd5b8151610c9681610c60565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220ff39abf54fcc412369a9e53052e2464995ba60c5d9d532ee8292eaa9c2923b1364736f6c63430008110033", + "sourceMap": "153:435:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;182:29;;;;;;;;;160:25:23;;;148:2;133:18;182:29:20;;;;;;;;4714:335:18;;;;;;:::i;:::-;;:::i;:::-;;;747:14:23;;740:22;722:41;;710:2;695:18;4714:335:18;582:187:23;899:18:18;;;:::i;:::-;;;;;;;:::i;1844:46::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1844:46:18;;;;;;-1:-1:-1;;;;;1676:32:23;;;1658:51;;1646:2;1631:18;1844:46:18;1512:203:23;2453:282:18;;;;;;:::i;:::-;;:::i;:::-;;2950:741;;;;;;:::i;:::-;;:::i;261:192:20:-;;;;;;:::i;:::-;;:::i;3697:396:18:-;;;;;;:::i;:::-;;:::i;1327:149::-;;;;;;:::i;:::-;;:::i;1482:168::-;;;;;;:::i;:::-;;:::i;924:20::-;;;:::i;2741:203::-;;;;;;:::i;:::-;;:::i;4099:427::-;;;;;;:::i;:::-;;:::i;459:127:20:-;;;;;;:::i;:::-;;:::i;1897:68:18:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4714:335;4790:4;-1:-1:-1;;;;;;;;;4825:25:18;;;;:100;;-1:-1:-1;;;;;;;;;;4900:25:18;;;4825:100;:175;;;-1:-1:-1;;;;;;;;;;4975:25:18;;;4825:175;4806:194;4714:335;-1:-1:-1;;4714:335:18:o;899:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2453:282::-;2524:13;2540:12;;;:8;:12;;;;;;-1:-1:-1;;;;;2540:12:18;2571:10;:19;;;:58;;-1:-1:-1;;;;;;2594:23:18;;;;;;:16;:23;;;;;;;;2618:10;2594:35;;;;;;;;;;2571:58;2563:85;;;;-1:-1:-1;;;2563:85:18;;4698:2:23;2563:85:18;;;4680:21:23;4737:2;4717:18;;;4710:30;-1:-1:-1;;;4756:18:23;;;4749:44;4810:18;;2563:85:18;;;;;;;;;2659:15;;;;:11;:15;;;;;;:25;;-1:-1:-1;;;;;;2659:25:18;-1:-1:-1;;;;;2659:25:18;;;;;;;;;2700:28;;2659:15;;2700:28;;;;;;;2514:221;2453:282;;:::o;2950:741::-;3081:12;;;;:8;:12;;;;;;-1:-1:-1;;;;;3073:20:18;;;3081:12;;3073:20;3065:43;;;;-1:-1:-1;;;3065:43:18;;5041:2:23;3065:43:18;;;5023:21:23;5080:2;5060:18;;;5053:30;-1:-1:-1;;;5099:18:23;;;5092:40;5149:18;;3065:43:18;4839:334:23;3065:43:18;-1:-1:-1;;;;;3127:16:18;;3119:46;;;;-1:-1:-1;;;3119:46:18;;5380:2:23;3119:46:18;;;5362:21:23;5419:2;5399:18;;;5392:30;-1:-1:-1;;;5438:18:23;;;5431:47;5495:18;;3119:46:18;5178:341:23;3119:46:18;3197:10;-1:-1:-1;;;;;3197:18:18;;;;:56;;-1:-1:-1;;;;;;3219:22:18;;;;;;:16;:22;;;;;;;;3242:10;3219:34;;;;;;;;;;3197:56;:89;;;-1:-1:-1;3271:15:18;;;;:11;:15;;;;;;-1:-1:-1;;;;;3271:15:18;3257:10;:29;3197:89;3176:150;;;;-1:-1:-1;;;3176:150:18;;4698:2:23;3176:150:18;;;4680:21:23;4737:2;4717:18;;;4710:30;-1:-1:-1;;;4756:18:23;;;4749:44;4810:18;;3176:150:18;4496:338:23;3176:150:18;-1:-1:-1;;;;;3526:16:18;;;;;;;:10;:16;;;;;;;;:18;;-1:-1:-1;;3526:18:18;;;3559:14;;;;;;;;;:16;;3526:18;3559:16;;;3596:12;;;:8;:12;;;;;:17;;-1:-1:-1;;;;;;3596:17:18;;;;;;;;3631:11;:15;;;;;;3624:22;;;;;;;;3662;;3605:2;;3559:14;3526:16;3662:22;;;2950:741;;;:::o;261:192:20:-;329:9;325:122;344:10;340:1;:14;325:122;;;393:1;375:14;;:19;;;;;;;:::i;:::-;;;;;;;;408:28;418:1;421:14;;408:9;:28::i;:::-;356:3;;;;:::i;:::-;;;;325:122;;;;261:192;;:::o;3697:396:18:-;3816:26;3829:4;3835:2;3839;3816:12;:26::i;:::-;-1:-1:-1;;;;;3874:14:18;;;:19;;:170;;-1:-1:-1;3913:66:18;;-1:-1:-1;;;3913:66:18;;;3954:10;3913:66;;;6231:34:23;-1:-1:-1;;;;;6301:15:23;;;6281:18;;;6274:43;6333:18;;;6326:34;;;6396:3;6376:18;;;6369:31;-1:-1:-1;6416:19:23;;;6409:30;3999:45:18;;3913:40;;;;3999:45;;6456:19:23;;3913:66:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;3913:131:18;;3874:170;3853:233;;;;-1:-1:-1;;;3853:233:18;;;;;;;:::i;1327:149::-;1385:13;1427:12;;;:8;:12;;;;;;-1:-1:-1;;;;;1427:12:18;;1410:59;;;;-1:-1:-1;;;1410:59:18;;7287:2:23;1410:59:18;;;7269:21:23;7326:2;7306:18;;;7299:30;-1:-1:-1;;;7345:18:23;;;7338:40;7395:18;;1410:59:18;7085:334:23;1410:59:18;1327:149;;;:::o;1482:168::-;1545:7;-1:-1:-1;;;;;1572:19:18;;1564:44;;;;-1:-1:-1;;;1564:44:18;;7626:2:23;1564:44:18;;;7608:21:23;7665:2;7645:18;;;7638:30;-1:-1:-1;;;7684:18:23;;;7677:42;7736:18;;1564:44:18;7424:336:23;1564:44:18;-1:-1:-1;;;;;;1626:17:18;;;;;:10;:17;;;;;;;1482:168::o;924:20::-;;;;;;;:::i;2741:203::-;2843:10;2826:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;2826:38:18;;;;;;;;;;;;:49;;-1:-1:-1;;2826:49:18;;;;;;;;;;2891:46;;722:41:23;;;2826:38:18;;2843:10;2891:46;;695:18:23;2891:46:18;;;;;;;2741:203;;:::o;4099:427::-;4247:26;4260:4;4266:2;4270;4247:12;:26::i;:::-;-1:-1:-1;;;;;4305:14:18;;;:19;;:172;;-1:-1:-1;4344:68:18;;-1:-1:-1;;;4344:68:18;;;4432:45;-1:-1:-1;;;;;4344:40:18;;;4432:45;;4344:68;;4385:10;;4397:4;;4403:2;;4407:4;;;;4344:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4344:133:18;;4305:172;4284:235;;;;-1:-1:-1;;;4284:235:18;;;;;;;:::i;:::-;4099:427;;;;;:::o;459:127:20:-;527:13;559:20;576:2;559:16;:20::i;6185:340:18:-;6255:13;6261:2;6265;6255:5;:13::i;:::-;-1:-1:-1;;;;;6300:14:18;;;:19;;:176;;-1:-1:-1;6339:72:18;;-1:-1:-1;;;6339:72:18;;;6380:10;6339:72;;;6231:34:23;6400:1:18;6281:18:23;;;6274:43;;;6333:18;;;6326:34;;;6396:3;6376:18;;;6369:31;6416:19;;;6409:30;6431:45:18;-1:-1:-1;;;;;6339:40:18;;;6431:45;;6456:19:23;;6339:72:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;6339:137:18;;6300:176;6279:239;;;;-1:-1:-1;;;6279:239:18;;;;;;;:::i;:::-;6185:340;;:::o;415:696:14:-;471:13;520:14;537:17;548:5;537:10;:17::i;:::-;557:1;537:21;520:38;;572:20;606:6;595:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;595:18:14;-1:-1:-1;572:41:14;-1:-1:-1;733:28:14;;;749:2;733:28;788:280;-1:-1:-1;;819:5:14;-1:-1:-1;;;953:2:14;942:14;;937:30;819:5;924:44;1012:2;1003:11;;;-1:-1:-1;1032:21:14;788:280;1032:21;-1:-1:-1;1088:6:14;415:696;-1:-1:-1;;;415:696:14:o;5243:371:18:-;-1:-1:-1;;;;;5317:16:18;;5309:46;;;;-1:-1:-1;;;5309:46:18;;5380:2:23;5309:46:18;;;5362:21:23;5419:2;5399:18;;;5392:30;-1:-1:-1;;;5438:18:23;;;5431:47;5495:18;;5309:46:18;5178:341:23;5309:46:18;5398:1;5374:12;;;:8;:12;;;;;;-1:-1:-1;;;;;5374:12:18;:26;5366:53;;;;-1:-1:-1;;;5366:53:18;;8898:2:23;5366:53:18;;;8880:21:23;8937:2;8917:18;;;8910:30;-1:-1:-1;;;8956:18:23;;;8949:44;9010:18;;5366:53:18;8696:338:23;5366:53:18;-1:-1:-1;;;;;5509:14:18;;;;;;:10;:14;;;;;;;;:16;;;;;;5546:12;;;:8;:12;;;;;;:17;;-1:-1:-1;;;;;;5546:17:18;;;;;5579:28;5555:2;;5509:14;;5579:28;;5509:14;;5579:28;5243:371;;:::o;9889:890:15:-;9942:7;;-1:-1:-1;;;10017:15:15;;10013:99;;-1:-1:-1;;;10052:15:15;;;-1:-1:-1;10095:2:15;10085:12;10013:99;10138:6;10129:5;:15;10125:99;;10173:6;10164:15;;;-1:-1:-1;10207:2:15;10197:12;10125:99;10250:6;10241:5;:15;10237:99;;10285:6;10276:15;;;-1:-1:-1;10319:2:15;10309:12;10237:99;10362:5;10353;:14;10349:96;;10396:5;10387:14;;;-1:-1:-1;10429:1:15;10419:11;10349:96;10471:5;10462;:14;10458:96;;10505:5;10496:14;;;-1:-1:-1;10538:1:15;10528:11;10458:96;10580:5;10571;:14;10567:96;;10614:5;10605:14;;;-1:-1:-1;10647:1:15;10637:11;10567:96;10689:5;10680;:14;10676:64;;10724:1;10714:11;10766:6;9889:890;-1:-1:-1;;9889:890:15:o;196:131:23:-;-1:-1:-1;;;;;;270:32:23;;260:43;;250:71;;317:1;314;307:12;250:71;196:131;:::o;332:245::-;390:6;443:2;431:9;422:7;418:23;414:32;411:52;;;459:1;456;449:12;411:52;498:9;485:23;517:30;541:5;517:30;:::i;:::-;566:5;332:245;-1:-1:-1;;;332:245:23:o;774:548::-;886:4;915:2;944;933:9;926:21;976:6;970:13;1019:6;1014:2;1003:9;999:18;992:34;1044:1;1054:140;1068:6;1065:1;1062:13;1054:140;;;1163:14;;;1159:23;;1153:30;1129:17;;;1148:2;1125:26;1118:66;1083:10;;1054:140;;;1058:3;1243:1;1238:2;1229:6;1218:9;1214:22;1210:31;1203:42;1313:2;1306;1302:7;1297:2;1289:6;1285:15;1281:29;1270:9;1266:45;1262:54;1254:62;;;;774:548;;;;:::o;1327:180::-;1386:6;1439:2;1427:9;1418:7;1414:23;1410:32;1407:52;;;1455:1;1452;1445:12;1407:52;-1:-1:-1;1478:23:23;;1327:180;-1:-1:-1;1327:180:23:o;1720:173::-;1788:20;;-1:-1:-1;;;;;1837:31:23;;1827:42;;1817:70;;1883:1;1880;1873:12;1898:254;1966:6;1974;2027:2;2015:9;2006:7;2002:23;1998:32;1995:52;;;2043:1;2040;2033:12;1995:52;2066:29;2085:9;2066:29;:::i;:::-;2056:39;2142:2;2127:18;;;;2114:32;;-1:-1:-1;;;1898:254:23:o;2157:328::-;2234:6;2242;2250;2303:2;2291:9;2282:7;2278:23;2274:32;2271:52;;;2319:1;2316;2309:12;2271:52;2342:29;2361:9;2342:29;:::i;:::-;2332:39;;2390:38;2424:2;2413:9;2409:18;2390:38;:::i;:::-;2380:48;;2475:2;2464:9;2460:18;2447:32;2437:42;;2157:328;;;;;:::o;2490:186::-;2549:6;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2641:29;2660:9;2641:29;:::i;2681:347::-;2746:6;2754;2807:2;2795:9;2786:7;2782:23;2778:32;2775:52;;;2823:1;2820;2813:12;2775:52;2846:29;2865:9;2846:29;:::i;:::-;2836:39;;2925:2;2914:9;2910:18;2897:32;2972:5;2965:13;2958:21;2951:5;2948:32;2938:60;;2994:1;2991;2984:12;2938:60;3017:5;3007:15;;;2681:347;;;;;:::o;3033:808::-;3130:6;3138;3146;3154;3162;3215:3;3203:9;3194:7;3190:23;3186:33;3183:53;;;3232:1;3229;3222:12;3183:53;3255:29;3274:9;3255:29;:::i;:::-;3245:39;;3303:38;3337:2;3326:9;3322:18;3303:38;:::i;:::-;3293:48;;3388:2;3377:9;3373:18;3360:32;3350:42;;3443:2;3432:9;3428:18;3415:32;3466:18;3507:2;3499:6;3496:14;3493:34;;;3523:1;3520;3513:12;3493:34;3561:6;3550:9;3546:22;3536:32;;3606:7;3599:4;3595:2;3591:13;3587:27;3577:55;;3628:1;3625;3618:12;3577:55;3668:2;3655:16;3694:2;3686:6;3683:14;3680:34;;;3710:1;3707;3700:12;3680:34;3755:7;3750:2;3741:6;3737:2;3733:15;3729:24;3726:37;3723:57;;;3776:1;3773;3766:12;3723:57;3033:808;;;;-1:-1:-1;3033:808:23;;-1:-1:-1;3807:2:23;3799:11;;3829:6;3033:808;-1:-1:-1;;;3033:808:23:o;3846:260::-;3914:6;3922;3975:2;3963:9;3954:7;3950:23;3946:32;3943:52;;;3991:1;3988;3981:12;3943:52;4014:29;4033:9;4014:29;:::i;:::-;4004:39;;4062:38;4096:2;4085:9;4081:18;4062:38;:::i;:::-;4052:48;;3846:260;;;;;:::o;4111:380::-;4190:1;4186:12;;;;4233;;;4254:61;;4308:4;4300:6;4296:17;4286:27;;4254:61;4361:2;4353:6;4350:14;4330:18;4327:38;4324:161;;4407:10;4402:3;4398:20;4395:1;4388:31;4442:4;4439:1;4432:15;4470:4;4467:1;4460:15;4324:161;;4111:380;;;:::o;5524:127::-;5585:10;5580:3;5576:20;5573:1;5566:31;5616:4;5613:1;5606:15;5640:4;5637:1;5630:15;5656:125;5721:9;;;5742:10;;;5739:36;;;5755:18;;:::i;5786:135::-;5825:3;5846:17;;;5843:43;;5866:18;;:::i;:::-;-1:-1:-1;5913:1:23;5902:13;;5786:135::o;6486:249::-;6555:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:52;;;6624:1;6621;6614:12;6576:52;6656:9;6650:16;6675:30;6699:5;6675:30;:::i;6740:340::-;6942:2;6924:21;;;6981:2;6961:18;;;6954:30;-1:-1:-1;;;7015:2:23;7000:18;;6993:46;7071:2;7056:18;;6740:340::o;7765:662::-;-1:-1:-1;;;;;8044:15:23;;;8026:34;;8096:15;;8091:2;8076:18;;8069:43;8143:2;8128:18;;8121:34;;;8191:3;8186:2;8171:18;;8164:31;;;8211:19;;8204:35;;;7969:4;8232:6;8282;8006:3;8261:19;;8248:49;8347:1;8341:3;8332:6;8321:9;8317:22;8313:32;8306:43;8417:3;8410:2;8406:7;8401:2;8393:6;8389:15;8385:29;8374:9;8370:45;8366:55;8358:63;;7765:662;;;;;;;;:::o;8432:127::-;8493:10;8488:3;8484:20;8481:1;8474:31;8524:4;8521:1;8514:15;8548:4;8545:1;8538:15", + "linkReferences": {} + }, + "methodIdentifiers": { + "approve(address,uint256)": "095ea7b3", + "balanceOf(address)": "70a08231", + "currentTokenId()": "009a9b7b", + "getApproved(uint256)": "081812fc", + "isApprovedForAll(address,address)": "e985e9c5", + "mint(address,uint256)": "40c10f19", + "name()": "06fdde03", + "ownerOf(uint256)": "6352211e", + "safeTransferFrom(address,address,uint256)": "42842e0e", + "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "symbol()": "95d89b41", + "tokenURI(uint256)": "c87b56dd", + "transferFrom(address,address,uint256)": "23b872dd" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"r\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"mintAmount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/NFT.sol\":\"NFT\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x50d8442df21e003cffe241feead16ae1f817afb016e9caab96235d7017816fd8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d079afcda8d243ca111f3471d5bb351b90d64806eb5e9704c414a2808ff02d44\",\"dweb:/ipfs/QmeUcosk8rKGvV9yghc58fd2Te66D943JFBS5jD4mbUZaC\"]},\"lib/solmate/src/tokens/ERC721.sol\":{\"keccak256\":\"0x04af19f16f00ba65ae168d6d10da5210dc18da6bcec6974dccf984ba388aa22d\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://098e69f22b67da6927e03203c12ebfda5b0490518f6d9cce7853001ac5ad8403\",\"dweb:/ipfs/QmYyzfurQe88PsVjRNfutV3gS7Vi68f7zgtVZVtLfd4ViK\"]},\"src/NFT.sol\":{\"keccak256\":\"0xfc30039144330c26c249072b668838f57a300549b58a39b19d78e27c9251820a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5d0c1ddd2d77e6134ed3db694357d12fbf62234712e2f880a3a104f5811f6db4\",\"dweb:/ipfs/QmXizsxZVwFHYCDzfTm3i1ZPCGko9poxfLLvVyWMK7yFUB\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "spender", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true + } + ], + "type": "event", + "name": "Approval", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "operator", + "type": "address", + "indexed": true + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool", + "indexed": false + } + ], + "type": "event", + "name": "ApprovalForAll", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256", + "indexed": true + } + ], + "type": "event", + "name": "Transfer", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "approve" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "currentTokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "r", + "type": "address" + }, + { + "internalType": "uint256", + "name": "mintAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "mint" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "safeTransferFrom" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "safeTransferFrom" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setApprovalForAll" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function", + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "transferFrom" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/solmate/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":forge-std/=lib/forge-std/src/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":solmate/=lib/solmate/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/NFT.sol": "NFT" + }, + "libraries": {} + }, + "sources": { + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "keccak256": "0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a", + "urls": [ + "bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634", + "dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "keccak256": "0x50d8442df21e003cffe241feead16ae1f817afb016e9caab96235d7017816fd8", + "urls": [ + "bzz-raw://d079afcda8d243ca111f3471d5bb351b90d64806eb5e9704c414a2808ff02d44", + "dweb:/ipfs/QmeUcosk8rKGvV9yghc58fd2Te66D943JFBS5jD4mbUZaC" + ], + "license": "MIT" + }, + "lib/solmate/src/tokens/ERC721.sol": { + "keccak256": "0x04af19f16f00ba65ae168d6d10da5210dc18da6bcec6974dccf984ba388aa22d", + "urls": [ + "bzz-raw://098e69f22b67da6927e03203c12ebfda5b0490518f6d9cce7853001ac5ad8403", + "dweb:/ipfs/QmYyzfurQe88PsVjRNfutV3gS7Vi68f7zgtVZVtLfd4ViK" + ], + "license": "AGPL-3.0-only" + }, + "src/NFT.sol": { + "keccak256": "0xfc30039144330c26c249072b668838f57a300549b58a39b19d78e27c9251820a", + "urls": [ + "bzz-raw://5d0c1ddd2d77e6134ed3db694357d12fbf62234712e2f880a3a104f5811f6db4", + "dweb:/ipfs/QmXizsxZVwFHYCDzfTm3i1ZPCGko9poxfLLvVyWMK7yFUB" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/NFT.sol", + "id": 27038, + "exportedSymbols": { + "ERC721": [ + 26942 + ], + "ERC721TokenReceiver": [ + 26962 + ], + "Math": [ + 23932 + ], + "NFT": [ + 27037 + ], + "Strings": [ + 23067 + ] + }, + "nodeType": "SourceUnit", + "src": "39:550:20", + "nodes": [ + { + "id": 26980, + "nodeType": "PragmaDirective", + "src": "39:24:20", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".13" + ] + }, + { + "id": 26981, + "nodeType": "ImportDirective", + "src": "65:35:20", + "nodes": [], + "absolutePath": "lib/solmate/src/tokens/ERC721.sol", + "file": "solmate/tokens/ERC721.sol", + "nameLocation": "-1:-1:-1", + "scope": 27038, + "sourceUnit": 26963, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 26982, + "nodeType": "ImportDirective", + "src": "101:50:20", + "nodes": [], + "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "file": "openzeppelin-contracts/utils/Strings.sol", + "nameLocation": "-1:-1:-1", + "scope": 27038, + "sourceUnit": 23068, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 27037, + "nodeType": "ContractDefinition", + "src": "153:435:20", + "nodes": [ + { + "id": 26986, + "nodeType": "VariableDeclaration", + "src": "182:29:20", + "nodes": [], + "constant": false, + "functionSelector": "009a9b7b", + "mutability": "mutable", + "name": "currentTokenId", + "nameLocation": "197:14:20", + "scope": 27037, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "182:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "id": 26994, + "nodeType": "FunctionDefinition", + "src": "218:37:20", + "nodes": [], + "body": { + "id": 26993, + "nodeType": "Block", + "src": "253:2:20", + "nodes": [], + "statements": [] + }, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "4e4654", + "id": 26989, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "239:5:20", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a", + "typeString": "literal_string \"NFT\"" + }, + "value": "NFT" + }, + { + "hexValue": "4e4654", + "id": 26990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "246:5:20", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c4138cd0a1311e4748f70d0fe3dc55f0f5f75e0f20db731225cbc3b8914016a", + "typeString": "literal_string \"NFT\"" + }, + "value": "NFT" + } + ], + "id": 26991, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 26988, + "name": "ERC721", + "nameLocations": [ + "232:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26942, + "src": "232:6:20" + }, + "nodeType": "ModifierInvocation", + "src": "232:20:20" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "parameters": { + "id": 26987, + "nodeType": "ParameterList", + "parameters": [], + "src": "229:2:20" + }, + "returnParameters": { + "id": 26992, + "nodeType": "ParameterList", + "parameters": [], + "src": "253:0:20" + }, + "scope": 27037, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 27022, + "nodeType": "FunctionDefinition", + "src": "261:192:20", + "nodes": [], + "body": { + "id": 27021, + "nodeType": "Block", + "src": "315:138:20", + "nodes": [], + "statements": [ + { + "body": { + "id": 27019, + "nodeType": "Block", + "src": "361:86:20", + "statements": [ + { + "expression": { + "id": 27012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 27010, + "name": "currentTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26986, + "src": "375:14:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 27011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "393:1:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "375:19:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27013, + "nodeType": "ExpressionStatement", + "src": "375:19:20" + }, + { + "expression": { + "arguments": [ + { + "id": 27015, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26996, + "src": "418:1:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27016, + "name": "currentTokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26986, + "src": "421:14:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 27014, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 26899, + 26941 + ], + "referencedDeclaration": 26899, + "src": "408:9:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 27017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "408:28:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27018, + "nodeType": "ExpressionStatement", + "src": "408:28:20" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27004, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27002, + "src": "340:1:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 27005, + "name": "mintAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26998, + "src": "344:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "340:14:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 27020, + "initializationExpression": { + "assignments": [ + 27002 + ], + "declarations": [ + { + "constant": false, + "id": 27002, + "mutability": "mutable", + "name": "i", + "nameLocation": "337:1:20", + "nodeType": "VariableDeclaration", + "scope": 27020, + "src": "329:9:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "329:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 27003, + "nodeType": "VariableDeclarationStatement", + "src": "329:9:20" + }, + "loopExpression": { + "expression": { + "id": 27008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "356:3:20", + "subExpression": { + "id": 27007, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27002, + "src": "356:1:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27009, + "nodeType": "ExpressionStatement", + "src": "356:3:20" + }, + "nodeType": "ForStatement", + "src": "325:122:20" + } + ] + }, + "functionSelector": "40c10f19", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nameLocation": "270:4:20", + "parameters": { + "id": 26999, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26996, + "mutability": "mutable", + "name": "r", + "nameLocation": "283:1:20", + "nodeType": "VariableDeclaration", + "scope": 27022, + "src": "275:9:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "275:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 26998, + "mutability": "mutable", + "name": "mintAmount", + "nameLocation": "294:10:20", + "nodeType": "VariableDeclaration", + "scope": 27022, + "src": "286:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "286:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "274:31:20" + }, + "returnParameters": { + "id": 27000, + "nodeType": "ParameterList", + "parameters": [], + "src": "315:0:20" + }, + "scope": 27037, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27036, + "nodeType": "FunctionDefinition", + "src": "459:127:20", + "nodes": [], + "body": { + "id": 27035, + "nodeType": "Block", + "src": "542:44:20", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 27032, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27024, + "src": "576:2:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 27030, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23067, + "src": "559:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Strings_$23067_$", + "typeString": "type(library Strings)" + } + }, + "id": 27031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "567:8:20", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 22950, + "src": "559:16:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 27033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "559:20:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 27029, + "id": 27034, + "nodeType": "Return", + "src": "552:27:20" + } + ] + }, + "baseFunctions": [ + 26436 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nameLocation": "468:8:20", + "overrides": { + "id": 27026, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "509:8:20" + }, + "parameters": { + "id": 27025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27024, + "mutability": "mutable", + "name": "id", + "nameLocation": "485:2:20", + "nodeType": "VariableDeclaration", + "scope": 27036, + "src": "477:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "477:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "476:12:20" + }, + "returnParameters": { + "id": 27029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27028, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 27036, + "src": "527:13:20", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 27027, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "527:6:20", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "526:15:20" + }, + "scope": 27037, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 26983, + "name": "ERC721", + "nameLocations": [ + "169:6:20" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26942, + "src": "169:6:20" + }, + "id": 26984, + "nodeType": "InheritanceSpecifier", + "src": "169:6:20" + } + ], + "canonicalName": "NFT", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 27037, + 26942 + ], + "name": "NFT", + "nameLocation": "162:3:20", + "scope": 27038, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 20 +} \ No newline at end of file diff --git a/src/lib/sendit.json b/src/lib/sendit.json new file mode 100644 index 0000000..6af92c6 --- /dev/null +++ b/src/lib/sendit.json @@ -0,0 +1,3534 @@ +{ + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenIndex", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "TokenTransfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "addressVault", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "tokenIndexes", + "type": "uint256[]" + }, + { + "internalType": "address[]", + "name": "recipients", + "type": "address[]" + }, + { + "internalType": "bool", + "name": "isERC1155", + "type": "bool" + } + ], + "name": "contractBulkTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenIndex", + "type": "uint256" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bool", + "name": "isERC1155", + "type": "bool" + } + ], + "name": "contractTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "vaultAddress", + "type": "address" + } + ], + "name": "updateVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": { + "object": "0x608060405234801561001057600080fd5b506108b0806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632ab8c1f414610051578063785da64414610096578063c3c77c63146100ab578063e7563f3f146100be575b600080fd5b61007a61005f366004610559565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100a96100a436600461058b565b6100fb565b005b6100a96100b936600461062a565b610482565b6100a96100cc366004610559565b33600090815260208190526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b801561029957604051627eeac760e11b8152336004820152602481018490526000906001600160a01b0386169062fdd58e90604401602060405180830381865afa15801561014d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017191906106bf565b116101975760405162461bcd60e51b815260040161018e906106d8565b60405180910390fd5b60405163e985e9c560e01b81523360048201523060248201526001600160a01b0385169063e985e9c590604401602060405180830381865afa1580156101e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102059190610735565b6102215760405162461bcd60e51b815260040161018e90610752565b60408051602081018252600081529051637921219560e11b81526001600160a01b0386169163f242432a9161026291339187918991600191906004016107a8565b600060405180830381600087803b15801561027c57600080fd5b505af1158015610290573d6000803e3d6000fd5b50505050610425565b6040516331a9108f60e11b8152600481018490526001600160a01b03851690636352211e90602401602060405180830381865afa1580156102de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103029190610820565b6001600160a01b0316336001600160a01b0316146103325760405162461bcd60e51b815260040161018e906106d8565b60405163e985e9c560e01b81523360048201523060248201526001600160a01b0385169063e985e9c590604401602060405180830381865afa15801561037c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a09190610735565b6103bc5760405162461bcd60e51b815260040161018e90610752565b604051632142170760e11b81523360048201526001600160a01b038381166024830152604482018590528516906342842e0e90606401600060405180830381600087803b15801561040c57600080fd5b505af1158015610420573d6000803e3d6000fd5b505050505b816001600160a01b0316336001600160a01b0316856001600160a01b03167fa8b0736f82b72321cb76a3db6dfd7187786bb37ac0964124f784ec881c56ab758660405161047491815260200190565b60405180910390a450505050565b8382146104d15760405162461bcd60e51b815260206004820152601960248201527f4172726179206c656e67746873206d757374206d617463682e00000000000000604482015260640161018e565b60005b8481101561053857610526878787848181106104f2576104f261083d565b9050602002013586868581811061050b5761050b61083d565b90506020020160208101906105209190610559565b856100fb565b8061053081610853565b9150506104d4565b50505050505050565b6001600160a01b038116811461055657600080fd5b50565b60006020828403121561056b57600080fd5b813561057681610541565b9392505050565b801515811461055657600080fd5b600080600080608085870312156105a157600080fd5b84356105ac81610541565b93506020850135925060408501356105c381610541565b915060608501356105d38161057d565b939692955090935050565b60008083601f8401126105f057600080fd5b50813567ffffffffffffffff81111561060857600080fd5b6020830191508360208260051b850101111561062357600080fd5b9250929050565b6000806000806000806080878903121561064357600080fd5b863561064e81610541565b9550602087013567ffffffffffffffff8082111561066b57600080fd5b6106778a838b016105de565b9097509550604089013591508082111561069057600080fd5b5061069d89828a016105de565b90945092505060608701356106b18161057d565b809150509295509295509295565b6000602082840312156106d157600080fd5b5051919050565b6020808252603c908201527f53656e646572206973206e6f742074686520746f6b656e206f776e65722c206360408201527f616e6e6f742070726f636565642077697468207472616e736665722e00000000606082015260800190565b60006020828403121561074757600080fd5b81516105768161057d565b60208082526036908201527f436f6e7472616374206e6f7420617070726f76656420746f2073656e6420746f60408201527535b2b7399037b71029b2b73232b9103132b430b6331760511b606082015260800190565b600060018060a01b03808816835260208188168185015286604085015285606085015260a06080850152845191508160a085015260005b828110156107fb5785810182015185820160c0015281016107df565b5050600060c0828501015260c0601f19601f8301168401019150509695505050505050565b60006020828403121561083257600080fd5b815161057681610541565b634e487b7160e01b600052603260045260246000fd5b60006001820161087357634e487b7160e01b600052601160045260246000fd5b506001019056fea264697066735822122093c2c95343af195c80725dd00c625744da7664bea0a92e5ce264de98394570e064736f6c63430008110033", + "sourceMap": "139:2320:19:-:0;;;;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80632ab8c1f414610051578063785da64414610096578063c3c77c63146100ab578063e7563f3f146100be575b600080fd5b61007a61005f366004610559565b6000602081905290815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100a96100a436600461058b565b6100fb565b005b6100a96100b936600461062a565b610482565b6100a96100cc366004610559565b33600090815260208190526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b801561029957604051627eeac760e11b8152336004820152602481018490526000906001600160a01b0386169062fdd58e90604401602060405180830381865afa15801561014d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017191906106bf565b116101975760405162461bcd60e51b815260040161018e906106d8565b60405180910390fd5b60405163e985e9c560e01b81523360048201523060248201526001600160a01b0385169063e985e9c590604401602060405180830381865afa1580156101e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102059190610735565b6102215760405162461bcd60e51b815260040161018e90610752565b60408051602081018252600081529051637921219560e11b81526001600160a01b0386169163f242432a9161026291339187918991600191906004016107a8565b600060405180830381600087803b15801561027c57600080fd5b505af1158015610290573d6000803e3d6000fd5b50505050610425565b6040516331a9108f60e11b8152600481018490526001600160a01b03851690636352211e90602401602060405180830381865afa1580156102de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103029190610820565b6001600160a01b0316336001600160a01b0316146103325760405162461bcd60e51b815260040161018e906106d8565b60405163e985e9c560e01b81523360048201523060248201526001600160a01b0385169063e985e9c590604401602060405180830381865afa15801561037c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a09190610735565b6103bc5760405162461bcd60e51b815260040161018e90610752565b604051632142170760e11b81523360048201526001600160a01b038381166024830152604482018590528516906342842e0e90606401600060405180830381600087803b15801561040c57600080fd5b505af1158015610420573d6000803e3d6000fd5b505050505b816001600160a01b0316336001600160a01b0316856001600160a01b03167fa8b0736f82b72321cb76a3db6dfd7187786bb37ac0964124f784ec881c56ab758660405161047491815260200190565b60405180910390a450505050565b8382146104d15760405162461bcd60e51b815260206004820152601960248201527f4172726179206c656e67746873206d757374206d617463682e00000000000000604482015260640161018e565b60005b8481101561053857610526878787848181106104f2576104f261083d565b9050602002013586868581811061050b5761050b61083d565b90506020020160208101906105209190610559565b856100fb565b8061053081610853565b9150506104d4565b50505050505050565b6001600160a01b038116811461055657600080fd5b50565b60006020828403121561056b57600080fd5b813561057681610541565b9392505050565b801515811461055657600080fd5b600080600080608085870312156105a157600080fd5b84356105ac81610541565b93506020850135925060408501356105c381610541565b915060608501356105d38161057d565b939692955090935050565b60008083601f8401126105f057600080fd5b50813567ffffffffffffffff81111561060857600080fd5b6020830191508360208260051b850101111561062357600080fd5b9250929050565b6000806000806000806080878903121561064357600080fd5b863561064e81610541565b9550602087013567ffffffffffffffff8082111561066b57600080fd5b6106778a838b016105de565b9097509550604089013591508082111561069057600080fd5b5061069d89828a016105de565b90945092505060608701356106b18161057d565b809150509295509295509295565b6000602082840312156106d157600080fd5b5051919050565b6020808252603c908201527f53656e646572206973206e6f742074686520746f6b656e206f776e65722c206360408201527f616e6e6f742070726f636565642077697468207472616e736665722e00000000606082015260800190565b60006020828403121561074757600080fd5b81516105768161057d565b60208082526036908201527f436f6e7472616374206e6f7420617070726f76656420746f2073656e6420746f60408201527535b2b7399037b71029b2b73232b9103132b430b6331760511b606082015260800190565b600060018060a01b03808816835260208188168185015286604085015285606085015260a06080850152845191508160a085015260005b828110156107fb5785810182015185820160c0015281016107df565b5050600060c0828501015260c0601f19601f8301168401019150509695505050505050565b60006020828403121561083257600080fd5b815161057681610541565b634e487b7160e01b600052603260045260246000fd5b60006001820161087357634e487b7160e01b600052601160045260246000fd5b506001019056fea264697066735822122093c2c95343af195c80725dd00c625744da7664bea0a92e5ce264de98394570e064736f6c63430008110033", + "sourceMap": "139:2320:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;162:47;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;162:47:19;;;;;;-1:-1:-1;;;;;566:32:21;;;548:51;;536:2;521:18;162:47:19;;;;;;;945:1073;;;;;;:::i;:::-;;:::i;:::-;;2024:432;;;;;;:::i;:::-;;:::i;831:108::-;;;;;;:::i;:::-;906:10;893:12;:24;;;;;;;;;;:39;;-1:-1:-1;;;;;;893:39:19;-1:-1:-1;;;;;893:39:19;;;;;;;;;;831:108;945:1073;1110:9;1106:826;;;1143:58;;-1:-1:-1;;;1143:58:19;;1178:10;1143:58;;;2925:51:21;2992:18;;;2985:34;;;1204:1:19;;-1:-1:-1;;;;;1143:34:19;;;;;2898:18:21;;1143:58:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;1135:135;;;;-1:-1:-1;;;1135:135:19;;;;;;;:::i;:::-;;;;;;;;;1292:68;;-1:-1:-1;;;1292:68:19;;1334:10;1292:68;;;3860:34:21;1354:4:19;3910:18:21;;;3903:43;-1:-1:-1;;;;;1292:41:19;;;;;3795:18:21;;1292:68:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1284:135;;;;-1:-1:-1;;;1284:135:19;;;;;;;:::i;:::-;1513:9;;;;;;;;-1:-1:-1;1513:9:19;;1433:90;;-1:-1:-1;;;1433:90:19;;-1:-1:-1;;;;;1433:41:19;;;;;:90;;1475:10;;1487:9;;1498:10;;1510:1;;1513:9;1433:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1106:826;;;1576:43;;-1:-1:-1;;;1576:43:19;;;;;5681:25:21;;;-1:-1:-1;;;;;1576:31:19;;;;;5654:18:21;;1576:43:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1562:57:19;:10;-1:-1:-1;;;;;1562:57:19;;1554:130;;;;-1:-1:-1;;;1554:130:19;;;;;;;:::i;:::-;1706:67;;-1:-1:-1;;;1706:67:19;;1747:10;1706:67;;;3860:34:21;1767:4:19;3910:18:21;;;3903:43;-1:-1:-1;;;;;1706:40:19;;;;;3795:18:21;;1706:67:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1698:134;;;;-1:-1:-1;;;1698:134:19;;;;;;;:::i;:::-;1846:75;;-1:-1:-1;;;1846:75:19;;1887:10;1846:75;;;6213:34:21;-1:-1:-1;;;;;6283:15:21;;;6263:18;;;6256:43;6315:18;;;6308:34;;;1846:40:19;;;;;6148:18:21;;1846:75:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1106:826;2001:9;-1:-1:-1;;;;;1946:65:19;1989:10;-1:-1:-1;;;;;1946:65:19;1960:15;-1:-1:-1;;;;;1946:65:19;;1977:10;1946:65;;;;5681:25:21;;5669:2;5654:18;;5535:177;1946:65:19;;;;;;;;945:1073;;;;:::o;2024:432::-;2224:40;;;2216:78;;;;-1:-1:-1;;;2216:78:19;;6555:2:21;2216:78:19;;;6537:21:21;6594:2;6574:18;;;6567:30;6633:27;6613:18;;;6606:55;6678:18;;2216:78:19;6353:349:21;2216:78:19;2308:9;2304:146;2319:23;;;2304:146;;;2363:76;2380:15;2397:12;;2410:1;2397:15;;;;;;;:::i;:::-;;;;;;;2414:10;;2425:1;2414:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2429:9;2363:16;:76::i;:::-;2344:3;;;;:::i;:::-;;;;2304:146;;;;2024:432;;;;;;:::o;14:131:21:-;-1:-1:-1;;;;;89:31:21;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:21:o;610:118::-;696:5;689:13;682:21;675:5;672:32;662:60;;718:1;715;708:12;733:592;816:6;824;832;840;893:3;881:9;872:7;868:23;864:33;861:53;;;910:1;907;900:12;861:53;949:9;936:23;968:31;993:5;968:31;:::i;:::-;1018:5;-1:-1:-1;1070:2:21;1055:18;;1042:32;;-1:-1:-1;1126:2:21;1111:18;;1098:32;1139:33;1098:32;1139:33;:::i;:::-;1191:7;-1:-1:-1;1250:2:21;1235:18;;1222:32;1263:30;1222:32;1263:30;:::i;:::-;733:592;;;;-1:-1:-1;733:592:21;;-1:-1:-1;;733:592:21:o;1330:367::-;1393:8;1403:6;1457:3;1450:4;1442:6;1438:17;1434:27;1424:55;;1475:1;1472;1465:12;1424:55;-1:-1:-1;1498:20:21;;1541:18;1530:30;;1527:50;;;1573:1;1570;1563:12;1527:50;1610:4;1602:6;1598:17;1586:29;;1670:3;1663:4;1653:6;1650:1;1646:14;1638:6;1634:27;1630:38;1627:47;1624:67;;;1687:1;1684;1677:12;1624:67;1330:367;;;;;:::o;1702:1044::-;1839:6;1847;1855;1863;1871;1879;1932:3;1920:9;1911:7;1907:23;1903:33;1900:53;;;1949:1;1946;1939:12;1900:53;1988:9;1975:23;2007:31;2032:5;2007:31;:::i;:::-;2057:5;-1:-1:-1;2113:2:21;2098:18;;2085:32;2136:18;2166:14;;;2163:34;;;2193:1;2190;2183:12;2163:34;2232:70;2294:7;2285:6;2274:9;2270:22;2232:70;:::i;:::-;2321:8;;-1:-1:-1;2206:96:21;-1:-1:-1;2409:2:21;2394:18;;2381:32;;-1:-1:-1;2425:16:21;;;2422:36;;;2454:1;2451;2444:12;2422:36;;2493:72;2557:7;2546:8;2535:9;2531:24;2493:72;:::i;:::-;2584:8;;-1:-1:-1;2467:98:21;-1:-1:-1;;2671:2:21;2656:18;;2643:32;2684:30;2643:32;2684:30;:::i;:::-;2733:7;2723:17;;;1702:1044;;;;;;;;:::o;3030:184::-;3100:6;3153:2;3141:9;3132:7;3128:23;3124:32;3121:52;;;3169:1;3166;3159:12;3121:52;-1:-1:-1;3192:16:21;;3030:184;-1:-1:-1;3030:184:21:o;3219:424::-;3421:2;3403:21;;;3460:2;3440:18;;;3433:30;3499:34;3494:2;3479:18;;3472:62;3570:30;3565:2;3550:18;;3543:58;3633:3;3618:19;;3219:424::o;3957:245::-;4024:6;4077:2;4065:9;4056:7;4052:23;4048:32;4045:52;;;4093:1;4090;4083:12;4045:52;4125:9;4119:16;4144:28;4166:5;4144:28;:::i;4207:418::-;4409:2;4391:21;;;4448:2;4428:18;;;4421:30;4487:34;4482:2;4467:18;;4460:62;-1:-1:-1;;;4553:2:21;4538:18;;4531:52;4615:3;4600:19;;4207:418::o;4630:900::-;4860:4;4906:1;4902;4897:3;4893:11;4889:19;4947:2;4939:6;4935:15;4924:9;4917:34;4970:2;5020;5012:6;5008:15;5003:2;4992:9;4988:18;4981:43;5060:6;5055:2;5044:9;5040:18;5033:34;5103:6;5098:2;5087:9;5083:18;5076:34;5147:3;5141;5130:9;5126:19;5119:32;5180:6;5174:13;5160:27;;5224:6;5218:3;5207:9;5203:19;5196:35;5249:1;5259:141;5273:6;5270:1;5267:13;5259:141;;;5369:14;;;5365:23;;5359:30;5334:17;;;5353:3;5330:27;5323:67;5288:10;;5259:141;;;5263:3;;5450:1;5444:3;5435:6;5424:9;5420:22;5416:32;5409:43;5520:3;5513:2;5509:7;5504:2;5496:6;5492:15;5488:29;5477:9;5473:45;5469:55;5461:63;;;4630:900;;;;;;;;:::o;5717:251::-;5787:6;5840:2;5828:9;5819:7;5815:23;5811:32;5808:52;;;5856:1;5853;5846:12;5808:52;5888:9;5882:16;5907:31;5932:5;5907:31;:::i;6707:127::-;6768:10;6763:3;6759:20;6756:1;6749:31;6799:4;6796:1;6789:15;6823:4;6820:1;6813:15;6839:232;6878:3;6899:17;;;6896:140;;6958:10;6953:3;6949:20;6946:1;6939:31;6993:4;6990:1;6983:15;7021:4;7018:1;7011:15;6896:140;-1:-1:-1;7063:1:21;7052:13;;6839:232::o", + "linkReferences": {} + }, + "methodIdentifiers": { + "addressVault(address)": "2ab8c1f4", + "contractBulkTransfer(address,uint256[],address[],bool)": "c3c77c63", + "contractTransfer(address,uint256,address,bool)": "785da644", + "updateVault(address)": "e7563f3f" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"TokenTransfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"addressVault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIndexes\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"recipients\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"isERC1155\",\"type\":\"bool\"}],\"name\":\"contractBulkTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isERC1155\",\"type\":\"bool\"}],\"name\":\"contractTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vaultAddress\",\"type\":\"address\"}],\"name\":\"updateVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/SendIt.sol\":\"SendIt\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/solmate/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/tokens/ERC1155.sol\":{\"keccak256\":\"0x00502c7d7671d9dce495858572943999633ac298f20dbb70476280a93720d412\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://62c6b793ba478e87398fa891a36f936ece0df7f9d4b0d0e1e3a853b8b707c181\",\"dweb:/ipfs/QmeRJVA9f1txCw7JRW31JszJH3a1abQjxJszfF5acsh8sk\"]},\"lib/solmate/src/tokens/ERC721.sol\":{\"keccak256\":\"0x04af19f16f00ba65ae168d6d10da5210dc18da6bcec6974dccf984ba388aa22d\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://098e69f22b67da6927e03203c12ebfda5b0490518f6d9cce7853001ac5ad8403\",\"dweb:/ipfs/QmYyzfurQe88PsVjRNfutV3gS7Vi68f7zgtVZVtLfd4ViK\"]},\"src/SendIt.sol\":{\"keccak256\":\"0x3485d35718216dd005888f7f6f5cdb9d717b39824c7b93dbd95266fe9a1d233b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://286af732afdbe476177b2d2f0bc0aa4c1265689efb11fc0b92f7483e07042a75\",\"dweb:/ipfs/QmafSHpaqQoAix4uoghqfwmzqS2u1bKCedybb9nH8CbKF6\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.17+commit.8df45f5f" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "contractAddress", + "type": "address", + "indexed": true + }, + { + "internalType": "uint256", + "name": "tokenIndex", + "type": "uint256", + "indexed": false + }, + { + "internalType": "address", + "name": "from", + "type": "address", + "indexed": true + }, + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": true + } + ], + "type": "event", + "name": "TokenTransfer", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "addressVault", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "tokenIndexes", + "type": "uint256[]" + }, + { + "internalType": "address[]", + "name": "recipients", + "type": "address[]" + }, + { + "internalType": "bool", + "name": "isERC1155", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "contractBulkTransfer" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenIndex", + "type": "uint256" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "bool", + "name": "isERC1155", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "contractTransfer" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "vaultAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "updateVault" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + ":ds-test/=lib/solmate/lib/ds-test/src/", + ":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + ":forge-std/=lib/forge-std/src/", + ":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", + ":solmate/=lib/solmate/src/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/SendIt.sol": "SendIt" + }, + "libraries": {} + }, + "sources": { + "lib/solmate/src/tokens/ERC1155.sol": { + "keccak256": "0x00502c7d7671d9dce495858572943999633ac298f20dbb70476280a93720d412", + "urls": [ + "bzz-raw://62c6b793ba478e87398fa891a36f936ece0df7f9d4b0d0e1e3a853b8b707c181", + "dweb:/ipfs/QmeRJVA9f1txCw7JRW31JszJH3a1abQjxJszfF5acsh8sk" + ], + "license": "AGPL-3.0-only" + }, + "lib/solmate/src/tokens/ERC721.sol": { + "keccak256": "0x04af19f16f00ba65ae168d6d10da5210dc18da6bcec6974dccf984ba388aa22d", + "urls": [ + "bzz-raw://098e69f22b67da6927e03203c12ebfda5b0490518f6d9cce7853001ac5ad8403", + "dweb:/ipfs/QmYyzfurQe88PsVjRNfutV3gS7Vi68f7zgtVZVtLfd4ViK" + ], + "license": "AGPL-3.0-only" + }, + "src/SendIt.sol": { + "keccak256": "0x3485d35718216dd005888f7f6f5cdb9d717b39824c7b93dbd95266fe9a1d233b", + "urls": [ + "bzz-raw://286af732afdbe476177b2d2f0bc0aa4c1265689efb11fc0b92f7483e07042a75", + "dweb:/ipfs/QmafSHpaqQoAix4uoghqfwmzqS2u1bKCedybb9nH8CbKF6" + ], + "license": "UNLICENSED" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/SendIt.sol", + "id": 27214, + "exportedSymbols": { + "ERC1155": [ + 26321 + ], + "ERC1155TokenReceiver": [ + 26365 + ], + "ERC721": [ + 26909 + ], + "ERC721TokenReceiver": [ + 26929 + ], + "SendIt": [ + 27213 + ] + }, + "nodeType": "SourceUnit", + "src": "39:2421:19", + "nodes": [ + { + "id": 26990, + "nodeType": "PragmaDirective", + "src": "39:24:19", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".13" + ] + }, + { + "id": 26991, + "nodeType": "ImportDirective", + "src": "65:35:19", + "nodes": [], + "absolutePath": "lib/solmate/src/tokens/ERC721.sol", + "file": "solmate/tokens/ERC721.sol", + "nameLocation": "-1:-1:-1", + "scope": 27214, + "sourceUnit": 26930, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 26992, + "nodeType": "ImportDirective", + "src": "101:36:19", + "nodes": [], + "absolutePath": "lib/solmate/src/tokens/ERC1155.sol", + "file": "solmate/tokens/ERC1155.sol", + "nameLocation": "-1:-1:-1", + "scope": 27214, + "sourceUnit": 26366, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 27213, + "nodeType": "ContractDefinition", + "src": "139:2320:19", + "nodes": [ + { + "id": 26996, + "nodeType": "VariableDeclaration", + "src": "162:47:19", + "nodes": [], + "constant": false, + "functionSelector": "2ab8c1f4", + "mutability": "mutable", + "name": "addressVault", + "nameLocation": "197:12:19", + "scope": 27213, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 26995, + "keyType": { + "id": 26993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "170:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "162:27:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 26994, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "181:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "public" + }, + { + "id": 27006, + "nodeType": "EventDefinition", + "src": "216:115:19", + "nodes": [], + "anonymous": false, + "eventSelector": "a8b0736f82b72321cb76a3db6dfd7187786bb37ac0964124f784ec881c56ab75", + "name": "TokenTransfer", + "nameLocation": "222:13:19", + "parameters": { + "id": 27005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26998, + "indexed": true, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "252:15:19", + "nodeType": "VariableDeclaration", + "scope": 27006, + "src": "236:31:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 26997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "236:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27000, + "indexed": false, + "mutability": "mutable", + "name": "tokenIndex", + "nameLocation": "277:10:19", + "nodeType": "VariableDeclaration", + "scope": 27006, + "src": "269:18:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "269:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27002, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "305:4:19", + "nodeType": "VariableDeclaration", + "scope": 27006, + "src": "289:20:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27001, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "289:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27004, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "327:2:19", + "nodeType": "VariableDeclaration", + "scope": 27006, + "src": "311:18:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27003, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "311:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "235:95:19" + } + }, + { + "id": 27047, + "nodeType": "ModifierDefinition", + "src": "419:406:19", + "nodes": [], + "body": { + "id": 27046, + "nodeType": "Block", + "src": "536:289:19", + "nodes": [], + "statements": [ + { + "condition": { + "id": 27014, + "name": "isERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27012, + "src": "550:9:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 27043, + "nodeType": "Block", + "src": "690:118:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 27039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 27031, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "712:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "716:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "712:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 27037, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27010, + "src": "758:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 27034, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27008, + "src": "733:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27033, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26909, + "src": "726:6:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$26909_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 27035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "726:23:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721_$26909", + "typeString": "contract ERC721" + } + }, + "id": 27036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "750:7:19", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26434, + "src": "726:31:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 27038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "726:43:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "712:57:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75206d757374206f776e2074686520746f6b656e2e", + "id": 27040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "771:25:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d31599eb0fbd49993937bd1d29a43fee7483feee72489f5acd1739c2fdde9e5b", + "typeString": "literal_string \"You must own the token.\"" + }, + "value": "You must own the token." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d31599eb0fbd49993937bd1d29a43fee7483feee72489f5acd1739c2fdde9e5b", + "typeString": "literal_string \"You must own the token.\"" + } + ], + "id": 27030, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "704:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "704:93:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27042, + "nodeType": "ExpressionStatement", + "src": "704:93:19" + } + ] + }, + "id": 27044, + "nodeType": "IfStatement", + "src": "546:262:19", + "trueBody": { + "id": 27029, + "nodeType": "Block", + "src": "561:123:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 27020, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "618:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "622:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "618:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27022, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27010, + "src": "630:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 27017, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27008, + "src": "591:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27016, + "name": "ERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26321, + "src": "583:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1155_$26321_$", + "typeString": "type(contract ERC1155)" + } + }, + "id": 27018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "583:24:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC1155_$26321", + "typeString": "contract ERC1155" + } + }, + "id": 27019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "608:9:19", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 25735, + "src": "583:34:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view external returns (uint256)" + } + }, + "id": 27023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "583:58:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 27024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "644:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "583:62:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "596f75206d757374206f776e2074686520746f6b656e2e", + "id": 27026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "647:25:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d31599eb0fbd49993937bd1d29a43fee7483feee72489f5acd1739c2fdde9e5b", + "typeString": "literal_string \"You must own the token.\"" + }, + "value": "You must own the token." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d31599eb0fbd49993937bd1d29a43fee7483feee72489f5acd1739c2fdde9e5b", + "typeString": "literal_string \"You must own the token.\"" + } + ], + "id": 27015, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "575:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "575:98:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27028, + "nodeType": "ExpressionStatement", + "src": "575:98:19" + } + ] + } + }, + { + "id": 27045, + "nodeType": "PlaceholderStatement", + "src": "817:1:19" + } + ] + }, + "name": "onlyIfTokenOwner", + "nameLocation": "428:16:19", + "parameters": { + "id": 27013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27008, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "462:15:19", + "nodeType": "VariableDeclaration", + "scope": 27047, + "src": "454:23:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27010, + "mutability": "mutable", + "name": "tokenIndex", + "nameLocation": "495:10:19", + "nodeType": "VariableDeclaration", + "scope": 27047, + "src": "487:18:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27009, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "487:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27012, + "mutability": "mutable", + "name": "isERC1155", + "nameLocation": "520:9:19", + "nodeType": "VariableDeclaration", + "scope": 27047, + "src": "515:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 27011, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "515:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "444:91:19" + }, + "virtual": false, + "visibility": "internal" + }, + { + "id": 27060, + "nodeType": "FunctionDefinition", + "src": "831:108:19", + "nodes": [], + "body": { + "id": 27059, + "nodeType": "Block", + "src": "883:56:19", + "nodes": [], + "statements": [ + { + "expression": { + "id": 27057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 27052, + "name": "addressVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26996, + "src": "893:12:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 27055, + "indexExpression": { + "expression": { + "id": 27053, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "906:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "910:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "906:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "893:24:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 27056, + "name": "vaultAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27049, + "src": "920:12:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "893:39:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27058, + "nodeType": "ExpressionStatement", + "src": "893:39:19" + } + ] + }, + "functionSelector": "e7563f3f", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateVault", + "nameLocation": "840:11:19", + "parameters": { + "id": 27050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27049, + "mutability": "mutable", + "name": "vaultAddress", + "nameLocation": "860:12:19", + "nodeType": "VariableDeclaration", + "scope": 27060, + "src": "852:20:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27048, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "852:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "851:22:19" + }, + "returnParameters": { + "id": 27051, + "nodeType": "ParameterList", + "parameters": [], + "src": "883:0:19" + }, + "scope": 27213, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 27166, + "nodeType": "FunctionDefinition", + "src": "945:1073:19", + "nodes": [], + "body": { + "id": 27165, + "nodeType": "Block", + "src": "1096:922:19", + "nodes": [], + "statements": [ + { + "condition": { + "id": 27071, + "name": "isERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27068, + "src": "1110:9:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 27155, + "nodeType": "Block", + "src": "1540:392:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 27126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 27118, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1562:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1566:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1562:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "id": 27124, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27064, + "src": "1608:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 27121, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27062, + "src": "1583:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27120, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26909, + "src": "1576:6:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$26909_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 27122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1576:23:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721_$26909", + "typeString": "contract ERC721" + } + }, + "id": 27123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1600:7:19", + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 26434, + "src": "1576:31:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view external returns (address)" + } + }, + "id": 27125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1576:43:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1562:57:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "53656e646572206973206e6f742074686520746f6b656e206f776e65722c2063616e6e6f742070726f636565642077697468207472616e736665722e", + "id": 27127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1621:62:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bb763f88f946c87a05ef8693394dbce4ea486c888648953a642721b2425f79bc", + "typeString": "literal_string \"Sender is not the token owner, cannot proceed with transfer.\"" + }, + "value": "Sender is not the token owner, cannot proceed with transfer." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bb763f88f946c87a05ef8693394dbce4ea486c888648953a642721b2425f79bc", + "typeString": "literal_string \"Sender is not the token owner, cannot proceed with transfer.\"" + } + ], + "id": 27117, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1554:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1554:130:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27129, + "nodeType": "ExpressionStatement", + "src": "1554:130:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 27135, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1747:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1751:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1747:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 27139, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1767:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SendIt_$27213", + "typeString": "contract SendIt" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SendIt_$27213", + "typeString": "contract SendIt" + } + ], + "id": 27138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1759:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 27137, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1759:7:19", + "typeDescriptions": {} + } + }, + "id": 27140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1759:13:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 27132, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27062, + "src": "1713:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27131, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26909, + "src": "1706:6:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$26909_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 27133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1706:23:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721_$26909", + "typeString": "contract ERC721" + } + }, + "id": 27134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1730:16:19", + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 26466, + "src": "1706:40:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view external returns (bool)" + } + }, + "id": 27141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1706:67:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436f6e7472616374206e6f7420617070726f76656420746f2073656e6420746f6b656e73206f6e2053656e64657220626568616c662e", + "id": 27142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1775:56:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_74c615216bd7cedc5a8f0a4ad8a963eeb060b1d9879a472090fd7ba5247f7c69", + "typeString": "literal_string \"Contract not approved to send tokens on Sender behalf.\"" + }, + "value": "Contract not approved to send tokens on Sender behalf." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_74c615216bd7cedc5a8f0a4ad8a963eeb060b1d9879a472090fd7ba5247f7c69", + "typeString": "literal_string \"Contract not approved to send tokens on Sender behalf.\"" + } + ], + "id": 27130, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1698:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1698:134:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27144, + "nodeType": "ExpressionStatement", + "src": "1698:134:19" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 27149, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1887:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1891:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1887:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27151, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27066, + "src": "1899:9:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27152, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27064, + "src": "1910:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 27146, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27062, + "src": "1853:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27145, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26909, + "src": "1846:6:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$26909_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 27147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1846:23:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721_$26909", + "typeString": "contract ERC721" + } + }, + "id": 27148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1870:16:19", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 26666, + "src": "1846:40:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 27153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1846:75:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27154, + "nodeType": "ExpressionStatement", + "src": "1846:75:19" + } + ] + }, + "id": 27156, + "nodeType": "IfStatement", + "src": "1106:826:19", + "trueBody": { + "id": 27116, + "nodeType": "Block", + "src": "1121:413:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 27077, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1178:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1182:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1178:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27079, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27064, + "src": "1190:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 27074, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27062, + "src": "1151:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27073, + "name": "ERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26321, + "src": "1143:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1155_$26321_$", + "typeString": "type(contract ERC1155)" + } + }, + "id": 27075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1143:24:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC1155_$26321", + "typeString": "contract ERC1155" + } + }, + "id": 27076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1168:9:19", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 25735, + "src": "1143:34:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view external returns (uint256)" + } + }, + "id": 27080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1143:58:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 27081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1204:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1143:62:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "53656e646572206973206e6f742074686520746f6b656e206f776e65722c2063616e6e6f742070726f636565642077697468207472616e736665722e", + "id": 27083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1207:62:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bb763f88f946c87a05ef8693394dbce4ea486c888648953a642721b2425f79bc", + "typeString": "literal_string \"Sender is not the token owner, cannot proceed with transfer.\"" + }, + "value": "Sender is not the token owner, cannot proceed with transfer." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bb763f88f946c87a05ef8693394dbce4ea486c888648953a642721b2425f79bc", + "typeString": "literal_string \"Sender is not the token owner, cannot proceed with transfer.\"" + } + ], + "id": 27072, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1135:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1135:135:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27085, + "nodeType": "ExpressionStatement", + "src": "1135:135:19" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 27091, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1334:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1338:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1334:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 27095, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1354:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SendIt_$27213", + "typeString": "contract SendIt" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SendIt_$27213", + "typeString": "contract SendIt" + } + ], + "id": 27094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1346:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 27093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1346:7:19", + "typeDescriptions": {} + } + }, + "id": 27096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1346:13:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "arguments": [ + { + "id": 27088, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27062, + "src": "1300:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27087, + "name": "ERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26321, + "src": "1292:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1155_$26321_$", + "typeString": "type(contract ERC1155)" + } + }, + "id": 27089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1292:24:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC1155_$26321", + "typeString": "contract ERC1155" + } + }, + "id": 27090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1317:16:19", + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 25741, + "src": "1292:41:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view external returns (bool)" + } + }, + "id": 27097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1292:68:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436f6e7472616374206e6f7420617070726f76656420746f2073656e6420746f6b656e73206f6e2053656e64657220626568616c662e", + "id": 27098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1362:56:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_74c615216bd7cedc5a8f0a4ad8a963eeb060b1d9879a472090fd7ba5247f7c69", + "typeString": "literal_string \"Contract not approved to send tokens on Sender behalf.\"" + }, + "value": "Contract not approved to send tokens on Sender behalf." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_74c615216bd7cedc5a8f0a4ad8a963eeb060b1d9879a472090fd7ba5247f7c69", + "typeString": "literal_string \"Contract not approved to send tokens on Sender behalf.\"" + } + ], + "id": 27086, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1284:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1284:135:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27100, + "nodeType": "ExpressionStatement", + "src": "1284:135:19" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 27105, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1475:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1479:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1475:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27107, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27066, + "src": "1487:9:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27108, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27064, + "src": "1498:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "31", + "id": 27109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1510:1:19", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "arguments": [ + { + "hexValue": "", + "id": 27112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1519:2:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 27111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1513:5:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 27110, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1513:5:19", + "typeDescriptions": {} + } + }, + "id": 27113, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1513:9:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "arguments": [ + { + "id": 27102, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27062, + "src": "1441:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27101, + "name": "ERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26321, + "src": "1433:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC1155_$26321_$", + "typeString": "type(contract ERC1155)" + } + }, + "id": 27103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1433:24:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC1155_$26321", + "typeString": "contract ERC1155" + } + }, + "id": 27104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1458:16:19", + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 25857, + "src": "1433:41:19", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,uint256,bytes memory) external" + } + }, + "id": 27114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1433:90:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27115, + "nodeType": "ExpressionStatement", + "src": "1433:90:19" + } + ] + } + }, + { + "eventCall": { + "arguments": [ + { + "id": 27158, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27062, + "src": "1960:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27159, + "name": "tokenIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27064, + "src": "1977:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 27160, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1989:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 27161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1993:6:19", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1989:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27162, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27066, + "src": "2001:9:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 27157, + "name": "TokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27006, + "src": "1946:13:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,uint256,address,address)" + } + }, + "id": 27163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1946:65:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27164, + "nodeType": "EmitStatement", + "src": "1941:70:19" + } + ] + }, + "functionSelector": "785da644", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contractTransfer", + "nameLocation": "954:16:19", + "parameters": { + "id": 27069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27062, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "988:15:19", + "nodeType": "VariableDeclaration", + "scope": 27166, + "src": "980:23:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "980:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27064, + "mutability": "mutable", + "name": "tokenIndex", + "nameLocation": "1021:10:19", + "nodeType": "VariableDeclaration", + "scope": 27166, + "src": "1013:18:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1013:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27066, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "1049:9:19", + "nodeType": "VariableDeclaration", + "scope": 27166, + "src": "1041:17:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27065, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1041:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27068, + "mutability": "mutable", + "name": "isERC1155", + "nameLocation": "1073:9:19", + "nodeType": "VariableDeclaration", + "scope": 27166, + "src": "1068:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 27067, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1068:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "970:118:19" + }, + "returnParameters": { + "id": 27070, + "nodeType": "ParameterList", + "parameters": [], + "src": "1096:0:19" + }, + "scope": 27213, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 27212, + "nodeType": "FunctionDefinition", + "src": "2024:432:19", + "nodes": [], + "body": { + "id": 27211, + "nodeType": "Block", + "src": "2206:250:19", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 27180, + "name": "tokenIndexes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27171, + "src": "2224:12:19", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 27181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2237:6:19", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2224:19:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 27182, + "name": "recipients", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27174, + "src": "2247:10:19", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 27183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2258:6:19", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2247:17:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2224:40:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4172726179206c656e67746873206d757374206d617463682e", + "id": 27185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2266:27:19", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_81b143823f29469d45d12678174c48d3931683b850446a67e3a08af68e3a1a63", + "typeString": "literal_string \"Array lengths must match.\"" + }, + "value": "Array lengths must match." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_81b143823f29469d45d12678174c48d3931683b850446a67e3a08af68e3a1a63", + "typeString": "literal_string \"Array lengths must match.\"" + } + ], + "id": 27179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2216:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 27186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2216:78:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27187, + "nodeType": "ExpressionStatement", + "src": "2216:78:19" + }, + { + "body": { + "id": 27209, + "nodeType": "Block", + "src": "2349:101:19", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 27199, + "name": "contractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27168, + "src": "2380:15:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 27200, + "name": "tokenIndexes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27171, + "src": "2397:12:19", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 27202, + "indexExpression": { + "id": 27201, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27189, + "src": "2410:1:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2397:15:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 27203, + "name": "recipients", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27174, + "src": "2414:10:19", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 27205, + "indexExpression": { + "id": 27204, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27189, + "src": "2425:1:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2414:13:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 27206, + "name": "isERC1155", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27176, + "src": "2429:9:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 27198, + "name": "contractTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27166, + "src": "2363:16:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,uint256,address,bool)" + } + }, + "id": 27207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2363:76:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 27208, + "nodeType": "ExpressionStatement", + "src": "2363:76:19" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 27194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 27191, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27189, + "src": "2319:1:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 27192, + "name": "tokenIndexes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27171, + "src": "2323:12:19", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 27193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2336:6:19", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2323:19:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2319:23:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 27210, + "initializationExpression": { + "assignments": [ + 27189 + ], + "declarations": [ + { + "constant": false, + "id": 27189, + "mutability": "mutable", + "name": "i", + "nameLocation": "2316:1:19", + "nodeType": "VariableDeclaration", + "scope": 27210, + "src": "2308:9:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2308:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 27190, + "nodeType": "VariableDeclarationStatement", + "src": "2308:9:19" + }, + "loopExpression": { + "expression": { + "id": 27196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2344:3:19", + "subExpression": { + "id": 27195, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27189, + "src": "2344:1:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27197, + "nodeType": "ExpressionStatement", + "src": "2344:3:19" + }, + "nodeType": "ForStatement", + "src": "2304:146:19" + } + ] + }, + "functionSelector": "c3c77c63", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contractBulkTransfer", + "nameLocation": "2033:20:19", + "parameters": { + "id": 27177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27168, + "mutability": "mutable", + "name": "contractAddress", + "nameLocation": "2071:15:19", + "nodeType": "VariableDeclaration", + "scope": 27212, + "src": "2063:23:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2063:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27171, + "mutability": "mutable", + "name": "tokenIndexes", + "nameLocation": "2115:12:19", + "nodeType": "VariableDeclaration", + "scope": 27212, + "src": "2096:31:19", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 27169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2096:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 27170, + "nodeType": "ArrayTypeName", + "src": "2096:9:19", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27174, + "mutability": "mutable", + "name": "recipients", + "nameLocation": "2156:10:19", + "nodeType": "VariableDeclaration", + "scope": 27212, + "src": "2137:29:19", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 27172, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2137:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 27173, + "nodeType": "ArrayTypeName", + "src": "2137:9:19", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27176, + "mutability": "mutable", + "name": "isERC1155", + "nameLocation": "2181:9:19", + "nodeType": "VariableDeclaration", + "scope": 27212, + "src": "2176:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 27175, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2176:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2053:143:19" + }, + "returnParameters": { + "id": 27178, + "nodeType": "ParameterList", + "parameters": [], + "src": "2206:0:19" + }, + "scope": 27213, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [], + "canonicalName": "SendIt", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 27213 + ], + "name": "SendIt", + "nameLocation": "148:6:19", + "scope": 27214, + "usedErrors": [] + } + ], + "license": "UNLICENSED" + }, + "id": 19 +} \ No newline at end of file diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..5c1f795 --- /dev/null +++ b/src/main.js @@ -0,0 +1,8 @@ +import './app.css' +import App from './App.svelte' + +const app = new App({ + target: document.getElementById('app') +}) + +export default app diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..4078e74 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..401b4d4 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import { svelte } from '@sveltejs/vite-plugin-svelte' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [svelte()] +})