Skip to content

Commit

Permalink
update sats-connect-core and implement wallet action loading
Browse files Browse the repository at this point in the history
  • Loading branch information
m-aboelenein committed Mar 28, 2024
1 parent 12a1ea9 commit 103920f
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 17 deletions.
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Sats Connect

![Banner](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkyMCIgaGVpZ2h0PSI2MDAiIHZpZXdCb3g9IjAgMCAxOTIwIDYwMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjE5MjAiIGhlaWdodD0iNjAwIiBmaWxsPSIjRkY0RDAwIi8+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMV80MzMwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjQyLjI2NyAyNDQuMjQyQzY0Mi4yNjcgMjM5LjEzOCA2NDYuMzU2IDIzNSA2NTEuNCAyMzVINjYwLjUzM0g2NzguOEg2ODcuOTMzQzY5Mi45NzcgMjM1IDY5Ny4wNjcgMjM5LjEzOCA2OTcuMDY3IDI0NC4yNDJWMjUzLjQ4NEg2NzguOEg2NjAuNTMzSDY0Mi4yNjdWMjQ0LjI0MlpNNjQyLjI2NyAyOTAuNDUySDYzMy4xMzNDNjI4LjA4OSAyOTAuNDUyIDYyNCAyODYuMzE0IDYyNCAyODEuMjFWMjcxLjk2OFYyNjIuNzI2QzYyNCAyNTcuNjIyIDYyOC4wODkgMjUzLjQ4NCA2MzMuMTMzIDI1My40ODRINjQyLjI2N1YyNzEuOTY4VjI5MC40NTJaTTY5Ny4wNjcgMzA4LjkzNkw2NzguOCAzMDguOTM2SDY2MC41MzNINjUxLjRDNjQ2LjM1NiAzMDguOTM2IDY0Mi4yNjcgMzA0Ljc5OSA2NDIuMjY3IDI5OS42OTRWMjkwLjQ1Mkg2NjAuNTMzSDY3OC44SDY4Ny45MzNDNjkyLjk3NyAyOTAuNDUyIDY5Ny4wNjcgMjk0LjU5IDY5Ny4wNjcgMjk5LjY5NFYzMDguOTM2Wk02OTcuMDY3IDM0NS45MDVWMzI3LjQyVjMwOC45MzZINzA2LjJDNzExLjI0NCAzMDguOTM2IDcxNS4zMzMgMzEzLjA3NCA3MTUuMzMzIDMxOC4xNzhWMzI3LjQyVjMzNi42NjNDNzE1LjMzMyAzNDEuNzY3IDcxMS4yNDQgMzQ1LjkwNSA3MDYuMiAzNDUuOTA1SDY5Ny4wNjdaTTY0Mi4yNjcgMzQ1LjkwNVYzNTUuMTQ3QzY0Mi4yNjcgMzYwLjI1MSA2NDYuMzU2IDM2NC4zODkgNjUxLjQgMzY0LjM4OUg2NjAuNTMzSDY3OC44SDY4Ny45MzNDNjkyLjk3NyAzNjQuMzg5IDY5Ny4wNjcgMzYwLjI1MSA2OTcuMDY3IDM1NS4xNDdWMzQ1LjkwNUg2NzguOEg2NjAuNTMzSDY0Mi4yNjdaTTY0Mi4yNjcgMzQ1LjkwNUg2MzMuMTMzQzYyOC4wODkgMzQ1LjkwNSA2MjQgMzQxLjc2NyA2MjQgMzM2LjY2M0M2MjQgMzMxLjU1OCA2MjguMDg5IDMyNy40MiA2MzMuMTMzIDMyNy40MkM2MzguMTc4IDMyNy40MiA2NDIuMjY3IDMzMS41NTggNjQyLjI2NyAzMzYuNjYyVjM0NS45MDVaTTY5Ny4wNjcgMjUzLjQ4NEg3MDYuMkM3MTEuMjQ0IDI1My40ODQgNzE1LjMzMyAyNTcuNjIyIDcxNS4zMzMgMjYyLjcyNkM3MTUuMzMzIDI2Ny44MyA3MTEuMjQ0IDI3MS45NjggNzA2LjIgMjcxLjk2OEM3MDEuMTU2IDI3MS45NjggNjk3LjA2NyAyNjcuODMgNjk3LjA2NyAyNjIuNzI2VjI1My40ODRaTTY2MC41MzMgMzI3LjQyQzY2MC41MzMgMzIyLjMxNiA2NjQuNjIyIDMxOC4xNzggNjY5LjY2NyAzMTguMTc4QzY3NC43MTEgMzE4LjE3OCA2NzguOCAzMjIuMzE2IDY3OC44IDMyNy40MkM2NzguOCAzMzIuNTI1IDY3NC43MTEgMzM2LjY2MyA2NjkuNjY3IDMzNi42NjNDNjY0LjYyMiAzMzYuNjYzIDY2MC41MzMgMzMyLjUyNSA2NjAuNTMzIDMyNy40MlpNNjc4LjggMjcxLjk2OEM2NzguOCAyNjYuODY0IDY3NC43MTEgMjYyLjcyNiA2NjkuNjY3IDI2Mi43MjZDNjY0LjYyMiAyNjIuNzI2IDY2MC41MzMgMjY2Ljg2NCA2NjAuNTMzIDI3MS45NjhDNjYwLjUzMyAyNzcuMDcyIDY2NC42MjIgMjgxLjIxIDY2OS42NjcgMjgxLjIxQzY3NC43MTEgMjgxLjIxIDY3OC44IDI3Ny4wNzIgNjc4LjggMjcxLjk2OFoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik0xMjYyLjY0IDI5MC4xMjZWMjgyLjA4SDEyNjUuOTRDMTI2OS4xNCAyODIuMDggMTI3MS41MSAyNzkuMzk4IDEyNzEuNTEgMjc1LjY4NVYyNjguODc3SDEyNzkuMzVWMjgyLjA4SDEyOTAuN1YyOTAuMTI2SDEyNzkuMzVWMzIwLjAzOUMxMjc5LjM1IDMyMy44NTYgMTI4Mi4xMyAzMjYuNDM0IDEyODYuMzYgMzI2LjQzNEMxMjg3LjgxIDMyNi40MzQgMTI4OS40NiAzMjYuMjI4IDEyOTAuNyAzMjUuODE1TDEyOTAuOSAzMzQuMDY3QzEyODkuMjUgMzM0LjU4MyAxMjg3LjA5IDMzNC44OTMgMTI4NS4xMyAzMzQuODkzQzEyNzYuNzcgMzM0Ljg5MyAxMjcxLjEgMzI5LjYzMiAxMjcxLjEgMzIxLjY4OVYyOTAuMTI2SDEyNjIuNjRaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMTI2My44NCAzMTUuOTE0QzEyNjEuOTggMzI3LjA1NCAxMjUyLjA4IDMzNC44OTMgMTI0MC4xMiAzMzQuODkzQzEyMjUuOTkgMzM0Ljg5MyAxMjE0Ljc0IDMyNC4wNjIgMTIxNC43NCAzMDcuODY4QzEyMTQuNzQgMjkxLjk4MyAxMjI1LjY4IDI4MC44NDMgMTIzOS43IDI4MC44NDNDMTI1MS4zNiAyODAuODQzIDEyNjAuOTUgMjg4LjQ3NiAxMjYzLjAyIDI5OC45OTdMMTI1My45NCAzMDEuODg1QzEyNTMuMTEgMjk0LjQ1OSAxMjQ3LjIzIDI4OC44ODggMTIzOS43IDI4OC44ODhDMTIzMC42MyAyODguODg4IDEyMjMuNjEgMjk2LjcyOCAxMjIzLjYxIDMwNy44NjhDMTIyMy42MSAzMTkuMjE0IDEyMzAuNjMgMzI2LjY0MSAxMjM5LjcgMzI2LjY0MUMxMjQ3LjU0IDMyNi42NDEgMTI1My43MyAzMjEuMjc3IDEyNTQuMzUgMzEzLjAyNUwxMjYzLjg0IDMxNS45MTRaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMTE4OC4zMyAzMzQuODkzQzExNzMuNDggMzM0Ljg5MyAxMTYzLjE2IDMyMy42NSAxMTYzLjE2IDMwOC4wNzRDMTE2My4xNiAyOTIuMjkyIDExNzMuNDggMjgwLjg0MyAxMTg3LjkyIDI4MC44NDNDMTIwMi43NyAyODAuODQzIDEyMTIuMjYgMjkyLjgwOCAxMjEyLjI2IDMwOS4zMTJDMTIxMi4yNiAzMDkuNzI1IDEyMTIuMjYgMzEwLjI0IDEyMTIuMTYgMzExLjA2NkgxMTcyLjI0QzExNzMuNDggMzIwLjI0NiAxMTc5Ljg3IDMyNi42NDEgMTE4OC4zMyAzMjYuNjQxQzExOTUuMTQgMzI2LjY0MSAxMjAxLjMzIDMyMi4zMDkgMTIwMi41NyAzMTYuMzI2TDEyMTEuODUgMzE5LjIxNEMxMjA5LjU4IDMyOC4yOTIgMTE5OS44OSAzMzQuODkzIDExODguMzMgMzM0Ljg5M1pNMTE3Mi40NSAzMDMuMDJIMTIwMy4zOUMxMjAxLjc0IDI5My45NDMgMTE5NC45MyAyODguODg4IDExODcuNTEgMjg4Ljg4OEMxMTc5Ljg3IDI4OC44ODggMTE3My45OSAyOTQuNTYyIDExNzIuNDUgMzAzLjAyWiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTExNTAuMzkgMzAyLjkxN0MxMTUwLjM5IDI5NC44NzEgMTE0NS4xMyAyODkuMDk1IDExMzcuNCAyODkuMDk1QzExMjguODMgMjg5LjA5NSAxMTIxLjcyIDI5Ni4yMTIgMTEyMS43MiAzMDYuMDExVjMzMy42NTVIMTExMy40NlYyODIuMDgxSDExMjAuNDhMMTEyMS42MSAyOTEuNTdDMTEyNC4zIDI4NS4xNzUgMTEzMC4zOCAyODAuODQzIDExMzguNjMgMjgwLjg0M0MxMTUwLjI5IDI4MC44NDMgMTE1OC42NCAyODkuODE3IDExNTguNjQgMzAyLjI5OFYzMzMuNjU1SDExNTAuMzlWMzAyLjkxN1oiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik0xMDk3LjgxIDMwMi45MTdDMTA5Ny44MSAyOTQuODcxIDEwOTIuNTUgMjg5LjA5NSAxMDg0LjgxIDI4OS4wOTVDMTA3Ni4yNSAyODkuMDk1IDEwNjkuMTMgMjk2LjIxMiAxMDY5LjEzIDMwNi4wMTFWMzMzLjY1NUgxMDYwLjg4VjI4Mi4wODFIMTA2Ny45TDEwNjkuMDMgMjkxLjU3QzEwNzEuNzEgMjg1LjE3NSAxMDc3LjggMjgwLjg0MyAxMDg2LjA1IDI4MC44NDNDMTA5Ny43MSAyODAuODQzIDExMDYuMDYgMjg5LjgxNyAxMTA2LjA2IDMwMi4yOThWMzMzLjY1NUgxMDk3LjgxVjMwMi45MTdaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMTAyOS42OCAzMzQuODkzQzEwMTQuNzMgMzM0Ljg5MyAxMDAzLjkgMzIzLjU0NyAxMDAzLjkgMzA3Ljg2OEMxMDAzLjkgMjkyLjE4OSAxMDE0LjczIDI4MC44NDMgMTAyOS42OCAyODAuODQzQzEwNDQuNjQgMjgwLjg0MyAxMDU1LjQ3IDI5Mi4xODkgMTA1NS40NyAzMDcuODY4QzEwNTUuNDcgMzIzLjU0NyAxMDQ0LjY0IDMzNC44OTMgMTAyOS42OCAzMzQuODkzWk0xMDEyLjU2IDMwNy44NjhDMTAxMi41NiAzMTguODAyIDEwMTkuNzggMzI2LjY0MSAxMDI5LjY4IDMyNi42NDFDMTAzOS41OSAzMjYuNjQxIDEwNDYuODEgMzE4LjgwMiAxMDQ2LjgxIDMwNy44NjhDMTA0Ni44MSAyOTYuODMxIDEwMzkuNTkgMjg4Ljg4OCAxMDI5LjY4IDI4OC44ODhDMTAxOS43OCAyODguODg4IDEwMTIuNTYgMjk2LjgzMSAxMDEyLjU2IDMwNy44NjhaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMTAwMS4wMiAzMTAuNTVDOTk4LjU0NyAzMjUuMTk3IDk4Ni43ODggMzM0Ljg5MyA5NzEuNTIyIDMzNC44OTNDOTUyLjc0OSAzMzQuODkzIDkzOS4xMzMgMzIwLjI0NiA5MzkuMTMzIDMwMC4xMzFDOTM5LjEzMyAyODAuMDE3IDk1Mi40MzkgMjY1LjM3IDk3MC45MDMgMjY1LjM3Qzk4NS40NDcgMjY1LjM3IDk5Ny43MjIgMjc0Ljk2MyAxMDAwLjIgMjg4LjI2OUw5OTAuNzA4IDI5MS41N0M5ODkuMDU3IDI4MS4yNTUgOTgwLjcwMiAyNzMuODI4IDk3MC45MDMgMjczLjgyOEM5NTcuOTA2IDI3My44MjggOTQ4LjQxNiAyODQuODY1IDk0OC40MTYgMzAwLjEzMUM5NDguNDE2IDMxNS4yOTQgOTU4LjExMiAzMjYuMjI4IDk3MS41MjIgMzI2LjIyOEM5ODIuMTQ2IDMyNi4yMjggOTkwLjA4OSAzMTguODAyIDk5MS4zMjYgMzA3LjY2MUwxMDAxLjAyIDMxMC41NVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik04ODUuNTE3IDMxNS45MTRDODg1LjkyOSAzMjIuNDEyIDg5Mi4yMjEgMzI3LjA1NCA4OTkuMzM5IDMyNy4wNTRDOTA1LjExNSAzMjcuMDU0IDkwOS40NDcgMzIzLjk1OSA5MDkuNDQ3IDMxOS42MjdDOTA5LjQ0NyAzMDcuODY4IDg3OC45MTUgMzEyLjkyMiA4NzguOTE1IDI5NC44NzFDODc4LjkxNSAyODUuNzk0IDg4Ny4wNjQgMjgwLjg0MyA4OTcuMjc2IDI4MC44NDNDOTA3LjkgMjgwLjg0MyA5MTUuNzM5IDI4Ni43MjIgOTE2Ljg3NCAyOTQuODcxTDkwOC4yMDkgMjk3LjE0QzkwOC4wMDMgMjkyLjA4NiA5MDMuMjU4IDI4OC40NzYgODk3LjI3NiAyODguNDc2Qzg5Mi4xMTggMjg4LjQ3NiA4ODcuNzg2IDI5MS4xNTggODg3Ljc4NiAyOTUuMjg0Qzg4Ny43ODYgMzA2LjQyNCA5MTguNTI0IDMwMS41NzYgOTE4LjUyNCAzMTkuNjI3QzkxOC41MjQgMzI4LjcwNCA5MTAuNDc5IDMzNC44OTMgODk4LjcyIDMzNC44OTNDODg2LjQ0NSAzMzQuODkzIDg3Ny4xNjEgMzI3Ljk4MiA4NzYuNDM5IDMxOC4zODlMODg1LjUxNyAzMTUuOTE0WiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTg0Ni45ODIgMjkwLjEyNlYyODIuMDhIODUwLjI4M0M4NTMuNDgxIDI4Mi4wOCA4NTUuODUzIDI3OS4zOTggODU1Ljg1MyAyNzUuNjg1VjI2OC44NzdIODYzLjY5M1YyODIuMDhIODc1LjAzOVYyOTAuMTI2SDg2My42OTNWMzIwLjAzOUM4NjMuNjkzIDMyMy44NTYgODY2LjQ3OCAzMjYuNDM0IDg3MC43MDcgMzI2LjQzNEM4NzIuMTUxIDMyNi40MzQgODczLjgwMSAzMjYuMjI4IDg3NS4wMzkgMzI1LjgxNUw4NzUuMjQ1IDMzNC4wNjdDODczLjU5NSAzMzQuNTgzIDg3MS40MjkgMzM0Ljg5MyA4NjkuNDY5IDMzNC44OTNDODYxLjExNCAzMzQuODkzIDg1NS40NDEgMzI5LjYzMiA4NTUuNDQxIDMyMS42ODlWMjkwLjEyNkg4NDYuOTgyWiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTgzNy40MzkgMzA4Ljg5OUM4MzYuNzE3IDMwOS4yMDkgODM1LjM3NiAzMDkuNDE1IDgzMy45MzIgMzA5LjcyNUw4MjAuMzE2IDMxMi4yQzgxNS4zNjUgMzEzLjEyOSA4MTIuODkgMzE2LjIyMyA4MTIuODkgMzIwLjA0QzgxMi44OSAzMjQuMDYyIDgxNi4xOSAzMjYuODQ3IDgyMS45NjcgMzI2Ljg0N0M4MzAuNTI4IDMyNi44NDcgODM3LjQzOSAzMjAuNDUyIDgzNy40MzkgMzEyLjJWMzA4Ljg5OVpNODAzLjgxMiAzMjAuMDRDODAzLjgxMiAzMTIuNjEzIDgwOC43NjQgMzA3LjM1MiA4MTguMjUzIDMwNS41OTlMODM0LjEzOCAzMDIuNzFDODM2LjA5OCAzMDIuNDAxIDgzNy40MzkgMzAxLjI2NiA4MzcuNDM5IDI5OS44MjJWMjk5LjQxQzgzNy40MzkgMjkyLjkxMSA4MzIuNjk0IDI4OC4yNyA4MjYuMDkzIDI4OC4yN0M4MTkuMjg1IDI4OC4yNyA4MTQuNzQ2IDI5My40MjcgODE0LjU0IDMwMC42NDdMODA1LjQ2MyAyOTkuMjAzQzgwNi40OTQgMjg4LjU3OSA4MTQuODQ5IDI4MC44NDMgODI1Ljg4NiAyODAuODQzQzgzNy4wMjcgMjgwLjg0MyA4NDUuNjkxIDI4OC4xNjYgODQ1LjY5MSAyOTkuNDFWMzIzLjM0TDg0NS44OTcgMzMzLjY1NUg4MzkuMDlMODM3Ljc0OSAzMjUuMTk3QzgzNC43NTcgMzMxLjE4IDgyOC41NjggMzM0Ljg5MyA4MjAuMzE2IDMzNC44OTNDODEwLjQxNCAzMzQuODkzIDgwMy44MTIgMzI4LjcwNCA4MDMuODEyIDMyMC4wNFoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik03NTkuMjMyIDMxMC4xMzdDNzU5LjY0NSAzMTkuNjI3IDc2Ni45NjggMzI2LjQzNSA3NzcuMTggMzI2LjQzNUM3ODUuNDMyIDMyNi40MzUgNzkxLjgyNyAzMjEuODk2IDc5MS44MjcgMzE1LjUwMUM3OTEuODI3IDI5OS41MTMgNzUyLjYzIDMwNS4wODMgNzUyLjYzIDI4My4zMThDNzUyLjYzIDI3Mi4zODQgNzYyLjUzMyAyNjUuMzcgNzc1LjExNyAyNjUuMzdDNzg3LjkwNyAyNjUuMzcgNzk3LjYwNCAyNzIuNTkxIDc5OC44NDEgMjgzLjMxOEw3ODkuMzUyIDI4NkM3ODguNTI2IDI3OC45ODYgNzgzLjM2OSAyNzMuNjIyIDc3NS4xMTcgMjczLjYyMkM3NjguMTAzIDI3My42MjIgNzYxLjkxNCAyNzcuMzM1IDc2MS45MTQgMjgyLjkwNkM3NjEuOTE0IDI5Ny4yNDMgODAxLjMxNyAyOTIuNzA1IDgwMS4zMTcgMzE1LjUwMUM4MDEuMzE3IDMyNi45NSA3OTEuNTE4IDMzNC44OTMgNzc2Ljk3NCAzMzQuODkzQzc2MS44MTEgMzM0Ljg5MyA3NTAuNTY3IDMyNS44MTYgNzQ5Ljc0MiAzMTIuNjEzTDc1OS4yMzIgMzEwLjEzN1oiIGZpbGw9ImJsYWNrIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMTFfNDMzMCI+CjxyZWN0IHdpZHRoPSI2NzIuMzE0IiBoZWlnaHQ9IjEyOS4zODkiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MjQgMjM1KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)

