배포한 인스턴스는 해당 컨트랙트 파일 import 만으로는 가져올 수 없다.
해당 계약 파일을 import하면 계약의 형식을 가져온 것이고 계약을 배포했을 때 생성된 계약의 주소가 필요하다. 이 두 가지가 있어야지 내가 배포한 컨트랙트의 인스턴스를 엑세스할 수 있다.
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;
import "./Mint.sol";
contract SaleToken {
Mint public mintTokenAddress;
constructor(address _mintTokenAddress) {
mintTokenAddress = Mint(_mintTokenAddress);
}
}
Dapp에서 컨트랙트에 함수를 호출 했을때 함수 안에서 지정했던 지역 변수를 return하면 실제로 return값이 출력되지 않는다. ThirdWeb/sdk를 사용해보니 트랜잭션 정보만 return됐다.
결과값을 return하고 싶다면 상태 변수를 사용하거나 이벤트를 발생시켜 블록체인에 저장해야 한다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
contract Constants {
// coding convention to uppercase constant variables
address public constant MY_ADDRESS = 0x777788889999AaAAbBbbCcccddDdeeeEfFFfCcCc;
uint public constant MY_UINT = 123;
}