DMCC Whitepaper. Japanese
  • 紹介
  • マーケット
  • 問題点
  • ソリューション
  • ビジネスモデル
  • トークンエコノミー
    • 1.DMCC トークン概要
    • 2.エコノミー概要
    • 3.トークンの消費
    • 4.DMC 補償
    • 5.ガバナンス
    • 6.ウォレット
  • トークンアーキテクチャ
    • 1.イーサリアムブロックチェーンに配布されたDMCCトークン
    • 2.DMCCトークンのコアアーキテクチャ
    • 3.NFT コンテンツ購入機能
    • 4.DMCのNFTアルゴリズム
    • 5.マルチシグニチャー(Multi Sig)機能
  • トークン分配
  • ロードマップ
  • チーム
  • 免責条項
Powered by GitBook
On this page
  1. トークンアーキテクチャ

1.イーサリアムブロックチェーンに配布されたDMCCトークン

DMCCのトークンは、Solidityスマートコントラクトを活用する。

Solidity準拠のDMCCのスマートコントラクトは、以下の主要機能を実装している。

a. TotalSupplyと BalanceOf Returnは、使用可能なトークンの合計数とアカウントが所有しているトークンの合計量です。 これらの関数転送コマンドを使用して、関数呼び出し者から別のアドレスにトークンを転送することができる。

b. DMCCトークンの目立つ特徴の一つは、一つのアドレス(Address)が他のアドレスに代わってトークンを転送できるように許容できるという点だ。 このように代理命令が行われる場合、transferFrom および承認関数が同時に使用される。

c. 承認(Approval)機能を通じてDMCCトークン所有者は自分以外の他のユーザー、すなわち「受信者(Receiver)」にトークンを使用できる権限を付与する。 この時、やはりtransfer From関数を使用すれば、受信者がトークン所有者の代わりにDMCCを送信することができる。最後に、関数許容量を通じて受信者が以前に許容したアカウントから引き出すことができるトークンの量をクエリ(query)することもできる。 この時、イベント(event)は転送、承認、および転送作業実行の結果として実行される。

d. スマートコントラクトにトークンと相互作用できるコードがない場合、転送命令を入れたとしてもトークンが損失するエラーが発生する可能性がある。 そのため、DMCCトークンはスマートコントラクトを起こす際に承認(Approve)と転送(transfer from)を組み合わせて使用する。

DMCCを発行したSolidity 標準は、他の契約、ウォレット、またはマーケットプレイスと統合できるように、すべてのSolidityトークンによって実装される機能セットを定義する。

//solidity

function totalSupply() public view virtual override(IERC20, IERC777) returns (uint256) { return _totalSupply;

}

function balanceOf(address tokenHolder) public view virtual override(IERC20, IERC777) returns (uint256) { return _balances[tokenHolder];

}

function allowance(address holder, address spender) public view virtual override returns (uint256) { return _allowances[holder][spender];

}

function transfer(address recipient, uint256 amount) public virtual override returns (bool) {

_send(_msgSender(), recipient, amount, "", "", false); return true;

}

function approve(address spender, uint256 value) public virtual override returns (bool) { address holder = _msgSender();

_approve(holder, spender, value); return true;

}

function transferFrom(

address holder,

address recipient,

uint256 amount

) public virtual override returns (bool) { address

spender = _msgSender();

_spendAllowance(holder, spender, amount);

_send(holder, recipient, amount, "", "", false);

return true;

}

//

上記のようなSolidity機能を使用すると、外部ユーザー(例:暗号化ウォレットアプリ)がユーザーの残高を確認し、適切な権限を持つユーザー間で資金を送金することができる。 スマートコントラクトは2つの特別に定義されたイベントを定義する。

//solidity

event Approval(address indexed tokenOwner, address indexed spender, uint tokens); event Transfer(address indexed from, address indexed to, uint tokens);

//

標準ソリディティ機能の他にも、多くのソリディティトークンには追加フィールドがある。 以下のようなフィールドの先に追加されたフィールドの例を示す。

//solidity

string public constant name; string

public constant symbol; uint8

public constant decimals;

//

Solidity命名法に関連するいくつかの事項は以下の通りである。

-DMCCのpublicパブリック関数機能は、他のトークンでパブリック関数を持っていれば、これによってDMCCのスマートコントラクトを起こすことができる。

-DMCCdml view機能は基本的に定数を意味する。 すなわち、契約の内部状態は関数によって変更されない。

-An eventはDMCCのSolidityがクライアントを許可する方式である(例:アプリケーションのフロントエンドが契約内の特定の発生について通知を受けることができる)。

PreviousトークンアーキテクチャNext2.DMCCトークンのコアアーキテクチャ

Last updated 11 months ago