Blockchain code Metaverse VR

Crypto×VR×SmartContract(365)

スポンサーリンク

//tips

//基本情報理解

システム監査基準では、監査手続きを実施するときに適用する技法ウォークスルー法があるが、これは、データの生成から入力、処理、出力、活用までのプロセス、及び組み込まれているコントロールをシステム監査人が書面上でまたは実際に追跡するというもの。

システム監査人はシステム監査のまとめとして監査報告書を作成し、監査の依頼者に提出する。監査の結論には指摘事項のほかに改善勧告を記載し、改善の実施状況をフォローアップする。助言・指導まで行えるが非監査部門の責任者への指示や要因追加などの具体的な施策は要求できない。

//pitch deck

企業の物流支出の改善を行う7bridgesのpitchを確認。9枚のシンプルなスライドで、企業が抱える物流の問題点とそれに対する対策が書かれ、その結果どのように改善されるかまで示されていた。製品・サービスデモの掲載や1ページの情報量の整理をされれば、もっとわかりやすかったかもしれない。問題と解決策、その結果という流れは王道でインパクトがある。

//smart contract

先にトークンに組み込まれるERC20のコードを記載してきたが、今度はDex側のコードを書いていく。

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "./ERC20.sol";

contract Dex{

event buy(address acount,address _tokenAddr,uint256 _cost,uint256 _amount);
event sell(address acount,address _tokenAddr,uint256 _cost,uint256 _amount);

mapping(address=>bool)public supportedTokenAddr;

//関数修飾子を使いsellにもbuyにも簡単に対応する
modifier supportsToken(address _tokenAddr){
//サポートされているトークンかどうか
require(supportedTokenAddr[_tokenAddr]==true,"not supported");
_;
}

//使用できるトークンの絞り込み
constructor(address[] memory _tokenAddr){
//対応しているトークンアドレスをtrueにする
for(uint i=0;i<_tokenAddr.length;i++){
supportedTokenAddr[_tokenAddr[i]]=true;
}

}

function buyToken(address _tokenAddr,uint256 _cost,uint256 _amount)external payable supportsToken(_tokenAddr){
//自分のパソコンにある外部の関数を利用する際にはinterfaceを使わずともimportで代替可能
//トークンのインスタンスの作成
ERC20 token=ERC20(_tokenAddr);
//正しくコストが支払われているかの確認
require(msg.value==_cost,"insufficient");
//トークンが残っていることを確認
require(token.balanceOf(address(this))>=_amount,"Token sold out");
//トークン送付
token.transfer(msg.sender, _amount);
emit buy(msg.sender,_tokenAddr,_cost,_amount);
}
function sellToken(address _tokenAddr,uint256 _cost,uint256 _amount)external supportsToken(_tokenAddr){
ERC20 token=ERC20(_tokenAddr);
require(token.balanceOf(msg.sender)>=_cost,"insufficient");

//このコントラクトにethがあるかどうかの確認
require(address(this).balance>=_amount,"not enough funds");

token.transferFrom(msg.sender,address(this), _cost);

(bool success,)=payable(msg.sender).call{value: _amount}("");
require(success,"ETH transfer failed");

emit sell(msg.sender, _tokenAddr, _cost, _amount);

}
}
無事にかきおわり、ターミナルにてtruffle compileを行ったが問題なく通った。
Contractの中にjsonができていたが、こちらはフロントエンドとコミュニケーションする際に使うよう。

人気の記事

1

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

3

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-Blockchain, code, Metaverse, VR
-, ,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.