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_CONTRACT0x1000000000000000000000000000000000000001의 프리컴파일에 바인딩됩니다.

// 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"
ESC
검색어를 입력하세요