Sats connect is a simple javascript library that connects apps to Bitcoin wallets like Xverse to retrieve user wallet addresses and sign transactions (PSBTs).

[Read the docs](https://docs.xverse.app/sats-connect/)
## Quick start

```bash
npm i sats-connect
```


## Documentation

For full documentation, visit [docs.xverse.app](https://docs.xverse.app/sats-connect/).

72 changes: 65 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
]
},
"dependencies": {
"@sats-connect/core": "0.0.1-80ec315",
"@sats-connect/core": "0.0.2-7d8cb11",
"@sats-connect/ui": "0.0.2-fa73f78"
},
"devDependencies": {
Expand Down
23 changes: 15 additions & 8 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,14 @@ import {
BaseAdapter,
createDefaultConfig,
} from '@sats-connect/core';
import { Config, loadSelector, selectWalletProvider, close } from '@sats-connect/ui';
import {
Config,
loadSelector,
selectWalletProvider,
close,
walletOpen,
walletClose,
} from '@sats-connect/ui';

loadSelector();

Expand Down Expand Up @@ -46,7 +53,6 @@ class Wallet {
: createDefaultConfig(providers);
const nextProviderId = await selectWalletProvider(selectorConfig);
this.providerId = nextProviderId;
close();
}

static async disconnect() {
Expand All @@ -67,18 +73,19 @@ class Wallet {
}
}
const adapter = { ...this.defaultAdapters, ...this.userAdapters }[this.providerId as string];
walletOpen(this.providerId as string);
const response = adapter
? await new adapter().request(method, params)
: await new BaseAdapter(this.providerId as string).request(method, params);
if (
!defaultProvider &&
response?.status === 'error' &&
response.error?.code === RpcErrorCode.USER_REJECTION
) {
this.providerId = undefined;
walletClose();
if (response?.status === 'error' && response.error?.code === RpcErrorCode.USER_REJECTION) {
if (!defaultProvider) {
this.providerId = undefined;
}
} else {
setDefaultProvider(this.providerId as string);
}
close();
if (!response) {
return {
status: 'error',
Expand Down

0 comments on commit 103920f

Please sign in to comment.