agent.drain
drain(agentId, maxAmount?) → DrainResult 에이전트의 AA 지갑에서 소유자의 기본 지갑으로 OKRW를 다시 전송합니다. 회수할 금액이 에이전트의 spendingLimit보다 크면 한도 이하의 여러 전송으로 나누어 보냅니다. 소유자 주소는 allowedTargets와 상관없이 항상 허용됩니다.
파라미터
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
agentId | string | ✓ | 자금을 회수할 에이전트의 UUID입니다. |
maxAmount | string | - | 회수할 총액의 상한으로, 십진수 OKRW 문자열입니다. 생략하면 잔액 전체를 회수합니다. |
반환값
타입:
object 모든 전송이 온체인에서 확인되면 { agent, totalDrained, unit, txHashes, chunkCount, remainingBalance }를 반환합니다. totalDrained와 remainingBalance는 십진수 OKRW 문자열입니다.
에러
| 코드 | 이름 | 설명 |
|---|---|---|
AGENT_NOT_ACTIVE | AgentNotActive | 에이전트가 PENDING, FROZEN 또는 REVOKED 상태입니다. |
INSUFFICIENT_BALANCE | InsufficientBalance | 에이전트 잔액이 0이라 회수할 금액이 없습니다. |
TX_FAILED | TxFailed | 회수 도중 전송이 실패했습니다. 앞선 전송은 완료되었을 수 있으며, detail에 drainedSoFar와 remainingBalance가 담깁니다. 재시도 가능하며, agent.drain을 다시 호출하면 이어서 회수합니다. |
예제
최대 500 OKRW 회수
{
"agentId": "123e4567-e89b-12d3-a456-426614174000",
"maxAmount": "500"
}