NFTokenCreateOffer

트랜잭션을 실행하는 계정이 소유한 NFT 토큰에 대한 새로운 판매 제안을 생성하거나 다른 계정이 소유한 NFT 토큰에 대한 새로운 구매 제안을 생성합니다.

성공하면 트랜잭션은 NFTokenOffer 객체를 생성합니다. 각 제안은 제안을 낸 계정의 소유자 예치금에 하나의 객체로 계산됩니다.

(NonFungibleTokenV1_1 수정안에 의해 추가되었습니다.)

NFTokenCreateOffer JSON 예시

{
    "TransactionType": "NFTokenCreateOffer",
    "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX",
    "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007",
    "Amount": "1000000",
    "Flags": 1
}

NFTokenCreateOffer 필드

일반적인 필드 외에도 NFTokenCreateOffer 트랜잭션은 다음 필드를 사용합니다:

필드

JSON 유형

설명

Owner

문자열

계정 ID

(선택 사항) 해당 NFToken을 소유한 사람. 토큰을 구매하려는 오퍼인 경우 이 필드가 있어야 하며 계정 필드와 달라야 합니다(이미 보유한 토큰을 구매하려는 오퍼는 의미가 없으므로). 토큰을 판매하는 오퍼인 경우, 소유자는 암묵적으로 계정과 동일하므로 이 필드가 없어야 합니다(이미 보유하지 않은 토큰을 판매하는 오퍼는 의미가 없으므로).

NFTokenID

문자열

해시256

오퍼가 참조하는 NFToken 객체를 식별합니다.

Amount

해당 NFT 토큰에 대해 예상되거나 제공되는 금액을 나타냅니다. 금액은 0이 아니어야 하며, 판매 오퍼이고 자산이 XRP인 경우를 제외하고는 0을 지정하는 것이 합법적입니다. 이는 토큰의 현재 소유자가 토큰을 다른 사람에게 무상으로 제공하거나 대상 필드에 지정된 계정에 무상으로 제공한다는 의미입니다.

Expiration

숫자

UInt32

(선택 사항) Ripple 에포크 이후 오퍼가 더 이상 활성화되지 않는 시간(초)입니다.

Destination

문자열

계정 ID

(선택 사항) 있는 경우, 이 오퍼는 지정된 계정에서만 수락할 수 있음을 나타냅니다. 다른 계정에서 이 오퍼를 수락하려는 시도는 반드시 실패해야 합니다.

NFTokenCreateOffer 플래그

NFTokenCreateOffer 유형의 트랜잭션은 다음과 같이 Flags 필드에 추가 값을 지원합니다:

플래그 이름

16진수 값

소수점 값

설명

tfSellNFToken

0x00000001

1

활성화된 경우 해당 제안이 판매 제안임을 나타냅니다. 그렇지 않으면 매수 제안입니다.

오류 사례

모든 트랜잭션에서 발생할 수 있는 에러 외에도 NFTokenCreateOffer 트랜잭션은 다음과 같은 트랜잭션 결과 코드를 발생시킬 수 있습니다:

에러 코드

설명

temDISABLED

NonFungibleTokensV1 수정안이 활성화되지 않았습니다.

temBAD_AMOUNT

금액 필드가 유효하지 않습니다. 예를 들어 구매 오퍼의 금액이 0이거나 금액이 대체 가능한 토큰으로 표시되어 있지만 NFT 토큰에 lsfOnlyXRP 플래그가 활성화되어 있는 경우입니다.

temBAD_EXPIRATION

지정된 Expiration시간이 잘못되었습니다(예: 0).

tecDIR_FULL

보낸 사람은 이미 ledger에서 너무 많은 개체를 소유하고 있거나 이 토큰을 구매하거나 판매할 제안이 이미 너무 많습니다.

tecEXPIRED

지정된 Expiration시간이 이미 지났습니다.

tecFROZEN

금액은 대체 가능한 토큰으로 표시되지만 이 오퍼에서 토큰을 받을 신뢰선 중 하나가 동결됩니다. 이는 판매자의 트랜잭션 트랜잭션 라인 또는 NFT 토큰 발행자의 신뢰선일 수 있습니다(NFT 토큰에 트랜잭션 수수료가 있는 경우).

tecINSUFFICIENT_RESERVE

발신자가 오퍼를 올린 후 reserve requirement을 충족할 만큼 충분한 XRP를 보유하고 있지 않습니다.

tecNO_DST

대상 필드에 지정된 계정이 원장에 존재하지 않습니다.

tecNO_ENTRY

예상 계정이 NFT 토큰을 소유하고 있지 않습니다.

tecNO_ISSUER

금액 필드에 지정된 발행자가 존재하지 않습니다.

tecNO_LINE

금액 필드가 대체 가능한 토큰으로 표시되어 있지만 NFT 토큰의 발행자가 해당 토큰에 대한 신뢰선을 가지고 있지 않으며 NFT 토큰에 lsfTrustLine 플래그가 활성화되어 있지 않습니다.

tecNO_PERMISSION

대상 계정이 들어오는 NFTokenOffer를 차단합니다. (DisallowIncoming 수정안이 필요합니다.)

tecUNFUNDED_OFFER

구매 오퍼의 경우, 발신자가 금액 필드에 명시된 자금을 사용할 수 있습니다. 금액이 XRP인 경우 준비금 요건 때문일 수 있으며, 금액이 대체 가능한 토큰으로 표시된 경우 동결된 토큰 때문일 수 있습니다.

tefNFTOKEN_IS_NOT_TRANSFERABLE

NFT 토큰에 lsfTransferable 플래그가 비활성화되어 있으며, 이 트랜잭션은 발행자와 NFT 토큰을 전송하지 않습니다.

Last updated