IOkrw.getParams
getParams() external view returns (OkrwParams memory params) OKRW 모듈 파라미터를 반환합니다. 지정된 발행자 주소와 발행 denom이 포함됩니다. 반환 struct 이름은 OkrwParams입니다. 여러 프리컴파일 인터페이스를 함께 import할 때 struct 이름 충돌을 피하기 위해 네임스페이스 없는 Params 이름에서 변경되었습니다. 발행자 주소 교체는 컨소시엄 거버넌스 작업이며, 클라이언트는 이 함수를 읽기 전용 조회 엔드포인트로 사용합니다.
파라미터
이 메서드는 파라미터가 없습니다.
반환값
타입:
OkrwParams 두 개의 필드를 가진 OkrwParams 튜플을 반환합니다. address minter(IOkrw.mint를 호출할 수 있는 유일한 주소)와 string mintDenom(base denom으로, 마루에서는 aokrw)으로 구성됩니다.
예제
Solidity에서 지정 발행자 조회
인터페이스에서 OkrwParams struct를 import합니다. 상수 OKRW_CONTRACT는 0x1000000000000000000000000000000000000001의 프리컴파일에 바인딩됩니다.
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.18;
import { IOkrw, OkrwParams, OKRW_CONTRACT } from "@maroo-chain/contracts/precompiles/okrw/IOkrw.sol";
contract MinterCheck {
function authorizedMinter() external view returns (address) {
OkrwParams memory p = OKRW_CONTRACT.getParams();
return p.minter;
}
function mintDenom() external view returns (string memory) {
OkrwParams memory p = OKRW_CONTRACT.getParams();
return p.mintDenom; // "aokrw"
}
} ethers v6로 OKRW 파라미터 조회
클라이언트 측에서는 struct 이름 변경이 드러나지 않습니다. ABI는 익명 튜플로 표현됩니다. IOkrw에 mint 호출을 시도하기 전에 지정 발행자를 확인하는 용도로 이 조회를 사용합니다.
import { JsonRpcProvider, Contract } from "ethers";
const OKRW = "0x1000000000000000000000000000000000000001";
const abi = [
"function getParams() view returns (tuple(address minter, string mintDenom) params)"
];
const provider = new JsonRpcProvider("https://rpc-testnet.maroo.io");
const okrw = new Contract(OKRW, abi, provider);
const params = await okrw.getParams();
console.log("minter:", params.minter);
console.log("mintDenom:", params.mintDenom); // "aokrw"