🇵🇱 Jeśli kiedykolwiek wysłałeś/aś tokeny:
📌nie do tego odbiorcy co chciałeś/aś
📌na adres kontraktu np. tokena lub innego z którego nie można ich wycofać
📌na adres multisig na nie tej sieci co trzeba
👨💻 Ten wątek jest dla Ciebie
Tradycyjnie wygląda to tak:
1. Otwierasz @MetaMask i wybierasz portfel z którego wyślesz tokeny
2. Wybierasz token i wklejasz adres odbiorcy...
‼️ w tym momencie wkrada się niepewność:
czy to poprawny adres odbiorcy❓ czy może środki trafią gdzie indziej 🙁
3. Approve & Send
Można to zrobić bezpieczniej (nie koniecznie łatwiej) i wykorzystać funkcję transferFrom, która musi być ujęte w każdej implementacji ERC-20.
2. Przechodzimy do zakładki "Contract / Write as Proxy"
(jeśli robimy to dla innego tokena, który nie jest Proxy, wybieramy po prostu Write)
3. Wybieramy Connect to Web3 i łączymy się swoim portfelem z @arbiscan , przechodzimy do zakładki Approve:
W polu spender, podajmy adres, któremu chcemy pozwolić pobrać z naszego portfela liczbę tokenów zgodną z wartością w polu value (pamiętamy o 6 miejsca po przecinku w tym przypadku $USDC)
Tutaj po wybraniu Write, dajemy zgodę adresowi 0x..t0m3k na pobranie z naszego walletu $1
W ten sposób odbiorca (0x..t0m3k) pobierze z adresu (0x..d4wc4) maksymalnie taką liczbę tokenów $USDC na jaką pozwolił wcześniej (0x..d4wc4) korzystając z mechanimu allowance / approve
5. Odbiorca wybiera Write generując i wysyłając transakcje.
Jakie są benefity tego karkołomnego rozwiązania:
🟢to posiadacz danych tokenów określa ile i komu pozwala pobrać
🟢odbiorca może pobrać raz wszystko, lub kilka razy po części
🟢nikt nie uprawniony nie pobierze tych tokenów
🟢jeśli adres odbiorcy zostanie skompromitowany, dawca może po prostu skorzystać z @RevokeCash
🟢jeśli dawca pomyli adresy odbiorcy, odbiorca mu przekaże, że nie może pobrać tokenów, wtedy dawca zrobi revoke i prześle ponownie approve na nowy, poprawny adres
🤓 Szczerze mówiąc można by ten proces ubrać w jakiś ciekawy UI i pozwolić w ten sposób bezpieczniej i łatwiej przesyłać tokeny użytkownikom