Skip to main content

Documentation Index

Fetch the complete documentation index at: https://daehan-base.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

request 메서드는 앱이 지갑에 Ethereum RPC 요청을 보낼 수 있도록 합니다.

명세

interface RequestArguments {
  readonly method: string;
  readonly params?: readonly unknown[] | object;
}

interface ProviderRpcError extends Error {
  message: string;
  code: number;
  data?: unknown;
}

interface ProviderInterface {
  /**
   * @param {RequestArguments} args request arguments.
   * @returns A promise that resolves with the result.
   * @throws {ProviderRpcError} in case of error.
   */
  request(args: RequestArguments): Promise<unknown>;
  disconnect(): Promise<void>;
  emit<K extends keyof ProviderEventMap>(event: K, ...args: [ProviderEventMap[K]]): boolean;
  on<K extends keyof ProviderEventMap>(event: K, listener: (_: ProviderEventMap[K]) => void): this;
}

type CreateProviderOptions = Partial<AppMetadata> & {
  preference?: Preference;
  subAccounts?: SubAccountOptions;
  paymasterUrls?: Record<number, string>;
};

interface BaseAccountSDK {
  getProvider(): ProviderInterface;
  subAccount: {
    create(account: AddSubAccountAccount): Promise<SubAccount>;
    get(): Promise<SubAccount | null>;
    addOwner(params: { address?: `0x${string}`; publicKey?: `0x${string}`; chainId: number }): Promise<string>;
    setToOwnerAccount(toSubAccountOwner: ToOwnerAccountFn): void;
  };
}

예시

import {provider} from "./setup";

const addresses = await provider.request({method: 'eth_requestAccounts'});
const txHash = await provider.request({
    method: 'eth_sendTransaction',
    params: [{from: addresses[0], to: addresses[0], value: 1}]
  }
);

Request 처리 방식

요청은 다음 세 가지 방식 중 하나로 처리됩니다.
  1. 지갑 애플리케이션(모바일 앱, 확장 프로그램, 또는 팝업 창)으로 전달됩니다.
  2. SDK가 로컬에서 직접 처리합니다.
  3. 해당 체인에 기본 RPC provider가 있으면 그 provider로 전달됩니다.

1. 지갑 애플리케이션으로 전달되는 요청

다음 RPC 요청은 지갑 애플리케이션으로 전달됩니다.

2. SDK가 로컬에서 처리하는 요청

다음 요청은 외부 호출 없이 SDK가 직접 처리합니다.

3. RPC provider로 전달되는 요청

표준 Ethereum RPC 메서드는 현재 체인에 설정된 RPC provider로 전달됩니다. 대표적으로 다음이 포함됩니다.