チェーンの下でインタラクションして太坊Dappインターフェースで開発します.
3334 ワード
主にNodeJsを使って、フロントエンドでユーザーの照会と振替を利用するために提供インターフェースを呼び出すことです.
エーテル坊Dappプロジェクト
プロジェクト
機能ニーズ通行人 みんなの計画項目を調べます.2@OK 衆のプロジェクトのaddressに基づいて、この衆の計画の詳細(参加人数/予定金額/目標金額/終了時間/参加人数)を取得し、2.5@OK 衆計画プロジェクトに参加します.3@OK 衆議案の発起人 衆議案を作成します.1@OK 自分で作成した大衆計画を確認してください.5@OK 支払要求を開始し、6 大勢の参加者 参加したプロジェクトを確認します.4@OK 決裁請求、7 現在のaccount@OK を取得します.
知能契約及びテスト外部関数の呼び出し参加者は自分が参加した項目をどうやって保存しますか? 定義データ: 新しい契約にデータを置くPlayer ToFunings.mapping(address=>address[]prvate player ToFunnings; データを保存します.Funing support時データ を保存します.
demo 知能契約及びテスト(web 3.js)インターナショナル.jsスマート契約コードパッケージ 契約書createFuning を作成します.
転載先:https://www.cnblogs.com/xiaocongcong888/p/9553300.html
エーテル坊Dappプロジェクト
プロジェクト
機能ニーズ
知能契約及びテスト
// , FundingFactory
contract PlayerToFundings {
mapping(address => address[]) playersFundings;
// ( Funding support )
function joinFunding(address funding, address sender) public{
playersFundings[sender].push(funding);
}
// ( FundingFactory )
function getFundings(address sender) public view returns(address[] fundings){
// return msg.sender;
return playersFundings[sender];
}
}
contract FundingFactory {
PlayerToFundings playerToFundings;
// PlayerToFundings
constructor() public {
address playerToFundingsAddress = new PlayerToFundings();
playerToFundings = PlayerToFundings(playerToFundingsAddress);
}
// *
function getPlayerFoundings() public view returns(address[]){
return playerToFundings.getFundings(msg.sender);
}
}
contract Funding {
// factory Funding , PlayerToFundings 。
constructor (string _projectName, uint _supportMoney, uint _goalMoney, PlayerToFundings _p2f,address _address) public {
...
p2f = _p2f;
}
// * p2f, PlayerToFundings mapping
funtion support() public payable {
...
players.push(msg.sender);
p2f.joinFunding(address(this), msg.sender);
}
}
pragma solidity ^0.4.17;
contract PlayerToFundings {
uint count = 100;
function setFundingsCount(uint _count) public {
count = _count;
}
function getFundingsCount() public view returns(uint){
return count;
}
}
contract Factory {
PlayerToFundings p2f;
address[] public fundings;
// function Test(address p2fAddress) public{
// p2f = PlayerToFundings(p2fAddress);
// }
function Factory() public{
address p2fAddress = new PlayerToFundings();
p2f = PlayerToFundings(p2fAddress);
}
function createFounding() public {
address funding = new Funding(p2f);
fundings.push(funding);
}
function setCount(uint count) public {
p2f.setFundingsCount(count);
}
function getCount() public view returns(uint){
return p2f.getFundingsCount();
}
}
contract Funding {
PlayerToFundings p2f;
function Funding(PlayerToFundings _p2f) public{
p2f = _p2f;
}
function support() public {
p2f.setFundingsCount(999);
}
}
転載先:https://www.cnblogs.com/xiaocongcong888/p/9553300.html