일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Vue
- 오블완
- 머신러닝기초
- 러스트 기초
- ethers typescript
- ethers type
- erc4337
- Vue.js
- erc4337 contract
- git rebase
- 스마트컨트렉트 예약어 함수이름 중복
- 체인의정석
- 러스트기초
- 스마트 컨트렉트 함수이름 중복
- vue기초
- ethers v6
- 컨트렉트 동일한 함수이름 호출
- 계정추상화
- ethers
- 스마트컨트렉트테스트
- 러스트 기초 학습
- SBT표준
- 티스토리챌린지
- 컨트렉트 배포 자동화
- ethers websocket
- chainlink 설명
- rust 기초
- 스마트컨트렉트 함수이름 중복 호출
- ambiguous function description
- multicall
- Today
- Total
체인의정석
Solidity 0.5.0 버젼 오류해결 ) More than 3 indexed arguments for event. 본문
Solidity 0.5.0 버젼 오류해결 ) More than 3 indexed arguments for event.
체인의정석 2022. 1. 24. 16:39이벤트를 작성하면서 어차피 가스비가 많이 들지 않으니 활용을 위해 인덱스를 최대한 많이 넣어보자 라는 생각으로 많은 인덱스를 달아 보았다.
그 결과
TypeError: More than 3 indexed arguments for event.
와 같은 오류가 나왓다. 사실 인덱스를 이렇게 달아본건 처음이라 여기에 제한이 있었나? 하고 찾아보니
I'm getting an error when i have more than 3 indexed arg for an event
I want to add all the arguments for my event to be indexed event TokenPurchase( address indexed purchaser, address indexed beneficiary, uint256 indexed value, uint256 indexed amount, ui...
ethereum.stackexchange.com
최대 3개까지만 된다고 하며, 예외는 anonymous event 인 경우에만 가능하다고 한다.
몰랐던 사실인데 코드를 확인해보면 적혀있다.
GitHub - ethereum/solidity: Solidity, the Smart Contract Programming Language
Solidity, the Smart Contract Programming Language. Contribute to ethereum/solidity development by creating an account on GitHub.
github.com
그 결과 인덱스는 검색이 많이 필요하니 잘 생각해서 3개씩만 남기기로 하였다.
남기고 보니 address 타입이 많이 남게 되었는데, 나중에 이벤트 기록을 했을 때 특정 행위의 주체가 누구인지 알아야 하는 경우가 많기 때문에 이렇게 작업하였다.