From 07cf4ff021ac47e6e4ec2aae46af680094e1563a Mon Sep 17 00:00:00 2001 From: Sam Wellander Date: Sun, 31 Dec 2023 10:23:40 -0800 Subject: [PATCH 1/5] add react-qr-code dependency --- packages/nextjs/package.json | 1 + yarn.lock | 273 ++++++++++++++++++++--------------- 2 files changed, 159 insertions(+), 115 deletions(-) diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index f0d64e1..9d1054a 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -28,6 +28,7 @@ "react-copy-to-clipboard": "~5.1.0", "react-dom": "~18.2.0", "react-hot-toast": "~2.4.0", + "react-qr-code": "^2.0.12", "use-debounce": "~8.0.4", "usehooks-ts": "~2.9.1", "viem": "1.19.9", diff --git a/yarn.lock b/yarn.lock index fb60935..50b81bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -54,25 +54,25 @@ __metadata: linkType: hard "@babel/core@npm:^7.18.6, @babel/core@npm:^7.20.7": - version: 7.23.6 - resolution: "@babel/core@npm:7.23.6" + version: 7.23.7 + resolution: "@babel/core@npm:7.23.7" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.23.5 "@babel/generator": ^7.23.6 "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.23.6 + "@babel/helpers": ^7.23.7 "@babel/parser": ^7.23.6 "@babel/template": ^7.22.15 - "@babel/traverse": ^7.23.6 + "@babel/traverse": ^7.23.7 "@babel/types": ^7.23.6 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 4bddd1b80394a64b2ee33eeb216e8a2a49ad3d74f0ca9ba678c84a37f4502b2540662d72530d78228a2a349fda837fa852eea5cd3ae28465d1188acc6055868e + checksum: 32d5bf73372a47429afaae9adb0af39e47bcea6a831c4b5dcbb4791380cda6949cb8cb1a2fea8b60bb1ebe189209c80e333903df1fa8e9dcb04798c0ce5bf59e languageName: node linkType: hard @@ -131,8 +131,8 @@ __metadata: linkType: hard "@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/helper-create-class-features-plugin@npm:7.23.6" + version: 7.23.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.7" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 "@babel/helper-environment-visitor": ^7.22.20 @@ -145,7 +145,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 356b71b9f4a3a95917432bf6a452f475a292d394d9310e9c8b23c8edb564bee91e40d4290b8aa8779d2987a7c39ae717b2d76edc7c952078b8952df1a20259e3 + checksum: 33e60714b856c3816a7965d4c76278cc8f430644a2dfc4eeafad2f7167c4fbd2becdb74cbfeb04b02efd6bbd07176ef53c6683262b588e65d378438e9c55c26b languageName: node linkType: hard @@ -337,14 +337,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/helpers@npm:7.23.6" +"@babel/helpers@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/helpers@npm:7.23.7" dependencies: "@babel/template": ^7.22.15 - "@babel/traverse": ^7.23.6 + "@babel/traverse": ^7.23.7 "@babel/types": ^7.23.6 - checksum: c5ba62497e1d717161d107c4b3de727565c68b6b9f50f59d6298e613afeca8895799b227c256e06d362e565aec34e26fb5c675b9c3d25055c52b945a21c21e21 + checksum: 4f3bdf35fb54ff79107c6020ba1e36a38213a15b05ca0fa06c553b65f566e185fba6339fb3344be04593ebc244ed0bbb0c6087e73effe0d053a30bcd2db3a013 languageName: node linkType: hard @@ -392,15 +392,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.3" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.7" dependencies: "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: 4690123f0ef7c11d6bf1a9579e4f463ce363563b75ec3f6ca66cf68687e39d8d747a82c833847653962f79da367eca895d9095c60d8ebb224a1d4277003acc11 + checksum: f88e400b548202a6f8c5dfd25bc4949a13ea1ccb64a170d7dea4deaa655a0fcb001d3fd61c35e1ad9c09a3d5f0d43f783400425471fe6d660ccaf33dabea9aba languageName: node linkType: hard @@ -645,9 +645,9 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" +"@babel/plugin-transform-async-generator-functions@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.7" dependencies: "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-plugin-utils": ^7.22.5 @@ -655,7 +655,7 @@ __metadata: "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e2fc132c9033711d55209f4781e1fc73f0f4da5e0ca80a2da73dec805166b73c92a6e83571a8994cd2c893a28302e24107e90856202b24781bab734f800102bb + checksum: b1f66b23423933c27336b1161ac92efef46683321caea97e2255a666f992979376f47a5559f64188d3831fa66a4b24c2a7a40838cc0e9737e90eebe20e8e6372 languageName: node linkType: hard @@ -1230,8 +1230,8 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.18.6": - version: 7.23.6 - resolution: "@babel/preset-env@npm:7.23.6" + version: 7.23.7 + resolution: "@babel/preset-env@npm:7.23.7" dependencies: "@babel/compat-data": ^7.23.5 "@babel/helper-compilation-targets": ^7.23.6 @@ -1239,7 +1239,7 @@ __metadata: "@babel/helper-validator-option": ^7.23.5 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.3 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.7 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 @@ -1260,7 +1260,7 @@ __metadata: "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 "@babel/plugin-transform-arrow-functions": ^7.23.3 - "@babel/plugin-transform-async-generator-functions": ^7.23.4 + "@babel/plugin-transform-async-generator-functions": ^7.23.7 "@babel/plugin-transform-async-to-generator": ^7.23.3 "@babel/plugin-transform-block-scoped-functions": ^7.23.3 "@babel/plugin-transform-block-scoping": ^7.23.4 @@ -1308,14 +1308,14 @@ __metadata: "@babel/plugin-transform-unicode-regex": ^7.23.3 "@babel/plugin-transform-unicode-sets-regex": ^7.23.3 "@babel/preset-modules": 0.1.6-no-external-plugins - babel-plugin-polyfill-corejs2: ^0.4.6 - babel-plugin-polyfill-corejs3: ^0.8.5 - babel-plugin-polyfill-regenerator: ^0.5.3 + babel-plugin-polyfill-corejs2: ^0.4.7 + babel-plugin-polyfill-corejs3: ^0.8.7 + babel-plugin-polyfill-regenerator: ^0.5.4 core-js-compat: ^3.31.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 130262f263c8a76915ff5361f78afa9e63b4ecbf3ade8e833dc7546db7b9552ab507835bdea0feb5e70861345ca128a31327fd2e187084a215fc9dd1cc0ed38e + checksum: 4b5eb466d9d4beca56c6fdaac92e99d440dc5650fdfd6ebf0d2a07380ebb43b4dc9aedf93bb30d1d1cd56d9e264d3728df348159e18dd138729b249261be11bf languageName: node linkType: hard @@ -1364,11 +1364,11 @@ __metadata: linkType: hard "@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.8.4": - version: 7.23.6 - resolution: "@babel/runtime@npm:7.23.6" + version: 7.23.7 + resolution: "@babel/runtime@npm:7.23.7" dependencies: regenerator-runtime: ^0.14.0 - checksum: 1a8eaf3d3a103ef5227b60ca7ab5c589118c36ca65ef2d64e65380b32a98a3f3b5b3ef96660fa0471b079a18b619a8317f3e7f03ab2b930c45282a8b69ed9a16 + checksum: eba85bd24d250abb5ae19b16cffc15a54d3894d8228ace40fa4c0e2f1938f28b38ad3e3430ebff9a1ef511eeb8c527e36044ac19076d6deafa52cef35d8624b9 languageName: node linkType: hard @@ -1401,9 +1401,9 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.18.6, @babel/traverse@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/traverse@npm:7.23.6" +"@babel/traverse@npm:^7.18.6, @babel/traverse@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/traverse@npm:7.23.7" dependencies: "@babel/code-frame": ^7.23.5 "@babel/generator": ^7.23.6 @@ -1415,7 +1415,7 @@ __metadata: "@babel/types": ^7.23.6 debug: ^4.3.1 globals: ^11.1.0 - checksum: 48f2eac0e86b6cb60dab13a5ea6a26ba45c450262fccdffc334c01089e75935f7546be195e260e97f6e43cea419862eda095018531a2718fef8189153d479f88 + checksum: d4a7afb922361f710efc97b1e25ec343fab8b2a4ddc81ca84f9a153f22d4482112cba8f263774be8d297918b6c4767c7a98988ab4e53ac73686c986711dd002e languageName: node linkType: hard @@ -2606,13 +2606,13 @@ __metadata: linkType: hard "@metamask/json-rpc-engine@npm:^7.0.0": - version: 7.3.0 - resolution: "@metamask/json-rpc-engine@npm:7.3.0" + version: 7.3.1 + resolution: "@metamask/json-rpc-engine@npm:7.3.1" dependencies: "@metamask/rpc-errors": ^6.1.0 "@metamask/safe-event-emitter": ^3.0.0 "@metamask/utils": ^8.2.0 - checksum: 7e12fb58ee2775269aa3e6e3a40d18d9053b6cefb6eaa2b80558a65986d0e451a9faf3935548d5b4eced857c6b569e768cb235ef10ff0feb72a23ccadaaff4bc + checksum: 4952eb4e70c0011d334fb4a9bf56aa2d68bef745c892dddd06f6ed7e6303fb95b3b60b4e32c88b6d77bfc5091acc8e71ad274f389419e4bdcc5741ef49cde87d languageName: node linkType: hard @@ -3366,6 +3366,7 @@ __metadata: react-copy-to-clipboard: ~5.1.0 react-dom: ~18.2.0 react-hot-toast: ~2.4.0 + react-qr-code: ^2.0.12 tailwindcss: ~3.3.3 type-fest: ~4.6.0 typescript: ~5.1.6 @@ -3768,11 +3769,11 @@ __metadata: linkType: hard "@types/hast@npm:^2.0.0": - version: 2.3.8 - resolution: "@types/hast@npm:2.3.8" + version: 2.3.9 + resolution: "@types/hast@npm:2.3.9" dependencies: "@types/unist": ^2 - checksum: 4c3b3efb7067d32a568a9bf5d2a7599f99ec08c2eaade3aaeb579b7a31bcdf8f6475f56c1ac5bc3f4e4e07b84a93a9b1cf1ef9a8b52b39e3deabea7989e5dd4b + checksum: 32a742021a973b1e23399f09a21325fda89bf55486068ef7c6364f5054b991cc8ab007f1134cc9d6c7030b6ed60633d70f7401dffb3dec8d10c997330d458a3f languageName: node linkType: hard @@ -3837,11 +3838,11 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 20.10.4 - resolution: "@types/node@npm:20.10.4" + version: 20.10.6 + resolution: "@types/node@npm:20.10.6" dependencies: undici-types: ~5.26.4 - checksum: 054b296417e771ab524bea63cf3289559c6bdf290d45428f7cc68e9b00030ff7a0ece47b8c99a26b4f47a443919813bcf42beadff2f0bea7d8125fa541d92eb0 + checksum: ada40e4ccbda3697dca88f8d13f4c996c493be6fbc15f5f5d3b91096d56bd700786a2c148a92a2b4c5d1f133379e63f754a786b3aebfc6a7d09fc7ea16dc017b languageName: node linkType: hard @@ -3899,13 +3900,13 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.0.15, @types/react@npm:^18.0.21": - version: 18.2.45 - resolution: "@types/react@npm:18.2.45" + version: 18.2.46 + resolution: "@types/react@npm:18.2.46" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 40b256bdce67b026348022b4f8616a693afdad88cf493b77f7b4e6c5f4b0e4ba13a6068e690b9b94572920840ff30d501ea3d8518e1f21cc8fb8204d4b140c8a + checksum: cb0e4dc7f41988a059e1246a19ec377101f5b16097ec4bf7000ef3c431ec0c8c873f40e95075821f908db1f4e3352775f0f18cea53dcad14dce67c0f5110f2bd languageName: node linkType: hard @@ -4125,8 +4126,8 @@ __metadata: linkType: hard "@uniswap/sdk-core@npm:~4.0.1": - version: 4.0.9 - resolution: "@uniswap/sdk-core@npm:4.0.9" + version: 4.0.10 + resolution: "@uniswap/sdk-core@npm:4.0.10" dependencies: "@ethersproject/address": ^5.0.2 big.js: ^5.2.2 @@ -4134,7 +4135,7 @@ __metadata: jsbi: ^3.1.4 tiny-invariant: ^1.1.0 toformat: ^2.0.0 - checksum: f4ed31d995ddd04579061ecc9d613c88da400c50a8be820142fb7cce958532b828ec1992d0c0a5115f839a3cd5e4722cbd853578fa0a28a46aabbd60c3a54ef7 + checksum: 85c1ca851c94a6acdb822eb6bfda50e55701a1fb72b7928e6f7b0a6d6ced42cb987f392d3a4d4cc3453421fe52b850e5aaa896a42075d50786f28648399b977f languageName: node linkType: hard @@ -4992,11 +4993,11 @@ __metadata: linkType: hard "acorn@npm:^8.0.0, acorn@npm:^8.10.0, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.0, acorn@npm:^8.9.0": - version: 8.11.2 - resolution: "acorn@npm:8.11.2" + version: 8.11.3 + resolution: "acorn@npm:8.11.3" bin: acorn: bin/acorn - checksum: 818450408684da89423e3daae24e4dc9b68692db8ab49ea4569c7c5abb7a3f23669438bf129cc81dfdada95e1c9b944ee1bfca2c57a05a4dc73834a612fbf6a7 + checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c languageName: node linkType: hard @@ -5420,7 +5421,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.6": +"babel-plugin-polyfill-corejs2@npm:^0.4.7": version: 0.4.7 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7" dependencies: @@ -5433,7 +5434,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.8.5": +"babel-plugin-polyfill-corejs3@npm:^0.8.7": version: 0.8.7 resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" dependencies: @@ -5445,7 +5446,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.3": +"babel-plugin-polyfill-regenerator@npm:^0.5.4": version: 0.5.4 resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" dependencies: @@ -5766,9 +5767,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001565": - version: 1.0.30001570 - resolution: "caniuse-lite@npm:1.0.30001570" - checksum: 460be2c7a9b1c8a83b6aae4226661c276d9dada6c84209dee547699cf4b28030b9d1fc29ddd7626acee77412b6401993878ea0ef3eadbf3a63ded9034896ae20 + version: 1.0.30001572 + resolution: "caniuse-lite@npm:1.0.30001572" + checksum: 7d017a99a38e29ccee4ed3fc0ef1eb90cf082fcd3a7909c5c536c4ba1d55c5b26ecc1e4ad82c1caa6bfadce526764b354608710c9b61a75bdc7ce8ca15c5fcf2 languageName: node linkType: hard @@ -6165,11 +6166,11 @@ __metadata: linkType: hard "core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1": - version: 3.34.0 - resolution: "core-js-compat@npm:3.34.0" + version: 3.35.0 + resolution: "core-js-compat@npm:3.35.0" dependencies: browserslist: ^4.22.2 - checksum: 6281f7f57a72f254c06611ec088445e11cf84e0b4edfb5f43dece1a1ff8b0ed0e81ed0bc291024761cd90c39d0f007d8bc46548265139808081d311c7cbc9c81 + checksum: 64c41ce6870aa9130b9d0cb8f00c05204094f46db7e345d520ec2e38f8b6e1d51e921d4974ceb880948f19c0a79e5639e55be0e56f88ea20e32e9a6274da7f82 languageName: node linkType: hard @@ -6653,9 +6654,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.601": - version: 1.4.613 - resolution: "electron-to-chromium@npm:1.4.613" - checksum: 30e0abfb02718804733c8eb634b12952753ef739d8363a144fca87ba05f7e08b6b75801e31289a14f7ec580a22c7be35527c5b1c1e391787fff9bac9cd3ffb67 + version: 1.4.616 + resolution: "electron-to-chromium@npm:1.4.616" + checksum: 9fd53bd4e5cded61ee51164a0d23ced1d7677ab176ef8e28eb4a27ceaae1deb3bb0038024db48478507204bfcd48ef66866c078721915a9c7b019697cc5680bf languageName: node linkType: hard @@ -8071,11 +8072,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.15.0 - resolution: "fastq@npm:1.15.0" + version: 1.16.0 + resolution: "fastq@npm:1.16.0" dependencies: reusify: ^1.0.4 - checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a + checksum: 1d40ed1f100ae625e5720484e8602b7ad07649370f1cbc3e34a6b9630a0bfed6946bab0322d8a368a1e3cde87bb9bbb8d3bc2ae01a0c1f022fac1d07c04e4feb languageName: node linkType: hard @@ -8503,20 +8504,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:7.1.6": - version: 7.1.6 - resolution: "glob@npm:7.1.6" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.0.4 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 351d549dd90553b87c2d3f90ce11aed9e1093c74130440e7ae0592e11bbcd2ce7f0ebb8ba6bfe63aaf9b62166a7f4c80cb84490ae5d78408bb2572bf7d4ee0a6 - languageName: node - linkType: hard - "glob@npm:7.1.7": version: 7.1.7 resolution: "glob@npm:7.1.7" @@ -11223,9 +11210,9 @@ __metadata: linkType: hard "node-fetch-native@npm:^1.4.0, node-fetch-native@npm:^1.4.1": - version: 1.4.1 - resolution: "node-fetch-native@npm:1.4.1" - checksum: 339001ad3235a09b195198df8be71b591eec4064a2fcfb7f54b9f0716f6ccb3bda5828e1746f809a6d2edb062a0330e5798f408396c33b3b88339c73d6e9575d + version: 1.6.1 + resolution: "node-fetch-native@npm:1.6.1" + checksum: 1a248ada34561ce1010f09ca81cf5cd9c834b51aec957e82b6811d673e209a44630a835da599f0dd0c3d927f15c5f864d6ed494093c4a42601609f988d5919f2 languageName: node linkType: hard @@ -11355,11 +11342,11 @@ __metadata: linkType: hard "npm-run-path@npm:^5.1.0": - version: 5.1.0 - resolution: "npm-run-path@npm:5.1.0" + version: 5.2.0 + resolution: "npm-run-path@npm:5.2.0" dependencies: path-key: ^4.0.0 - checksum: dc184eb5ec239d6a2b990b43236845332ef12f4e0beaa9701de724aa797fe40b6bbd0157fb7639d24d3ab13f5d5cf22d223a19c6300846b8126f335f788bee66 + checksum: c5325e016014e715689c4014f7e0be16cc4cbf529f32a1723e511bc4689b5f823b704d2bca61ac152ce2bda65e0205dc8b3ba0ec0f5e4c3e162d302f6f5b9efb languageName: node linkType: hard @@ -12020,13 +12007,13 @@ __metadata: linkType: hard "postcss-modules-scope@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-scope@npm:3.0.0" + version: 3.1.0 + resolution: "postcss-modules-scope@npm:3.1.0" dependencies: postcss-selector-parser: ^6.0.4 peerDependencies: postcss: ^8.1.0 - checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 + checksum: 919d02e2e31956fa3dae2036d4f3259c9b8c5361bd58ee55867edededbee03507df88e98f418b5e553e47f3888daba9ea9ef0b18a82c41cf96cdb74df15322c7 languageName: node linkType: hard @@ -12071,12 +12058,12 @@ __metadata: linkType: hard "postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": - version: 6.0.13 - resolution: "postcss-selector-parser@npm:6.0.13" + version: 6.0.15 + resolution: "postcss-selector-parser@npm:6.0.15" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 + checksum: 57decb94152111004f15e27b9c61131eb50ee10a3288e7fcf424cebbb4aba82c2817517ae718f8b5d704ee9e02a638d4a2acff8f47685c295a33ecee4fd31055 languageName: node linkType: hard @@ -12307,6 +12294,13 @@ __metadata: languageName: node linkType: hard +"qr.js@npm:0.0.0": + version: 0.0.0 + resolution: "qr.js@npm:0.0.0" + checksum: 5ac6c393967bdeaa660e7fd3a501a25eb538c1f6008a4d30ab2b97bbe520e5c236530090773f1578aa0a523cdaa6923c866615e21143f9e7cd22abd41c789b69 + languageName: node + linkType: hard + "qrcode.react@npm:~3.1.0": version: 3.1.0 resolution: "qrcode.react@npm:3.1.0" @@ -12488,6 +12482,22 @@ __metadata: languageName: node linkType: hard +"react-qr-code@npm:^2.0.12": + version: 2.0.12 + resolution: "react-qr-code@npm:2.0.12" + dependencies: + prop-types: ^15.8.1 + qr.js: 0.0.0 + peerDependencies: + react: ^16.x || ^17.x || ^18.x + react-native-svg: "*" + peerDependenciesMeta: + react-native-svg: + optional: true + checksum: b7bad40d7d5f04f7ff336ae499920dd5ea0e7616ed7fec5f849e54f8f26b5e4acd1ba8e69198be8617dc7fecdf36cf4302c99ff74885320b55bb95d19a09de7c + languageName: node + linkType: hard + "react-remove-scroll-bar@npm:^2.3.3": version: 2.3.4 resolution: "react-remove-scroll-bar@npm:2.3.4" @@ -12678,9 +12688,9 @@ __metadata: linkType: hard "regenerator-runtime@npm:^0.14.0": - version: 0.14.0 - resolution: "regenerator-runtime@npm:0.14.0" - checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3 + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 languageName: node linkType: hard @@ -13463,9 +13473,9 @@ __metadata: linkType: hard "std-env@npm:^3.4.3": - version: 3.6.0 - resolution: "std-env@npm:3.6.0" - checksum: ec344e93af17fd1b71eb28aeb4712f72790b9f2363981fc91ad1a91c9c7967c1ab89271819242d1b3bdbd57f10ac8ef0559d561ccf081a5377f9b3cd8c9b2259 + version: 3.7.0 + resolution: "std-env@npm:3.7.0" + checksum: 4f489d13ff2ab838c9acd4ed6b786b51aa52ecacdfeaefe9275fcb220ff2ac80c6e95674723508fd29850a694569563a8caaaea738eb82ca16429b3a0b50e510 languageName: node linkType: hard @@ -13676,12 +13686,12 @@ __metadata: linkType: hard "sucrase@npm:^3.32.0": - version: 3.34.0 - resolution: "sucrase@npm:3.34.0" + version: 3.35.0 + resolution: "sucrase@npm:3.35.0" dependencies: "@jridgewell/gen-mapping": ^0.3.2 commander: ^4.0.0 - glob: 7.1.6 + glob: ^10.3.10 lines-and-columns: ^1.1.6 mz: ^2.7.0 pirates: ^4.0.1 @@ -13689,7 +13699,7 @@ __metadata: bin: sucrase: bin/sucrase sucrase-node: bin/sucrase-node - checksum: 61860063bdf6103413698e13247a3074d25843e91170825a9752e4af7668ffadd331b6e99e92fc32ee5b3c484ee134936f926fa9039d5711fafff29d017a2110 + checksum: 9fc5792a9ab8a14dcf9c47dcb704431d35c1cdff1d17d55d382a31c2e8e3063870ad32ce120a80915498486246d612e30cda44f1624d9d9a10423e1a43487ad1 languageName: node linkType: hard @@ -13725,9 +13735,9 @@ __metadata: languageName: node linkType: hard -"tailwindcss@npm:^3, tailwindcss@npm:~3.3.3": - version: 3.3.6 - resolution: "tailwindcss@npm:3.3.6" +"tailwindcss@npm:^3": + version: 3.4.0 + resolution: "tailwindcss@npm:3.4.0" dependencies: "@alloc/quick-lru": ^5.2.0 arg: ^5.0.2 @@ -13754,7 +13764,40 @@ __metadata: bin: tailwind: lib/cli.js tailwindcss: lib/cli.js - checksum: 44632ac471248ecebcee1a2f15a0c3e9b8383513e71692b586aa2fe56dca12828ff70de3d340c898f27b27480e8475e5eb345fb2ebb813028bb2393578a34337 + checksum: d7f05beb1cf98d169b9b65ef674a82dd16c97757194f9bacee4c536cf74f3852e0008a74f7af8578f4a1e9639fac262fd8ef89efe3e6e06667243640422f9462 + languageName: node + linkType: hard + +"tailwindcss@npm:~3.3.3": + version: 3.3.7 + resolution: "tailwindcss@npm:3.3.7" + dependencies: + "@alloc/quick-lru": ^5.2.0 + arg: ^5.0.2 + chokidar: ^3.5.3 + didyoumean: ^1.2.2 + dlv: ^1.1.3 + fast-glob: ^3.3.0 + glob-parent: ^6.0.2 + is-glob: ^4.0.3 + jiti: ^1.19.1 + lilconfig: ^2.1.0 + micromatch: ^4.0.5 + normalize-path: ^3.0.0 + object-hash: ^3.0.0 + picocolors: ^1.0.0 + postcss: ^8.4.23 + postcss-import: ^15.1.0 + postcss-js: ^4.0.1 + postcss-load-config: ^4.0.1 + postcss-nested: ^6.0.1 + postcss-selector-parser: ^6.0.11 + resolve: ^1.22.2 + sucrase: ^3.32.0 + bin: + tailwind: lib/cli.js + tailwindcss: lib/cli.js + checksum: 73728e03ac00bb90a09436895b663473336da4a539ca22df41c62948fd4e45c5feda71d6f33c03666045dbb1806ee36658caf604256d20196ebf580ec0987c2d languageName: node linkType: hard @@ -14549,8 +14592,8 @@ __metadata: linkType: hard "use-callback-ref@npm:^1.3.0": - version: 1.3.0 - resolution: "use-callback-ref@npm:1.3.0" + version: 1.3.1 + resolution: "use-callback-ref@npm:1.3.1" dependencies: tslib: ^2.0.0 peerDependencies: @@ -14559,7 +14602,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 7913df383a5a6fcb399212eedefaac2e0c6f843555202d4e3010bac3848afe38ecaa3d0d6500ad1d936fbeffd637e6c517e68edb024af5e6beca7f27f3ce7b21 + checksum: 6a6a3a8bfe88f466eab982b8a92e5da560a7127b3b38815e89bc4d195d4b33aa9a53dba50d93e8138e7502bcc7e39efe9f2735a07a673212630990c73483e8e9 languageName: node linkType: hard @@ -14732,8 +14775,8 @@ __metadata: linkType: hard "viem@npm:^1.0.0": - version: 1.20.0 - resolution: "viem@npm:1.20.0" + version: 1.21.3 + resolution: "viem@npm:1.21.3" dependencies: "@adraffy/ens-normalize": 1.10.0 "@noble/curves": 1.2.0 @@ -14748,7 +14791,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 0309bddd163c2da83c36c5f1a62a7a3fa826eb2c8bd578eccb8f1a034f741938bafb616ae6c9f8489f416df2348dc0d09c0ec9146047e99fa2f9e4bc05134497 + checksum: 2c4a9c933f35c555b2a7aa78b82a0cc0bae38b0b01109cef81f33a2f1518a6a1d647527a2e5a825ace1f4cabdb69dc1782c112756bb3cc2c0726fb8a5d88fc81 languageName: node linkType: hard From 277e6fdaab7909a77cab8dd29353171b3c04be16 Mon Sep 17 00:00:00 2001 From: Sam Wellander Date: Sun, 31 Dec 2023 10:26:08 -0800 Subject: [PATCH 2/5] update EasyPay contract to index requests by recipient address --- packages/foundry/contracts/EasyPay.sol | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/foundry/contracts/EasyPay.sol b/packages/foundry/contracts/EasyPay.sol index e2a37b6..8c332e9 100644 --- a/packages/foundry/contracts/EasyPay.sol +++ b/packages/foundry/contracts/EasyPay.sol @@ -9,18 +9,16 @@ pragma solidity ^0.8.22; */ struct PayRequest { uint256 amount; - address receiver; bool completed; } contract EasyPay { address public owner; - uint256 requests; /** @dev Mapping to store PayRequest structs mapped to a unique requestId */ - mapping(uint256 requestId => PayRequest) public payRequests; + mapping(address receiver => PayRequest[]) public payRequests; // Custom errors error EasyPay__RequestDoesNotExist(); @@ -42,14 +40,18 @@ contract EasyPay { } function requestPayment(uint256 _amount) public { - requests++; - payRequests[requests] = PayRequest(_amount, msg.sender, false); + uint256 id = payRequests[msg.sender].length; + payRequests[msg.sender].push(PayRequest(_amount, false)); } - function pay(uint256 _requestId) public payable { - PayRequest storage request = payRequests[_requestId]; + function getRequests(address receiver) public view returns(PayRequest[] memory) { + return payRequests[receiver]; + } + + function pay(address receiver, uint256 _requestId) public payable { + PayRequest storage request = payRequests[receiver][_requestId]; - if (request.receiver == address(0)) + if (receiver == address(0)) revert EasyPay__RequestDoesNotExist(); if (request.amount > msg.value) @@ -61,7 +63,7 @@ contract EasyPay { // Call returns a boolean value indicating success or failure. // This is the current recommended method to use to transfer ETH. - (bool sent, ) = request.receiver.call{value: msg.value}(""); + (bool sent, ) = receiver.call{value: msg.value}(""); if (!sent) revert EasyPay__FailedToSendEther(); } From b55b0525b69ad5abd0c917d70fd371efb0e2ed27 Mon Sep 17 00:00:00 2001 From: Sam Wellander Date: Sun, 31 Dec 2023 10:35:29 -0800 Subject: [PATCH 3/5] add requests list page --- packages/nextjs/components/Header.tsx | 7 +- packages/nextjs/pages/requests.tsx | 121 ++++++++++++++++++++++++++ 2 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 packages/nextjs/pages/requests.tsx diff --git a/packages/nextjs/components/Header.tsx b/packages/nextjs/components/Header.tsx index 4a5d86b..5c55d64 100644 --- a/packages/nextjs/components/Header.tsx +++ b/packages/nextjs/components/Header.tsx @@ -2,7 +2,7 @@ import React, { useCallback, useRef, useState } from "react"; import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/router"; -import { Bars3Icon, BugAntIcon } from "@heroicons/react/24/outline"; +import { BanknotesIcon, Bars3Icon, BugAntIcon } from "@heroicons/react/24/outline"; import { FaucetButton, RainbowKitCustomConnectButton } from "~~/components/scaffold-eth"; import { useOutsideClick } from "~~/hooks/scaffold-eth"; @@ -17,6 +17,11 @@ export const menuLinks: HeaderMenuLink[] = [ label: "Home", href: "/", }, + { + label: "Payment Requests", + href: "/requests", + icon: , + }, { label: "Debug Contracts", href: "/debug", diff --git a/packages/nextjs/pages/requests.tsx b/packages/nextjs/pages/requests.tsx new file mode 100644 index 0000000..06e1614 --- /dev/null +++ b/packages/nextjs/pages/requests.tsx @@ -0,0 +1,121 @@ +import { useEffect, useState } from "react"; +import type { NextPage } from "next"; +import QRCode from "react-qr-code"; +import { useLocalStorage } from "usehooks-ts"; +import { formatEther } from "viem"; +import { useAccount } from "wagmi"; +import { MetaHeader } from "~~/components/MetaHeader"; +import { useScaffoldContractRead } from "~~/hooks/scaffold-eth"; +import { notification } from "~~/utils/scaffold-eth"; +import { ContractName } from "~~/utils/scaffold-eth/contract"; +import { getContractNames } from "~~/utils/scaffold-eth/contractNames"; + +interface PaymentRequest { + amount: bigint; + completed: boolean; +} + +interface QRCodeInfo extends PaymentRequest { + url: string; +} + +const selectedContractStorageKey = "scaffoldEth2.selectedContract"; + +const contractNames = getContractNames(); + +const Requests: NextPage = () => { + const [qrCodeInfo, setQrCodeInfo] = useState(); + const { address } = useAccount(); + const [selectedContract, setSelectedContract] = useLocalStorage( + selectedContractStorageKey, + contractNames[0], + ); + + const { data: paymentRequests } = useScaffoldContractRead({ + contractName: "EasyPay", + functionName: "getRequests", + args: [address], + }); + + useEffect(() => { + if (!contractNames.includes(selectedContract)) { + setSelectedContract(contractNames[0]); + } + }, [selectedContract, setSelectedContract]); + + const showLink = (request: { amount: bigint; completed: boolean }, requestId: number) => { + const url = `${window.origin}/makePayment?recipient=${address}&amount=${request.amount}&requestId=${requestId}`; + setQrCodeInfo({ + ...request, + url, + }); + const modalEl = document.getElementById("qr_code_modal") as any; + modalEl?.showModal(); + }; + + const copyUrl = async (url?: string) => { + if (url) { + await navigator.clipboard.writeText(url); + notification.success("Copied payment link"); + } + }; + + return ( + <> + +
+
+

+ All Payment Requests +

+
+
+ + + + + + + + + + {!paymentRequests || paymentRequests.length === 0 ? ( + + + + ) : ( + paymentRequests?.map((request, requestId) => { + return ( + + + + + + ); + }) + )} + +
AmountCompleteLink
+ No requests made +
{formatEther(request.amount)} ETH{request.completed ? "Yes" : "No"} + +
+
+ +
+
copyUrl(qrCodeInfo?.url)}> + +
+
+
+ +
+
+
+ + ); +}; + +export default Requests; From a207d02ce9255ebf8e016191c9a4f4c2feb8f435 Mon Sep 17 00:00:00 2001 From: Sam Wellander Date: Sun, 31 Dec 2023 10:36:03 -0800 Subject: [PATCH 4/5] add makePayment page that QR codes will link to to automatically initiate payment --- packages/nextjs/pages/makePayment.tsx | 49 +++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 packages/nextjs/pages/makePayment.tsx diff --git a/packages/nextjs/pages/makePayment.tsx b/packages/nextjs/pages/makePayment.tsx new file mode 100644 index 0000000..1a61d65 --- /dev/null +++ b/packages/nextjs/pages/makePayment.tsx @@ -0,0 +1,49 @@ +import { useEffect, useState } from "react"; +import { useSearchParams } from "next/navigation"; +import { useConnectModal } from "@rainbow-me/rainbowkit"; +import type { NextPage } from "next"; +import { useAccount } from "wagmi"; +import { useScaffoldContractWrite } from "~~/hooks/scaffold-eth"; + +const Requests: NextPage = () => { + const { isConnected } = useAccount(); + const [hasBeenCalled, setHasBeenCalled] = useState(false); + const { openConnectModal } = useConnectModal(); + const searchParams = useSearchParams(); + const recipient = searchParams.get("recipient") || undefined; + const amount = searchParams.get("amount") || undefined; + const requestId = searchParams.get("requestId") || undefined; + const { writeAsync: sendPaymentTx, isLoading } = useScaffoldContractWrite({ + contractName: "EasyPay", + functionName: "pay", + args: [recipient, BigInt(requestId || "0")], + // for payable functions, expressed in eth + value: BigInt(amount || "0"), + // the number of block confirmations to wait for before considering transaction to be confirmed (default : 1). + blockConfirmations: 1, + // the callback function to execute when the transaction is confirmed. + onBlockConfirmation: txnreceipt => { + console.log("transaction blockhash", txnreceipt.blockHash); + }, + }); + + useEffect(() => { + if (!isConnected) openConnectModal?.(); + }, [isConnected, openConnectModal]); + + useEffect(() => { + const sendPaymentTxAndHandleErr = async () => { + const response = await sendPaymentTx(); + console.log({ response }); + }; + + if (recipient && amount && requestId && !hasBeenCalled && !isLoading && isConnected) { + sendPaymentTxAndHandleErr(); + setHasBeenCalled(true); + } + }, [recipient, amount, requestId, hasBeenCalled, isConnected]); + + return <>; +}; + +export default Requests; From e2518882f3420a392ebcf192c297144dafb72159 Mon Sep 17 00:00:00 2001 From: Sam Wellander Date: Sun, 31 Dec 2023 10:53:31 -0800 Subject: [PATCH 5/5] rename `EasyPay` => `Easy2Pay` reverting from previous renaming --- README.md | 12 ++++----- .../contracts/{EasyPay.sol => Easy2Pay.sol} | 26 +++++++++---------- packages/foundry/script/Deploy.s.sol | 6 ++--- packages/nextjs/pages/makePayment.tsx | 2 +- packages/nextjs/pages/requests.tsx | 4 +-- 5 files changed, 25 insertions(+), 25 deletions(-) rename packages/foundry/contracts/{EasyPay.sol => Easy2Pay.sol} (71%) diff --git a/README.md b/README.md index 46422da..77016ec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# 💸 EasyPay 💸 +# 💸 Easy2Pay 💸 💸 dApp for requesting payments in a currency (like USD, ETH and BTC), and accept different type of valid tokens that share a common value using [Chainlink Price Feeds](https://docs.chain.link/data-feeds/price-feeds). @@ -9,15 +9,15 @@ ## Quickstart -To get started with EasyPay, follow the steps below: +To get started with Easy2Pay, follow the steps below: 1. Make sure you have the [foundry toolkit installed](https://book.getfoundry.sh/getting-started/installation). 2. Clone this repo & install dependencies ``` -git clone https://github.com/luloxi/EasyPay.git -cd EasyPay +git clone https://github.com/luloxi/Easy2Pay.git +cd Easy2Pay yarn install ``` @@ -47,7 +47,7 @@ Visit your app on: `http://localhost:3000`. You can interact with your smart con Run smart contract test with `yarn hardhat:test` -- Edit your smart contract `EasyPay.sol` in `packages/hardhat/contracts` +- Edit your smart contract `Easy2Pay.sol` in `packages/hardhat/contracts` - Edit your frontend in `packages/nextjs/pages` - Edit your deployment scripts in `packages/hardhat/deploy` @@ -65,7 +65,7 @@ Run smart contract test with `yarn hardhat:test` ## Contents -- [💸 EasyPay 💸](#-easypay-) +- [💸 Easy2Pay 💸](#-easypay-) - [Quickstart](#quickstart) - [🏗 About Scaffold-ETH 2](#-about-scaffold-eth-2) - [Contents](#contents) diff --git a/packages/foundry/contracts/EasyPay.sol b/packages/foundry/contracts/Easy2Pay.sol similarity index 71% rename from packages/foundry/contracts/EasyPay.sol rename to packages/foundry/contracts/Easy2Pay.sol index 8c332e9..6649b15 100644 --- a/packages/foundry/contracts/EasyPay.sol +++ b/packages/foundry/contracts/Easy2Pay.sol @@ -12,7 +12,7 @@ struct PayRequest { bool completed; } -contract EasyPay { +contract Easy2Pay { address public owner; /** @@ -21,17 +21,17 @@ contract EasyPay { mapping(address receiver => PayRequest[]) public payRequests; // Custom errors - error EasyPay__RequestDoesNotExist(); - error EasyPay__InsufficientEther( + error Easy2Pay__RequestDoesNotExist(); + error Easy2Pay__InsufficientEther( uint256 requestedAmount, uint256 actualAmount ); - error EasyPay__PaymentAlreadyCompleted(); - error EasyPay__FailedToSendEther(); - error EasyPay__UnauthorizedAccess(); + error Easy2Pay__PaymentAlreadyCompleted(); + error Easy2Pay__FailedToSendEther(); + error Easy2Pay__UnauthorizedAccess(); modifier onlyOwner() { - if (msg.sender != owner) revert EasyPay__UnauthorizedAccess(); + if (msg.sender != owner) revert Easy2Pay__UnauthorizedAccess(); _; } @@ -52,12 +52,12 @@ contract EasyPay { PayRequest storage request = payRequests[receiver][_requestId]; if (receiver == address(0)) - revert EasyPay__RequestDoesNotExist(); + revert Easy2Pay__RequestDoesNotExist(); if (request.amount > msg.value) - revert EasyPay__InsufficientEther(request.amount, msg.value); + revert Easy2Pay__InsufficientEther(request.amount, msg.value); - if (request.completed) revert EasyPay__PaymentAlreadyCompleted(); + if (request.completed) revert Easy2Pay__PaymentAlreadyCompleted(); request.completed = true; @@ -65,17 +65,17 @@ contract EasyPay { // This is the current recommended method to use to transfer ETH. (bool sent, ) = receiver.call{value: msg.value}(""); - if (!sent) revert EasyPay__FailedToSendEther(); + if (!sent) revert Easy2Pay__FailedToSendEther(); } // Function in case a payment is received where msg.data must be empty receive() external payable { - if (msg.sender != address(0)) revert EasyPay__FailedToSendEther(); + if (msg.sender != address(0)) revert Easy2Pay__FailedToSendEther(); } // Fallback function is called when msg.data is not empty fallback() external payable { - if (msg.sender != address(0)) revert EasyPay__FailedToSendEther(); + if (msg.sender != address(0)) revert Easy2Pay__FailedToSendEther(); } function setOwner(address _newOwner) public onlyOwner { diff --git a/packages/foundry/script/Deploy.s.sol b/packages/foundry/script/Deploy.s.sol index a959ca8..bfb63fa 100644 --- a/packages/foundry/script/Deploy.s.sol +++ b/packages/foundry/script/Deploy.s.sol @@ -1,7 +1,7 @@ //SPDX-License-Identifier: MIT pragma solidity ^0.8.19; -import "../contracts/EasyPay.sol"; +import "../contracts/Easy2Pay.sol"; import "./DeployHelpers.s.sol"; contract DeployScript is ScaffoldETHDeploy { @@ -15,10 +15,10 @@ contract DeployScript is ScaffoldETHDeploy { ); } vm.startBroadcast(deployerPrivateKey); - EasyPay easyPay = new EasyPay(); + Easy2Pay easyPay = new Easy2Pay(); console.logString( string.concat( - "EasyPay deployed at: ", + "Easy2Pay deployed at: ", vm.toString(address(easyPay)) ) ); diff --git a/packages/nextjs/pages/makePayment.tsx b/packages/nextjs/pages/makePayment.tsx index 1a61d65..a9969d1 100644 --- a/packages/nextjs/pages/makePayment.tsx +++ b/packages/nextjs/pages/makePayment.tsx @@ -14,7 +14,7 @@ const Requests: NextPage = () => { const amount = searchParams.get("amount") || undefined; const requestId = searchParams.get("requestId") || undefined; const { writeAsync: sendPaymentTx, isLoading } = useScaffoldContractWrite({ - contractName: "EasyPay", + contractName: "Easy2Pay", functionName: "pay", args: [recipient, BigInt(requestId || "0")], // for payable functions, expressed in eth diff --git a/packages/nextjs/pages/requests.tsx b/packages/nextjs/pages/requests.tsx index 06e1614..0f72a4c 100644 --- a/packages/nextjs/pages/requests.tsx +++ b/packages/nextjs/pages/requests.tsx @@ -32,7 +32,7 @@ const Requests: NextPage = () => { ); const { data: paymentRequests } = useScaffoldContractRead({ - contractName: "EasyPay", + contractName: "Easy2Pay", functionName: "getRequests", args: [address], }); @@ -62,7 +62,7 @@ const Requests: NextPage = () => { return ( <> - +