4.DMCのNFTアルゴリズム

DMCのNFTはすべてPolygonアルゴリズムに基づいています。

1)DMC NFTの属性とインターフェース

発行されるNFTは以下のような固有属性があります

-DMCの各NFT会員権は固有識別コードを内包している。

-他のNFTトークンと同じように1対1の取引ができない。

-各NFTの所有者が存在し、これは誰でも検証および確認が可能だ。

-DMCのすべてのNFTはイーサリアムブロックチェーン上に存在し、イーサリアム基盤のNFTマーケットで買収や売却が可能だ。

-但し、NFTごとに等級が存在するものもあり、等級によって最初の価格が互いに異なる。

DMCのNFTはPolygonを基盤とするため、すべてのNFTはイーサリアム-721777スマートコントラクトに内包されたunit256 IDで定義される。 このように、コントレクトアドレスとunit256tokenIdペアは、イーサリアムのブロックチェーンで唯一の資産として識別される。UUIDとsha3ハッシュがunit256でコンバートできるため、DMCはunit256を選ぶ。

DMCのNFTインターフェース規格スタンダードは以下のように記述される。

//solidity

interface IERC777 {

event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData);

event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes

operatorData);

event AuthorizedOperator(address indexed operator, address indexed tokenHolder);

event RevokedOperator(address indexed operator, address indexed tokenHolder); function name() external view returns (string memory);

function symbol() external view returns (string memory); function granularity() external view returns (uint256);

function totalSupply() external view returns (uint256);

function balanceOf(address owner) external view returns (uint256);

function send(address recipient, uint256 amount, bytes calldata data) external;

function burn(uint256 amount, bytes calldata data) external;

function isOperatorFor(address operator, address tokenHolder) external view returns (bool); function authorizeOperator(address operator) external;

function revokeOperator(address operator) external;

function defaultOperators() external view returns (address[] memory);

function operatorSend(address sender, address recipient, uint256 amount, bytes calldata data, bytes calldata operatorData) external;

function operatorBurn(address account, uint256 amount, bytes calldata data, bytes calldata operatorData)

external;

event Sent(address indexed operator,address indexed from,address indexed to,uint256 amount,bytes data,bytes operatorData);

}

interface IERC20 {

event Transfer(address indexed from, address indexed to, uint256 value);

event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256);

function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool);

function allowance(address owner, address spender) external view returns (uint256);

function approve(address spender, uint256 amount) external returns (bool);

function transferFrom(address from,address to,uint256 amount) external returns (bool);

}

//

Last updated