Skip to content

settleauct.a ​

Settle an expired Uniq auction

Technical Behavior ​

The action checks that the auction exists in the auction.a table with the specified Uniq with ID token_id and verifies that the expiration date was reached.

executer can be any account, including the auction creator and the bidder. No additional payment is taken from the exectuer account.

If the auction does not contain any bidder, the action will fail. To remove an expired auction without any bids, the cancelauct.a action should be used instead.

If promoter_id was set by the highest bidder, the account will be added to the resale shares list and the payment will be distributed accordingly. If no promoter is specified, then the default promoter will be used specified by Ultra in saleshrlmcfg table under a scope of 1 in default_promoter.

Resale shares in the global resale table will be initialized if they are unavailable.

Shares will be calculated and distributed based on the 2nd Hand Sale Policy.

After the shares are distributed and no additional transfers need to occur, the token will be emplaced into the receiver’s account configured during the bid, and the original token owner will have the token erased from their account.

The auction.a table will have the auction entry erased as well.

Action Parameters ​

Property NameC++ TypeJavaScript TypeDescription
token_iduint64_tNumberID of the Uniq for which there is an auction to settle
executernameStringAccount that authorizes the transaction
memostringStringMemo

CLI - cleos ​

bash
cleos push action eosio.nft.ft settleauct.a '[1, "alice", "settle the auction"]' -p alice@active

JavaScript - eosjs ​

js
await transact(
    [
        {
            account: 'eosio.nft.ft',
            name: 'settleauct.a',
            authorization: [{ actor: 'alice', permission: 'active' }],
            data: {
                token_id: 1,
                executer: "alice",
                memo: "settle the auction",
            },
        },
    ],
    {
        blocksBehind: 3,
        expireSeconds: 30,
    }
);