define & declare in actuator factory new actuator for MintNftTokenContract
setup contract workflow: parse to json, unpack json to transaction...
define gRPC api, implement gRPC api
create HTTP api: servlet, binding path. for fullnode api only
limit this contract on block version >= 5 only
create capsule wrapper for contract
create contract store
Bizz:
contract message:
message MintNftTokenContract{
bytes owner_address = 1; //owner or minter, required
bytes to_address = 2; //target address, required. if missing: create new account & charge more fee
int64 token_id = 3; id of nft token.. Optional, if not exist, auto generate one & return.
string uri = 4; //uri of external resource
string metadata = 5;//json data to describe resource, optional
int64 available_time = 6;//if missing: available now. if exist: the timestamp to be unlocked
}
owner or minter should do this contract
the approval will mint new NFT token based on template state
if reach limit of supply: reject
if to_address not exist: charge more fee & create new account
charge fee: tx should charge the owner 2 unw + max(bandwith fee, createAccFee) + create account fee in system contract
Mint NFT contract workflow suggestion:
Bizz: