본문 바로가기

반응형

블록체인

(20)
트랜잭션 hash 를 가장 빨리 받는 방법 웹에서 지갑 어플리케이션을 통해 트랜잭션을 발생했다고 치자 (제발 그냥 그랬다고 치자) 트랜잭션이 정상적으로 종료되고 나발이고 내가 발생시킨 트랜잭션 hash 값을 최대한 빨리 화면에 뿌려주고 싶다. 어떡할래? web3.eth.sendTransaction().on() 등의 async 함수를 await 할 경우, async 함수를 강제 종료시키는 방법은 없다. (자바스크립트 언어의 특성) 방법은 내가 호출하고자 하는 web3 async 함수를 Promise 객체 안에 담는 것이다. addBlockChain: async(u, n, c, e) => { const web3 = new Web3(App.web3Provider); const signed = await web3.eth.accounts.signTrans..
msg.sender vs _msgSender() 솔리디티 코딩을 하다보면 어떤 contract 에서는 컨트랙트 호출자로 msg.sender 를 사용하고 어디에는 _msgSender() 함수를 사용한다. 외국 빡빡이 말에 의하면 컨트랙트 간에 인터널 트랜잭션을 사용할 때 전달자가 (relayer) 가 아닌 초기 호출자에 대한 정보를 받아오기 위함이다. 그렇다면 아래 코드는 왜쓰는걸까? require(tx.origin == _msgSender(), "Caller cannot be a contract."); 해당 함수는 컨트랙 어드레스가 호출하지 못하게하여 미연의 악용을 방지한다.
Wallet 로그인 세션 관리 필자가 홀딩중인 Drawshop Kingdom Reverse 채굴 페이지에 카이카스 로그인시 세션 값을 가져오기 위한 API 의payload 를 잠시 저장해본다. 나중에 참고하려고 klayAddress: "0x7c375ba350e869a33d039328f052b975f8dc3743" ms: 1651465542027 sig: "0x51a42db4caa0e340cc5da3e2f934c04c83ad1e73cf97b52681bc7bec971538df504ff492799203cc0ed72773ccd6238a9b09dd6fc65ab9804db7e92b71c396f41c" walletType: "kaikas"
오픈씨는 왜 WETH 를 사용할까? 궁금하면 0xAee0dA182193e152c103e2d9Ae8792454f22bcE8 10klay 전송 후 댓글 오답: 수수료 때문에 정답: ETH 는 ERC20 이 아니기 때문에 다음 질문 어떤 거래는 WETH, 어떤 거래는 ETH 로 이뤄진다. 왜? 10klay 전송 후 댓글
솔라나 Generative Art 생성 방법 캔디머신을 사용한다 캔디머신을 사용하면 1만개의 NFT 들의 오프체인 url 정보들이 온체인 캔디머신 어카운트에 바이트코드로 존재한다. 캔디머신 V1 은 url 목록에 대해 순차적으로 민팅하기 때문에 민팅 속도가 느릴 경우 다음으로 얻게되는 NFT 를 알아낼 수 있다. 캔디머신 V2 는 이를 보완하여 랜덤한 순서로 NFT 를 민팅해준다. 프로그램 소스단에서 처리되는 로직이다. 일반 NFT 를 1만번 생성한다. 캔디머신을 사용할 때처럼 동일한 프로그램 함수를 포함한 트랜잭션으로 민팅할 수 없다. Layer 2 에서 선 민팅이 이루어진 경우에 민팅된 결과로 캔디머신 없이 마스터 에디션을 민팅할 수 있다. 프로젝트 단위로 묶을 수 있는 온 체인 콜렉션 정보를 담아서 민팅한다. 장점으로는 캔디머신처럼 온체인상 ..
솔라나 NFT on-chain metadata "tokenStandard" Metaplex 표준을 따르는 NFT 중에서 on-chain metadata 의 tokenStandard 필드가 0 에서 3인 값으로 표시된다. 공식 문서에서 언급된 TokenStandard enum 구조체의 NonFungible, FungibleAsset, Fungible, NonFungibleEdition 에 대한 순번을 의미한다. 그리고 이 값은 컨트랙트에서 특정 요구 조건에 따라 자동으로 설정하는 값이라고 한다. 이 글은 솔라나에서 Semi-Fungible Token 과 관련된 글이기도 하다. tokenStandard 러스트 구조체 pub enum TokenStandard { NonFungible, // This is a master edition FungibleAsset, // A token w..
솔라나 개발툴 설치 nodejs (https://github.com/nvm-sh/nvm) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash source ~/.bashrc nvm install --lts npm version solana (https://docs.solana.com/cli/install-solana-cli-tools)​ sh -c "$(curl -sSfL https://release.solana.com/v1.9.13/install)" // 터미널 재시작
spl-token multisig 문제 솔라나에서는 Token Program 을 사용하여 FT 또는 NFT 를 발행한다. 여기에 multisig 기능까지 지원하는데, 쉽게말해 여러명이 허가를 해야 전송 가능한 토큰을 만드는 것이다. 문제는 multisig 을 이용한 토큰을 만들면, 그 토큰 주소로 전송된 SOL 은 전송 불가한 상태가 된다. 이에 관련하여 논의가 나왔으며 (https://github.com/solana-labs/solana-program-library/issues/2742), multisig 토큰에 전송된 SOL 을 redeem 하는 방법을 추가하기보단 multisig 토큰에 SOL 을 전송하지 않도록 경고를 강화하는 방식으로 결론이 난 것 같다.