From 5d225e04b2a091c2b7fd5c06ef470a637deb1480 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Thu, 18 May 2023 14:33:48 +0300 Subject: [PATCH] High-level API for querying FA token balances and metadata (#33) * GetOwnersForToken * GetOwnersForContract * IsHolderOfContract & GetTokenMetadata; Updated DJson binaries; * GetContractMetadata * 1.2.1 * Fix project structure; * Fix authenticationQr prefab; * Created NftApiSample; Resolves #37 * IsHolderOfToken * Upm structure refactoring; * GetTokensForContract added; * Added runtime tests; * Separated tezos api and game logic; new NftApiSample scene and prefabs; * Added tests for Tezos API methods; * Merge refactoring; * Merge vs main; Removed BeaconConnectorNull impl; * Updated GUID's inside Sample dir * Refactor: Tezos divided into two parts: Wallet and API; Added Tezos config singleton class; * Revert "Updated GUID's inside Sample dir" This reverts commit 88b976a0abeb33cf6d983bb4fb38ab33ecb24e45. * Fixed imports; * Improved Connect method in IWalletProvider: now it didn't redirect to wallet app if user is logged in; * Rollback backward compability with ITezosAPI interface; * Types fix; * Added IDataProviderConfig and TzKTProviderConfig implementation; API tests fix; * Added test runner with GH actions * Added obsolete StartCoroutineWrapper for backward compability; * Examplemanager uses obsolete StartCoroutineWrapper for backward compability; --------- Co-authored-by: mismirnov --- .github/workflows/tests.yaml | 38 + CHANGELOG.md | 11 +- Runtime/Plugins/Dynamic.Json.dll | Bin 27136 -> 27136 bytes .../Plugins/Microsoft.Bcl.AsyncInterfaces.dll | Bin 14720 -> 19072 bytes Runtime/Plugins/System.Memory.dll | Bin 141688 -> 142752 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 16776 -> 18024 bytes Runtime/Plugins/System.Text.Encodings.Web.dll | Bin 64904 -> 78992 bytes Runtime/Plugins/System.Text.Json.dll | Bin 351624 -> 570512 bytes Runtime/Prefabs.meta | 4 +- ...icationQr.prefab => Authentication.prefab} | 836 ++---- ...prefab.meta => Authentication.prefab.meta} | 2 +- .../BeaconSDK/BeaconConnectorDotNet.cs | 87 +- .../Scripts/BeaconSDK/BeaconConnectorNull.cs | 111 - .../Scripts/BeaconSDK/BeaconConnectorWebGl.cs | 1 + Runtime/Scripts/BeaconSDK/BeaconEnums.cs | 21 - .../BeaconSDK/BeaconMessageReceiver.cs | 274 +- Runtime/Scripts/BeaconSDK/IBeaconConnector.cs | 3 +- Runtime/Scripts/Helpers/CoroutineWrapper.cs | 14 +- .../{TezosAPI => Helpers}/HttpClient.cs | 16 +- .../{TezosAPI => Helpers}/HttpClient.cs.meta | 0 Runtime/Scripts/Helpers/Logger.cs | 2 +- Runtime/Scripts/Helpers/NetezosExtensions.cs | 30 +- Runtime/Scripts/{TezosAPI.meta => Tezos.meta} | 0 Runtime/Scripts/Tezos/API.meta | 8 + Runtime/Scripts/Tezos/API/ITezosDataAPI.cs | 96 + .../API/ITezosDataAPI.cs.meta} | 0 .../{TezosAPI => Tezos/API}/Models.meta | 0 .../{TezosAPI => Tezos/API}/Models/Alias.cs | 2 +- .../API}/Models/Alias.cs.meta | 0 Runtime/Scripts/Tezos/API/Models/Filters.meta | 3 + .../Models/Filters/OwnersForContractOrder.cs | 20 + .../Filters/OwnersForContractOrder.cs.meta | 3 + .../API/Models/Filters/OwnersForTokenOrder.cs | 30 + .../Filters/OwnersForTokenOrder.cs.meta | 3 + .../Models/Filters/TokensForContractOrder.cs | 30 + .../Filters/TokensForContractOrder.cs.meta | 3 + .../Models/Filters}/TokensForOwnerOrder.cs | 2 +- .../Filters}/TokensForOwnerOrder.cs.meta | 0 .../API}/Models/Tokens.meta | 0 .../Scripts/Tezos/API/Models/Tokens/Token.cs | 95 + .../Tezos/API/Models/Tokens/Token.cs.meta | 3 + .../API}/Models/Tokens/TokenBalance.cs | 2 +- .../API}/Models/Tokens/TokenBalance.cs.meta | 0 .../Scripts/{TezosAPI => Tezos/API}/Rpc.cs | 5 +- .../{TezosAPI => Tezos/API}/Rpc.cs.meta | 0 Runtime/Scripts/Tezos/API/TezosDataAPI.cs | 245 ++ .../API/TezosDataAPI.cs.meta} | 2 +- Runtime/Scripts/Tezos/ITezosAPI.cs | 185 ++ Runtime/Scripts/Tezos/ITezosAPI.cs.meta | 3 + Runtime/Scripts/Tezos/Tezos.cs | 130 + .../Scripts/{TezosAPI => Tezos}/Tezos.cs.meta | 0 Runtime/Scripts/Tezos/TezosConfig.cs | 45 + Runtime/Scripts/Tezos/TezosConfig.cs.meta | 3 + Runtime/Scripts/Tezos/TezosSingleton.cs | 128 + .../TezosSingleton.cs.meta | 0 Runtime/Scripts/Tezos/Wallet.meta | 3 + .../Tezos/Wallet/BeaconWalletProvider.cs | 121 + .../Tezos/Wallet/BeaconWalletProvider.cs.meta | 3 + .../Scripts/Tezos/Wallet/IWalletProvider.cs | 58 + .../Tezos/Wallet/IWalletProvider.cs.meta | 3 + Runtime/Scripts/TezosAPI/ITezosAPI.cs | 96 - Runtime/Scripts/TezosAPI/Tezos.cs | 173 -- Runtime/Scripts/TezosAPI/TezosSingleton.cs | 91 - Runtime/Scripts/View.meta | 3 - Runtime/Scripts/View/QRCodeView.cs.meta | 3 - {Samples~/Scripts => Runtime}/View.meta | 2 +- .../View/AuthenticationManager.cs | 35 +- .../View/AuthenticationManager.cs.meta | 2 +- Runtime/{Scripts => }/View/QRCodeView.cs | 2 +- .../QRCodeView.cs.meta} | 2 +- .../Prefabs/DemoExample/RegisterPanel.prefab | 14 +- Samples~/Prefabs/NftApiSample.meta | 8 + .../Prefabs/NftApiSample/ContentPanel.prefab | 2294 +++++++++++++++++ .../NftApiSample/ContentPanel.prefab.meta | 7 + Samples~/Scenes/Demo Example.unity | 152 +- Samples~/Scenes/NftApiSample.unity | 671 +++++ Samples~/Scenes/NftApiSample.unity.meta | 7 + .../Scripts/DemoExample/CopyToClipboard.cs | 2 +- .../DemoExample/Core/ExampleManager.cs | 168 +- .../DemoExample/Core/IExampleManager.cs | 18 +- .../Scripts/DemoExample/InventoryManager.cs | 4 +- Samples~/Scripts/NftApiSample.meta | 3 + Samples~/Scripts/NftApiSample/DataManager.cs | 149 ++ .../Scripts/NftApiSample/DataManager.cs.meta | 3 + Samples~/Scripts/NftApiSample/UiManager.cs | 41 + .../Scripts/NftApiSample/UiManager.cs.meta | 3 + Tests.meta | 8 + Tests/Editor.meta | 8 + Tests/Editor/EditmodeTests.cs | 11 + Tests/Editor/EditmodeTests.cs.meta | 11 + Tests/Editor/Editor.asmdef | 24 + Tests/Editor/Editor.asmdef.meta | 7 + Tests/Runtime.meta | 8 + Tests/Runtime/ApiTests.cs | 139 + Tests/Runtime/ApiTests.cs.meta | 11 + Tests/Runtime/Runtime.asmdef | 24 + Tests/Runtime/Runtime.asmdef.meta | 7 + 97 files changed, 5350 insertions(+), 1545 deletions(-) create mode 100644 .github/workflows/tests.yaml rename Runtime/Prefabs/{AuthenticationQr.prefab => Authentication.prefab} (60%) rename Runtime/Prefabs/{AuthenticationQr.prefab.meta => Authentication.prefab.meta} (74%) delete mode 100644 Runtime/Scripts/BeaconSDK/BeaconConnectorNull.cs delete mode 100644 Runtime/Scripts/BeaconSDK/BeaconEnums.cs rename Runtime/Scripts/{TezosAPI => Helpers}/HttpClient.cs (85%) rename Runtime/Scripts/{TezosAPI => Helpers}/HttpClient.cs.meta (100%) rename Runtime/Scripts/{TezosAPI.meta => Tezos.meta} (100%) create mode 100644 Runtime/Scripts/Tezos/API.meta create mode 100644 Runtime/Scripts/Tezos/API/ITezosDataAPI.cs rename Runtime/Scripts/{TezosAPI/ITezosAPI.cs.meta => Tezos/API/ITezosDataAPI.cs.meta} (100%) rename Runtime/Scripts/{TezosAPI => Tezos/API}/Models.meta (100%) rename Runtime/Scripts/{TezosAPI => Tezos/API}/Models/Alias.cs (91%) rename Runtime/Scripts/{TezosAPI => Tezos/API}/Models/Alias.cs.meta (100%) create mode 100644 Runtime/Scripts/Tezos/API/Models/Filters.meta create mode 100644 Runtime/Scripts/Tezos/API/Models/Filters/OwnersForContractOrder.cs create mode 100644 Runtime/Scripts/Tezos/API/Models/Filters/OwnersForContractOrder.cs.meta create mode 100644 Runtime/Scripts/Tezos/API/Models/Filters/OwnersForTokenOrder.cs create mode 100644 Runtime/Scripts/Tezos/API/Models/Filters/OwnersForTokenOrder.cs.meta create mode 100644 Runtime/Scripts/Tezos/API/Models/Filters/TokensForContractOrder.cs create mode 100644 Runtime/Scripts/Tezos/API/Models/Filters/TokensForContractOrder.cs.meta rename Runtime/Scripts/{TezosAPI/Models => Tezos/API/Models/Filters}/TokensForOwnerOrder.cs (91%) rename Runtime/Scripts/{TezosAPI/Models => Tezos/API/Models/Filters}/TokensForOwnerOrder.cs.meta (100%) rename Runtime/Scripts/{TezosAPI => Tezos/API}/Models/Tokens.meta (100%) create mode 100644 Runtime/Scripts/Tezos/API/Models/Tokens/Token.cs create mode 100644 Runtime/Scripts/Tezos/API/Models/Tokens/Token.cs.meta rename Runtime/Scripts/{TezosAPI => Tezos/API}/Models/Tokens/TokenBalance.cs (96%) rename Runtime/Scripts/{TezosAPI => Tezos/API}/Models/Tokens/TokenBalance.cs.meta (100%) rename Runtime/Scripts/{TezosAPI => Tezos/API}/Rpc.cs (96%) rename Runtime/Scripts/{TezosAPI => Tezos/API}/Rpc.cs.meta (100%) create mode 100644 Runtime/Scripts/Tezos/API/TezosDataAPI.cs rename Runtime/Scripts/{BeaconSDK/BeaconEnums.cs.meta => Tezos/API/TezosDataAPI.cs.meta} (83%) create mode 100644 Runtime/Scripts/Tezos/ITezosAPI.cs create mode 100644 Runtime/Scripts/Tezos/ITezosAPI.cs.meta create mode 100644 Runtime/Scripts/Tezos/Tezos.cs rename Runtime/Scripts/{TezosAPI => Tezos}/Tezos.cs.meta (100%) create mode 100644 Runtime/Scripts/Tezos/TezosConfig.cs create mode 100644 Runtime/Scripts/Tezos/TezosConfig.cs.meta create mode 100644 Runtime/Scripts/Tezos/TezosSingleton.cs rename Runtime/Scripts/{TezosAPI => Tezos}/TezosSingleton.cs.meta (100%) create mode 100644 Runtime/Scripts/Tezos/Wallet.meta create mode 100644 Runtime/Scripts/Tezos/Wallet/BeaconWalletProvider.cs create mode 100644 Runtime/Scripts/Tezos/Wallet/BeaconWalletProvider.cs.meta create mode 100644 Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs create mode 100644 Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs.meta delete mode 100644 Runtime/Scripts/TezosAPI/ITezosAPI.cs delete mode 100644 Runtime/Scripts/TezosAPI/Tezos.cs delete mode 100644 Runtime/Scripts/TezosAPI/TezosSingleton.cs delete mode 100644 Runtime/Scripts/View.meta delete mode 100644 Runtime/Scripts/View/QRCodeView.cs.meta rename {Samples~/Scripts => Runtime}/View.meta (77%) rename Runtime/{Scripts => }/View/AuthenticationManager.cs (62%) rename Runtime/{Scripts => }/View/AuthenticationManager.cs.meta (83%) rename Runtime/{Scripts => }/View/QRCodeView.cs (99%) rename Runtime/{Scripts/BeaconSDK/BeaconConnectorNull.cs.meta => View/QRCodeView.cs.meta} (83%) create mode 100644 Samples~/Prefabs/NftApiSample.meta create mode 100644 Samples~/Prefabs/NftApiSample/ContentPanel.prefab create mode 100644 Samples~/Prefabs/NftApiSample/ContentPanel.prefab.meta create mode 100644 Samples~/Scenes/NftApiSample.unity create mode 100644 Samples~/Scenes/NftApiSample.unity.meta create mode 100644 Samples~/Scripts/NftApiSample.meta create mode 100644 Samples~/Scripts/NftApiSample/DataManager.cs create mode 100644 Samples~/Scripts/NftApiSample/DataManager.cs.meta create mode 100644 Samples~/Scripts/NftApiSample/UiManager.cs create mode 100644 Samples~/Scripts/NftApiSample/UiManager.cs.meta create mode 100644 Tests.meta create mode 100644 Tests/Editor.meta create mode 100644 Tests/Editor/EditmodeTests.cs create mode 100644 Tests/Editor/EditmodeTests.cs.meta create mode 100644 Tests/Editor/Editor.asmdef create mode 100644 Tests/Editor/Editor.asmdef.meta create mode 100644 Tests/Runtime.meta create mode 100644 Tests/Runtime/ApiTests.cs create mode 100644 Tests/Runtime/ApiTests.cs.meta create mode 100644 Tests/Runtime/Runtime.asmdef create mode 100644 Tests/Runtime/Runtime.asmdef.meta diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml new file mode 100644 index 00000000..df551cd1 --- /dev/null +++ b/.github/workflows/tests.yaml @@ -0,0 +1,38 @@ +name: Run Unity Tests +on: [ pull_request, workflow_dispatch ] + +jobs: + tests: + permissions: write-all + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: copy dir to new dir + run: | + pwd + folderName=$(echo "${PWD##*/}") + rsync -r "$GITHUB_WORKSPACE" "copiedProject" + ls -F "copiedProject/$folderName" + - name: Run tests + id: runTests + uses: trudeaua21/unity-test-runner@main + env: + UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} + with: + githubToken: ${{ secrets.GITHUB_TOKEN }} + projectPath: ./copiedProject/tezos-unity-sdk + unityVersion: "2021.3.22f1" + testMode: all + # coverageOptions: 'generateAdditionalMetrics;generateHtmlReport;generateBadgeReport;assemblyFilters:+tezos-unity-sdk.*,-*Tests*' + artifactsPath: result-artifacts + packageMode: true + + # Upload results + - name: Upload test results + uses: actions/upload-artifact@v3 + with: + name: Package Coverage results (all) + path: ${{ steps.runTests.outputs.artifactsPath }} + retention-days: 1 diff --git a/CHANGELOG.md b/CHANGELOG.md index d52013a0..459b8d38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,6 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [unreleased] -### Added -- User ability to specify logging level ## [unreleased] ### Fixed @@ -14,6 +11,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Better [coroutine error handling](https://github.com/trilitech/tezos-unity-sdk/issues/39) +- API methods: `GetOwnersForToken`, `GetOwnersForContract`, `IsHolderOfContract`, `GetTokenMetadata`, `GetContractMetadata`, `GetTokensForContract`, `GetOperationStatus` +- User ability to specify logging level +- Tezos config singleton class +- `IDataProviderConfig` and `TzKTProviderConfig` implementation +- Test runner with GH actions + +### Changed +- Refactor: Tezos divided into two parts: Wallet and API ## [1.3.1] - 2023-04-27 diff --git a/Runtime/Plugins/Dynamic.Json.dll b/Runtime/Plugins/Dynamic.Json.dll index f6db49a6a2c1b066af5fb7bd1a372b1c7820d23d..66eedd543ab12ca227c4a22e7188269ac1b03197 100644 GIT binary patch delta 11159 zcmcIp3w)H-l|T1>&-vz&d^4FqNFWKx$N(WEfIt*5$g8Pk zlxV7?pF**`Y}HDoT`}5KYkyU%RCj5MTkNk|p`cjV?b?dEwytRRob%00CQ!TX@7Eoe zbI<=g?>+bN-EY!pr|NP`ef2dcaRR{#UyTL%u@*KE!Kc z0P~zeS>n`)A>v7=18KW+SS-xB2VLm%CHzXz;PL4IPmTo;PGRl1o;h-i9GeTE20_O1 zxK&~Uxm9C>xDCe!aNFjZMFqg{AhhK=PpiAf7P3ml26L;#invu{#oUHt1>Cl|W>M+7 z7CJk$LC)=Jsj0XEkMp`VXl#&eWh}(463gONjfJ@l$82ufT(hX^x(0hn^&N(|(Rso@ zGE|rWQS7Ca-xytnO;AK@o%j6N@j3)u<8aJ#vxi|BLS-tT9x#E89yzETFglz8L5MC# zzQj`WuDN90Z&*T|GrBkty5JpjOh&JFt&OC$g2Q(|t^~7DuJ~dU;wUan){sng!xu@m zBAF~3Z-BKfX^1d$w$+%_E@18Y zq;`SxZf2>qA*o$R+N`Fec40C}*FvY-F1DJJc8ka^+>*3gl(f60YmxJ)T_H9)|6xx- zS{fwU#Po+u|C{MIvW7S-LV5m;7@-;G*V>{#c!P6SXdGG}3z5&#@DQgwD-XHZSyTGh z&2tW9jq4+skCI&HQ??!u?rXh(b=$*zb1ig!5FQs#&rUp}wN8e>{*1;EmYc%MEDxadAVwi0woDq`m<%QvUvk?Y~@4d&Kn* zMC<_Suj=C;KarUVkP)#nE;Bemi^2_%8L=}_e@&kNC+w8J9kK1p^>iS({=tYHL_Hq% zy;BgkP6Sf{LJ>Q3seyF@w?-mBR>aOi{gvqftP^-XyUQ;Wj@aSL^>om>9mtN@*{C0r z<{!uPo0SUCFJkw*!~pfUBoYDoN9_Kn$B4Znuugj_O9aS^*mL;Z9N8XA7 z+BJNX6+C7D^y`<6pXSXZ)cXjxZb4adtK%E+t9To-F?_;X^pwWuIkrlSMiK-y*3PXK z>)0zmCKoj4RQ*kQs4}%#K(w3MxG@+=r@c!=q3QDl&?@ zdibewOe|YT;g@aHd=|!3xiXya3M$cE7{@2g7}{gnex-9{E3vW_4>pye=&}_{rbfFd z{Wp+=wBQOY>QMg4vR^X4t;KL3Cp)0YD5e{J>L@;cWh*H{nrx%?voKzw(t4mp@1dBg ztu~^<3h6;TnvV>2z?qm|IEgw_;&nUKSb&N*^z4x#w=g890=e>#A@e_Ti@{Z}jp)73 zvb?a^?L3yhHco|6qI)m`K4558j-+M<4-lS}V%dsYS&tvX>)_SD>*mB%2qrtl5>Mwzwg}i znHtWIQPa!I5#Lx&P@*b)7(&-HaFaZ&!3wtnwxpl8JYuX)8~c?Lvm`<=Z1U3 zouIkFlAX??DeDy*(cR9O!qsu=XP>!x8`sfL-a&Nrw)B#vvK3b{Z6KV*_3-%VHrYyIoEd7;>Owvkh1RUkbXTkz zR1+(f6XOkD_nsbttJGtb=w@R48V!^aawc0#8-K4D$B%)BIh*qaUqKz}Q-f?Asapfw z22_KHY#r=8mlulTy;sd?#uLVhMUchQW43H1PPXC=Dp`wSV!P3ZcX6r~?ioTMu@+ZQ zsiDJt*R zyX44Lw&6jbQkJVC6P-U5>0*!bQPGG%-@WXV7pLVImCUiZxKEBpiYdqY#pyZ7RnhMzhQ zG*zU)siG$BNI|bSTBgqX@1UB_`Up<+bQ{5pfkCMrOn$KJ7WZ zt;PF1u*?60ds`emERFzoS`Z&`kkpBIua(b-l56Rxmk5$FB%~d5S zRh8P_s?K$@Us6@dOI4+|u>i>%A+9QC;K+Td+AB^})u6#+Rh`|@VG}Rn(O$F_;AUK3 zQ}KyjRNd0FYTe3aTxf6v?@PNR%H~(Y1e^eTszK3=`BhV~or!pj^J#QQ&Jsj6N$|TG zzqqvd_n99$6NgsBM|*G|;75mT`g)%ZVT0&xOnv&bz7Xuf%ZCm(=qpVfRvG{1(cv|n z=xpZy!u)QgJxs4;c>(jsG_riepRZW3JWy|0Q0gaIq}E$HoYB_DG1)KtYdse1K(!9@ zJQ+#=-V|#+0aztsejTQ3Yca$)?%aLiU(kNLCmXvm2Q78@qe;F~F{lm~H0t_fwwKKR zM37{rMG@|2eoo*JTCT={>F_mCs>F5pIW{`ftGSp=_2wi0kwyI-Zc)%NUXuSFB|7{T zEiH&d>G*ilvKq$>vUr3i~Y#szU_^ngNw;)52c=YLGl` z{TS&%AJLb&26uC=XPI8)Eb*7P>0yUAneWf^2TXUfX&X+54yMav0$wi)QGx$DaNV_7 z3#`eEgvf*s0}Ct@6vzNVFZ*4T%Vt2~YLf^q?WX6W+&7t(K=t7SO^0-aKaA89YDxc)6L zba>x<8u``erNbW2bLcfqK7lkQSL*`Ci!UR+L7HgU*X!)1UhyyBw#8bl_f0llTpIdk z>ZKhTFKvUmVj5#XDq$lVhC$9H9a2!pWBmcqfdp#O-Zv(~3kek0{%lNw zHF*05=zv;8*T6+aG>D5vC3uFqy6=EAC&SPLdJ56CP&L$PD;pd?VOZu=Sk9^)=IcfV zqScIOd|`7Mbfi#;F$207xdp9)^NhM-swdC9j-S0WolhBgxbz;zCo!S7)I9TgC>fqW z{ycLoJeok+adfPPyb@R0il*~nX968S(}nO}0==N*nKe){!nOQ&nP)DBoe7kW=tek~ zKu;iA29>3*QDcELJEZnwK(3!@#lWCbp{ z+Zb)blKk522Kp#Kx=rF633N;>QBRroK-^Ux6ARV1&D|;GEcFBPKIp0>fjg#spkC`D z8q+?=N+9ame(0LgtJ@Fz5{PsMp#QX9-2sRu5a|xW1M%s-O1hv5*c!lBDSW)Td}gN0 zlNCv}SpQfFkH2r|%uEHJ>zt2M{!G0zWm0mf<@=^<`M=3UYIs=xiYzr`ZSTP$~JdY#fO|9+g)YHv){#5Yp`)FkQUY0|Z)RqCQE`MmU71HB2p z03XNs{y#bVgYDyPdDA=L*5Ln(y6Z~djfiUb&R1~BD7YLlGu1weE}_0en{xXia%c6p zfs@>|@+$5o3FSC_w7>pVy%kV#$*b_HU!n~aMZ%1Lvu0d>=k&NyaXMCP_{6J04pISy zNG&Kwnh6z5Co`>LI+tk;(>kWBm~LRY8EF{qM=Iboq`Ax&f=7@fhfmNPJ~=0|#0RJ1 z-m&->@>57V*sT-7>X-25|BJvZq~FAc?FBT=grj(oTZ(jDU?s{&X)EDl(X9!VuVK20 z={BajAP;Yahmn3a(1XdMzVM&J|%Q4J%!j&1X#6^{)yIz%S_P-`3phANQuvd8xdAc7?fW@AV zkT!TOBK>PXkyV($Bgs;r<@W;@MK=fS7AK6AaG2#&;V;G@wA|w#BB?`}P$&0lqh%+& zXj~&#AwLcI57Y%R-U-jkrSh%k-SF8r2{Bx5%R?zYS?E({n~A$|IgVa)Z21 zJ1CzLd$k9Ve&T%`<(=yDvJ*qUg#6R$>#`g9GsvG%K9J9e!i-Ol|43@eUX**4PAHN6 z6g!S!pmIObp(y&kaiww?`KytCL(Wi+B0mfHpsZ1zLVg+Y56jicbI5N{XnbwTR37mw z@UVIY`3BE<5jeFY{EP$3!>OM3$bcyqOL@VN3<$byp(ehwo;60HC^!WW4!Wpd^h1;fGWCvAHI8{&}pP+Xr zpP-j6pP&~!pP<)LpP-Rt2}+3)e9iL-8kkSeYixyFsx<0(Vu1JSdND`yi5uiW^#Kr8ZZaT-OCTooiK5ZmB;RuN04Fs((&Nvodu2DWKO$*0yfmK=&Bh z;00E{#k?XZXc1HV6B_cj%R8aYrz)IAA#Eko28HD3m^P@ypHWE*8qor#l}u}yw!3m` z8_e<+SoKt>N(9~BN{jefXRSvlsF!FZ({`qZd?Y!;w7^e%Ez^b! z?rtVhr*6`aB|nz0%6IVw6jX|pGUZxjo^q3NtFleGL+Mt&sT@?=)jQOC)K}C$st;+e zXhph$4=WA-0qhA}#Cy#BOn+n&e~jsCD&T|dGeh+_=O!JAzo-0J`ApGNpBhpJsD)}& z9jT60C#uuc>(xc-e)U21bu~+iXf;}`_M!IQ+7!K7->&b`pVZZMz9zZPZ>9_IPA1dv z@AUEbgat7A$m-FGo~-08@n>cH{7yGAs8!h=f0@G1@AQwI;g!u*+wtVTTQ$T>_G@p~S>LeCdI{Px$UiN*RX(T?rI`27iff7$a+6UMb)~S8lB4PuJKn* zZ){py*D|N6anq`Xp0?{=7XH~A*DhbtRNb<9&5CAl3MPkpzB21}*>m>#yJhB=2X)kc zGWS>4KXm`d!?(Uvd9~Ai!~OYDJ#4q{6?s^HW68|g1{NhG8=UhCD#U(g@WL_9a|=h*dJ3p&-Pl)y z+u)5>nUqw$%t69y$%GI~R)8m11}Nd+1`(_Y-e|XX*c){hC0uJ#_BD2aULZuU{az=q zXi!OUnxZ&p=w@E9#tmF!PeY?Lb+l*1qF3eE{efVWy)hG1N{|<9-ye*Tz|Isb83ZU| zlVG~U8Nawu%y1rFd}Yusojq+{L3K;rx`w)@hJsP0WzOlv6V%)A2UI72NsZIKq$Dt= zw5$|=Kd^9fmzR#|d3s5<9QD#0AM6A%YYy$W&G>ybhTmnhb=(haqY!@S$Ds=R!%0Q0 zBbN;>U4G}Ep0A(wz|4K?Uf#3w!ignhHsz`%^P5*RH7}V}ck8Mp&5awI>Q^jjTCu*d z*_pX)_Nau*Gf5ZBZ0>!u@wqo&Y5nKvKd*aaCq_?xzD;~VcVV`?XRC8=S+plmyF@sF z<&*ryd=|KN#ZJxgkscLK0Q#s-_wtqEcIV^eMWWUjSl>^{5?h^d^*?h04R4AuJr^1l j3o*u-b<=1B9XGWLr&45k*1Lbbd3;ijee<70cbV}&a1FfG delta 10370 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 V6TVf>eBv3n~^= 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 diff --git a/Runtime/Plugins/System.Memory.dll b/Runtime/Plugins/System.Memory.dll index 953a9d2e3926e4b91f396529b4751605a0b6ca4e..1e6aef8020637c81f006d12af87f2310d030851c 100644 GIT binary patch delta 7293 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 delta 5999 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 Hx1RqGs=Dnf delta 5551 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 diff --git a/Runtime/Plugins/System.Text.Encodings.Web.dll b/Runtime/Plugins/System.Text.Encodings.Web.dll index e87ab8995860b59e57353d3d254be2ea08bcf6e8..56bc79d459aa7b67437b22b08309a9ffd2d2367b 100644 GIT binary patch literal 78992 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 DBEU|+ diff --git a/Runtime/Plugins/System.Text.Json.dll b/Runtime/Plugins/System.Text.Json.dll index 55c8b31f050387424bbc10aea5ad3770ffa84790..cd858647fc82e092ae09f91004bdb03be6ef59c2 100644 GIT binary patch literal 570512 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

>;HD7*rASZcAU2-bq4z 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�UNC0-ho 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 z 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 diff --git a/Runtime/Prefabs.meta b/Runtime/Prefabs.meta index f2b7b7cf..324d3248 100644 --- a/Runtime/Prefabs.meta +++ b/Runtime/Prefabs.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: 499412deae7134adeadffbd0b56de09e +guid: e19c10f17cf42a94da0a6ecbbdecf378 folderAsset: yes DefaultImporter: externalObjects: {} userData: assetBundleName: - assetBundleVariant: + assetBundleVariant: \ No newline at end of file diff --git a/Runtime/Prefabs/AuthenticationQr.prefab b/Runtime/Prefabs/Authentication.prefab similarity index 60% rename from Runtime/Prefabs/AuthenticationQr.prefab rename to Runtime/Prefabs/Authentication.prefab index 99328f16..27e57170 100644 --- a/Runtime/Prefabs/AuthenticationQr.prefab +++ b/Runtime/Prefabs/Authentication.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &1782220280790055368 +--- !u!1 &3121589126738375249 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,63 +8,118 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1782220280790055373} - - component: {fileID: 1782220280790055370} - - component: {fileID: 1900377933} + - component: {fileID: 3121589126738375253} + - component: {fileID: 3121589126738375252} + - component: {fileID: 3121589126738375251} + - component: {fileID: 3121589126738375250} + - component: {fileID: 3713326636857166855} m_Layer: 5 - m_Name: RegisterPanel + m_Name: Authentication m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1782220280790055373 +--- !u!224 &3121589126738375253 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1782220280790055368} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 3121589126738375249} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 0, y: 0, z: 0} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 2826152243978636599} - - {fileID: 567774563410981175} - m_Father: {fileID: 2362622891031410396} + - {fileID: 3121589127431171062} + m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &1782220280790055370 -CanvasRenderer: + m_Pivot: {x: 0, y: 0} +--- !u!223 &3121589126738375252 +Canvas: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1782220280790055368} - m_CullTransparentMesh: 1 ---- !u!114 &1900377933 + m_GameObject: {fileID: 3121589126738375249} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &3121589126738375251 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1782220280790055368} + m_GameObject: {fileID: 3121589126738375249} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d6a58a1534a9b4b7c9c4cecd747ae29b, type: 3} + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: - qrCodeView: {fileID: 8262491866229792590} - logoutPanel: {fileID: 8911300612616444227} - deepLinkButton: {fileID: 5254968933509595156} - qrCodePanel: {fileID: 2879349694957111515} ---- !u!1 &2362622889545632206 + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &3121589126738375250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3121589126738375249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &3713326636857166855 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3121589126738375249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a36293c38484941be89b83a6e75aadaa, type: 3} + m_Name: + m_EditorClassIdentifier: + qrCodeView: {fileID: 786061167812959950} + contentPanel: {fileID: 0} + deepLinkButton: {fileID: 4861287952596017711} + logoutButton: {fileID: 8163905288335366993} + qrCodePanel: {fileID: 3201536582223850208} +--- !u!1 &3121589127431171061 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -72,7 +127,7 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2362622889545632205} + - component: {fileID: 3121589127431171062} m_Layer: 5 m_Name: ScreenSpace m_TagString: Untagged @@ -80,21 +135,21 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &2362622889545632205 +--- !u!224 &3121589127431171062 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2362622889545632206} + m_GameObject: {fileID: 3121589127431171061} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 2362622890199886321} - - {fileID: 2362622891031410396} - m_Father: {fileID: 2362622890511487086} + - {fileID: 3121589128085408714} + - {fileID: 3216458246497218316} + m_Father: {fileID: 3121589126738375253} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -102,7 +157,7 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &2362622890199886322 +--- !u!1 &3121589128085408713 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -110,9 +165,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2362622890199886321} - - component: {fileID: 2362622890199886327} - - component: {fileID: 2362622890199886320} + - component: {fileID: 3121589128085408714} + - component: {fileID: 3121589128085408716} + - component: {fileID: 3121589128085408715} m_Layer: 5 m_Name: Background m_TagString: Untagged @@ -120,19 +175,19 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &2362622890199886321 +--- !u!224 &3121589128085408714 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2362622890199886322} + m_GameObject: {fileID: 3121589128085408713} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 2362622889545632205} + m_Father: {fileID: 3121589127431171062} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -140,21 +195,21 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2362622890199886327 +--- !u!222 &3121589128085408716 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2362622890199886322} + m_GameObject: {fileID: 3121589128085408713} m_CullTransparentMesh: 1 ---- !u!114 &2362622890199886320 +--- !u!114 &3121589128085408715 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2362622890199886322} + m_GameObject: {fileID: 3121589128085408713} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -178,108 +233,7 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!1 &2362622890511487082 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2362622890511487086} - - component: {fileID: 2362622890511487087} - - component: {fileID: 2362622890511487080} - - component: {fileID: 2362622890511487081} - m_Layer: 5 - m_Name: AuthenticationQr - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2362622890511487086 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2362622890511487082} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2362622889545632205} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!223 &2362622890511487087 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2362622890511487082} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 25 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 ---- !u!114 &2362622890511487080 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2362622890511487082} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 1 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!114 &2362622890511487081 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2362622890511487082} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!1 &2362622891031410397 +--- !u!1 &3201536582223850208 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -287,47 +241,10 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2362622891031410396} - m_Layer: 5 - m_Name: Panels - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &2362622891031410396 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2362622891031410397} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1782220280790055373} - m_Father: {fileID: 2362622889545632205} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &2879349694957111515 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1849147184218538664} - - component: {fileID: 5860763083894222905} - - component: {fileID: 5595417566496029222} - - component: {fileID: 8262491866229792590} + - component: {fileID: 1311348300197142675} + - component: {fileID: 6543230242619544066} + - component: {fileID: 5061288848528201757} + - component: {fileID: 786061167812959950} m_Layer: 5 m_Name: QRCode m_TagString: Untagged @@ -335,41 +252,41 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 0 ---- !u!224 &1849147184218538664 +--- !u!224 &1311348300197142675 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2879349694957111515} + m_GameObject: {fileID: 3201536582223850208} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 2826152243978636599} + m_Father: {fileID: 3216458246497218316} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 309.6043, y: -279.27274} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 256, y: 256} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5860763083894222905 +--- !u!222 &6543230242619544066 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2879349694957111515} + m_GameObject: {fileID: 3201536582223850208} m_CullTransparentMesh: 1 ---- !u!114 &5595417566496029222 +--- !u!114 &5061288848528201757 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2879349694957111515} + m_GameObject: {fileID: 3201536582223850208} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} @@ -390,20 +307,20 @@ MonoBehaviour: y: 0 width: 1 height: 1 ---- !u!114 &8262491866229792590 +--- !u!114 &786061167812959950 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2879349694957111515} + m_GameObject: {fileID: 3201536582223850208} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fbe7a6d01d6f4562a0f332d1606f574d, type: 3} + m_Script: {fileID: 11500000, guid: a6b34a11c0bbb4c9e9c3c933d831d3e9, type: 3} m_Name: m_EditorClassIdentifier: - _rawImage: {fileID: 5595417566496029222} ---- !u!1 &4297443727447729808 + _rawImage: {fileID: 5061288848528201757} +--- !u!1 &3474583775853282475 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -411,10 +328,10 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2826152243978636599} - - component: {fileID: 7372622551547683835} - - component: {fileID: 4441616464480909363} - - component: {fileID: 7342761909627054906} + - component: {fileID: 3216458246497218316} + - component: {fileID: 7911545692183200192} + - component: {fileID: 3906995141817899528} + - component: {fileID: 7961553561865963777} m_Layer: 5 m_Name: LoginPanel m_TagString: Untagged @@ -422,43 +339,44 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &2826152243978636599 +--- !u!224 &3216458246497218316 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4297443727447729808} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 3474583775853282475} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 5541761553919423797} - - {fileID: 1849147184218538664} - m_Father: {fileID: 1782220280790055373} - m_RootOrder: 0 + - {fileID: 5148721583461373710} + - {fileID: 1311348300197142675} + - {fileID: 8163905288335366994} + m_Father: {fileID: 3121589127431171062} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.02, y: 0.02} m_AnchorMax: {x: 0.98, y: 0.98} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: -0.0000071525574, y: 0.00000667572} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &7372622551547683835 +--- !u!222 &7911545692183200192 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4297443727447729808} + m_GameObject: {fileID: 3474583775853282475} m_CullTransparentMesh: 1 ---- !u!114 &4441616464480909363 +--- !u!114 &3906995141817899528 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4297443727447729808} + m_GameObject: {fileID: 3474583775853282475} m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -482,14 +400,14 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &7342761909627054906 +--- !u!114 &7961553561865963777 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4297443727447729808} - m_Enabled: 1 + m_GameObject: {fileID: 3474583775853282475} + m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} m_Name: @@ -508,7 +426,7 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 ---- !u!1 &5254968933509595156 +--- !u!1 &4861287952596017711 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -516,10 +434,10 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5541761553919423797} - - component: {fileID: 8563053969735490424} - - component: {fileID: 2469936182637149470} - - component: {fileID: 3398617004589935823} + - component: {fileID: 5148721583461373710} + - component: {fileID: 9029068484046731587} + - component: {fileID: 3016668596327292709} + - component: {fileID: 2644164856126492404} m_Layer: 5 m_Name: LoginButtonDeepLink m_TagString: Untagged @@ -527,42 +445,42 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 0 ---- !u!224 &5541761553919423797 +--- !u!224 &5148721583461373710 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5254968933509595156} + m_GameObject: {fileID: 4861287952596017711} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 8041088282426753976} - m_Father: {fileID: 2826152243978636599} + - {fileID: 7209149153837375875} + m_Father: {fileID: 3216458246497218316} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 309.6043, y: -148.77274} - m_SizeDelta: {x: 248.1163, y: 89.2032} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 248.11633, y: 89.2032} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8563053969735490424 +--- !u!222 &9029068484046731587 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5254968933509595156} + m_GameObject: {fileID: 4861287952596017711} m_CullTransparentMesh: 1 ---- !u!114 &2469936182637149470 +--- !u!114 &3016668596327292709 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5254968933509595156} + m_GameObject: {fileID: 4861287952596017711} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -586,13 +504,13 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &3398617004589935823 +--- !u!114 &2644164856126492404 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5254968933509595156} + m_GameObject: {fileID: 4861287952596017711} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} @@ -626,11 +544,11 @@ MonoBehaviour: m_SelectedTrigger: Selected m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 2469936182637149470} + m_TargetGraphic: {fileID: 3016668596327292709} m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1900377933} + - m_Target: {fileID: 3713326636857166855} m_TargetAssemblyTypeName: AuthenticationManager, com.trilitech.tezos-unity-sdk m_MethodName: ConnectByDeeplink m_Mode: 1 @@ -642,7 +560,7 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 ---- !u!1 &5597950084005858850 +--- !u!1 &7608403551692849041 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -650,185 +568,51 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6026621330802784976} - - component: {fileID: 8537444301262933129} - - component: {fileID: 5841206352924516947} - - component: {fileID: 3829875114716056616} + - component: {fileID: 7608403551692849042} + - component: {fileID: 7608403551692849044} + - component: {fileID: 7608403551692849043} m_Layer: 5 - m_Name: LogoutButton - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6026621330802784976 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5597950084005858850} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4083810769171997014} - m_Father: {fileID: 567774563410981175} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 160, y: 45.778} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &8537444301262933129 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5597950084005858850} - m_CullTransparentMesh: 1 ---- !u!114 &5841206352924516947 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5597950084005858850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.3019608, g: 0.20784314, b: 0.20784314, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &3829875114716056616 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5597950084005858850} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 5841206352924516947} - m_OnClick: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 1900377933} - m_TargetAssemblyTypeName: AuthenticationManager, com.trilitech.tezos-unity-sdk - m_MethodName: DisconnectWallet - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 ---- !u!1 &6818547226630964888 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1854344941768066975} - - component: {fileID: 4898609874484321658} - - component: {fileID: 1576880756782311692} - m_Layer: 5 - m_Name: WelcomeText + m_Name: Text (TMP) m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1854344941768066975 +--- !u!224 &7608403551692849042 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6818547226630964888} + m_GameObject: {fileID: 7608403551692849041} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 567774563410981175} + m_Father: {fileID: 8163905288335366994} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 259.2553, y: 50} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4898609874484321658 +--- !u!222 &7608403551692849044 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6818547226630964888} + m_GameObject: {fileID: 7608403551692849041} m_CullTransparentMesh: 1 ---- !u!114 &1576880756782311692 +--- !u!114 &7608403551692849043 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6818547226630964888} + m_GameObject: {fileID: 7608403551692849041} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -842,7 +626,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: You are authenticated! + m_text: Logout m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -869,8 +653,8 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 20 - m_fontSizeBase: 20 + m_fontSize: 16 + m_fontSizeBase: 16 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 @@ -911,7 +695,7 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &7300828154113961438 +--- !u!1 &7983304630101643237 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -919,9 +703,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 8041088282426753976} - - component: {fileID: 6109091868099214741} - - component: {fileID: 6816222846679627225} + - component: {fileID: 7209149153837375875} + - component: {fileID: 6871507225183346606} + - component: {fileID: 6125937097836533730} m_Layer: 5 m_Name: Text (TMP) m_TagString: Untagged @@ -929,19 +713,19 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &8041088282426753976 +--- !u!224 &7209149153837375875 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7300828154113961438} + m_GameObject: {fileID: 7983304630101643237} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 5541761553919423797} + m_Father: {fileID: 5148721583461373710} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -949,21 +733,21 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6109091868099214741 +--- !u!222 &6871507225183346606 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7300828154113961438} + m_GameObject: {fileID: 7983304630101643237} m_CullTransparentMesh: 1 ---- !u!114 &6816222846679627225 +--- !u!114 &6125937097836533730 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7300828154113961438} + m_GameObject: {fileID: 7983304630101643237} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -1046,7 +830,7 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &8030964769363690953 +--- !u!1 &8163905288335366993 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1054,204 +838,68 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4083810769171997014} - - component: {fileID: 2693854921728041817} - - component: {fileID: 3435764443186548170} + - component: {fileID: 8163905288335366994} + - component: {fileID: 8163905288335366989} + - component: {fileID: 8163905288335366988} + - component: {fileID: 8163905288335366995} m_Layer: 5 - m_Name: Text (TMP) + m_Name: LogoutButton m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4083810769171997014 + m_IsActive: 0 +--- !u!224 &8163905288335366994 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8030964769363690953} + m_GameObject: {fileID: 8163905288335366993} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6026621330802784976} - m_RootOrder: 0 + m_Children: + - {fileID: 7608403551692849042} + m_Father: {fileID: 3216458246497218316} + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} + m_AnchorMin: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchoredPosition: {x: -120, y: -120} + m_SizeDelta: {x: 90, y: 30} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &2693854921728041817 +--- !u!222 &8163905288335366989 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8030964769363690953} + m_GameObject: {fileID: 8163905288335366993} m_CullTransparentMesh: 1 ---- !u!114 &3435764443186548170 +--- !u!114 &8163905288335366988 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8030964769363690953} + m_GameObject: {fileID: 8163905288335366993} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_text: LOGOUT - m_isRightToLeft: 0 - m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} - m_fontSharedMaterials: [] - m_fontMaterial: {fileID: 0} - m_fontMaterials: [] - m_fontColor32: - serializedVersion: 2 - rgba: 4294967295 - m_fontColor: {r: 1, g: 1, b: 1, a: 1} - m_enableVertexGradient: 0 - m_colorMode: 3 - m_fontColorGradient: - topLeft: {r: 1, g: 1, b: 1, a: 1} - topRight: {r: 1, g: 1, b: 1, a: 1} - bottomLeft: {r: 1, g: 1, b: 1, a: 1} - bottomRight: {r: 1, g: 1, b: 1, a: 1} - m_fontColorGradientPreset: {fileID: 0} - m_spriteAsset: {fileID: 0} - m_tintAllSprites: 0 - m_StyleSheet: {fileID: 0} - m_TextStyleHashCode: -1183493901 - m_overrideHtmlColors: 0 - m_faceColor: - serializedVersion: 2 - rgba: 4294967295 - m_fontSize: 18 - m_fontSizeBase: 18 - m_fontWeight: 400 - m_enableAutoSizing: 0 - m_fontSizeMin: 18 - m_fontSizeMax: 72 - m_fontStyle: 0 - m_HorizontalAlignment: 2 - m_VerticalAlignment: 512 - m_textAlignment: 65535 - m_characterSpacing: 0 - m_wordSpacing: 0 - m_lineSpacing: 0 - m_lineSpacingMax: 0 - m_paragraphSpacing: 0 - m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 - m_wordWrappingRatios: 0.4 - m_overflowMode: 0 - m_linkedTextComponent: {fileID: 0} - parentLinkedComponent: {fileID: 0} - m_enableKerning: 1 - m_enableExtraPadding: 0 - checkPaddingRequired: 0 - m_isRichText: 1 - m_parseCtrlCharacters: 1 - m_isOrthographic: 1 - m_isCullingEnabled: 0 - m_horizontalMapping: 0 - m_verticalMapping: 0 - m_uvLineOffset: 0 - m_geometrySortingOrder: 0 - m_IsTextObjectScaleStatic: 0 - m_VertexBufferAutoSizeReduction: 0 - m_useMaxVisibleDescender: 1 - m_pageToDisplay: 1 - m_margin: {x: 0, y: 0, z: 0, w: 0} - m_isUsingLegacyAnimationComponent: 0 - m_isVolumetricText: 0 - m_hasFontAssetChanged: 0 - m_baseMaterial: {fileID: 0} - m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &8911300612616444227 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 567774563410981175} - - component: {fileID: 7714958095298628162} - - component: {fileID: 6872438639384065139} - - component: {fileID: 4934423018355996513} - m_Layer: 5 - m_Name: WelcomePanel - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &567774563410981175 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8911300612616444227} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1854344941768066975} - - {fileID: 6026621330802784976} - m_Father: {fileID: 1782220280790055373} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 260.0685, y: 121.5552} - m_Pivot: {x: 0.5, y: 0} ---- !u!222 &7714958095298628162 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8911300612616444227} - m_CullTransparentMesh: 1 ---- !u!114 &6872438639384065139 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8911300612616444227} - m_Enabled: 0 - m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 0.392} - m_RaycastTarget: 0 + m_Color: {r: 0.3019608, g: 0.20784314, b: 0.20784314, a: 1} + m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 + m_Sprite: {fileID: 0} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -1260,29 +908,59 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &4934423018355996513 +--- !u!114 &8163905288335366995 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8911300612616444227} + m_GameObject: {fileID: 8163905288335366993} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: - m_Padding: - m_Left: 0 - m_Right: 0 - m_Top: 0 - m_Bottom: 0 - m_ChildAlignment: 4 - m_Spacing: 10 - m_ChildForceExpandWidth: 1 - m_ChildForceExpandHeight: 0 - m_ChildControlWidth: 0 - m_ChildControlHeight: 0 - m_ChildScaleWidth: 0 - m_ChildScaleHeight: 0 - m_ReverseArrangement: 0 + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8163905288335366988} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3713326636857166855} + m_TargetAssemblyTypeName: AuthenticationManager, com.trilitech.tezos-unity-sdk + m_MethodName: DisconnectWallet + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 diff --git a/Runtime/Prefabs/AuthenticationQr.prefab.meta b/Runtime/Prefabs/Authentication.prefab.meta similarity index 74% rename from Runtime/Prefabs/AuthenticationQr.prefab.meta rename to Runtime/Prefabs/Authentication.prefab.meta index 380ecf91..dabb7c79 100644 --- a/Runtime/Prefabs/AuthenticationQr.prefab.meta +++ b/Runtime/Prefabs/Authentication.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ae20566f75a5446dfbdf302b116384c2 +guid: 95be21708b9eb431e99da6aa7b6d7c60 PrefabImporter: externalObjects: {} userData: diff --git a/Runtime/Scripts/BeaconSDK/BeaconConnectorDotNet.cs b/Runtime/Scripts/BeaconSDK/BeaconConnectorDotNet.cs index b808bbda..6d88e361 100644 --- a/Runtime/Scripts/BeaconSDK/BeaconConnectorDotNet.cs +++ b/Runtime/Scripts/BeaconSDK/BeaconConnectorDotNet.cs @@ -13,17 +13,20 @@ using Microsoft.Extensions.Logging; using Netezos.Keys; using Newtonsoft.Json.Linq; +using Scripts.BeaconSDK; +using Scripts.Helpers; +using Scripts.Tezos; using UnityEngine; using ILogger = Microsoft.Extensions.Logging.ILogger; -using Logger = Helpers.Logger; +using Logger = Scripts.Helpers.Logger; using LogLevel = Microsoft.Extensions.Logging.LogLevel; namespace BeaconSDK { public class BeaconConnectorDotNet : IBeaconConnector { - private static BeaconMessageReceiver _messageReceiver; - private DappBeaconClient _beaconDappClient { get; set; } + private static WalletMessageReceiver _walletMessageReceiver; + private DappBeaconClient BeaconDappClient { get; set; } private string _network; private string _rpc; @@ -43,16 +46,16 @@ public async void ConnectAccount() DatabaseConnectionString = $"Filename={pathToDb};Connection=direct;Upgrade=true" }; - _beaconDappClient = (DappBeaconClient)BeaconClientFactory + BeaconDappClient = (DappBeaconClient)BeaconClientFactory .Create(options, new MyLoggerProvider()); - _beaconDappClient.OnBeaconMessageReceived += OnBeaconDappClientMessageReceived; + BeaconDappClient.OnBeaconMessageReceived += OnBeaconDappClientMessageReceived; - await _beaconDappClient.InitAsync(); - Logger.LogInfo($"Dapp initialized: {_beaconDappClient.LoggedIn}"); - _beaconDappClient.Connect(); - Logger.LogInfo($"Dapp connected: {_beaconDappClient.Connected}"); + await BeaconDappClient.InitAsync(); + Logger.LogInfo($"Dapp initialized: {BeaconDappClient.LoggedIn}"); + BeaconDappClient.Connect(); + Logger.LogInfo($"Dapp connected: {BeaconDappClient.Connected}"); - var activeAccountPermissions = _beaconDappClient.GetActiveAccount(); + var activeAccountPermissions = BeaconDappClient.GetActiveAccount(); if (activeAccountPermissions != null) { var permissionsString = activeAccountPermissions.Scopes.Aggregate(string.Empty, @@ -61,7 +64,7 @@ public async void ConnectAccount() $"We have active peer {activeAccountPermissions.AppMetadata.Name} with permissions {permissionsString}"); UnityMainThreadDispatcher.Enqueue( - _messageReceiver.OnAccountConnected, + _walletMessageReceiver.OnAccountConnected, new JObject { ["account"] = new JObject @@ -73,12 +76,11 @@ public async void ConnectAccount() } else { - var pairingRequestQrData = _beaconDappClient.GetPairingRequestInfo(); - _messageReceiver.OnHandshakeReceived(pairingRequestQrData); + _walletMessageReceiver.OnHandshakeReceived(BeaconDappClient.GetPairingRequestInfo()); } } - public string GetActiveAccountAddress() => _beaconDappClient?.GetActiveAccount()?.Address ?? string.Empty; + public string GetActiveAccountAddress() => BeaconDappClient?.GetActiveAccount()?.Address ?? string.Empty; public void RequestHandshake() { @@ -86,10 +88,10 @@ public void RequestHandshake() public void DisconnectAccount() { - _beaconDappClient.RemoveActiveAccounts(); - var pairingRequestQrData = _beaconDappClient.GetPairingRequestInfo(); - _messageReceiver.OnHandshakeReceived(pairingRequestQrData); - UnityMainThreadDispatcher.Enqueue(_messageReceiver.OnAccountDisconnected, string.Empty); + BeaconDappClient.RemoveActiveAccounts(); + var pairingRequestQrData = BeaconDappClient.GetPairingRequestInfo(); + _walletMessageReceiver.OnHandshakeReceived(pairingRequestQrData); + UnityMainThreadDispatcher.Enqueue(_walletMessageReceiver.OnAccountDisconnected, string.Empty); } public void SetNetwork(string network, string rpc) @@ -98,15 +100,15 @@ public void SetNetwork(string network, string rpc) _rpc = rpc; } - public void SetBeaconMessageReceiver(BeaconMessageReceiver messageReceiver) + public void SetWalletMessageReceiver(WalletMessageReceiver messageReceiver) { - _messageReceiver = messageReceiver; + _walletMessageReceiver = messageReceiver; } public async void RequestTezosPermission(string networkName = "", string networkRPC = "") { - if (!Enum.TryParse(networkName, out Beacon.Sdk.Beacon.Permission.NetworkType networkType)) - networkType = Beacon.Sdk.Beacon.Permission.NetworkType.ghostnet; + if (!Enum.TryParse(networkName, out NetworkType networkType)) + networkType = TezosConfig.Instance.Network; var network = new Beacon.Sdk.Beacon.Permission.Network { @@ -125,16 +127,16 @@ public async void RequestTezosPermission(string networkName = "", string network type: BeaconMessageType.permission_request, version: Constants.BeaconVersion, id: KeyPairService.CreateGuid(), - senderId: _beaconDappClient.SenderId, - appMetadata: _beaconDappClient.Metadata, + senderId: BeaconDappClient.SenderId, + appMetadata: BeaconDappClient.Metadata, network: network, scopes: permissionScopes ); - var activePeer = _beaconDappClient.GetActivePeer(); + var activePeer = BeaconDappClient.GetActivePeer(); if (activePeer != null) { - await _beaconDappClient.SendResponseAsync(activePeer.SenderId, permissionRequest); + await BeaconDappClient.SendResponseAsync(activePeer.SenderId, permissionRequest); Logger.LogInfo("Permission request sent"); } else @@ -143,9 +145,13 @@ public async void RequestTezosPermission(string networkName = "", string network } } - public async void RequestTezosOperation(string destination, string entryPoint = "default", string arg = null, + public async void RequestTezosOperation( + string destination, + string entryPoint = "default", + string arg = null, ulong amount = 0, - string networkName = "", string networkRPC = "") + string networkName = "", + string networkRPC = "") { var operationDetails = new List(); var partialTezosTransactionOperation = new PartialTezosTransactionOperation( @@ -160,7 +166,7 @@ public async void RequestTezosOperation(string destination, string entryPoint = operationDetails.Add(partialTezosTransactionOperation); - var activeAccountPermissions = _beaconDappClient.GetActiveAccount(); + var activeAccountPermissions = BeaconDappClient.GetActiveAccount(); if (activeAccountPermissions == null) { Logger.LogError("No active permissions"); @@ -173,18 +179,18 @@ public async void RequestTezosOperation(string destination, string entryPoint = type: BeaconMessageType.operation_request, version: Constants.BeaconVersion, id: KeyPairService.CreateGuid(), - senderId: _beaconDappClient.SenderId, + senderId: BeaconDappClient.SenderId, network: activeAccountPermissions.Network, operationDetails: operationDetails, sourceAddress: pubKey.Address); Logger.LogDebug("requesting operation: " + operationRequest); - await _beaconDappClient.SendResponseAsync(activeAccountPermissions.SenderId, operationRequest); + await BeaconDappClient.SendResponseAsync(activeAccountPermissions.SenderId, operationRequest); } public void RequestTezosSignPayload(SignPayloadType signingType, string payload) { - _beaconDappClient.RequestSign(NetezosExtensions.GetPayloadString(signingType, payload), signingType); + BeaconDappClient.RequestSign(NetezosExtensions.GetPayloadString(signingType, payload), signingType); } public void RequestTezosBroadcast(string signedTransaction, string networkName = "", string networkRPC = "") @@ -199,7 +205,7 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag { if (e.PairingDone) { - _messageReceiver.OnPairingCompleted("paired"); + _walletMessageReceiver.OnPairingCompleted("paired"); return; } @@ -213,11 +219,11 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag var permissionsString = permissionResponse.Scopes.Aggregate(string.Empty, (res, scope) => res + $"{scope}, "); - Debug.Log( - $"{_beaconDappClient.AppName} received permissions {permissionsString} from {permissionResponse.AppMetadata.Name} with public key {permissionResponse.PublicKey}"); + Logger.LogDebug( + $"{BeaconDappClient.AppName} received permissions {permissionsString} from {permissionResponse.AppMetadata.Name} with public key {permissionResponse.PublicKey}"); UnityMainThreadDispatcher.Enqueue( - _messageReceiver.OnAccountConnected, //permissionResponse.PublicKey); + _walletMessageReceiver.OnAccountConnected, //permissionResponse.PublicKey); new JObject { ["account"] = new JObject @@ -236,14 +242,14 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag return; UnityMainThreadDispatcher.Enqueue( - _messageReceiver.OnContractCallInjected, //operationResponse.TransactionHash); + _walletMessageReceiver.OnContractCallInjected, //operationResponse.TransactionHash); new JObject { ["transactionHash"] = operationResponse.TransactionHash, ["success"] = "true" }.ToString()); - Debug.Log($"Operation completed with transaction hash {operationResponse.TransactionHash}"); + Logger.LogDebug($"Received operation with hash {operationResponse.TransactionHash}"); break; } @@ -252,12 +258,12 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag if (message is not SignPayloadResponse signPayloadResponse) return; - var senderPermissions = await _beaconDappClient + var senderPermissions = await BeaconDappClient .PermissionInfoRepository .TryReadBySenderIdAsync(signPayloadResponse.SenderId); if (senderPermissions == null) return; - _messageReceiver.OnPayloadSigned( //signPayloadResponse.Signature); + _walletMessageReceiver.OnPayloadSigned( //signPayloadResponse.Signature); new JObject { ["signature"] = signPayloadResponse.Signature @@ -272,6 +278,7 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag } } +// todo: this logger didn't work inside Beacon, improve this. public class MyLoggerProvider : ILoggerProvider { public class MyLogger : ILogger diff --git a/Runtime/Scripts/BeaconSDK/BeaconConnectorNull.cs b/Runtime/Scripts/BeaconSDK/BeaconConnectorNull.cs deleted file mode 100644 index 2f4215cc..00000000 --- a/Runtime/Scripts/BeaconSDK/BeaconConnectorNull.cs +++ /dev/null @@ -1,111 +0,0 @@ -using Beacon.Sdk.Beacon.Sign; -using UnityEngine; - -namespace BeaconSDK -{ - ///

- /// Null implementation of the Beacon Connector. - /// This should be used when running on a platform that doesn't support - /// a real connection to the BeaconSdk, for example the Unity Editor. - /// - public class BeaconConnectorNull : IBeaconConnector - { - public void ConnectAccount() - { - Debug.LogError("Platform not supported"); - } - - // public void SetQRCodeView(QRCodeView qRCodeView) - // { - // Debug.LogError("Platform not supported"); - // } - - public void SetBeaconMessageReceiver(BeaconMessageReceiver messageReceiver) - { - Debug.LogError("Platform not supported"); - } - - public void QRCode(string handshake) - { - Debug.LogError("Platform not supported"); - } - - public void Unpair() - { - Debug.LogError("Platform not supported"); - } - - public void DisconnectAccount() - { - Debug.LogError("Platform not supported"); - } - - public void SendRequestPermissions() - { - Debug.LogError("Platform not supported"); - } - - public void Reset() - { - Debug.LogError("Platform not supported"); - } - - public void CallContract(string destination, string entryPoint, string arg, long amount = 0) - { - Debug.LogError("Platform not supported"); - } - - public void SendMutez(long amount, string address) - { - Debug.LogError("Platform not supported"); - } - - public void SetNetwork(string network, string rpc) - { - Debug.LogError("Platform not supported"); - } - - public void SwitchAccounts() - { - Debug.LogError("Platform not supported"); - } - - public string GetActiveAccount() - { - Debug.LogError("Platform not supported"); - return string.Empty; - } - - public string GetActiveAccountAddress() - { - Debug.LogError("Platform not supported"); - return "1234"; - } - - public void RequestTezosOperation(string destination, string entryPoint = "default", string arg = null, - ulong amount = 0, string networkName = "", string networkRPC = "") - { - throw new System.NotImplementedException(); - } - - public void RequestTezosSignPayload(SignPayloadType signingType, string payload) - { - throw new System.NotImplementedException(); - } - - public void RequestTezosBroadcast(string signedTransaction, string networkName = "", string networkRPC = "") - { - throw new System.NotImplementedException(); - } - - public void RequestTezosPermission(string networkName = "", string networkRPC = "") - { - throw new System.NotImplementedException(); - } - - public void RequestHandshake() - { - throw new System.NotImplementedException(); - } - } -} \ No newline at end of file diff --git a/Runtime/Scripts/BeaconSDK/BeaconConnectorWebGl.cs b/Runtime/Scripts/BeaconSDK/BeaconConnectorWebGl.cs index e4c4786d..ecd30808 100644 --- a/Runtime/Scripts/BeaconSDK/BeaconConnectorWebGl.cs +++ b/Runtime/Scripts/BeaconSDK/BeaconConnectorWebGl.cs @@ -2,6 +2,7 @@ using System; using System.Runtime.InteropServices; using Beacon.Sdk.Beacon.Sign; +using Scripts.BeaconSDK; using UnityEngine; namespace BeaconSDK diff --git a/Runtime/Scripts/BeaconSDK/BeaconEnums.cs b/Runtime/Scripts/BeaconSDK/BeaconEnums.cs deleted file mode 100644 index 83737ed9..00000000 --- a/Runtime/Scripts/BeaconSDK/BeaconEnums.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace BeaconSDK -{ - /// - /// Available networks to connect to. - /// - public enum NetworkType - { - Custom, - Delphinet, - Edonet, - Florencenet, - Ghostnet, - Granadanet, - Hangzhounet, - Ithacanet, - Jakartanet, - Kathmandunet, - Mainnet, - Mondaynet, - } -} \ No newline at end of file diff --git a/Runtime/Scripts/BeaconSDK/BeaconMessageReceiver.cs b/Runtime/Scripts/BeaconSDK/BeaconMessageReceiver.cs index 82e3e493..153419ea 100644 --- a/Runtime/Scripts/BeaconSDK/BeaconMessageReceiver.cs +++ b/Runtime/Scripts/BeaconSDK/BeaconMessageReceiver.cs @@ -1,144 +1,142 @@ using System; using System.Collections; using System.Text.Json; +using Scripts.Tezos; using UnityEngine; -using UnityEngine.Networking; +using Logger = Scripts.Helpers.Logger; -namespace BeaconSDK +namespace Scripts.BeaconSDK { - /// - /// Receives external messages - /// - - public class BeaconMessageReceiver : MonoBehaviour - { - public event Action ClientCreated; - public event Action AccountConnected; - public event Action AccountConnectionFailed; - public event Action AccountDisconnected; - public event Action ContractCallCompleted; - public event Action ContractCallInjected; - public event Action ContractCallFailed; - public event Action PayloadSigned; - public event Action HandshakeReceived; - public event Action PairingCompleted; - public event Action AccountReceived; - - public void OnClientCreated(string result) - { - Debug.LogWarning("From unity, OnClientCreated: " + result); - ClientCreated?.Invoke(result); - } - - public void OnAccountConnected(string address) - { - // result is the json permission response - Debug.Log("From unity, OnAccountConnected: " + address); - AccountConnected?.Invoke(address); - } - - public void OnAccountFailedToConnect(string result) - { - // result is the json error - Debug.Log("From unity, OnAccountFailedToConnect: " + result); - AccountConnectionFailed?.Invoke(result); - } - - public void OnAccountDisconnected(string result) - { - Debug.Log("From unity, OnAccountDisconnect: " + result); - AccountDisconnected?.Invoke(result); - } - - public void OnContractCallCompleted(string result) - { - // result is the json of transaction response - Debug.Log("From unity, OnContractCallCompleted: " + result); - ContractCallCompleted?.Invoke(result); - } - - public void OnContractCallInjected(string result) - { - // result is the json of transaction response - Debug.Log("From unity, OnContractCallInjected: " + result); - ContractCallInjected?.Invoke(result); - } - - [Serializable] - struct ContractCallInjectionResult - { - public bool success; - public string transactionHash; - } - - public IEnumerator ContractCallInjection(string uri, string transactionHash) - { - var success = false; - const float timeout = 30f; // seconds - var timestamp = Time.time; - Debug.Log("Operation injected into blockchain"); - - // keep making requests until time out or success - while (!success && Time.time - timestamp < timeout) - { - uri = string.Format(uri, transactionHash); - Debug.Log("WebRequest into " + uri); - using var webRequest = UnityWebRequest.Get(uri); - yield return webRequest.SendWebRequest(); - var resultText = webRequest.downloadHandler.text; - - if (!string.IsNullOrEmpty(webRequest.error)) - { - Debug.LogError(webRequest.error); - break; - } - - if (!string.IsNullOrEmpty(resultText)) - { - success = JsonSerializer.Deserialize(resultText); - } - - yield return new WaitForSecondsRealtime(3); - } - - ContractCallInjectionResult result; - result.success = success; - result.transactionHash = transactionHash; - Debug.Log($"Operation completed with success: {success}"); - ContractCallCompleted?.Invoke(JsonUtility.ToJson(result)); - } - - public void OnContractCallFailed(string result) - { - // result is error or empty - Debug.Log("From unity, OnContractCallFailed: " + result); - ContractCallFailed?.Invoke(result); - } - - public void OnPayloadSigned(string signature) - { - // result is the json string of payload signing result - Debug.Log("From unity, OnPayloadSigned: " + signature); - PayloadSigned?.Invoke(signature); - } - - public void OnHandshakeReceived(string handshake) - { - // result is serialized p2p pairing request - Debug.Log("From unity, OnHandshakeReceived: " + handshake); - HandshakeReceived?.Invoke(handshake); - } - - public void OnPairingCompleted(string message) - { - Debug.Log("From unity, OnPairingCompleted: " + message); - PairingCompleted?.Invoke(message); - } - - public void OnAccountReceived(string message) - { - Debug.Log("From unity, OnAccountReceived: " + message); - AccountReceived?.Invoke(message); - } - } -} + /// + /// Receives external messages + /// + public class WalletMessageReceiver : BeaconMessageReceiver + { + } + + /// + /// Receives external messages + /// + [Obsolete( + "BeaconMessageReceiver will be renamed to WalletMessageReceiver in future versions, please use WalletMessageReceiver type instead")] + public class BeaconMessageReceiver : MonoBehaviour + { + public event Action ClientCreated; + public event Action AccountConnected; + public event Action AccountConnectionFailed; + public event Action AccountDisconnected; + public event Action ContractCallCompleted; + public event Action ContractCallInjected; + public event Action ContractCallFailed; + public event Action PayloadSigned; + public event Action HandshakeReceived; + public event Action PairingCompleted; + public event Action AccountReceived; + + public void OnClientCreated(string result) + { + // Debug.LogWarning("From unity, OnClientCreated: " + result); + ClientCreated?.Invoke(result); + } + + public void OnAccountConnected(string address) + { + // result is the json permission response + // Debug.Log("From unity, OnAccountConnected: " + address); + AccountConnected?.Invoke(address); + } + + public void OnAccountFailedToConnect(string result) + { + // result is the json error + // Debug.Log("From unity, OnAccountFailedToConnect: " + result); + AccountConnectionFailed?.Invoke(result); + } + + public void OnAccountDisconnected(string result) + { + // Debug.Log("From unity, OnAccountDisconnect: " + result); + AccountDisconnected?.Invoke(result); + } + + public void OnContractCallCompleted(string result) + { + // result is the json of transaction response + // Debug.Log("From unity, OnContractCallCompleted: " + result); + ContractCallCompleted?.Invoke(result); + } + + public void OnContractCallInjected(string result) + { + // result is the json of transaction response + // Debug.Log("From unity, OnContractCallInjected: " + result); + ContractCallInjected?.Invoke(result); + } + + [Serializable] + struct ContractCallInjectionResult + { + public bool success; + public string transactionHash; + } + + public IEnumerator TrackTransaction(string transactionHash) + { + var success = false; + const float timeout = 30f; // seconds + var timestamp = Time.time; + + // keep making requests until time out or success + while (!success && Time.time - timestamp < timeout) + { + if (success) break; + Logger.LogDebug($"Checking tx status: {transactionHash}"); + yield return TezosSingleton.Instance.GetOperationStatus(result => + { + if (result != null) + success = JsonSerializer.Deserialize(result); + }, transactionHash); + + yield return new WaitForSecondsRealtime(3); + } + + ContractCallInjectionResult result; + result.success = success; + result.transactionHash = transactionHash; + ContractCallCompleted?.Invoke(JsonUtility.ToJson(result)); + } + + public void OnContractCallFailed(string result) + { + // result is error or empty + // Debug.Log("From unity, OnContractCallFailed: " + result); + ContractCallFailed?.Invoke(result); + } + + public void OnPayloadSigned(string signature) + { + // result is the json string of payload signing result + // Debug.Log("From unity, OnPayloadSigned: " + signature); + PayloadSigned?.Invoke(signature); + } + + public void OnHandshakeReceived(string handshake) + { + // result is serialized p2p pairing request + // Debug.Log("From unity, OnHandshakeReceived: " + handshake); + HandshakeReceived?.Invoke(handshake); + } + + public void OnPairingCompleted(string message) + { + // Debug.Log("From unity, OnPairingCompleted: " + message); + PairingCompleted?.Invoke(message); + } + + public void OnAccountReceived(string message) + { + // Debug.Log("From unity, OnAccountReceived: " + message); + AccountReceived?.Invoke(message); + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/BeaconSDK/IBeaconConnector.cs b/Runtime/Scripts/BeaconSDK/IBeaconConnector.cs index 04e922af..545bdfce 100644 --- a/Runtime/Scripts/BeaconSDK/IBeaconConnector.cs +++ b/Runtime/Scripts/BeaconSDK/IBeaconConnector.cs @@ -1,6 +1,6 @@ using Beacon.Sdk.Beacon.Sign; -namespace BeaconSDK +namespace Scripts.BeaconSDK { /// /// Implement this interface to create a class that can connect to native code @@ -8,6 +8,7 @@ namespace BeaconSDK /// public interface IBeaconConnector { + // todo: remove this? /// /// Specifies to which network the Beacon Client should connect /// (Take in consideration that not all wallets support all available networks) diff --git a/Runtime/Scripts/Helpers/CoroutineWrapper.cs b/Runtime/Scripts/Helpers/CoroutineWrapper.cs index 2d2bb0fd..d714e9e2 100644 --- a/Runtime/Scripts/Helpers/CoroutineWrapper.cs +++ b/Runtime/Scripts/Helpers/CoroutineWrapper.cs @@ -12,6 +12,7 @@ public class CoroutineWrapper : IEnumerator /// Event raised when the coroutine is complete /// public readonly Action Completed; + /// /// Event raised when the coroutine throws an exception /// @@ -45,6 +46,7 @@ public CoroutineWrapper(IEnumerator coroutine, Action callback = null, Action { Completed += callback; } + if (errorHandler != null) { ErrorHandler += errorHandler; @@ -78,6 +80,7 @@ public bool MoveNext() { ErrorHandler?.Invoke(e); } + return false; } } @@ -107,13 +110,20 @@ public static CoroutineRunner Instance } } + public Coroutine StartWrappedCoroutine(IEnumerator coroutine) + { + return StartCoroutine(new CoroutineWrapper(coroutine, null, + (exception) => Debug.LogError($"Exception on Coroutine: {exception.Message}"))); + } + + [Obsolete("StartCoroutineWrapper is obsolete and will be replaced by StartWrappedCoroutine in future releases")] public Coroutine StartCoroutineWrapper(IEnumerator coroutine) { - return StartCoroutine(new CoroutineWrapper(coroutine, null, (exception) => Debug.LogError($"Exception on Coroutine: {exception.Message}"))); + return StartWrappedCoroutine(coroutine); } private void Awake() { DontDestroyOnLoad(gameObject); } -} +} \ No newline at end of file diff --git a/Runtime/Scripts/TezosAPI/HttpClient.cs b/Runtime/Scripts/Helpers/HttpClient.cs similarity index 85% rename from Runtime/Scripts/TezosAPI/HttpClient.cs rename to Runtime/Scripts/Helpers/HttpClient.cs index 1a2dd2ec..50bae619 100644 --- a/Runtime/Scripts/TezosAPI/HttpClient.cs +++ b/Runtime/Scripts/Helpers/HttpClient.cs @@ -1,25 +1,31 @@ -using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Text.Json; using Dynamic.Json; using Helpers; +using Scripts.Tezos; using UnityEngine; using UnityEngine.Networking; - -namespace TezosAPI +namespace Scripts.Helpers { public class HttpClient { private string BaseAddress { get; } private int RequestTimeout { get; } - protected HttpClient(string baseAddress, int timeoutSec = 30) + protected HttpClient(string baseAddress) { BaseAddress = baseAddress.EndsWith("/") ? baseAddress : $"{baseAddress}/"; - RequestTimeout = timeoutSec; + RequestTimeout = TezosConfig.Instance.DefaultTimeoutSeconds; + } + + protected HttpClient(IDataProviderConfig config) + { + var configBaseAddress = config.BaseUrl; + BaseAddress = configBaseAddress.EndsWith("/") ? configBaseAddress : $"{configBaseAddress}/"; + RequestTimeout = config.TimeoutSeconds; } protected IEnumerator GetJson(string path) diff --git a/Runtime/Scripts/TezosAPI/HttpClient.cs.meta b/Runtime/Scripts/Helpers/HttpClient.cs.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/HttpClient.cs.meta rename to Runtime/Scripts/Helpers/HttpClient.cs.meta diff --git a/Runtime/Scripts/Helpers/Logger.cs b/Runtime/Scripts/Helpers/Logger.cs index 58a79a43..097e3dd2 100644 --- a/Runtime/Scripts/Helpers/Logger.cs +++ b/Runtime/Scripts/Helpers/Logger.cs @@ -1,6 +1,6 @@ using UnityEngine; -namespace Helpers +namespace Scripts.Helpers { public static class Logger { diff --git a/Runtime/Scripts/Helpers/NetezosExtensions.cs b/Runtime/Scripts/Helpers/NetezosExtensions.cs index 091d5a46..39145f12 100644 --- a/Runtime/Scripts/Helpers/NetezosExtensions.cs +++ b/Runtime/Scripts/Helpers/NetezosExtensions.cs @@ -1,46 +1,20 @@ using System; using System.Collections; using System.Collections.Generic; -using System.Linq; using System.Text; using System.Text.Json; using Beacon.Sdk.Beacon.Sign; using Netezos.Contracts; using Netezos.Encoding; -using UnityEngine; using Netezos.Keys; -using TezosAPI; +using Scripts.Tezos.API; - -namespace BeaconSDK +namespace Scripts.Helpers { public static class NetezosExtensions { private static readonly Dictionary _contracts = new(); - public static IEnumerator ReadTZBalance(string rpcUri, string sender, Action callback) - { - var rpc = new Rpc(rpcUri); - var getBalanceRequest = rpc.GetTzBalance(sender); - return new CoroutineWrapper(getBalanceRequest, callback); - } - - public static IEnumerator ReadView(string rpcUri, string destination, string entrypoint, - object input, Action onComplete = null) - { - var rpc = new Rpc(rpcUri); - var runViewOp = rpc.RunView(destination, entrypoint, input); - - return new CoroutineWrapper(runViewOp, (JsonElement result) => - { - if (result.ValueKind != JsonValueKind.Null && result.ValueKind != JsonValueKind.Undefined && - result.TryGetProperty("data", out var val)) - onComplete(val); - else - Debug.LogError("Invalid data"); - }); - } - public static IEnumerator HumanizeValue(JsonElement val, string rpcUri, string destination, string humanizeEntrypoint, Action onComplete) { diff --git a/Runtime/Scripts/TezosAPI.meta b/Runtime/Scripts/Tezos.meta similarity index 100% rename from Runtime/Scripts/TezosAPI.meta rename to Runtime/Scripts/Tezos.meta diff --git a/Runtime/Scripts/Tezos/API.meta b/Runtime/Scripts/Tezos/API.meta new file mode 100644 index 00000000..cfe846f8 --- /dev/null +++ b/Runtime/Scripts/Tezos/API.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 964b18eec61e464b972badc4be8adc44 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Tezos/API/ITezosDataAPI.cs b/Runtime/Scripts/Tezos/API/ITezosDataAPI.cs new file mode 100644 index 00000000..5fcda5c3 --- /dev/null +++ b/Runtime/Scripts/Tezos/API/ITezosDataAPI.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text.Json; +using Scripts.Tezos.API.Models.Filters; +using Scripts.Tezos.API.Models.Tokens; + +namespace Scripts.Tezos.API +{ + public interface ITezosDataAPI + { + /// + /// An IEnumerator for reading the account's balance + /// Can be called in a StartCoroutine() + /// + /// callback action that runs with the float balance is fetched + /// tz address + /// + public IEnumerator GetTezosBalance(Action callback, string address); + + /// + /// An IEnumerator for reading data from a contract view + /// Can be called in a StartCoroutine() + /// + /// destination address of the smart contract + /// entry point used in the smart contract + /// parameters called on the entry point + /// callback action that runs with the json data is fetched + /// + public IEnumerator ReadView( + string contractAddress, + string entrypoint, + object input, + Action callback); + + // Gets all tokens currently owned by a given address. + public IEnumerator GetTokensForOwner( + Action> callback, + string owner, + bool withMetadata, + long maxItems, + TokensForOwnerOrder orderBy); + + // Get the owner(s) for a token. + public IEnumerator GetOwnersForToken( + Action> callback, + string contractAddress, + uint tokenId, + long maxItems, + OwnersForTokenOrder orderBy); + + // Gets all owners for a given token contract. + public IEnumerator GetOwnersForContract( + Action> callback, + string contractAddress, + long maxItems, + OwnersForContractOrder orderBy); + + // Checks whether a wallet holds a token in a given contract. + public IEnumerator IsHolderOfContract( + Action callback, + string wallet, + string contractAddress); + + // Checks whether a wallet holds a particular token. + public IEnumerator IsHolderOfToken( + Action callback, + string wallet, + string contractAddress, + uint tokenId); + + // Gets the metadata associated with a given token. + public IEnumerator GetTokenMetadata( + Action callback, + string contractAddress, + uint tokenId); + + // Queries token high-level collection/contract level information. + public IEnumerator GetContractMetadata( + Action callback, + string contractAddress); + + // Gets all tokens for a given token contract. + public IEnumerator GetTokensForContract( + Action> callback, + string contractAddress, + bool withMetadata, + long maxItems, + TokensForContractOrder orderBy); + + // Returns operation status: true if applied, false if failed, null (or HTTP 204) if doesn't exist. + public IEnumerator GetOperationStatus( + Action callback, + string operationHash); + } +} \ No newline at end of file diff --git a/Runtime/Scripts/TezosAPI/ITezosAPI.cs.meta b/Runtime/Scripts/Tezos/API/ITezosDataAPI.cs.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/ITezosAPI.cs.meta rename to Runtime/Scripts/Tezos/API/ITezosDataAPI.cs.meta diff --git a/Runtime/Scripts/TezosAPI/Models.meta b/Runtime/Scripts/Tezos/API/Models.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/Models.meta rename to Runtime/Scripts/Tezos/API/Models.meta diff --git a/Runtime/Scripts/TezosAPI/Models/Alias.cs b/Runtime/Scripts/Tezos/API/Models/Alias.cs similarity index 91% rename from Runtime/Scripts/TezosAPI/Models/Alias.cs rename to Runtime/Scripts/Tezos/API/Models/Alias.cs index 9345dbc2..de14f910 100644 --- a/Runtime/Scripts/TezosAPI/Models/Alias.cs +++ b/Runtime/Scripts/Tezos/API/Models/Alias.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace TezosAPI.Models +namespace Scripts.Tezos.API.Models { public class Alias { diff --git a/Runtime/Scripts/TezosAPI/Models/Alias.cs.meta b/Runtime/Scripts/Tezos/API/Models/Alias.cs.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/Models/Alias.cs.meta rename to Runtime/Scripts/Tezos/API/Models/Alias.cs.meta diff --git a/Runtime/Scripts/Tezos/API/Models/Filters.meta b/Runtime/Scripts/Tezos/API/Models/Filters.meta new file mode 100644 index 00000000..b86d62dd --- /dev/null +++ b/Runtime/Scripts/Tezos/API/Models/Filters.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4a93bac7b8794d7683b9acc9815589b3 +timeCreated: 1681735087 \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForContractOrder.cs b/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForContractOrder.cs new file mode 100644 index 00000000..81a55792 --- /dev/null +++ b/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForContractOrder.cs @@ -0,0 +1,20 @@ +namespace Scripts.Tezos.API.Models.Filters +{ + public abstract record OwnersForContractOrder + { + public record Default(long lastId) : OwnersForContractOrder + { + public long lastId { get; } = lastId; + } + + public record ByLastTimeAsc(long page) : OwnersForContractOrder + { + public long page { get; } = page; + } + + public record ByLastTimeDesc(long page) : OwnersForContractOrder + { + public long page { get; } = page; + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForContractOrder.cs.meta b/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForContractOrder.cs.meta new file mode 100644 index 00000000..b4873059 --- /dev/null +++ b/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForContractOrder.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5aecf6c65aac4834b8501052d8b308db +timeCreated: 1681735223 \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForTokenOrder.cs b/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForTokenOrder.cs new file mode 100644 index 00000000..1a706fd8 --- /dev/null +++ b/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForTokenOrder.cs @@ -0,0 +1,30 @@ +namespace Scripts.Tezos.API.Models.Filters +{ + public abstract record OwnersForTokenOrder + { + public record Default(long lastId) : OwnersForTokenOrder + { + public long lastId { get; } = lastId; + } + + public record ByBalanceAsc(long page) : OwnersForTokenOrder + { + public long page { get; } = page; + } + + public record ByBalanceDesc(long page) : OwnersForTokenOrder + { + public long page { get; } = page; + } + + public record ByLastTimeAsc(long page) : OwnersForTokenOrder + { + public long page { get; } = page; + } + + public record ByLastTimeDesc(long page) : OwnersForTokenOrder + { + public long page { get; } = page; + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForTokenOrder.cs.meta b/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForTokenOrder.cs.meta new file mode 100644 index 00000000..b5e163e0 --- /dev/null +++ b/Runtime/Scripts/Tezos/API/Models/Filters/OwnersForTokenOrder.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6baa890b8e4d402790d1798c92aab023 +timeCreated: 1681730940 \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/API/Models/Filters/TokensForContractOrder.cs b/Runtime/Scripts/Tezos/API/Models/Filters/TokensForContractOrder.cs new file mode 100644 index 00000000..c4f66efc --- /dev/null +++ b/Runtime/Scripts/Tezos/API/Models/Filters/TokensForContractOrder.cs @@ -0,0 +1,30 @@ +namespace Scripts.Tezos.API.Models.Filters +{ + public abstract record TokensForContractOrder + { + public record Default(long lastId) : TokensForContractOrder + { + public long lastId { get; } = lastId; + } + + public record ByHoldersCountAsc(long page) : TokensForContractOrder + { + public long page { get; } = page; + } + + public record ByHoldersCountDesc(long page) : TokensForContractOrder + { + public long page { get; } = page; + } + + public record ByLastTimeAsc(long page) : TokensForContractOrder + { + public long page { get; } = page; + } + + public record ByLastTimeDesc(long page) : TokensForContractOrder + { + public long page { get; } = page; + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/API/Models/Filters/TokensForContractOrder.cs.meta b/Runtime/Scripts/Tezos/API/Models/Filters/TokensForContractOrder.cs.meta new file mode 100644 index 00000000..54929b0b --- /dev/null +++ b/Runtime/Scripts/Tezos/API/Models/Filters/TokensForContractOrder.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 94da52ee9e674eacb7453e576a366132 +timeCreated: 1683129887 \ No newline at end of file diff --git a/Runtime/Scripts/TezosAPI/Models/TokensForOwnerOrder.cs b/Runtime/Scripts/Tezos/API/Models/Filters/TokensForOwnerOrder.cs similarity index 91% rename from Runtime/Scripts/TezosAPI/Models/TokensForOwnerOrder.cs rename to Runtime/Scripts/Tezos/API/Models/Filters/TokensForOwnerOrder.cs index 242637c8..6947aa8a 100644 --- a/Runtime/Scripts/TezosAPI/Models/TokensForOwnerOrder.cs +++ b/Runtime/Scripts/Tezos/API/Models/Filters/TokensForOwnerOrder.cs @@ -1,4 +1,4 @@ -namespace TezosAPI.Models +namespace Scripts.Tezos.API.Models.Filters { public abstract record TokensForOwnerOrder { diff --git a/Runtime/Scripts/TezosAPI/Models/TokensForOwnerOrder.cs.meta b/Runtime/Scripts/Tezos/API/Models/Filters/TokensForOwnerOrder.cs.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/Models/TokensForOwnerOrder.cs.meta rename to Runtime/Scripts/Tezos/API/Models/Filters/TokensForOwnerOrder.cs.meta diff --git a/Runtime/Scripts/TezosAPI/Models/Tokens.meta b/Runtime/Scripts/Tezos/API/Models/Tokens.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/Models/Tokens.meta rename to Runtime/Scripts/Tezos/API/Models/Tokens.meta diff --git a/Runtime/Scripts/Tezos/API/Models/Tokens/Token.cs b/Runtime/Scripts/Tezos/API/Models/Tokens/Token.cs new file mode 100644 index 00000000..27c562d1 --- /dev/null +++ b/Runtime/Scripts/Tezos/API/Models/Tokens/Token.cs @@ -0,0 +1,95 @@ +using System; +using System.Text.Json; + +namespace Scripts.Tezos.API.Models.Tokens +{ + public class Token + { + /// + /// Internal TzKT id (not the same as `tokenId`). + /// **[sortable]** + /// + public long Id { get; set; } + + /// + /// Contract, created the token. + /// + public Alias Contract { get; set; } + + /// + /// Token id, unique within the contract. + /// **[sortable]** + /// + public string TokenId { get; set; } + + /// + /// Token standard (`fa1.2` or `fa2`). + /// + public string Standard { get; set; } + + /// + /// Account, minted the token first. + /// + public Alias FirstMinter { get; set; } + + /// + /// Level of the block where the token was first seen. + /// **[sortable]** + /// + public int FirstLevel { get; set; } + + /// + /// Timestamp of the block where the token was first seen. + /// + public DateTime FirstTime { get; set; } + + /// + /// Level of the block where the token was last seen. + /// **[sortable]** + /// + public int LastLevel { get; set; } + + /// + /// Timestamp of the block where the token was last seen. + /// + public DateTime LastTime { get; set; } + + /// + /// Total number of transfers. + /// **[sortable]** + /// + public int TransfersCount { get; set; } + + /// + /// Total number of holders ever seen. + /// **[sortable]** + /// + public int BalancesCount { get; set; } + + /// + /// Total number of current holders. + /// **[sortable]** + /// + public int HoldersCount { get; set; } + + /// + /// Total number of minted tokens (raw value, not divided by `decimals`). + /// + public string TotalMinted { get; set; } + + /// + /// Total number of burned tokens (raw value, not divided by `decimals`). + /// + public string TotalBurned { get; set; } + + /// + /// Total number of existing tokens (raw value, not divided by `decimals`). + /// + public string TotalSupply { get; set; } + + /// + /// Token metadata. + /// + public JsonElement TokenMetadata { get; set; } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/API/Models/Tokens/Token.cs.meta b/Runtime/Scripts/Tezos/API/Models/Tokens/Token.cs.meta new file mode 100644 index 00000000..cc75699e --- /dev/null +++ b/Runtime/Scripts/Tezos/API/Models/Tokens/Token.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 670c78a5a0024827969fe8dfccae68a5 +timeCreated: 1683129578 \ No newline at end of file diff --git a/Runtime/Scripts/TezosAPI/Models/Tokens/TokenBalance.cs b/Runtime/Scripts/Tezos/API/Models/Tokens/TokenBalance.cs similarity index 96% rename from Runtime/Scripts/TezosAPI/Models/Tokens/TokenBalance.cs rename to Runtime/Scripts/Tezos/API/Models/Tokens/TokenBalance.cs index 11ecc880..b5c9b726 100644 --- a/Runtime/Scripts/TezosAPI/Models/Tokens/TokenBalance.cs +++ b/Runtime/Scripts/Tezos/API/Models/Tokens/TokenBalance.cs @@ -1,7 +1,7 @@ using System; using System.Text.Json; -namespace TezosAPI.Models.Tokens +namespace Scripts.Tezos.API.Models.Tokens { public class TokenBalance { diff --git a/Runtime/Scripts/TezosAPI/Models/Tokens/TokenBalance.cs.meta b/Runtime/Scripts/Tezos/API/Models/Tokens/TokenBalance.cs.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/Models/Tokens/TokenBalance.cs.meta rename to Runtime/Scripts/Tezos/API/Models/Tokens/TokenBalance.cs.meta diff --git a/Runtime/Scripts/TezosAPI/Rpc.cs b/Runtime/Scripts/Tezos/API/Rpc.cs similarity index 96% rename from Runtime/Scripts/TezosAPI/Rpc.cs rename to Runtime/Scripts/Tezos/API/Rpc.cs index ed2cf377..fc229ee1 100644 --- a/Runtime/Scripts/TezosAPI/Rpc.cs +++ b/Runtime/Scripts/Tezos/API/Rpc.cs @@ -1,9 +1,8 @@ using System.Collections; -using System.Text.Json; using Netezos.Rpc.Queries.Post; +using Scripts.Helpers; - -namespace TezosAPI +namespace Scripts.Tezos.API { public class Rpc : HttpClient { diff --git a/Runtime/Scripts/TezosAPI/Rpc.cs.meta b/Runtime/Scripts/Tezos/API/Rpc.cs.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/Rpc.cs.meta rename to Runtime/Scripts/Tezos/API/Rpc.cs.meta diff --git a/Runtime/Scripts/Tezos/API/TezosDataAPI.cs b/Runtime/Scripts/Tezos/API/TezosDataAPI.cs new file mode 100644 index 00000000..c8feaf4b --- /dev/null +++ b/Runtime/Scripts/Tezos/API/TezosDataAPI.cs @@ -0,0 +1,245 @@ +using System; +using System.Collections; +using System.Text.Json; +using System.Collections.Generic; +using System.Linq; +using Dynamic.Json; +using Helpers; +using Scripts.Helpers; +using Scripts.Tezos.API.Models.Filters; +using Scripts.Tezos.API.Models.Tokens; + + +namespace Scripts.Tezos.API +{ + public class TezosDataAPI : HttpClient, ITezosDataAPI + { + private Rpc Rpc { get; } + + public TezosDataAPI(IDataProviderConfig config) : base(config) + { + Rpc = new Rpc(TezosConfig.Instance.RpcBaseUrl); + } + + public IEnumerator GetTezosBalance(Action callback, string address) + { + var getBalanceRequest = Rpc.GetTzBalance(address); + return new CoroutineWrapper(getBalanceRequest, callback); + } + + public IEnumerator ReadView( + string contractAddress, + string entrypoint, + object input, + Action callback) + { + var runViewOp = Rpc.RunView(contractAddress, entrypoint, input); + + return new CoroutineWrapper(runViewOp, result => + { + if (result.ValueKind != JsonValueKind.Null && result.ValueKind != JsonValueKind.Undefined && + result.TryGetProperty("data", out var val)) + callback(val); + else + Logger.LogError("Can't parse response from run_script_view query"); + }); + } + + public IEnumerator GetTokensForOwner( + Action> callback, + string owner, + bool withMetadata, + long maxItems, + TokensForOwnerOrder orderBy) + { + var sort = orderBy switch + { + TokensForOwnerOrder.Default byDefault => $"sort.asc=id&offset.cr={byDefault.lastId}", + TokensForOwnerOrder.ByLastTimeAsc byLastTimeAsc => $"sort.asc=lastLevel&offset.pg={byLastTimeAsc.page}", + TokensForOwnerOrder.ByLastTimeDesc ByLastTimeDesc => + $"sort.desc=lastLevel&offset.pg={ByLastTimeDesc.page}", + _ => string.Empty + }; + + var url = "tokens/balances?" + + $"account={owner}&balance.ne=0&" + + "select=account.address as owner,balance,token.contract as token_contract," + + $"token.tokenId as token_id{(withMetadata ? ",token.metadata as token_metadata" : "")}," + + "lastTime as last_time,id&" + + $"{sort}&limit={maxItems}"; + + var requestRoutine = GetJson>(url); + return new CoroutineWrapper>(requestRoutine, callback); + } + + public IEnumerator GetOwnersForToken( + Action> callback, + string contractAddress, + uint tokenId, + long maxItems, + OwnersForTokenOrder orderBy) + { + var sort = orderBy switch + { + OwnersForTokenOrder.Default byDefault => $"sort.asc=id&offset.cr={byDefault.lastId}", + OwnersForTokenOrder.ByBalanceAsc byBalanceAsc => $"sort.asc=balance&offset.pg={byBalanceAsc.page}", + OwnersForTokenOrder.ByBalanceDesc byBalanceDesc => $"sort.desc=balance&offset.pg={byBalanceDesc.page}", + OwnersForTokenOrder.ByLastTimeAsc byLastTimeAsc => $"sort.asc=lastLevel&offset.pg={byLastTimeAsc.page}", + OwnersForTokenOrder.ByLastTimeDesc byLastTimeDesc => + $"sort.desc=lastLevel&offset.pg={byLastTimeDesc.page}", + _ => string.Empty + }; + + var url = "tokens/balances?" + + $"token.contract={contractAddress}&balance.ne=0&token.tokenId={tokenId}&" + + "select=account.address as owner,balance,token.contract as token_contract," + + "token.tokenId as token_id,lastTime as last_time,id&" + + $"{sort}&limit={maxItems}"; + + var requestRoutine = GetJson>(url); + return new CoroutineWrapper>(requestRoutine, callback); + } + + public IEnumerator GetOwnersForContract( + Action> callback, + string contractAddress, + long maxItems, + OwnersForContractOrder orderBy) + { + var sort = orderBy switch + { + OwnersForContractOrder.Default byDefault => $"sort.asc=id&offset.cr={byDefault.lastId}", + OwnersForContractOrder.ByLastTimeAsc byLastTimeAsc => + $"sort.asc=lastLevel&offset.pg={byLastTimeAsc.page}", + OwnersForContractOrder.ByLastTimeDesc ByLastTimeDesc => + $"sort.desc=lastLevel&offset.pg={ByLastTimeDesc.page}", + _ => string.Empty + }; + + var url = "tokens/balances?" + + $"token.contract={contractAddress}&balance.ne=0&" + + "select=account.address as owner,balance,token.contract as token_contract," + + "token.tokenId as token_id,id&" + + $"{sort}&limit={maxItems}"; + + var requestRoutine = GetJson>(url); + return new CoroutineWrapper>(requestRoutine, callback); + } + + public IEnumerator IsHolderOfContract( + Action callback, + string wallet, + string contractAddress) + { + var requestRoutine = + GetJson($"tokens/balances?account={wallet}&token.contract={contractAddress}&balance.ne=0&select=id"); + + yield return requestRoutine; + + if (requestRoutine.Current is DJsonArray dJsonArray) + { + callback?.Invoke(dJsonArray.Length > 0); + } + else + { + callback?.Invoke(false); + } + } + + public IEnumerator IsHolderOfToken(Action callback, + string wallet, + string contractAddress, + uint tokenId) + { + var requestRoutine = + GetJson( + $"tokens/balances?account={wallet}&token.contract={contractAddress}&token.tokenId={tokenId}&balance.ne=0&select=id"); + + yield return requestRoutine; + + if (requestRoutine.Current is DJsonArray dJsonArray) + { + callback?.Invoke(dJsonArray.Length > 0); + } + else + { + callback?.Invoke(false); + } + } + + public IEnumerator GetTokenMetadata( + Action callback, + string contractAddress, + uint tokenId) + { + var url = $"tokens?contract={contractAddress}&tokenId={tokenId}&select=metadata"; + var requestRoutine = GetJson(url); + yield return requestRoutine; + + if (requestRoutine.Current is DJsonArray { Length: 1 } dJsonArray) + { + // todo: improve this + var result = JsonSerializer + .Deserialize(dJsonArray.First().ToString(), JsonOptions.DefaultOptions); + + callback?.Invoke(result); + } + } + + public IEnumerator GetContractMetadata( + Action callback, + string contractAddress) + { + var url = $"contracts/{contractAddress}?legacy=false"; + var requestRoutine = GetJson(url); + yield return requestRoutine; + + if (requestRoutine.Current is DJsonObject dJsonObject) + { + // todo: improve this + var result = JsonSerializer + .Deserialize(dJsonObject.ToString(), JsonOptions.DefaultOptions); + + callback?.Invoke(result.GetProperty("metadata")); + } + } + + public IEnumerator GetTokensForContract( + Action> callback, + string contractAddress, + bool withMetadata, + long maxItems, + TokensForContractOrder orderBy) + { + var sort = orderBy switch + { + TokensForContractOrder.Default byDefault => + $"sort.asc=id&offset.cr={byDefault.lastId}", + TokensForContractOrder.ByLastTimeAsc byLastTimeAsc => + $"sort.asc=lastLevel&offset.pg={byLastTimeAsc.page}", + TokensForContractOrder.ByLastTimeDesc ByLastTimeDesc => + $"sort.desc=lastLevel&offset.pg={ByLastTimeDesc.page}", + TokensForContractOrder.ByHoldersCountAsc byHoldersCountAsc => + $"sort.asc=holdersCount&offset.pg={byHoldersCountAsc.page}", + TokensForContractOrder.ByHoldersCountDesc byHoldersCountDesc => + $"sort.desc=holdersCount&offset.pg={byHoldersCountDesc.page}", + _ => string.Empty + }; + + var url = + $"tokens?contract={contractAddress}&select=contract,tokenId as token_id" + + $"{(withMetadata ? ",metadata as token_metadata" : "")},holdersCount as holders_count,id," + + $"lastTime as last_time&{sort}&limit={maxItems}"; + + var requestRoutine = GetJson>(url); + return new CoroutineWrapper>(requestRoutine, callback); + } + + public IEnumerator GetOperationStatus(Action callback, string operationHash) + { + var url = $"operations/{operationHash}/status"; + var requestRoutine = GetJson(url); + return new CoroutineWrapper(requestRoutine, callback); + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/BeaconSDK/BeaconEnums.cs.meta b/Runtime/Scripts/Tezos/API/TezosDataAPI.cs.meta similarity index 83% rename from Runtime/Scripts/BeaconSDK/BeaconEnums.cs.meta rename to Runtime/Scripts/Tezos/API/TezosDataAPI.cs.meta index 1e7f0213..5ad9a60f 100644 --- a/Runtime/Scripts/BeaconSDK/BeaconEnums.cs.meta +++ b/Runtime/Scripts/Tezos/API/TezosDataAPI.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 862e3be1e067146b9a5dd0d760892495 +guid: 206639866a4143cd8ab518859ca56e21 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Runtime/Scripts/Tezos/ITezosAPI.cs b/Runtime/Scripts/Tezos/ITezosAPI.cs new file mode 100644 index 00000000..6637b23c --- /dev/null +++ b/Runtime/Scripts/Tezos/ITezosAPI.cs @@ -0,0 +1,185 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text.Json; +using Beacon.Sdk.Beacon.Sign; +using Scripts.BeaconSDK; +using Scripts.Tezos.API; +using Scripts.Tezos.API.Models.Filters; +using Scripts.Tezos.API.Models.Tokens; +using Scripts.Tezos.Wallet; + +namespace Scripts.Tezos +{ + [Obsolete("ITezosAPI will be renamed to ITezos in future versions, please use ITezos type instead")] + public interface ITezosAPI : ITezos + { + /// + /// Exposes a MonoBehaviour class that exposes wallet events + /// + [Obsolete("BeaconMessageReceiver is deprecated, please use ITezos.IWalletProvider.WalletMessageReceiver instead")] + BeaconMessageReceiver MessageReceiver { get; } + + /// + /// Makes a call to connect with a wallet + /// Should we open wallet app on mobiles after connect? + /// + [Obsolete("ConnectWallet is deprecated, please use ITezos.IWalletProvider.Connect instead")] + void ConnectWallet(bool withRedirectToWallet = true); + + /// + /// Unpair with wallet and disconnect + /// + [Obsolete("DisconnectWallet is deprecated, please use ITezos.IWalletProvider.Disconnect instead")] + void DisconnectWallet(); + + /// + /// Returns the address of the current active wallet + /// + /// + [Obsolete("GetActiveWalletAddress is deprecated, please use ITezos.IWalletProvider.GetActiveAddress instead")] + string GetActiveWalletAddress(); + + /// + /// Sends a request to the sign a payload string + /// + /// type of payload: raw, operation or micheline + /// payload string that is going to be signed + [Obsolete("RequestSignPayload is deprecated, please use ITezos.IWalletProvider.RequestSignPayload instead")] + void RequestSignPayload(SignPayloadType signingType, string payload); + + /// + /// Verify a signed payload to check if it is valid + /// + /// type of payload: raw, operation or micheline + /// payload string that is going to be signed + [Obsolete("VerifySignedPayload is deprecated, please use ITezos.IWalletProvider.VerifySignedPayload instead")] + bool VerifySignedPayload(SignPayloadType signingType, string payload); + + /// + /// Performs an operation in the contract + /// + /// destination address of the smart contract + /// entry point used in the smart contract + /// parameters called on the entry point + /// amount of Tez sent into the contract + [Obsolete("CallContract is deprecated, please use ITezos.IWalletProvider.CallContract instead")] + void CallContract( + string contractAddress, + string entryPoint, + string input, + ulong amount = 0); + + /// + /// Fetch current wallet Tezos balance in micro tez + /// + /// callback action that runs with the ulong balance is fetched + /// + [Obsolete("ReadBalance is deprecated, please use ITezos.GetCurrentWalletBalance instead")] + IEnumerator ReadBalance(Action callback); + + /// + /// Reading data from a contract view + /// + /// destination address of the smart contract + /// entry point used in the smart contract + /// parameters called on the entry point + /// callback action that runs with the json data is fetched + /// + [Obsolete("ReadView is deprecated, please use ITezos.ITezosDataAPI.ReadView instead")] + public IEnumerator ReadView( + string contractAddress, + string entrypoint, + object input, + Action callback); + + // Gets all tokens currently owned by a given address. + [Obsolete("GetTokensForOwner is deprecated, please use ITezos.ITezosDataAPI.GetTokensForOwner instead")] + public IEnumerator GetTokensForOwner( + Action> callback, + string owner, + bool withMetadata, + long maxItems, + TokensForOwnerOrder orderBy); + + // Get the owner(s) for a token. + [Obsolete("GetOwnersForToken is deprecated, please use ITezos.ITezosDataAPI.GetOwnersForToken instead")] + public IEnumerator GetOwnersForToken( + Action> callback, + string contractAddress, + uint tokenId, + long maxItems, + OwnersForTokenOrder orderBy); + + // Gets all owners for a given token contract. + [Obsolete("GetOwnersForContract is deprecated, please use ITezos.ITezosDataAPI.GetOwnersForContract instead")] + public IEnumerator GetOwnersForContract( + Action> callback, + string contractAddress, + long maxItems, + OwnersForContractOrder orderBy); + + // Checks whether a wallet holds a token in a given contract. + [Obsolete("IsHolderOfContract is deprecated, please use ITezos.ITezosDataAPI.IsHolderOfContract instead")] + public IEnumerator IsHolderOfContract( + Action callback, + string wallet, + string contractAddress); + + // Checks whether a wallet holds a particular token. + [Obsolete("IsHolderOfToken is deprecated, please use ITezos.ITezosDataAPI.IsHolderOfToken instead")] + public IEnumerator IsHolderOfToken( + Action callback, + string wallet, + string contractAddress, + uint tokenId); + + // Gets the metadata associated with a given token. + [Obsolete("GetTokenMetadata is deprecated, please use ITezos.ITezosDataAPI.GetTokenMetadata instead")] + public IEnumerator GetTokenMetadata( + Action callback, + string contractAddress, + uint tokenId); + + // Queries token high-level collection/contract level information. + [Obsolete("GetContractMetadata is deprecated, please use ITezos.ITezosDataAPI.GetContractMetadata instead")] + public IEnumerator GetContractMetadata( + Action callback, + string contractAddress); + + // Gets all tokens for a given token contract. + [Obsolete("GetTokensForContract is deprecated, please use ITezos.ITezosDataAPI.GetTokensForContract instead")] + public IEnumerator GetTokensForContract( + Action> callback, + string contractAddress, + bool withMetadata, + long maxItems, + TokensForContractOrder orderBy); + + // Returns operation status: true if applied, false if failed, null (or HTTP 204) if doesn't exist. + [Obsolete("GetOperationStatus is deprecated, please use ITezos.ITezosDataAPI.GetOperationStatus instead")] + public IEnumerator GetOperationStatus( + Action callback, + string operationHash); + } + + public interface ITezos + { + /// + /// Tezos chain data source + /// + ITezosDataAPI API { get; } + + /// + /// Wallet features + /// + IWalletProvider Wallet { get; } + + /// + /// Fetch current wallet Tezos balance in micro tez + /// + /// callback action that runs with the ulong balance is fetched + /// + IEnumerator GetCurrentWalletBalance(Action callback); + } +} \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/ITezosAPI.cs.meta b/Runtime/Scripts/Tezos/ITezosAPI.cs.meta new file mode 100644 index 00000000..f54af229 --- /dev/null +++ b/Runtime/Scripts/Tezos/ITezosAPI.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a663444a9e45463b936b6792d7bf65b1 +timeCreated: 1684140114 \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/Tezos.cs b/Runtime/Scripts/Tezos/Tezos.cs new file mode 100644 index 00000000..a2536e74 --- /dev/null +++ b/Runtime/Scripts/Tezos/Tezos.cs @@ -0,0 +1,130 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text.Json; +using Beacon.Sdk.Beacon.Sign; +using Scripts.BeaconSDK; +using Scripts.Tezos.API; +using Scripts.Tezos.API.Models.Filters; +using Scripts.Tezos.API.Models.Tokens; +using Scripts.Tezos.Wallet; + + +namespace Scripts.Tezos +{ + /// + /// Tezos API and Wallet features + /// Exposes the main functions of the Tezos in Unity + /// + public class Tezos : ITezosAPI + { + public BeaconMessageReceiver MessageReceiver { get; } + public ITezosDataAPI API { get; } + public IWalletProvider Wallet { get; } + + public Tezos() + { + var dataProviderConfig = new TzKTProviderConfig(); + API = new TezosDataAPI(dataProviderConfig); + Wallet = new BeaconWalletProvider(); + + MessageReceiver = Wallet.MessageReceiver; + } + + public IEnumerator GetCurrentWalletBalance(Action callback) + { + var address = Wallet.GetActiveAddress(); + return API.GetTezosBalance(callback, address); + } + + public void ConnectWallet(bool withRedirectToWallet = true) + { + Wallet.Connect(withRedirectToWallet); + } + + public void DisconnectWallet() + { + Wallet.Disconnect(); + } + + public string GetActiveWalletAddress() + { + return Wallet.GetActiveAddress(); + } + + public void RequestSignPayload(SignPayloadType signingType, string payload) + { + Wallet.RequestSignPayload(signingType, payload); + } + + public bool VerifySignedPayload(SignPayloadType signingType, string payload) + { + return Wallet.VerifySignedPayload(signingType, payload); + } + + public void CallContract(string contractAddress, string entryPoint, string input, ulong amount = 0) + { + Wallet.CallContract(contractAddress, entryPoint, input, amount); + } + + public IEnumerator ReadBalance(Action callback) + { + return GetCurrentWalletBalance(callback); + } + + public IEnumerator ReadView(string contractAddress, string entrypoint, object input, + Action callback) + { + return API.ReadView(contractAddress, entrypoint, input, callback); + } + + public IEnumerator GetTokensForOwner(Action> callback, string owner, + bool withMetadata, long maxItems, TokensForOwnerOrder orderBy) + { + return API.GetTokensForOwner(callback, owner, withMetadata, maxItems, orderBy); + } + + public IEnumerator GetOwnersForToken(Action> callback, string contractAddress, + uint tokenId, long maxItems, OwnersForTokenOrder orderBy) + { + return API.GetOwnersForToken(callback, contractAddress, tokenId, maxItems, orderBy); + } + + public IEnumerator GetOwnersForContract(Action> callback, string contractAddress, + long maxItems, OwnersForContractOrder orderBy) + { + return API.GetOwnersForContract(callback, contractAddress, maxItems, orderBy); + } + + public IEnumerator IsHolderOfContract(Action callback, string wallet, string contractAddress) + { + return API.IsHolderOfContract(callback, wallet, contractAddress); + } + + public IEnumerator IsHolderOfToken(Action callback, string wallet, string contractAddress, uint tokenId) + { + return API.IsHolderOfToken(callback, wallet, contractAddress, tokenId); + } + + public IEnumerator GetTokenMetadata(Action callback, string contractAddress, uint tokenId) + { + return API.GetTokenMetadata(callback, contractAddress, tokenId); + } + + public IEnumerator GetContractMetadata(Action callback, string contractAddress) + { + return API.GetContractMetadata(callback, contractAddress); + } + + public IEnumerator GetTokensForContract(Action> callback, string contractAddress, + bool withMetadata, long maxItems, TokensForContractOrder orderBy) + { + return API.GetTokensForContract(callback, contractAddress, withMetadata, maxItems, orderBy); + } + + public IEnumerator GetOperationStatus(Action callback, string operationHash) + { + return API.GetOperationStatus(callback, operationHash); + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/TezosAPI/Tezos.cs.meta b/Runtime/Scripts/Tezos/Tezos.cs.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/Tezos.cs.meta rename to Runtime/Scripts/Tezos/Tezos.cs.meta diff --git a/Runtime/Scripts/Tezos/TezosConfig.cs b/Runtime/Scripts/Tezos/TezosConfig.cs new file mode 100644 index 00000000..d27e1bfa --- /dev/null +++ b/Runtime/Scripts/Tezos/TezosConfig.cs @@ -0,0 +1,45 @@ +using Beacon.Sdk.Beacon.Permission; + +namespace Scripts.Tezos +{ + public class TezosConfig + { + private static TezosConfig _instance; + + // Singleton instance + public static TezosConfig Instance => _instance ??= new TezosConfig(); + + public NetworkType Network { get; set; } = NetworkType.ghostnet; + + public string RpcBaseUrl => $"https://rpc.{Network}.teztnets.xyz"; + public int DefaultTimeoutSeconds => 45; + } + + public interface IDataProviderConfig + { + int TimeoutSeconds { get; } + string BaseUrl { get; } + } + + public class TzKTProviderConfig : IDataProviderConfig + { + private int? _timeoutSeconds; + + public int TimeoutSeconds + { + get => _timeoutSeconds ??= TezosConfig.Instance.DefaultTimeoutSeconds; + set => _timeoutSeconds = value; + } + + public string BaseUrl + { + get + { + var networkPart = TezosConfig.Instance.Network != NetworkType.mainnet + ? $"{TezosConfig.Instance.Network}." + : ""; + return $"https://api.{networkPart}tzkt.io/v1/"; + } + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/TezosConfig.cs.meta b/Runtime/Scripts/Tezos/TezosConfig.cs.meta new file mode 100644 index 00000000..d49828cc --- /dev/null +++ b/Runtime/Scripts/Tezos/TezosConfig.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 059aa86902c545158102df68022e0d08 +timeCreated: 1684150391 \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/TezosSingleton.cs b/Runtime/Scripts/Tezos/TezosSingleton.cs new file mode 100644 index 00000000..5959ce64 --- /dev/null +++ b/Runtime/Scripts/Tezos/TezosSingleton.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text.Json; +using Beacon.Sdk.Beacon.Permission; +using Beacon.Sdk.Beacon.Sign; +using Scripts.BeaconSDK; +using Scripts.Helpers; +using Scripts.Tezos.API; +using Scripts.Tezos.API.Models.Filters; +using Scripts.Tezos.API.Models.Tokens; +using Scripts.Tezos.Wallet; + + +namespace Scripts.Tezos +{ + public class TezosSingleton : SingletonMonoBehaviour, ITezosAPI + { + private static Tezos _tezos; + public BeaconMessageReceiver MessageReceiver => _tezos.MessageReceiver; + public ITezosDataAPI API => _tezos.API; + public IWalletProvider Wallet => _tezos.Wallet; + + protected override void Awake() + { + base.Awake(); + + Logger.CurrentLogLevel = Logger.LogLevel.Debug; + TezosConfig.Instance.Network = NetworkType.ghostnet; + _tezos = new Tezos(); + } + + public IEnumerator GetCurrentWalletBalance(Action callback) + { + return _tezos.GetCurrentWalletBalance(callback); + } + + public void ConnectWallet(bool withRedirectToWallet = true) + { + _tezos.ConnectWallet(withRedirectToWallet); + } + + public void DisconnectWallet() + { + _tezos.DisconnectWallet(); + } + + public string GetActiveWalletAddress() + { + return _tezos.GetActiveWalletAddress(); + } + + public void RequestSignPayload(SignPayloadType signingType, string payload) + { + _tezos.RequestSignPayload(signingType, payload); + } + + public bool VerifySignedPayload(SignPayloadType signingType, string payload) + { + return _tezos.VerifySignedPayload(signingType, payload); + } + + public void CallContract(string contractAddress, string entryPoint, string input, ulong amount = 0) + { + _tezos.CallContract(contractAddress, entryPoint, input, amount); + } + + public IEnumerator ReadBalance(Action callback) + { + return _tezos.ReadBalance(callback); + } + + public IEnumerator ReadView(string contractAddress, string entrypoint, object input, + Action callback) + { + return _tezos.ReadView(contractAddress, entrypoint, input, callback); + } + + public IEnumerator GetTokensForOwner(Action> callback, string owner, + bool withMetadata, long maxItems, TokensForOwnerOrder orderBy) + { + return _tezos.GetTokensForOwner(callback, owner, withMetadata, maxItems, orderBy); + } + + public IEnumerator GetOwnersForToken(Action> callback, string contractAddress, + uint tokenId, long maxItems, OwnersForTokenOrder orderBy) + { + return _tezos.GetOwnersForToken(callback, contractAddress, tokenId, maxItems, orderBy); + } + + public IEnumerator GetOwnersForContract(Action> callback, string contractAddress, + long maxItems, OwnersForContractOrder orderBy) + { + return _tezos.GetOwnersForContract(callback, contractAddress, maxItems, orderBy); + } + + public IEnumerator IsHolderOfContract(Action callback, string wallet, string contractAddress) + { + return _tezos.IsHolderOfContract(callback, wallet, contractAddress); + } + + public IEnumerator IsHolderOfToken(Action callback, string wallet, string contractAddress, uint tokenId) + { + return _tezos.IsHolderOfToken(callback, wallet, contractAddress, tokenId); + } + + public IEnumerator GetTokenMetadata(Action callback, string contractAddress, uint tokenId) + { + return _tezos.GetTokenMetadata(callback, contractAddress, tokenId); + } + + public IEnumerator GetContractMetadata(Action callback, string contractAddress) + { + return _tezos.GetContractMetadata(callback, contractAddress); + } + + public IEnumerator GetTokensForContract(Action> callback, string contractAddress, + bool withMetadata, long maxItems, TokensForContractOrder orderBy) + { + return _tezos.GetTokensForContract(callback, contractAddress, withMetadata, maxItems, orderBy); + } + + public IEnumerator GetOperationStatus(Action callback, string operationHash) + { + return _tezos.GetOperationStatus(callback, operationHash); + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/TezosAPI/TezosSingleton.cs.meta b/Runtime/Scripts/Tezos/TezosSingleton.cs.meta similarity index 100% rename from Runtime/Scripts/TezosAPI/TezosSingleton.cs.meta rename to Runtime/Scripts/Tezos/TezosSingleton.cs.meta diff --git a/Runtime/Scripts/Tezos/Wallet.meta b/Runtime/Scripts/Tezos/Wallet.meta new file mode 100644 index 00000000..75258899 --- /dev/null +++ b/Runtime/Scripts/Tezos/Wallet.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4332519b8edd4338b68435f765048cc7 +timeCreated: 1684138803 \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/Wallet/BeaconWalletProvider.cs b/Runtime/Scripts/Tezos/Wallet/BeaconWalletProvider.cs new file mode 100644 index 00000000..8d98925d --- /dev/null +++ b/Runtime/Scripts/Tezos/Wallet/BeaconWalletProvider.cs @@ -0,0 +1,121 @@ +using System.Text.Json; +using Beacon.Sdk.Beacon.Sign; +using BeaconSDK; +using Scripts.BeaconSDK; +using Scripts.Helpers; +using UnityEngine; +using Logger = Scripts.Helpers.Logger; + +namespace Scripts.Tezos.Wallet +{ + public class BeaconWalletProvider : IWalletProvider + { + public WalletMessageReceiver MessageReceiver { get; private set; } + private IBeaconConnector _beaconConnector; + + private string _handshake; + private string _pubKey; + private string _signature; + private string _transactionHash; + + public BeaconWalletProvider() + { + InitBeaconConnector(); + } + + private void InitBeaconConnector() + { + // Create a WalletMessageReceiver Game object to receive callback messages + MessageReceiver = new GameObject("UnityBeacon").AddComponent(); + + // Assign the BeaconConnector depending on the platform. +#if !UNITY_EDITOR && UNITY_WEBGL + _beaconConnector = new BeaconConnectorWebGl(); + _beaconConnector.SetNetwork(TezosConfig.Instance.Network.ToString(), TezosConfig.Instance.RpcBaseUrl); +#else + _beaconConnector = new BeaconConnectorDotNet(); + _beaconConnector.SetNetwork(TezosConfig.Instance.Network.ToString(), TezosConfig.Instance.RpcBaseUrl); + (_beaconConnector as BeaconConnectorDotNet)?.SetWalletMessageReceiver(MessageReceiver); + Connect(withRedirectToWallet: false); + + // todo: maybe call RequestTezosPermission from _beaconConnector? + MessageReceiver.PairingCompleted += _ => + { + _beaconConnector.RequestTezosPermission( + networkName: TezosConfig.Instance.Network.ToString(), + networkRPC: TezosConfig.Instance.RpcBaseUrl); + }; +#endif + MessageReceiver.ClientCreated += _ => { _beaconConnector.RequestHandshake(); }; + MessageReceiver.HandshakeReceived += handshake => { _handshake = handshake; }; + + MessageReceiver.AccountConnected += account => + { + var json = JsonSerializer.Deserialize(account); + if (!json.TryGetProperty("account", out json)) return; + + _pubKey = json.GetProperty("publicKey").GetString(); + Logger.LogDebug($"my public key is: {_pubKey}"); + }; + MessageReceiver.PayloadSigned += payload => + { + var json = JsonSerializer.Deserialize(payload); + var signature = json.GetProperty("signature").GetString(); + _signature = signature; + }; + MessageReceiver.ContractCallInjected += transaction => + { + var json = JsonSerializer.Deserialize(transaction); + var transactionHash = json.GetProperty("transactionHash").GetString(); + + CoroutineRunner.Instance.StartWrappedCoroutine( + new CoroutineWrapper(MessageReceiver.TrackTransaction(transactionHash))); + }; + } + + public void Connect(bool withRedirectToWallet) + { + _beaconConnector.ConnectAccount(); +#if UNITY_ANDROID || UNITY_IOS + if (withRedirectToWallet) + Application.OpenURL($"tezos://?type=tzip10&data={_handshake}"); +#endif + } + + public void Disconnect() + { + _beaconConnector.DisconnectAccount(); + } + + public string GetActiveAddress() + { + return _beaconConnector.GetActiveAccountAddress(); + } + + + public void RequestSignPayload(SignPayloadType signingType, string payload) + { + _beaconConnector.RequestTezosSignPayload(signingType, payload); + } + + public bool VerifySignedPayload(SignPayloadType signingType, string payload) + { + return NetezosExtensions.VerifySignature(_pubKey, signingType, payload, _signature); + } + + public void CallContract( + string contractAddress, + string entryPoint, + string input, + ulong amount = 0) + { + _beaconConnector.RequestTezosOperation( + destination: contractAddress, + entryPoint: entryPoint, + arg: input, + amount: amount, + networkName: TezosConfig.Instance.Network.ToString(), + networkRPC: TezosConfig.Instance.RpcBaseUrl); + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/Wallet/BeaconWalletProvider.cs.meta b/Runtime/Scripts/Tezos/Wallet/BeaconWalletProvider.cs.meta new file mode 100644 index 00000000..c80ccc3b --- /dev/null +++ b/Runtime/Scripts/Tezos/Wallet/BeaconWalletProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f96082af704a49ab8f4fa009f8f94506 +timeCreated: 1684138822 \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs b/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs new file mode 100644 index 00000000..baf2e92e --- /dev/null +++ b/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs @@ -0,0 +1,58 @@ +using Beacon.Sdk.Beacon.Sign; +using BeaconSDK; +using Scripts.BeaconSDK; + +namespace Scripts.Tezos.Wallet +{ + public interface IWalletProvider + { + /// + /// Exposes a MonoBehaviour class that exposes wallet events + /// + WalletMessageReceiver MessageReceiver { get; } + + /// + /// Makes a call to connect with a wallet + /// Should we open wallet app on mobiles after connect? + /// + void Connect(bool withRedirectToWallet = true); + + /// + /// Unpair with wallet and disconnect + /// + void Disconnect(); + + /// + /// Returns the address of the current active wallet + /// + /// + string GetActiveAddress(); + + /// + /// Sends a request to the sign a payload string + /// + /// type of payload: raw, operation or micheline + /// payload string that is going to be signed + void RequestSignPayload(SignPayloadType signingType, string payload); + + /// + /// Verify a signed payload to check if it is valid + /// + /// type of payload: raw, operation or micheline + /// payload string that is going to be signed + bool VerifySignedPayload(SignPayloadType signingType, string payload); + + /// + /// Performs an operation in the contract + /// + /// destination address of the smart contract + /// entry point used in the smart contract + /// parameters called on the entry point + /// amount of Tez sent into the contract + void CallContract( + string contractAddress, + string entryPoint, + string input, + ulong amount = 0); + } +} \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs.meta b/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs.meta new file mode 100644 index 00000000..dd4d917d --- /dev/null +++ b/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b44dee0a7b404c7c977d6447fa2e6fef +timeCreated: 1684138329 \ No newline at end of file diff --git a/Runtime/Scripts/TezosAPI/ITezosAPI.cs b/Runtime/Scripts/TezosAPI/ITezosAPI.cs deleted file mode 100644 index 3a72561f..00000000 --- a/Runtime/Scripts/TezosAPI/ITezosAPI.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Text.Json; -using Beacon.Sdk.Beacon.Sign; -using BeaconSDK; -using TezosAPI.Models; -using TezosAPI.Models.Tokens; - -namespace TezosAPI -{ - public interface ITezosAPI - { - /// - /// Returns the network RPC andress (e.g https://rpc.ghostnet.teztnets.xyz) - /// - /// Makes a call to connect with a wallet (e.g. Temple Wallet) - /// Works for iOS and Android builds - /// - public void ConnectWallet(); - - /// - /// Unpair with wallet and disconnect - /// - public void DisconnectWallet(); - - /// - /// Returns the address of the current active wallet - /// - /// - public string GetActiveWalletAddress(); - - /// - /// An IEnumerator for reading the account's balance - /// Can be called in a StartCoroutine() - /// - /// callback action that runs with the float balance is fetched - /// - public IEnumerator ReadBalance(Action callback); - - /// - /// An IEnumerator for reading data from a contract view - /// Can be called in a StartCoroutine() - /// - /// destination address of the smart contract - /// entry point used in the smart contract - /// parameters called on the entry point - /// callback action that runs with the json data is fetched - /// - public IEnumerator ReadView(string contractAddress, string entryPoint, object input, - Action callback); - - /// - /// Performs an operation in the contract - /// - /// destination address of the smart contract - /// entry point used in the smart contract - /// parameters called on the entry point - /// amount of Tez sent into the contract - public void CallContract(string contractAddress, string entryPoint, string input, ulong amount = 0); - - /// - /// Sends a permission request to the blockchain network - /// - public void RequestPermission(); - - /// - /// Sends a request to the sign a payload string - /// - /// payload string that is going to be signed - public void RequestSignPayload(SignPayloadType signingType, string payload); - - /// - /// Verify a signed payload to check if it is valid - /// - /// payload string that is going to be signed - public bool VerifySignedPayload(SignPayloadType signingType, string payload); - - /// - /// Exposes a Monobehaviour class that exposes wallet events - /// - public BeaconMessageReceiver MessageReceiver { get; } - - // Gets all tokens currently owned by a given address. - public IEnumerator GetTokensForOwner( - Action> cb, - string owner, - bool withMetadata, - long maxItems, - TokensForOwnerOrder orderBy - ); - } -} \ No newline at end of file diff --git a/Runtime/Scripts/TezosAPI/Tezos.cs b/Runtime/Scripts/TezosAPI/Tezos.cs deleted file mode 100644 index 3fb4d802..00000000 --- a/Runtime/Scripts/TezosAPI/Tezos.cs +++ /dev/null @@ -1,173 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Text.Json; -using Beacon.Sdk.Beacon.Sign; -using BeaconSDK; -using TezosAPI.Models; -using TezosAPI.Models.Tokens; -using UnityEngine; - -namespace TezosAPI -{ - /// - /// Implementation of the ITezosAPI. - /// Exposes the main functions of the Tezos API in Unity - /// - public class Tezos : HttpClient, ITezosAPI - { - private string _networkName; - private string _indexerNode; - private IBeaconConnector _beaconConnector; - - private string _handshake; - private string _pubKey; - private string _signature; - private string _transactionHash; - - public string NetworkRPC { get; private set; } - - public BeaconMessageReceiver MessageReceiver { get; private set; } - - public Tezos( - string networkName = "ghostnet", - string networkRPC = "https://rpc.ghostnet.teztnets.xyz", - string indexerNode = "https://api.ghostnet.tzkt.io/v1/operations/{0}/status", - string tzKTApi = "https://api.tzkt.io/v1/") : base(tzKTApi) - { - _networkName = networkName; - _indexerNode = indexerNode; - NetworkRPC = networkRPC; - - InitBeaconConnector(); - } - - private void InitBeaconConnector() - { - // Create a BeaconMessageReceiver Game object to receive callback messages - MessageReceiver = new GameObject("UnityBeacon").AddComponent(); - - // Assign the BeaconConnector depending on the platform. -#if UNITY_WEBGL && !UNITY_EDITOR - _beaconConnector = new BeaconConnectorWebGl(); - _beaconConnector.SetNetwork(_networkName, NetworkRPC); -#elif (UNITY_ANDROID && !UNITY_EDITOR) || (UNITY_IOS && !UNITY_EDITOR) || UNITY_STANDALONE || UNITY_EDITOR - _beaconConnector = new BeaconConnectorDotNet(); - _beaconConnector.SetNetwork(_networkName, NetworkRPC); - (_beaconConnector as BeaconConnectorDotNet)?.SetBeaconMessageReceiver(MessageReceiver); - _beaconConnector.ConnectAccount(); - MessageReceiver.PairingCompleted += _ => RequestPermission(); -#else - _beaconConnector = new BeaconConnectorNull(); -#endif - - MessageReceiver.ClientCreated += _ => { _beaconConnector.RequestHandshake(); }; - MessageReceiver.HandshakeReceived += handshake => { _handshake = handshake; }; - - MessageReceiver.AccountConnected += account => - { - var json = JsonSerializer.Deserialize(account); - if (json.TryGetProperty("account", out json)) - { - _pubKey = json.GetProperty("publicKey").GetString(); - - Debug.Log("my pubkey: " + _pubKey); - } - }; - MessageReceiver.PayloadSigned += (payload) => - { - var json = JsonSerializer.Deserialize(payload); - var signature = json.GetProperty("signature").GetString(); - _signature = signature; - }; - MessageReceiver.ContractCallInjected += transaction => - { - var json = JsonSerializer.Deserialize(transaction); - var transactionHash = json.GetProperty("transactionHash").GetString(); - MessageReceiver.StartCoroutine(new CoroutineWrapper(MessageReceiver.ContractCallInjection(_indexerNode, transactionHash))); - }; - } - - public void ConnectWallet() - { -#if UNITY_WEBGL - _beaconConnector.ConnectAccount(); -#elif UNITY_ANDROID || UNITY_IOS - Application.OpenURL($"tezos://?type=tzip10&data={_handshake}"); -#endif - } - - public void DisconnectWallet() - { - _beaconConnector.DisconnectAccount(); - } - - public string GetActiveWalletAddress() - { - return _beaconConnector.GetActiveAccountAddress(); - } - - public IEnumerator ReadBalance(Action callback) - { - var address = _beaconConnector.GetActiveAccountAddress(); - return NetezosExtensions.ReadTZBalance(NetworkRPC, address, callback); - } - - public IEnumerator ReadView(string contractAddress, string entryPoint, object input, - Action callback) - { - return NetezosExtensions.ReadView(NetworkRPC, contractAddress, entryPoint, input, callback); - } - - public void CallContract(string contractAddress, string entryPoint, string input, ulong amount = 0) - { - _beaconConnector.RequestTezosOperation(contractAddress, entryPoint, input, - amount, _networkName, NetworkRPC); - } - - public void RequestPermission() - { - _beaconConnector.RequestTezosPermission(_networkName, NetworkRPC); - } - - public void RequestSignPayload(SignPayloadType signingType, string payload) - { - _beaconConnector.RequestTezosSignPayload(signingType, payload); - } - - public bool VerifySignedPayload(SignPayloadType signingType, string payload) - { - var key = _pubKey; - var signature = _signature; - return NetezosExtensions.VerifySignature(key, signingType, payload, signature); - } - - public IEnumerator GetTokensForOwner( - Action> cb, - string owner, - bool withMetadata, - long maxItems, - TokensForOwnerOrder orderBy - ) - { - var sort = orderBy switch - { - TokensForOwnerOrder.Default byDefault => $"sort.asc=id&offset.cr={byDefault.lastId}", - TokensForOwnerOrder.ByLastTimeAsc byLastTimeAsc => $"sort.asc=lastLevel&offset.pg={byLastTimeAsc.page}", - TokensForOwnerOrder.ByLastTimeDesc ByLastTimeDesc => $"sort.desc=lastLevel&offset.pg={ByLastTimeDesc.page}", - _ => string.Empty - }; - - var url = "tokens/balances?" + - $"account={owner}&" + - "balance.ne=0&" + - "select=account.address as owner,balance,token.contract as token_contract," + - "token.tokenId as token_id,token.metadata as token_metadata,lastTime as last_time,id&" + - $"{sort}&" + - $"limit={maxItems}"; - - var requestRoutine = GetJson>(url); - return new CoroutineWrapper>(requestRoutine, cb); - } - } -} \ No newline at end of file diff --git a/Runtime/Scripts/TezosAPI/TezosSingleton.cs b/Runtime/Scripts/TezosAPI/TezosSingleton.cs deleted file mode 100644 index dcc40d8c..00000000 --- a/Runtime/Scripts/TezosAPI/TezosSingleton.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Text.Json; -using Beacon.Sdk.Beacon.Sign; -using BeaconSDK; -using Helpers; -using TezosAPI; -using TezosAPI.Models; -using TezosAPI.Models.Tokens; - - -public class TezosSingleton : SingletonMonoBehaviour, ITezosAPI -{ - private static Tezos _tezos; - - public BeaconMessageReceiver MessageReceiver => _tezos.MessageReceiver; - - public string NetworkRPC => _tezos.NetworkRPC; - - protected override void Awake() - { - base.Awake(); - - _tezos = new Tezos(); - Logger.CurrentLogLevel = Logger.LogLevel.Info; - } - - public void ConnectWallet() - { - _tezos.ConnectWallet(); - } - - public void DisconnectWallet() - { - _tezos.DisconnectWallet(); - } - - public string GetActiveWalletAddress() - { - return _tezos.GetActiveWalletAddress(); - } - - public IEnumerator ReadBalance(Action callback) - { - return _tezos.ReadBalance(callback); - } - - public IEnumerator ReadView( - string contractAddress, - string entryPoint, - object input, - Action callback - ) - { - return _tezos.ReadView(contractAddress, entryPoint, input, callback); - } - - public void CallContract( - string contractAddress, - string entryPoint, - string input, - ulong amount - ) - { - _tezos.CallContract(contractAddress, entryPoint, input, amount); - } - - public void RequestPermission() - { - _tezos.RequestPermission(); - } - - public void RequestSignPayload(SignPayloadType signingType, string payload) - { - _tezos.RequestSignPayload(signingType, payload); - } - - public bool VerifySignedPayload(SignPayloadType signingType, string payload) - { - return _tezos.VerifySignedPayload(signingType, payload); - } - - public IEnumerator GetTokensForOwner( - Action> cb, - string owner, - bool withMetadata, - long maxItems, - TokensForOwnerOrder orderBy - ) => _tezos.GetTokensForOwner(cb, owner, withMetadata, maxItems, orderBy); -} \ No newline at end of file diff --git a/Runtime/Scripts/View.meta b/Runtime/Scripts/View.meta deleted file mode 100644 index b024a261..00000000 --- a/Runtime/Scripts/View.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 3a0cfb914cf842b4a5e0883d90f1d4ea -timeCreated: 1681227854 \ No newline at end of file diff --git a/Runtime/Scripts/View/QRCodeView.cs.meta b/Runtime/Scripts/View/QRCodeView.cs.meta deleted file mode 100644 index 6cfb3474..00000000 --- a/Runtime/Scripts/View/QRCodeView.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: fbe7a6d01d6f4562a0f332d1606f574d -timeCreated: 1681227854 \ No newline at end of file diff --git a/Samples~/Scripts/View.meta b/Runtime/View.meta similarity index 77% rename from Samples~/Scripts/View.meta rename to Runtime/View.meta index 5608d5c5..93adf872 100644 --- a/Samples~/Scripts/View.meta +++ b/Runtime/View.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2b1c850c4f91d4aecbd7e062f1f7c5c2 +guid: 7fa62ac268ad7426ca7f217747e447fb folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Runtime/Scripts/View/AuthenticationManager.cs b/Runtime/View/AuthenticationManager.cs similarity index 62% rename from Runtime/Scripts/View/AuthenticationManager.cs rename to Runtime/View/AuthenticationManager.cs index 8905fcbc..c5010c24 100644 --- a/Runtime/Scripts/View/AuthenticationManager.cs +++ b/Runtime/View/AuthenticationManager.cs @@ -1,19 +1,17 @@ -using TezosAPI; +using Scripts.Tezos; using UnityEngine; public class AuthenticationManager : MonoBehaviour { - private ITezosAPI _tezos; - [SerializeField] - private QRCodeView qrCodeView; - [SerializeField] - private GameObject logoutPanel; - [SerializeField] - private GameObject deepLinkButton; + private ITezos _tezos; + [SerializeField] private QRCodeView qrCodeView; + [SerializeField] private GameObject contentPanel; + [SerializeField] private GameObject deepLinkButton; + [SerializeField] private GameObject logoutButton; [SerializeField] private GameObject qrCodePanel; private bool _isMobile; - + void Start() { #if (UNITY_IOS || UNITY_ANDROID) @@ -23,9 +21,9 @@ void Start() #endif _tezos = TezosSingleton.Instance; - _tezos.MessageReceiver.HandshakeReceived += OnHandshakeReceived; - _tezos.MessageReceiver.AccountConnected += OnAccountConnected; - _tezos.MessageReceiver.AccountDisconnected += OnAccountDisconnected; + _tezos.Wallet.MessageReceiver.HandshakeReceived += OnHandshakeReceived; + _tezos.Wallet.MessageReceiver.AccountConnected += OnAccountConnected; + _tezos.Wallet.MessageReceiver.AccountDisconnected += OnAccountDisconnected; } void OnHandshakeReceived(string handshake) @@ -48,12 +46,12 @@ void OnAccountDisconnected(string result) public void DisconnectWallet() { EnableUI(isAuthenticated: false); - _tezos.DisconnectWallet(); + _tezos.Wallet.Disconnect(); } public void ConnectByDeeplink() { - _tezos.ConnectWallet(); + _tezos.Wallet.Connect(); } void EnableUI(bool isAuthenticated) @@ -61,7 +59,7 @@ void EnableUI(bool isAuthenticated) if (isAuthenticated) { deepLinkButton.SetActive(false); - qrCodePanel.SetActive(false); + qrCodePanel.SetActive(false); } else { @@ -74,9 +72,12 @@ void EnableUI(bool isAuthenticated) { qrCodePanel.SetActive(true); deepLinkButton.SetActive(false); - } + } } - logoutPanel.SetActive(isAuthenticated); + logoutButton.SetActive(isAuthenticated); + + if (contentPanel == null) return; + contentPanel.SetActive(isAuthenticated); } } \ No newline at end of file diff --git a/Runtime/Scripts/View/AuthenticationManager.cs.meta b/Runtime/View/AuthenticationManager.cs.meta similarity index 83% rename from Runtime/Scripts/View/AuthenticationManager.cs.meta rename to Runtime/View/AuthenticationManager.cs.meta index 0c76e440..e8c4997f 100644 --- a/Runtime/Scripts/View/AuthenticationManager.cs.meta +++ b/Runtime/View/AuthenticationManager.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d6a58a1534a9b4b7c9c4cecd747ae29b +guid: a36293c38484941be89b83a6e75aadaa MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Runtime/Scripts/View/QRCodeView.cs b/Runtime/View/QRCodeView.cs similarity index 99% rename from Runtime/Scripts/View/QRCodeView.cs rename to Runtime/View/QRCodeView.cs index fa9b88d0..e9cbbbfc 100644 --- a/Runtime/Scripts/View/QRCodeView.cs +++ b/Runtime/View/QRCodeView.cs @@ -57,4 +57,4 @@ private Color32[] Encode(string text, int width, int height) }; return writer.Write(text); } -} +} \ No newline at end of file diff --git a/Runtime/Scripts/BeaconSDK/BeaconConnectorNull.cs.meta b/Runtime/View/QRCodeView.cs.meta similarity index 83% rename from Runtime/Scripts/BeaconSDK/BeaconConnectorNull.cs.meta rename to Runtime/View/QRCodeView.cs.meta index 300231aa..492b97b2 100644 --- a/Runtime/Scripts/BeaconSDK/BeaconConnectorNull.cs.meta +++ b/Runtime/View/QRCodeView.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e900d35aa0b7e4e2baa007e415dcd626 +guid: a6b34a11c0bbb4c9e9c3c933d831d3e9 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Samples~/Prefabs/DemoExample/RegisterPanel.prefab b/Samples~/Prefabs/DemoExample/RegisterPanel.prefab index fc170c22..42c07ecf 100644 --- a/Samples~/Prefabs/DemoExample/RegisterPanel.prefab +++ b/Samples~/Prefabs/DemoExample/RegisterPanel.prefab @@ -1041,7 +1041,7 @@ MonoBehaviour: m_fontWeight: 400 m_enableAutoSizing: 1 m_fontSizeMin: 0 - m_fontSizeMax: 9001 + m_fontSizeMax: 24 m_fontStyle: 17 m_HorizontalAlignment: 2 m_VerticalAlignment: 512 @@ -1115,7 +1115,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 87.525, y: -15} + m_AnchoredPosition: {x: 87.5249, y: -15} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &2770193349559581556 @@ -1459,7 +1459,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &4754352999720981482 RectTransform: m_ObjectHideFlags: 0 @@ -2391,7 +2391,7 @@ MonoBehaviour: m_EditorClassIdentifier: _deepLinkPair: {fileID: 7580025468252638738} _qrImage: {fileID: 845853786785863931} - _qrCodeView: {fileID: 2656511422170555018} + _qrCodeView: {fileID: 607318709} _uiManager: {fileID: 0} --- !u!1 &6977438149725271032 GameObject: @@ -2580,7 +2580,7 @@ GameObject: - component: {fileID: 6895719909652766837} - component: {fileID: 1679391660344038116} - component: {fileID: 845853786785863931} - - component: {fileID: 2656511422170555018} + - component: {fileID: 607318709} m_Layer: 5 m_Name: QRCode m_TagString: Untagged @@ -2643,7 +2643,7 @@ MonoBehaviour: y: 0 width: 1 height: 1 ---- !u!114 &2656511422170555018 +--- !u!114 &607318709 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2652,7 +2652,7 @@ MonoBehaviour: m_GameObject: {fileID: 7056710031957289478} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fbe7a6d01d6f4562a0f332d1606f574d, type: 3} + m_Script: {fileID: 11500000, guid: a6b34a11c0bbb4c9e9c3c933d831d3e9, type: 3} m_Name: m_EditorClassIdentifier: _rawImage: {fileID: 845853786785863931} diff --git a/Samples~/Prefabs/NftApiSample.meta b/Samples~/Prefabs/NftApiSample.meta new file mode 100644 index 00000000..9ba60e07 --- /dev/null +++ b/Samples~/Prefabs/NftApiSample.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97e8feb4aeb214bd9b7e74b3cd22ec90 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Prefabs/NftApiSample/ContentPanel.prefab b/Samples~/Prefabs/NftApiSample/ContentPanel.prefab new file mode 100644 index 00000000..3757c878 --- /dev/null +++ b/Samples~/Prefabs/NftApiSample/ContentPanel.prefab @@ -0,0 +1,2294 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4077076589271214675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4077076589271214674} + - component: {fileID: 4077076589271214676} + - component: {fileID: 4077076589271214677} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4077076589271214674 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076589271214675} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040870240322} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4077076589271214676 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076589271214675} + m_CullTransparentMesh: 1 +--- !u!114 &4077076589271214677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076589271214675} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enter token ID.. +--- !u!1 &4077076589557884624 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4077076589557884627} + - component: {fileID: 4077076589557884629} + - component: {fileID: 4077076589557884626} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4077076589557884627 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076589557884624} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856041185129615} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4077076589557884629 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076589557884624} + m_CullTransparentMesh: 1 +--- !u!114 &4077076589557884626 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076589557884624} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Check NFTs by address + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &4077076589854147741 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4077076589854147740} + - component: {fileID: 4077076589854147742} + - component: {fileID: 4077076589854147743} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4077076589854147740 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076589854147741} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040870240322} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4077076589854147742 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076589854147741} + m_CullTransparentMesh: 1 +--- !u!114 &4077076589854147743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076589854147741} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!1 &4077076590153169528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4077076590153169531} + - component: {fileID: 4077076590153169533} + - component: {fileID: 4077076590153169530} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4077076590153169531 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076590153169528} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040691971415} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4077076590153169533 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076590153169528} + m_CullTransparentMesh: 1 +--- !u!114 &4077076590153169530 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076590153169528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enter contract address... +--- !u!1 &4077076590919257592 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4077076590919257595} + - component: {fileID: 4077076590919257597} + - component: {fileID: 4077076590919257594} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4077076590919257595 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076590919257592} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040691971415} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4077076590919257597 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076590919257592} + m_CullTransparentMesh: 1 +--- !u!114 &4077076590919257594 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076590919257592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!1 &4077076591171989084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4077076591171989087} + - component: {fileID: 4077076591171989073} + - component: {fileID: 4077076591171989086} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4077076591171989087 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076591171989084} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856039737428412} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4077076591171989073 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076591171989084} + m_CullTransparentMesh: 1 +--- !u!114 &4077076591171989086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4077076591171989084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Check address by contract + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &9024856039242944634 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856039242944635} + - component: {fileID: 9024856039242944633} + - component: {fileID: 9024856039242944632} + m_Layer: 5 + m_Name: ResultText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856039242944635 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039242944634} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040320558562} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -764.8894} + m_SizeDelta: {x: 550, y: 250} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856039242944633 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039242944634} + m_CullTransparentMesh: 1 +--- !u!114 &9024856039242944632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039242944634} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.4433962, g: 0.4392113, b: 0.24470451, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!1 &9024856039386624976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856039386624977} + - component: {fileID: 9024856039386624983} + - component: {fileID: 9024856039386624982} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856039386624977 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039386624976} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040358384762} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856039386624983 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039386624976} + m_CullTransparentMesh: 1 +--- !u!114 &9024856039386624982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039386624976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 2 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Enter tz address... +--- !u!1 &9024856039404446697 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856039404446702} + - component: {fileID: 9024856039404446700} + - component: {fileID: 9024856039404446703} + m_Layer: 5 + m_Name: NoteText (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856039404446702 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039404446697} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040320558562} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -604.8894} + m_SizeDelta: {x: 550, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856039404446700 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039404446697} + m_CullTransparentMesh: 1 +--- !u!114 &9024856039404446703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039404446697} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'NOTE: To check the currently connected address, leave the address input + field blank.' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &9024856039737428415 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856039737428412} + - component: {fileID: 9024856039737428403} + - component: {fileID: 9024856039737428402} + - component: {fileID: 9024856039737428413} + m_Layer: 5 + m_Name: CheckAddressByContractButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856039737428412 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039737428415} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4077076591171989087} + m_Father: {fileID: 9024856040320558562} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -435.44437} + m_SizeDelta: {x: 180, y: 45.778} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856039737428403 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039737428415} + m_CullTransparentMesh: 1 +--- !u!114 &9024856039737428402 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039737428415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.3019608, g: 0.20784314, b: 0.20784314, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9024856039737428413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856039737428415} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9024856039737428402} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: DataManager, Assembly-CSharp + m_MethodName: IsHolderOfContract + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &9024856040320558573 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856040320558562} + - component: {fileID: 9024856040320558561} + - component: {fileID: 9024856040320558560} + - component: {fileID: 9024856040320558563} + m_Layer: 5 + m_Name: WelcomePanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856040320558562 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040320558573} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9024856040406173993} + - {fileID: 9024856040358384762} + - {fileID: 9024856040691971415} + - {fileID: 9024856040870240322} + - {fileID: 9024856040514623199} + - {fileID: 9024856039737428412} + - {fileID: 9024856041185129615} + - {fileID: 9024856039404446702} + - {fileID: 9024856039242944635} + m_Father: {fileID: 9024856041176317731} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: -0.000061035156, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0} +--- !u!222 &9024856040320558561 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040320558573} + m_CullTransparentMesh: 1 +--- !u!114 &9024856040320558560 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040320558573} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9024856040320558563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040320558573} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &9024856040358384773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856040358384762} + - component: {fileID: 9024856040358384761} + - component: {fileID: 9024856040358384760} + - component: {fileID: 9024856040358384763} + m_Layer: 5 + m_Name: AddressInputField (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856040358384762 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040358384773} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9024856039386624977} + - {fileID: 9024856041035289720} + m_Father: {fileID: 9024856040320558562} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -251.77737} + m_SizeDelta: {x: 180, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856040358384761 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040358384773} + m_CullTransparentMesh: 1 +--- !u!114 &9024856040358384760 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040358384773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9024856040358384763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040358384773} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9024856040358384760} + m_TextComponent: {fileID: 9024856041035289721} + m_Placeholder: {fileID: 9024856039386624982} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnDidEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!1 &9024856040406173992 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856040406173993} + - component: {fileID: 9024856040406173999} + - component: {fileID: 9024856040406173998} + m_Layer: 5 + m_Name: WelcomeText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856040406173993 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040406173992} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040320558562} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -201.77737} + m_SizeDelta: {x: 259.2553, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856040406173999 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040406173992} + m_CullTransparentMesh: 1 +--- !u!114 &9024856040406173998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040406173992} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: You are authenticated! + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &9024856040514623198 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856040514623199} + - component: {fileID: 9024856040514623186} + - component: {fileID: 9024856040514623197} + - component: {fileID: 9024856040514623196} + m_Layer: 5 + m_Name: CheckAddressByTokenButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856040514623199 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040514623198} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9024856040711812008} + m_Father: {fileID: 9024856040320558562} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -379.66638} + m_SizeDelta: {x: 180, y: 45.778} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856040514623186 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040514623198} + m_CullTransparentMesh: 1 +--- !u!114 &9024856040514623197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040514623198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.3019608, g: 0.20784314, b: 0.20784314, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9024856040514623196 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040514623198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9024856040514623197} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: DataManager, Assembly-CSharp + m_MethodName: IsHolderOfToken + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &9024856040691971414 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856040691971415} + - component: {fileID: 9024856040691971402} + - component: {fileID: 9024856040691971413} + - component: {fileID: 9024856040691971412} + m_Layer: 5 + m_Name: ContractInputField (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856040691971415 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040691971414} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4077076590153169531} + - {fileID: 4077076590919257595} + m_Father: {fileID: 9024856040320558562} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -291.77737} + m_SizeDelta: {x: 180, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856040691971402 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040691971414} + m_CullTransparentMesh: 1 +--- !u!114 &9024856040691971413 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040691971414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9024856040691971412 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040691971414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9024856040691971413} + m_TextComponent: {fileID: 4077076590919257594} + m_Placeholder: {fileID: 4077076590153169530} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnDidEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!1 &9024856040711812011 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856040711812008} + - component: {fileID: 9024856040711812014} + - component: {fileID: 9024856040711812009} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856040711812008 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040711812011} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040514623199} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856040711812014 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040711812011} + m_CullTransparentMesh: 1 +--- !u!114 &9024856040711812009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040711812011} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Check address by token + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &9024856040870240333 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856040870240322} + - component: {fileID: 9024856040870240321} + - component: {fileID: 9024856040870240320} + - component: {fileID: 9024856040870240323} + m_Layer: 5 + m_Name: TokenIdInputField (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856040870240322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040870240333} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4077076589271214674} + - {fileID: 4077076589854147740} + m_Father: {fileID: 9024856040320558562} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -331.77737} + m_SizeDelta: {x: 180, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856040870240321 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040870240333} + m_CullTransparentMesh: 1 +--- !u!114 &9024856040870240320 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040870240333} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9024856040870240323 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856040870240333} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9024856040870240320} + m_TextComponent: {fileID: 4077076589854147743} + m_Placeholder: {fileID: 4077076589271214677} + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_CharacterValidation: 0 + m_CharacterLimit: 0 + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnDidEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 +--- !u!1 &9024856041035289723 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856041035289720} + - component: {fileID: 9024856041035289726} + - component: {fileID: 9024856041035289721} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856041035289720 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041035289723} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 9024856040358384762} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856041035289726 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041035289723} + m_CullTransparentMesh: 1 +--- !u!114 &9024856041035289721 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041035289723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!1 &9024856041176317730 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856041176317731} + - component: {fileID: 9024856041176317734} + - component: {fileID: 9024856041176317729} + - component: {fileID: 9024856041176317728} + m_Layer: 5 + m_Name: ContentPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &9024856041176317731 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041176317730} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9024856040320558562} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &9024856041176317734 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041176317730} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &9024856041176317729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041176317730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &9024856041176317728 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041176317730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &9024856041185129614 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9024856041185129615} + - component: {fileID: 9024856041185129602} + - component: {fileID: 9024856041185129613} + - component: {fileID: 9024856041185129612} + m_Layer: 5 + m_Name: CheckNftsButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9024856041185129615 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041185129614} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4077076589557884627} + m_Father: {fileID: 9024856040320558562} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -491.22238} + m_SizeDelta: {x: 180, y: 45.778} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9024856041185129602 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041185129614} + m_CullTransparentMesh: 1 +--- !u!114 &9024856041185129613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041185129614} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.3019608, g: 0.20784314, b: 0.20784314, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9024856041185129612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9024856041185129614} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9024856041185129613} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 0} + m_TargetAssemblyTypeName: DataManager, Assembly-CSharp + m_MethodName: GetTokensForOwners + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 diff --git a/Samples~/Prefabs/NftApiSample/ContentPanel.prefab.meta b/Samples~/Prefabs/NftApiSample/ContentPanel.prefab.meta new file mode 100644 index 00000000..67838c69 --- /dev/null +++ b/Samples~/Prefabs/NftApiSample/ContentPanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3a2c720a6b72445218600a2c92762141 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Scenes/Demo Example.unity b/Samples~/Scenes/Demo Example.unity index 219f527f..3e9de38e 100644 --- a/Samples~/Scenes/Demo Example.unity +++ b/Samples~/Scenes/Demo Example.unity @@ -3252,6 +3252,10 @@ PrefabInstance: propertyPath: m_Name value: SideMenu objectReference: {fileID: 0} + - target: {fileID: 3028198139942718008, guid: 7446bf7afc73cea489f7f2f5aa2b5b3d, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 3028198139942718009, guid: 7446bf7afc73cea489f7f2f5aa2b5b3d, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -3448,114 +3452,14 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1335878711} m_Modifications: - - target: {fileID: 253841017591123972, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 87.5249 - objectReference: {fileID: 0} - - target: {fileID: 727045648677320410, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 727045648677320410, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 727045648677320410, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 727045648677320410, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 789172192540301288, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 789172192540301288, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 789172192540301288, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 789172192540301288, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565323042919880717, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565323042919880717, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565323042919880717, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1565323042919880717, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1766519055491929860, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_fontSize - value: 21.7 - objectReference: {fileID: 0} - - target: {fileID: 1766519055491929860, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_fontSizeMax - value: 24 - objectReference: {fileID: 0} - - target: {fileID: 3051164178405136696, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3051164178405136696, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3051164178405136696, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3051164178405136696, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - target: {fileID: 3065014606143386912, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} propertyPath: _uiManager value: objectReference: {fileID: 519783462} - - target: {fileID: 3717476506824072388, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3717476506824072388, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3717476506824072388, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3717476506824072388, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - target: {fileID: 4181128901920293601, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: objectReference: {fileID: 519783462} - - target: {fileID: 4181128901920293601, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: GetCoins - objectReference: {fileID: 0} - - target: {fileID: 4445252502896180126, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - target: {fileID: 6818536486842882832, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} propertyPath: m_Pivot.x value: 0.5 @@ -3644,38 +3548,6 @@ PrefabInstance: propertyPath: m_Name value: RegisterPanel objectReference: {fileID: 0} - - target: {fileID: 6890522609374684482, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6890522609374684482, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6890522609374684482, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6890522609374684482, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6895719909652766837, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6895719909652766837, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6895719909652766837, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6895719909652766837, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: c0599b6179aad1b42a6c2d5c8371a04f, type: 3} --- !u!1001 &8987413948094361415 @@ -3849,6 +3721,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 725472571304535529, guid: e498629a470d8da42a969e517cfe84ba, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 851301467594664582, guid: e498629a470d8da42a969e517cfe84ba, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -4577,6 +4453,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 5843950661003434541, guid: e498629a470d8da42a969e517cfe84ba, type: 3} + propertyPath: m_AnchoredPosition.y + value: -0.0000076293945 + objectReference: {fileID: 0} - target: {fileID: 5871531901936469877, guid: e498629a470d8da42a969e517cfe84ba, type: 3} propertyPath: m_IsActive value: 0 @@ -4653,6 +4533,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6636858857931946585, guid: e498629a470d8da42a969e517cfe84ba, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 6725411246497768125, guid: e498629a470d8da42a969e517cfe84ba, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -5081,6 +4965,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 8987413948596207189, guid: e498629a470d8da42a969e517cfe84ba, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8993910349109592026, guid: e498629a470d8da42a969e517cfe84ba, type: 3} propertyPath: m_AnchorMax.x value: 0.5 diff --git a/Samples~/Scenes/NftApiSample.unity b/Samples~/Scenes/NftApiSample.unity new file mode 100644 index 00000000..88e433ed --- /dev/null +++ b/Samples~/Scenes/NftApiSample.unity @@ -0,0 +1,671 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.12731704, g: 0.1341472, b: 0.121078566, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &540557279 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 540557282} + - component: {fileID: 540557281} + - component: {fileID: 540557280} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &540557280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 540557279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &540557281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 540557279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &540557282 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 540557279} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &543835500 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4616586832780915041, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9024856039737428413, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 558419782} + - target: {fileID: 9024856039737428413, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: IsHolderOfContract + objectReference: {fileID: 0} + - target: {fileID: 9024856040514623196, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 558419782} + - target: {fileID: 9024856040514623196, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: IsHolderOfToken + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317730, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_Name + value: ContentPanel + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041176317731, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9024856041185129612, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 558419782} + - target: {fileID: 9024856041185129612, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: GetTokensForOwners + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3a2c720a6b72445218600a2c92762141, type: 3} +--- !u!1 &543835501 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9024856041176317730, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + m_PrefabInstance: {fileID: 543835500} + m_PrefabAsset: {fileID: 0} +--- !u!1 &558419778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 558419781} + - component: {fileID: 558419783} + - component: {fileID: 558419782} + m_Layer: 0 + m_Name: Global + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &558419781 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 558419778} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 343.3753, y: 504.55154, z: -14.028383} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &558419782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 558419778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 843fddde74de46b49b27eb4092db3382, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &558419783 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 558419778} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e0a291b0996f4ec2be82ad443dcfc9c1, type: 3} + m_Name: + m_EditorClassIdentifier: + dataManager: {fileID: 558419782} + addressInputField: {fileID: 2084730419} + contractInputField: {fileID: 879216395} + tokenIdInputField: {fileID: 1681091388} + resultText: {fileID: 2059424706} +--- !u!114 &879216395 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 9024856040691971412, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + m_PrefabInstance: {fileID: 543835500} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1047512437 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3121589126738375249, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_Name + value: Authentication + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_Pivot.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3121589126738375253, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3713326636857166855, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} + propertyPath: contentPanel + value: + objectReference: {fileID: 543835501} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 95be21708b9eb431e99da6aa7b6d7c60, type: 3} +--- !u!114 &1681091388 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 9024856040870240323, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + m_PrefabInstance: {fileID: 543835500} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1845955994 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1845955997} + - component: {fileID: 1845955996} + - component: {fileID: 1845955995} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1845955995 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845955994} + m_Enabled: 1 +--- !u!20 &1845955996 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845955994} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1845955997 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1845955994} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2059424706 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 9024856039242944632, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + m_PrefabInstance: {fileID: 543835500} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2084730419 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 9024856040358384763, guid: 3a2c720a6b72445218600a2c92762141, type: 3} + m_PrefabInstance: {fileID: 543835500} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &2105168017 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3634858576511064492, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4616586832780915041, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} + propertyPath: m_Name + value: MainThreadExecutor + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ebe42ae2197554a718feda9bdc452a79, type: 3} diff --git a/Samples~/Scenes/NftApiSample.unity.meta b/Samples~/Scenes/NftApiSample.unity.meta new file mode 100644 index 00000000..baa2696e --- /dev/null +++ b/Samples~/Scenes/NftApiSample.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0a4b2e27cd56f4e5db8a97862b326172 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/Scripts/DemoExample/CopyToClipboard.cs b/Samples~/Scripts/DemoExample/CopyToClipboard.cs index f110dc3f..e4c4e87b 100644 --- a/Samples~/Scripts/DemoExample/CopyToClipboard.cs +++ b/Samples~/Scripts/DemoExample/CopyToClipboard.cs @@ -40,4 +40,4 @@ IEnumerator OnTextCopied() text.text = origin; _blockCopy = false; } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/Core/ExampleManager.cs b/Samples~/Scripts/DemoExample/Core/ExampleManager.cs index 9295202b..175efcde 100644 --- a/Samples~/Scripts/DemoExample/Core/ExampleManager.cs +++ b/Samples~/Scripts/DemoExample/Core/ExampleManager.cs @@ -1,72 +1,84 @@ using System; using System.Collections.Generic; using Beacon.Sdk.Beacon.Sign; -using BeaconSDK; using Netezos.Encoding; +using Scripts.BeaconSDK; +using Scripts.Helpers; +using Scripts.Tezos; using UnityEngine; -using TezosAPI; -using Logger = Helpers.Logger; +using Logger = Scripts.Helpers.Logger; public class ExampleManager : IExampleManager { private string _networkRPC; - private const string contractAddress = "KT1WguzxyLmuKbJhz3jNuoRzzaUCncfp6PFE";//"KT1DMWAeaP6wxKWPFDLGDkB7xUg563852AjD"; + + private const string + contractAddress = "KT1WguzxyLmuKbJhz3jNuoRzzaUCncfp6PFE"; //"KT1DMWAeaP6wxKWPFDLGDkB7xUg563852AjD"; + private const int softCurrencyID = 0; private ITezosAPI _tezos; - private User _currentUser; - public User CurrentUser => _currentUser; + public User CurrentUser { get; private set; } public ExampleManager() { - _currentUser = null; + CurrentUser = null; } public void Init(Action callback = null) { _tezos = TezosSingleton.Instance; - _networkRPC = _tezos.NetworkRPC; + _networkRPC = TezosConfig.Instance.RpcBaseUrl; } public void Unpair() { _tezos.DisconnectWallet(); - _currentUser = null; + CurrentUser = null; } public void FetchInventoryItems(Action> callback) { - var sender = _tezos.GetActiveWalletAddress(); // Address to the current active account + var activeWalletAddress = _tezos.GetActiveWalletAddress(); // Address to the current active account - var destination = contractAddress; // our temporary inventory contract - var entrypoint = "view_items_of"; - var input = new { @string = sender }; + const string entrypoint = "view_items_of"; + var input = new { @string = activeWalletAddress }; CoroutineRunner.Instance.StartCoroutineWrapper( - _tezos.ReadView(contractAddress, entrypoint, input, result => - { - Logger.LogDebug("READING INVENTORY DATA"); - // deserialize the json data to inventory items - CoroutineRunner.Instance.StartCoroutineWrapper( - BeaconSDK.NetezosExtensions.HumanizeValue(result, _networkRPC, destination, "humanizeInventory", - (ContractInventoryViewResult[] inventory) => OnInventoryFetched(inventory, callback)) - ); - })); + _tezos.ReadView( + contractAddress: contractAddress, + entrypoint: entrypoint, + input: input, + callback: result => + { + Logger.LogDebug("READING INVENTORY DATA"); + + // deserialize the json data to inventory items + CoroutineRunner.Instance.StartCoroutineWrapper( + NetezosExtensions.HumanizeValue( + val: result, + rpcUri: _networkRPC, + destination: contractAddress, + humanizeEntrypoint: "humanizeInventory", + onComplete: (ContractInventoryViewResult[] inventory) => + OnInventoryFetched(inventory, callback)) + ); + })); } private void OnInventoryFetched(ContractInventoryViewResult[] inventory, Action> callback) { - List dummyItemList = new List(); - + var dummyItemList = new List(); var owner = _tezos.GetActiveWalletAddress(); if (inventory != null) + { foreach (var item in inventory) { var id = Convert.ToInt32(item.id); var itemType = id == 0 ? 0 : Convert.ToInt32(item.item.itemType) % 4 + 1; - int amount = id == 0 ? Convert.ToInt32(item.amount) : 1; + var amount = id == 0 ? Convert.ToInt32(item.amount) : 1; var stats = new StatParams( Convert.ToInt32(item.item.damage), @@ -85,6 +97,7 @@ private void OnInventoryFetched(ContractInventoryViewResult[] inventory, Action< id, owner)); } + } callback?.Invoke(dummyItemList); } @@ -117,8 +130,7 @@ public class ContractMarketplaceViewResult public void FetchMarketItems(Action> callback) { - var destination = contractAddress; - var entrypoint = "view_items_on_market"; + const string entrypoint = "view_items_on_market"; // Prepping parameters for Netezos and for Native is different. // Double serialization converts double quotes (") symbol into 'u0002' string @@ -129,21 +141,31 @@ public void FetchMarketItems(Action> callback) }; CoroutineRunner.Instance.StartCoroutineWrapper( - _tezos.ReadView(contractAddress, entrypoint, input, result => - { - // deserialize the json data to market items - CoroutineRunner.Instance.StartCoroutineWrapper( - BeaconSDK.NetezosExtensions.HumanizeValue(result, _networkRPC, destination, "humanizeMarketplace", - (ContractMarketplaceViewResult[] market) => OnMarketplaceFetched(market, callback)) + _tezos.ReadView( + contractAddress: contractAddress, + entrypoint: entrypoint, + input: input, + callback: result => + { + // deserialize the json data to market items + CoroutineRunner.Instance.StartCoroutineWrapper( + NetezosExtensions.HumanizeValue( + val: result, + rpcUri: _networkRPC, + destination: contractAddress, + humanizeEntrypoint: "humanizeMarketplace", + onComplete: (ContractMarketplaceViewResult[] market) => + OnMarketplaceFetched(market, callback)) ); - })); + })); } private void OnMarketplaceFetched(ContractMarketplaceViewResult[] market, Action> callback) { - List dummyItemList = new List(); + var dummyItemList = new List(); if (market != null) + { foreach (var item in market) { var id = Convert.ToInt32(item.id); @@ -168,16 +190,15 @@ private void OnMarketplaceFetched(ContractMarketplaceViewResult[] market, Action price, id, owner)); - } + } callback?.Invoke(dummyItemList); } public void BuyItem(string owner, int itemID) { - var destination = contractAddress; - var entryPoint = "buy"; + const string entryPoint = "buy"; var parameter = new MichelinePrim { @@ -188,8 +209,8 @@ public void BuyItem(string owner, int itemID) new MichelineInt(itemID) } }.ToJson(); - - Logger.LogDebug(destination + " " + entryPoint + parameter); + + Logger.LogDebug(contractAddress + " " + entryPoint + parameter); _tezos.CallContract(contractAddress, entryPoint, parameter, 0); #if UNITY_IOS || UNITY_ANDROID @@ -199,8 +220,8 @@ public void BuyItem(string owner, int itemID) public void MintItem() { - var entrypoint = "mint"; - var input = "{\"prim\": \"Unit\"}"; + const string entrypoint = "mint"; + const string input = "{\"prim\": \"Unit\"}"; _tezos.CallContract(contractAddress, entrypoint, input, 0); @@ -229,10 +250,10 @@ private void GetSoftBalanceRoutine(Action callback) { var caller = _tezos.GetActiveWalletAddress(); - var input = new MichelinePrim() + var input = new MichelinePrim { Prim = PrimType.Pair, - Args = new List() + Args = new List { new MichelineString(caller), new MichelineInt(softCurrencyID) @@ -240,21 +261,29 @@ private void GetSoftBalanceRoutine(Action callback) }; CoroutineRunner.Instance.StartCoroutineWrapper( - _tezos.ReadView(contractAddress, "get_balance", input, result => - { - var intProp = result.GetProperty("int"); - var intValue = Convert.ToInt32(intProp.ToString()); - callback(intValue); - })); + _tezos.ReadView( + contractAddress: contractAddress, + entrypoint: "get_balance", + input: input, + callback: result => + { + var intProp = result.GetProperty("int"); + var intValue = Convert.ToInt32(intProp.ToString()); + callback(intValue); + })); } public void TransferItem(int itemID, int amount, string address) { - Logger.LogDebug("Transfering Item " + itemID + " from " + _tezos.GetActiveWalletAddress() + " to Address: " + address); + Logger.LogDebug( + $"Transfering item {itemID} from {_tezos.GetActiveWalletAddress()} to Address: {address}"); var sender = _tezos.GetActiveWalletAddress(); - var entrypoint = "transfer"; - var input = "[ { \"prim\": \"Pair\", \"args\": [ { \"string\": \"" + sender + "\" }, [ { \"prim\": \"Pair\", \"args\": [ { \"string\": \"" + address + "\" }, { \"prim\": \"Pair\", \"args\": [ { \"int\": \"" + itemID + "\" }, { \"int\": \"" + amount + "\" } ] } ] } ] ] } ]"; + const string entrypoint = "transfer"; + var input = "[ { \"prim\": \"Pair\", \"args\": [ { \"string\": \"" + sender + + "\" }, [ { \"prim\": \"Pair\", \"args\": [ { \"string\": \"" + address + + "\" }, { \"prim\": \"Pair\", \"args\": [ { \"int\": \"" + itemID + "\" }, { \"int\": \"" + amount + + "\" } ] } ] } ] ] } ]"; _tezos.CallContract(contractAddress, entrypoint, input, 0); @@ -265,9 +294,9 @@ public void TransferItem(int itemID, int amount, string address) public void AddItemToMarket(int itemID, int price) { - Logger.LogDebug("Adding Item " + itemID + " to Market with the price of " + price); + Debug.Log("Adding Item " + itemID + " to Market with the price of " + price); - var entryPoint = "addToMarket"; + const string entryPoint = "addToMarket"; var parameter = new MichelinePrim() { @@ -296,9 +325,9 @@ public void AddItemToMarket(int itemID, int price) public void RemoveItemFromMarket(int itemID) { - Logger.LogDebug("Removing Item " + itemID + " from market."); + Debug.Log("Removing Item " + itemID + " from market."); - var entryPoint = "removeFromMarket"; + const string entryPoint = "removeFromMarket"; var sender = _tezos.GetActiveWalletAddress(); var parameter = new MichelinePrim() @@ -320,8 +349,8 @@ public void RemoveItemFromMarket(int itemID) public void GetCoins() { - var entryPoint = "login"; - var parameter = "{\"prim\": \"Unit\"}"; + const string entryPoint = "login"; + const string parameter = "{\"prim\": \"Unit\"}"; _tezos.CallContract(contractAddress, entryPoint, parameter, 0); @@ -332,7 +361,7 @@ public void GetCoins() public void IsItemOnMarket(int itemID, string owner, Action callback) { - var entrypoint = "is_item_on_market"; + const string entrypoint = "is_item_on_market"; var input = new MichelinePrim() { @@ -345,13 +374,16 @@ public void IsItemOnMarket(int itemID, string owner, Action callback) }; CoroutineRunner.Instance.StartCoroutineWrapper( - _tezos.ReadView(contractAddress, entrypoint, input, result => - { - var boolString = result.GetProperty("prim"); - var boolVal = boolString.GetString() == "True"; - - callback?.Invoke(boolVal); - })); + _tezos.ReadView( + contractAddress: contractAddress, + entrypoint: entrypoint, + input: input, + callback: result => + { + var boolString = result.GetProperty("prim"); + var boolVal = boolString.GetString() == "True"; + callback?.Invoke(boolVal); + })); } public void RequestSignPayload(SignPayloadType signingType, string payload) @@ -382,4 +414,4 @@ public BeaconMessageReceiver GetMessageReceiver() { return _tezos.MessageReceiver; } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/Core/IExampleManager.cs b/Samples~/Scripts/DemoExample/Core/IExampleManager.cs index 3e01fc89..7dd0c7e6 100644 --- a/Samples~/Scripts/DemoExample/Core/IExampleManager.cs +++ b/Samples~/Scripts/DemoExample/Core/IExampleManager.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System; using Beacon.Sdk.Beacon.Sign; -using BeaconSDK; +using Scripts.BeaconSDK; public interface IExampleManager { @@ -9,7 +9,7 @@ public interface IExampleManager public void Unpair(); public void GetCoins(); - + /// /// Returns the currently active user. /// @@ -39,7 +39,7 @@ public interface IExampleManager /// ID of the item that will be bought /// callback takes a bool (true if the transaction is completed successfully) public void BuyItem(string owner, int itemID); - + /// /// Mints an item /// @@ -50,13 +50,13 @@ public interface IExampleManager /// /// callback that takes the retrieved balance (int) public void GetBalance(Action callback); - + /// /// Get soft currency balance /// /// callback that takes the retrieved balance (int) public void GetSoftBalance(Action callback); - + /// /// Returns the address of the current active wallet /// @@ -90,7 +90,7 @@ public interface IExampleManager public void RemoveItemFromMarket(int itemID); /// - /// Return the Tezos MessageReceiver for using callbacks + /// Return the Tezos wallet MessageReceiver for using callbacks /// public BeaconMessageReceiver GetMessageReceiver(); @@ -101,13 +101,13 @@ public interface IExampleManager /// /// public void IsItemOnMarket(int itemID, string owner, Action callback); - + /// /// Sends a request to sign a payload /// /// /// void RequestSignPayload(SignPayloadType signingType, string payload); - + bool VerifyPayload(SignPayloadType signingType, string payload); -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/InventoryManager.cs b/Samples~/Scripts/DemoExample/InventoryManager.cs index 6a0c54c2..6579f838 100644 --- a/Samples~/Scripts/DemoExample/InventoryManager.cs +++ b/Samples~/Scripts/DemoExample/InventoryManager.cs @@ -1,8 +1,8 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; -using UnityEngine.UI; -using Logger = Helpers.Logger; +using Logger = Scripts.Helpers.Logger; + [RequireComponent(typeof(SnapController))] public class InventoryManager : MonoBehaviour diff --git a/Samples~/Scripts/NftApiSample.meta b/Samples~/Scripts/NftApiSample.meta new file mode 100644 index 00000000..d45685ef --- /dev/null +++ b/Samples~/Scripts/NftApiSample.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c99fd80597f64dc092e648ec53c6953c +timeCreated: 1683116067 \ No newline at end of file diff --git a/Samples~/Scripts/NftApiSample/DataManager.cs b/Samples~/Scripts/NftApiSample/DataManager.cs new file mode 100644 index 00000000..0c508eee --- /dev/null +++ b/Samples~/Scripts/NftApiSample/DataManager.cs @@ -0,0 +1,149 @@ +using System; +using System.Collections.Generic; +using System.Text.Json; +using Scripts.Tezos; +using Scripts.Tezos.API.Models.Filters; +using Scripts.Tezos.API.Models.Tokens; +using UnityEngine; + +public class DataManager : MonoBehaviour +{ + private ITezosAPI _tezos; + + private string _connectedAddress; + private string _checkContract; + private string _checkAddress; + private string _checkTokenId; + + public Action DataReceived; + + private const int MaxTokens = 20; + + void Start() + { + _tezos = TezosSingleton.Instance; + _tezos.MessageReceiver.AccountConnected += OnAccountConnected; + } + + void OnAccountConnected(string result) + { + var json = JsonSerializer.Deserialize(result); + var account = json.GetProperty("account"); + _connectedAddress = account.GetProperty("address").GetString(); + } + + public void GetTokensForOwners() + { + var walletAddress = string.IsNullOrEmpty(_checkAddress) + ? _connectedAddress + : _checkAddress; + + CoroutineRunner.Instance.StartCoroutine( + _tezos.GetTokensForOwner((tbs) => + { + if (tbs == null) + { + DataReceived.Invoke($"Incorrect address - {walletAddress}"); + Debug.Log($"Incorrect address - {walletAddress}"); + return; + } + + List tokens = new List(tbs); + if (tokens.Count > 0) + { + var result = ""; + foreach (var tb in tokens) + { + result += + $"{walletAddress} has {tb.Balance} tokens on contract {tb.TokenContract.Address}" + + "\r\n" + "\r\n"; + Debug.Log( + $"{walletAddress} has {tb.Balance} tokens on contract {tb.TokenContract.Address}"); + } + + DataReceived.Invoke(result); + } + else + { + DataReceived.Invoke($"{walletAddress} has no tokens"); + Debug.Log($"{walletAddress} has no tokens"); + } + }, + owner: walletAddress, + withMetadata: false, + maxItems: MaxTokens, + orderBy: new TokensForOwnerOrder.Default(0))); + } + + public void IsHolderOfContract() + { + var walletAddress = string.IsNullOrEmpty(_checkAddress) + ? _connectedAddress + : _checkAddress; + + if (string.IsNullOrEmpty(_checkContract)) + { + DataReceived.Invoke("Enter contract address"); + Debug.Log("Enter contract address"); + return; + } + + CoroutineRunner.Instance.StartCoroutine(_tezos.IsHolderOfContract((flag) => + { + var message = flag + ? $"{walletAddress} is HOLDER of contract {_checkContract}" + : $"{walletAddress} is NOT HOLDER of contract {_checkContract}"; + + DataReceived.Invoke(message); + Debug.Log(message); + }, + wallet: walletAddress, + contractAddress: _checkContract)); + } + + public void IsHolderOfToken() + { + var walletAddress = string.IsNullOrEmpty(_checkAddress) + ? _connectedAddress + : _checkAddress; + + var tokenId = string.IsNullOrEmpty(_checkTokenId) + ? 0 + : Convert.ToUInt32(_checkTokenId); + + if (string.IsNullOrEmpty(_checkContract)) + { + DataReceived.Invoke("Enter contract address"); + Debug.Log("Enter contract address"); + return; + } + + CoroutineRunner.Instance.StartCoroutine(_tezos.IsHolderOfToken((flag) => + { + var message = flag + ? $"{walletAddress} is HOLDER of token" + : $"{walletAddress} is NOT HOLDER of token"; + + DataReceived.Invoke(message); + Debug.Log(message); + }, + wallet: walletAddress, + contractAddress: _checkContract, + tokenId: tokenId)); + } + + public void SetCheckAddress(string address) + { + _checkAddress = address; + } + + public void SetCheckTokenId(string tokenId) + { + _checkTokenId = tokenId; + } + + public void SetCheckContract(string contract) + { + _checkContract = contract; + } +} \ No newline at end of file diff --git a/Samples~/Scripts/NftApiSample/DataManager.cs.meta b/Samples~/Scripts/NftApiSample/DataManager.cs.meta new file mode 100644 index 00000000..f25e16a1 --- /dev/null +++ b/Samples~/Scripts/NftApiSample/DataManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 843fddde74de46b49b27eb4092db3382 +timeCreated: 1683116580 \ No newline at end of file diff --git a/Samples~/Scripts/NftApiSample/UiManager.cs b/Samples~/Scripts/NftApiSample/UiManager.cs new file mode 100644 index 00000000..baf3c9e4 --- /dev/null +++ b/Samples~/Scripts/NftApiSample/UiManager.cs @@ -0,0 +1,41 @@ +using UnityEngine; +using UnityEngine.UI; + +public class UiManager : MonoBehaviour +{ + [SerializeField] private DataManager dataManager; + [SerializeField] private InputField addressInputField; + [SerializeField] private InputField contractInputField; + [SerializeField] private InputField tokenIdInputField; + [SerializeField] private Text resultText; + + void Start() + { + dataManager.DataReceived += OnDataReceived; + + addressInputField.onEndEdit.AddListener(delegate { OnEndEditAddress(addressInputField); }); + contractInputField.onEndEdit.AddListener(delegate { OnEndEditContract(contractInputField); }); + tokenIdInputField.onEndEdit.AddListener(delegate { OnEndEditTokenId(tokenIdInputField); }); + } + + void OnDataReceived(string data) + { + resultText.text = string.Empty; + resultText.text = data; + } + + void OnEndEditAddress(InputField input) + { + dataManager.SetCheckAddress(input.text); + } + + void OnEndEditContract(InputField input) + { + dataManager.SetCheckContract(input.text); + } + + void OnEndEditTokenId(InputField input) + { + dataManager.SetCheckTokenId(input.text); + } +} \ No newline at end of file diff --git a/Samples~/Scripts/NftApiSample/UiManager.cs.meta b/Samples~/Scripts/NftApiSample/UiManager.cs.meta new file mode 100644 index 00000000..43174b94 --- /dev/null +++ b/Samples~/Scripts/NftApiSample/UiManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e0a291b0996f4ec2be82ad443dcfc9c1 +timeCreated: 1683116661 \ No newline at end of file diff --git a/Tests.meta b/Tests.meta new file mode 100644 index 00000000..b4032050 --- /dev/null +++ b/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b809863f4c44f7949a628228f6a6e307 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/Editor.meta b/Tests/Editor.meta new file mode 100644 index 00000000..1bc5955d --- /dev/null +++ b/Tests/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: afb33b3339b60b74a8abf60d22391a31 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/Editor/EditmodeTests.cs b/Tests/Editor/EditmodeTests.cs new file mode 100644 index 00000000..53ab65c1 --- /dev/null +++ b/Tests/Editor/EditmodeTests.cs @@ -0,0 +1,11 @@ +using NUnit.Framework; + + +public class EditmodeTests +{ + // A Test behaves as an ordinary method + [Test] + public void EditmodeTestsSimplePasses() + { + } +} \ No newline at end of file diff --git a/Tests/Editor/EditmodeTests.cs.meta b/Tests/Editor/EditmodeTests.cs.meta new file mode 100644 index 00000000..e042e877 --- /dev/null +++ b/Tests/Editor/EditmodeTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 71c7d58107e003d4fb818ff9efec9ca3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/Editor/Editor.asmdef b/Tests/Editor/Editor.asmdef new file mode 100644 index 00000000..61b36046 --- /dev/null +++ b/Tests/Editor/Editor.asmdef @@ -0,0 +1,24 @@ +{ + "name": "Editor", + "rootNamespace": "", + "references": [ + "UnityEngine.TestRunner", + "UnityEditor.TestRunner", + "com.trilitech.tezos-unity-sdk" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Tests/Editor/Editor.asmdef.meta b/Tests/Editor/Editor.asmdef.meta new file mode 100644 index 00000000..51fceef2 --- /dev/null +++ b/Tests/Editor/Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1d1da05ab075e914496634afb7f764b4 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/Runtime.meta b/Tests/Runtime.meta new file mode 100644 index 00000000..f2a6cf1d --- /dev/null +++ b/Tests/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f0eebd2ae1b56a34ebe2afd30526d4a8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/Runtime/ApiTests.cs b/Tests/Runtime/ApiTests.cs new file mode 100644 index 00000000..04ff2700 --- /dev/null +++ b/Tests/Runtime/ApiTests.cs @@ -0,0 +1,139 @@ +using System.Collections; +using System.Linq; +using Beacon.Sdk.Beacon.Permission; +using NUnit.Framework; +using Scripts.Tezos; +using Scripts.Tezos.API; +using Scripts.Tezos.API.Models.Filters; +using UnityEngine.TestTools; + +namespace Tests.Runtime +{ + public class ApiTests + { + private static IDataProviderConfig GetDataProviderConfig() + { + return new TzKTProviderConfig(); + } + + // A UnityTest behaves like a coroutine in Play Mode. In Edit Mode you can use + // `yield return null;` to skip a frame. + [UnityTest] + public IEnumerator GetTokensForOwnerTest() + { + TezosConfig.Instance.Network = NetworkType.mainnet; + var api = new TezosDataAPI(GetDataProviderConfig()); + const int expectedItems = 5; + + yield return api.GetTokensForOwner( + callback: tokenBalances => { Assert.AreEqual(expectedItems, tokenBalances.Count()); }, + owner: "KT18p94vjkkHYY3nPmernmgVR7HdZFzE7NAk", + withMetadata: false, + maxItems: expectedItems, + orderBy: new TokensForOwnerOrder.ByLastTimeAsc(0)); + } + + [UnityTest] + public IEnumerator GetOwnersForTokenTest() + { + TezosConfig.Instance.Network = NetworkType.mainnet; + var api = new TezosDataAPI(GetDataProviderConfig()); + const int expectedItems = 5; + + yield return api.GetOwnersForToken( + callback: tokenBalances => { Assert.AreEqual(expectedItems, tokenBalances.Count()); }, + contractAddress: "KT1BRADdqGk2eLmMqvyWzqVmPQ1RCBCbW5dY", + tokenId: 1, + maxItems: expectedItems, + orderBy: new OwnersForTokenOrder.Default(0)); + } + + [UnityTest] + public IEnumerator GetOwnersForContractTest() + { + TezosConfig.Instance.Network = NetworkType.mainnet; + var api = new TezosDataAPI(GetDataProviderConfig()); + const int expectedItems = 5; + + yield return api.GetOwnersForContract( + callback: tokenBalances => { Assert.AreEqual(expectedItems, tokenBalances.Count()); }, + contractAddress: "KT1BRADdqGk2eLmMqvyWzqVmPQ1RCBCbW5dY", + maxItems: expectedItems, + orderBy: new OwnersForContractOrder.Default(0)); + } + + [UnityTest] + public IEnumerator IsHolderOfContractTest() + { + TezosConfig.Instance.Network = NetworkType.mainnet; + var api = new TezosDataAPI(GetDataProviderConfig()); + + yield return api.IsHolderOfContract( + callback: isHolder => { Assert.AreEqual(true, isHolder); }, + wallet: "tz1TiZ74DtsT74VyWfbAuSis5KcncH1WvNB9", + contractAddress: "KT1BRADdqGk2eLmMqvyWzqVmPQ1RCBCbW5dY"); + } + + [UnityTest] + public IEnumerator IsHolderOfTokenTest() + { + TezosConfig.Instance.Network = NetworkType.mainnet; + var api = new TezosDataAPI(GetDataProviderConfig()); + + yield return api.IsHolderOfToken( + callback: isHolder => { Assert.AreEqual(true, isHolder); }, + wallet: "tz1TiZ74DtsT74VyWfbAuSis5KcncH1WvNB9", + contractAddress: "KT1BRADdqGk2eLmMqvyWzqVmPQ1RCBCbW5dY", + tokenId: 1); + } + + [UnityTest] + public IEnumerator GetTokenMetadataTest() + { + TezosConfig.Instance.Network = NetworkType.mainnet; + var api = new TezosDataAPI(GetDataProviderConfig()); + + yield return api.GetTokenMetadata( + callback: metadata => { Assert.IsFalse(string.IsNullOrEmpty(metadata.ToString())); }, + contractAddress: "KT1BRADdqGk2eLmMqvyWzqVmPQ1RCBCbW5dY", + tokenId: 1); + } + + [UnityTest] + public IEnumerator GetContractMetadataTest() + { + TezosConfig.Instance.Network = NetworkType.mainnet; + var api = new TezosDataAPI(GetDataProviderConfig()); + + yield return api.GetContractMetadata( + callback: metadata => { Assert.IsFalse(string.IsNullOrEmpty(metadata.ToString())); }, + contractAddress: "KT1BRADdqGk2eLmMqvyWzqVmPQ1RCBCbW5dY"); + } + + [UnityTest] + public IEnumerator GetTokensForContractTest() + { + TezosConfig.Instance.Network = NetworkType.mainnet; + var api = new TezosDataAPI(GetDataProviderConfig()); + const int expectedItems = 5; + + yield return api.GetTokensForContract( + callback: tokens => { Assert.AreEqual(expectedItems, tokens.Count()); }, + contractAddress: "KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton", + withMetadata: true, + maxItems: expectedItems, + orderBy: new TokensForContractOrder.Default(0)); + } + + [UnityTest] + public IEnumerator GetOperationStatusTest() + { + TezosConfig.Instance.Network = NetworkType.ghostnet; + var api = new TezosDataAPI(GetDataProviderConfig()); + const bool expectedResult = true; + + yield return api.GetOperationStatus(status => { Assert.AreEqual(expectedResult, status); }, + "oo4gj5tfvnE1LKsRp6BSm7VB5LAoqzogJXPwGWSYBjmUgNsmk8M"); + } + } +} \ No newline at end of file diff --git a/Tests/Runtime/ApiTests.cs.meta b/Tests/Runtime/ApiTests.cs.meta new file mode 100644 index 00000000..15832333 --- /dev/null +++ b/Tests/Runtime/ApiTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f454f9f0ad5369c4aa11ecc87cbc075b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/Runtime/Runtime.asmdef b/Tests/Runtime/Runtime.asmdef new file mode 100644 index 00000000..34ca47c2 --- /dev/null +++ b/Tests/Runtime/Runtime.asmdef @@ -0,0 +1,24 @@ +{ + "name": "Runtime", + "rootNamespace": "", + "references": [ + "UnityEngine.TestRunner", + "UnityEditor.TestRunner", + "com.trilitech.tezos-unity-sdk" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll", + "System.Text.Json.dll", + "Beacon.Sdk.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Tests/Runtime/Runtime.asmdef.meta b/Tests/Runtime/Runtime.asmdef.meta new file mode 100644 index 00000000..35d24eee --- /dev/null +++ b/Tests/Runtime/Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e9b8b9f8390af9e44b1c51d99d94e161 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: