ERC1155(KIP-37)의 safeTransferFrom 을 사용했습니다.
해당 메소드의 인자값은 {“name”:“from”,“type”:“address”},{“name”:“to”,“type”:“address”},{“name”:“id”,“type”:“uint256”},{“name”:“amount”,“type”:“uint256”},{“name”:“data”,“type”:“bytes”} 로써 input data의 값이 순서대로 함수 해시값 / 보내는 주소 / 받는 주소 / 보내는 토큰아이디 / 보내는 수량 / 기타 데이터 입니다.
이때 기타 데이터의 값이 특별한 값이 아닌 0일 경우 이더리움의 ERC-1155에서는 ‘00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000’ 가 붙고, 클레이튼 예제 문서에 등록된 바오밥 예제에서도 마찬가지의 값이 붙어있습니다.
그런데 제가 링크를 단 컨트랙트의 경우 이 뒤의 data 가 컨트랙트에 따라 어떤것은 뒤에 128바이트의 값(0 64개) 가 더 붙어서 ‘00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000’ 이 붙어야만 정상적인 인풋데이터라고 판단합니다.
KIP-37로 등록된 컨트랙트의 safetransferfrom 함수 사용내역을 뒤져본 결과 tx type이 변경되었을때 외에는 64바이트가 더 붙는 차이를 발견할 수 없었습니다. from 주소가 달라서 발생하는 문제는 아니라고 봅니다.