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.

아래 버튼을 클릭하면 오픈소스 컨트랙트 저장소를 확인할 수 있습니다.

구조체

SpendPermission

지출 권한의 전체 파라미터를 정의합니다.
SpendPermission 구조체의 필드는 아래 정의된 순서를 정확히 따라야 합니다.
필드타입설명
accountaddress이 지출 권한이 유효한 스마트 계정입니다.
spenderaddressaccount의 토큰을 지출할 수 있는 주체입니다.
tokenaddress토큰 주소입니다. ERC-7528 네이티브 토큰 주소 또는 ERC-20 컨트랙트 주소를 사용합니다.
allowanceuint160period 동안 지출할 수 있는 최대 한도입니다.
perioduint48사용된 allowance를 주기적으로 초기화하는 시간 길이입니다. 단위는 초입니다.
startuint48이 지출 권한이 유효해지는 시작 시각입니다. Unix 초 단위를 사용합니다.
enduint48이 지출 권한이 유효한 종료 시각입니다. Unix 초 단위를 사용합니다.
saltuint256나머지 데이터가 같더라도 서로 다른 지출 권한을 구분하기 위한 임의 salt 값입니다.
extraDatabytes권한에 포함할 임의 데이터입니다.

PeriodSpend

현재 활성 기간 동안 누적된 지출량을 설명합니다.
필드타입설명
startuint48기간 시작 시각입니다. Unix 초 단위를 사용합니다.
enduint48기간 종료 시각입니다. Unix 초 단위를 사용합니다.
spenduint160해당 기간 동안 누적된 지출 금액입니다.

컨트랙트 함수

approve

account에서 직접 호출해 지출 권한을 승인합니다. SpendPermission에 지정된 account만 호출할 수 있습니다.
function approve(SpendPermission calldata spendPermission) external;

approveWithSignature

account 소유자의 서명으로 지출 권한을 승인합니다. 필요 시 자동 계정 생성을 지원하는 ERC-6492 서명과 호환됩니다.
function approveWithSignature(SpendPermission calldata spendPermission, bytes calldata signature) external;

spend

지출 권한을 사용해 account에서 spender로 토큰을 전송합니다. 권한에 지정된 spender만 호출할 수 있습니다.
function spend(SpendPermission memory spendPermission, uint160 value) external;

revoke

지출 권한을 영구적으로 비활성화합니다. 권한에 지정된 account만 호출할 수 있습니다.
function revoke(SpendPermission calldata spendPermission) external;

revokeAsSpender

지출 권한을 영구적으로 비활성화합니다. 권한에 지정된 spender만 호출할 수 있습니다.
function revokeAsSpender(SpendPermission calldata spendPermission) external;

getHash

EIP-712에 따라 서명용 SpendPermission 구조체 해시를 생성합니다.
function getHash(SpendPermission memory spendPermission) public view returns (bytes32);

isApproved

현재 시간이 권한의 유효 기간 안에 있는지와 무관하게, 해당 지출 권한이 승인되었는지 확인합니다.
function isApproved(SpendPermission memory spendPermission) public view returns (bool);

isRevoked

현재 시간이 권한의 유효 기간 안에 있는지와 무관하게, 해당 지출 권한이 철회되었는지 확인합니다.
function isRevoked(SpendPermission memory spendPermission) public view returns (bool);

isValid

현재 시간이 권한의 유효 기간 안에 있는지와 무관하게, 해당 지출 권한이 승인되었고 철회되지 않았는지 확인합니다.
function isValid(SpendPermission memory spendPermission) public view returns (bool);

getLastUpdatedPeriod

지출 권한의 마지막으로 갱신된 기간에 대한 start, end, 누적 spend 값을 조회합니다.
function getLastUpdatedPeriod(SpendPermission memory spendPermission) public view returns (PeriodSpend memory);

getCurrentPeriod

현재 기간에 대한 start, end, 누적 spend 값을 조회합니다. 현재 시간이 권한의 유효 기간 밖이면 revert되지만, 지출 권한이 승인되었는지 또는 철회되었는지는 검사하지 않습니다.
function getCurrentPeriod(SpendPermission memory spendPermission) public view returns (PeriodSpend memory);