지갑 가이드라인
네트워크
네트워크가 많지 않습니다.
현재 네트워크는 메인넷과 테스트넷 두 가지뿐입니다. 가까운 미래에는 새로운 메인넷 TON과 유사한 네트워크의 출현은 기대하기 어렵습니다. 현재 메인넷에는 대체 네트워크인 워크체인을 위한 메커니즘이 내장되어 있습니다.
일반 사용자로부터 테스트넷을 숨깁니다.
테스트넷은 개발자만 사용할 수 있습니다. 일반 사용자는 테스트넷을 볼 수 없어야 합니다. 즉, 테스트넷으로 쉽게 전환할 수 없어야 하며, 테스트넷에 디앱이 있더라도 사용자에게 지갑을 테스트넷으로 전환하라는 메시지를 표시해서는 안 됩니다. 사용자가 테스트넷으로 전환하고 이 작업을 이해하지 못하면 다시 메인넷으로 전환할 수 없습니다.
이러한 이유로 디앱은 런타임에 네트워크를 전환할 필요가 없으며, 오히려 서로 다른 도메인 dapp.com, Testnet.dapp.com에 서로 다른 디앱 인스턴스를 두는 것이 더 바람직합니다.
같은 이유로 톤 커넥트 프로토콜에는 네트워크 변경
또는 체인 변경
이벤트가 없습니다.
디앱이 테스트넷에 있고 지갑이 메인넷에 있는 경우 아무것도 보내지 마세요.
디앱이 테스트넷에서 트랜잭션을 전송하려고 할 때 지갑이 메인넷으로 전송할 때 자금 손실을 방지해야 합니다.
디앱은 SendTransaction
요청에 네트워크
필드를 명시적으로 표시해야 합니다.
네트워크` 매개변수가 설정되어 있지만 지갑에 다른 네트워크가 설정되어 있는 경우, 지갑에 경고와 함께 이 트랜잭션 전송을 허용하지 않는다는 메시지가 표시됩니다.
이 경우 지갑은 다른 네트워크로의 전환을 제안해서는 안 됩니다.
멀티 계정
하나의 키 쌍에 대해 여러 개의 네트워크 계정을 만들 수 있습니다. 지갑에 이 기능을 구현하면 사용자가 유용하게 사용할 수 있습니다.
일반적으로 현재 '활성' 계정은 없습니다.
현재 톤 커넥트는 지갑에 하나의 선택된 계정이 존재하고, 사용자가 다른 계정으로 전환하면 'AccountChanged' 이벤트가 디앱에 전송되는 패러다임으로 구축되어 있지 않습니다.
지갑은 여러 개의 '은행 카드'(계좌)를 담을 수 있는 실제 지갑이라고 생각하시면 됩니다.
대부분의 경우 디앱에서 발신자 주소는 중요하지 않으며, 이러한 경우 사용자는 트랜잭션을 승인할 때 적절한 계정을 선택할 수 있으며 선택한 계정에서 트랜잭션이 전송됩니다.
경우에 따라 디앱이 특정 주소에서 트랜잭션을 전송하는 것이 중요할 수 있으며, 이 경우 SendTransaction
요청에 from
필드를 명시적으로 지정합니다. 보낸 사람` 파라미터가 설정되어 있으면 지갑은 사용자가 발신자 주소를 선택할 수 없도록 해야 하며, 지정된 주소에서 전송이 불가능하면 지갑은 경고를 표시하고 이 트랜잭션의 전송을 허용하지 않아야 합니다.
로그인 흐름
디앱이 지갑을 연결하면 사용자는 지갑에서 디앱에 로그인할 계정 중 하나를 선택합니다.
사용자가 지갑에서 다음에 어떤 계정을 사용하든 관계없이 DApp은 연결 시 받은 계정으로 작동합니다.
이메일 계정 중 하나로 웹 서비스에 로그인한 경우와 마찬가지로 이메일 서비스에서 이메일 계정을 변경하면 웹 서비스에서는 로그인할 때 받은 이메일 계정을 계속 사용합니다.
이러한 이유로 프로토콜은 '계정 변경' 이벤트를 제공하지 않습니다.
계정을 전환하려면 사용자는 DAppUI에서 연결을 끊었다가(로그아웃) 다시 연결(로그인)해야 합니다.
지갑은 특정 디앱과의 세션 연결을 끊을 수 있는 기능을 제공하는 것이 좋습니다. 디앱의 UI가 불완전할 수 있기 때문입니다.