- 토큰 승인이란 무엇이며, 왜 그것을 만든 트랜잭션보다 오래 살아남습니까?
- 계약에 승인을 주면 토큰 자신의 저장소에 allowance가 기록됩니다. 그 순간부터 사용자는 transferFrom을 호출해, 당신의 추가 서명 없이 언제든 그만큼까지 당신의 토큰을 옮길 수 있습니다. 그것은 당신이 하던 스왑이나 입금에 묶여 있지 않고, 다 쓰이거나 명시적으로 0으로 되돌려질 때까지 남아 있습니다. 몇 달 전에 한 번 써 본 앱에 준 승인이 오늘도 살아 있는 권한인 이유가 바로 이것입니다.
- 무제한 승인은 실제로 무엇을 뜻합니까?
- 지갑과 앱은 흔히 2^256-1 — 그 타입이 담을 수 있는 최대값 — 을 요청해, 다시는 승인하지 않아도 되게 합니다. 줄어들지도 만료되지도 않습니다. 그 계약이 탈취되었거나 처음부터 악의적이었다면, 가져갈 수 있는 상한은 그 토큰의 잔액 전부이며, 이후에 사들이는 토큰까지 포함합니다.
- 이 목록이 승인된 금액보다 적게 보일 때가 있는 이유는?
- transferFrom이 한도를 조용히 깎기 때문입니다. 그것은 Approval이 아니라 Transfer를 냅니다. 그래서 이벤트 이력만으로는 승인 당시 금액밖에 알 수 없습니다. 「현재 온체인」 열은 고정된 한 블록에서 allowance(owner, spender)를 토큰 계약에서 곧바로 읽으므로, 실제로 아직 쓸 수 있는 값을 보여 줍니다. 둘이 다를 때 중요한 것은 온체인 수치입니다.
- 결과가 비어 있으면 승인이 없다는 증거입니까?
- 아닙니다. 이 페이지는 그 점을 돌려 말하지 않고 그대로 밝힙니다. 승인은 Arcscan이 색인한 블록의 Approval 이벤트로부터 재구성됩니다. 그 구간이 시작되기 전에 주고 이후 손대지 않은 승인은 구간 안에 이벤트를 남기지 않아 여기에 나타날 수 없습니다. 검색한 블록 범위는 표 아래에 표시됩니다.
- 철회에는 비용이 얼마나 들며, Arcscan이 내 키를 다룹니까?
- 철회는 평범한 트랜잭션입니다. approve(spender, 0), 오퍼레이터 승인이라면 setApprovalForAll(operator, false)를 토큰 계약으로 보내며, 다른 트랜잭션처럼 USDC로 가스를 냅니다. Arcscan은 키를 보관하지도, 서명하지도, 무엇을 보내지도 않습니다. 호출을 인코딩해 그 내용을 그대로 보여 줄 뿐이고, 승인은 당신의 지갑에서 이루어집니다. calldata를 복사해 전혀 다른 곳에서 서명해도 됩니다.
- 오퍼레이터 승인은 왜 금액 없이 표시됩니까?
- setApprovalForAll에는 금액이 없기 때문입니다. 그것은 당신이 철회할 때까지, 아직 갖지 않은 것까지 포함해 그 컬렉션의 모든 토큰을 오퍼레이터가 옮길 수 있게 합니다. 그것을 한도 열의 대시로 표시하면, 페이지에서 가장 넓은 권한이 가장 좁아 보이게 됩니다.