当前位置: 首页 > news >正文

手机版网站模板 免费怎么在网上做广告宣传

手机版网站模板 免费,怎么在网上做广告宣传,网站建设遇到哪些危险,竞价推广代运营服务前提 Ownable:监管者合约,有一个函数能转让监管者。 SupplyChainFin:供应链金融合约,银行、公司信息上链#xff0c;公司和银行之间的转账。 发票#xff1a;记录者交易双方和交易金额等的一种记录数据。如:我在超市买了一瓶水,超市给我开了一张发票。 Ownable // SPDX-…前提 Ownable:监管者合约,有一个函数能转让监管者。 SupplyChainFin:供应链金融合约,银行、公司信息上链公司和银行之间的转账。 发票记录者交易双方和交易金额等的一种记录数据。如:我在超市买了一瓶水,超市给我开了一张发票。 Ownable // SPDX-License-Identifier: MIT pragma solidity 0.4 0.9;/* *title Ownable *dev */ contract Ownable{address public owner; // 监管者event OwnershipTransferred( // 监管者转让结构体address indexed priviousOwner, // indexed表名可以被索引address indexed newOwner);constructor() {owner msg.sender;}// 判断用户是否是监管者modifier onlyOwner(){require(msg.sender owner,You cannot owner!);_;}// 转让所有权,必须是原先监管者转让function transferOwnership(address newOwner) public onlyOwner{require(newOwner ! owner newOwner ! address(0),newOwner cannot be empty and equal to the priviousOwner);emit OwnershipTransferred(owner, newOwner);owner newOwner;}} SupplyChainFin // SPDX-License-Identifier: MIT pragma solidity 0.4 0.9; import ./Ownable.sol;/** *title SuppluChainFin *dev */ contract SupplyChainFin is Ownable{// 监管者信息结构体struct Supervisor{string supervisorName; address supervisorAddress;}// 公司信息结构体struct Company{string companyName;address companyAddress;uint creditAsset;uint[] acceptReceiptIndex;uint[] sendReceiptIndex;}// 银行信息结构体struct Bank{string bankName;address bankAddress;uint creditAsset;uint[] acceptReceiptIndex;uint[] sendReceiptIndex;}// 数字发票收据信息struct Receipt {address senderAddress; address accepterAddress;uint8 receiptType; // 发票类型uint8 transferType; // 转账类型uint amount; // 交易额}// 公司的map ,用于快速搜索mapping(address Company) companyMap;// 银行mapmapping (address Bank) bankMap;// 发票的mapmapping (uint Receipt) receiptMap;//监管者实体Supervisor public supervisor;// 公司地址的数组address[] public companies;// 银行地址的数组address[] public banks;//数组发票索引uint public receiptIndex;constructor(string memory name){supervisor Supervisor(name,msg.sender); // 初始化监管者信息}// 将公司信息添加到智能合约中function addCompany(string memory name,address companyAddress)public payable returns(bool){// 初始化公司结构体// 添加到公司map// 添加到公司数组Company memory newCompany Company(name,companyAddress,msg.value,new uint[](0),new uint[](0));companyMap[companyAddress] newCompany;companies.push(companyAddress);return true;}// 获取公司信息function getCompany(address companyAddress) public view returns(string memory,address,uint,uint[] memory,uint[] memory){// 用地址拿出公司结构体// 将需要的数据一起返回Company memory company companyMap[companyAddress];return (company.companyName,company.companyAddress,company.creditAsset,company.acceptReceiptIndex,company.sendReceiptIndex);}// 添加银行信息上链function addBank(string memory bankName,address bankAddress) public payable returns(bool){Bank memory newBank;newBank.bankName bankName;newBank.bankAddress bankAddress;newBank.creditAsset msg.value;bankMap[bankAddress] newBank;banks.push(bankAddress);return true;}// 获取银行信息function getBank(address bankAddress) public view returns(string memory,address,uint,uint[] memory,uint[] memory){Bank memory bank bankMap[bankAddress];return (bank.bankName,bank.bankAddress,bank.creditAsset,bank.acceptReceiptIndex,bank.sendReceiptIndex);}// 获取公司全部地址function getAllCompanyAddress() public view returns(address[] memory){return companies;}// 获取银行全部地址function getAllBankAddress() public view returns(address[] memory){return banks;}// 获取凭证function getRecipt(uint index)public view returns(address,address,uint8,uint8,uint){Receipt memory receipt receiptMap[index];return (receipt.senderAddress,receipt.accepterAddress,receipt.receiptType,receipt.transferType,receipt.amount);}//存证交易// receiptType: 发票类型(存证、现金)//1: 交易类型为存证//2交易类型为现金// transferType: 交易类型//1: 银行转账给公司//2: 公司与公司间转账//3: 公司转账给银行// 银行向公司交易(公司颁布凭证):function bankToCompanyReceipt(address senderAddress, // 凭证发送方address accepterAddress, // 凭证接受方uint amount, // 交易额uint8 receiptType // 凭证类型) public returns(uint){// 银行转账给公司,银行是发票接受者只有银行同意要发票这笔交易才能执行require(msg.sender accepterAddress,The function caller must be accper);// 拿出银行、公司结构体Company memory company companyMap[senderAddress];Bank memory bank bankMap[accepterAddress];// 判断公司银行是否存在if(keccak256(bytes(bank.bankName)) keccak256(bytes())){return 404001;}if(keccak256(bytes(company.companyName)) keccak256(bytes())){return 404002;}// 判断银行资产是否小于转账额if(bank.creditAsset amount){return 500001;}// 初始化凭证Receipt memory newReceipt Receipt(senderAddress,accepterAddress,receiptType,1,amount);// 发票索引 1receiptIndex 1;// 根据转账额,相互的 -companyMap[accepterAddress].creditAsset amount;bankMap[senderAddress].creditAsset - amount;// 存凭证索引,这样我们拿到公司或银行信息,拿到发票索引,在拿到发票结构体receiptMap[receiptIndex] newReceipt;companyMap[accepterAddress].sendReceiptIndex.push(receiptIndex);bankMap[senderAddress].acceptReceiptIndex.push(receiptIndex);return 200;}//公司向公司交易(接受钱的公司需要颁布凭证)function companyToCompanyReceipt(address senderAddress,address accepterAddress,uint amount,uint8 receiptType) public returns(uint){require(msg.sender accepterAddress);Company memory senderCompany companyMap[senderAddress];Company memory accepterCompany companyMap[accepterAddress];if (keccak256(bytes(senderCompany.companyName)) keccak256(bytes())) {return 404001;}//确认接收公司存在if (keccak256(bytes(accepterCompany.companyName)) keccak256(bytes())) {return 404002;}//如果存证接收的公司资产小于存证数额那么就不能交易发送存证if (accepterCompany.creditAsset amount) {return 500001;}//创建存证Receipt memory newReceipt Receipt(senderAddress,accepterAddress,receiptType,2,amount);receiptIndex 1;//记录存证存证Map公司Map对应地址的发送和接收存证列表receiptMap[receiptIndex] newReceipt;companyMap[senderAddress].sendReceiptIndex.push(receiptIndex);companyMap[accepterAddress].acceptReceiptIndex.push(receiptIndex);companyMap[senderAddress].creditAsset amount;companyMap[accepterAddress].creditAsset - amount;return 200;}//公司与银行交易(银行颁布凭证)function companyToBankReceipt(address senderAddress,address accepterAddress,uint amount,uint8 receiptType) public returns (uint) {require(msg.sender accepterAddress);Bank memory bank bankMap[senderAddress];Company memory accepterCompany companyMap[accepterAddress];//确认发送公司存在if (keccak256(bytes(bank.bankName)) keccak256(bytes())) {return 404001;}//确认接收公司存在if (keccak256(bytes(accepterCompany.companyName)) keccak256(bytes())) {return 404002;} //如果存证接收的公司资产小于存证数额那么就不能交易发送存证if (accepterCompany.creditAsset amount) {return 500001;}//创建存证Receipt memory newReceipt Receipt(senderAddress,accepterAddress,receiptType,3,amount);receiptIndex 1;//记录存证存证Map公司Map对应地址的发送和接收存证列表receiptMap[receiptIndex] newReceipt;bankMap[senderAddress].sendReceiptIndex.push(receiptIndex);companyMap[accepterAddress].acceptReceiptIndex.push(receiptIndex);bankMap[senderAddress].creditAsset amount;companyMap[accepterAddress].creditAsset - amount;return 200;}}
http://www.hkea.cn/news/14423097/

相关文章:

  • 网站建设市场数据分析哪里有网站建设的文章
  • 湖南网站制作流程网站栏目和版块的设计心得
  • 免费免费建网站免费解析网站
  • 网站程序文件wordpress全站静态化
  • 苏州做网站公司 询苏州聚尚网络网站的困难
  • 百度 特定网站搜索seo值怎么提高
  • 江阴便宜做网站查互做蛋白的网站
  • 域名 不做网站wordpress如何添加分类目录
  • 建站公司 长沙和西安网页无法访问手机
  • 建网站要钱吗沈阳三好街网站建设
  • 微信订单网站模版微网站背景图片
  • 建立网站就是制作网页对吗建设网上商城网站
  • error 403 网站拒绝显示东莞关键词排名seo
  • 青海网站建设策划宁波开发投资有限公司
  • 网站建设教程网昆明seo外包
  • 用ftp改网站电话怎么内页底部的没有变无锡做网站seo的
  • 忆达城市建设游戏登录网站产品展示网站 模板
  • 企业网站建设综合实训心得体会一千字旅游网站设计页面
  • 上海网站建设 觉策动力wordpress主题dux
  • 杭州网站建设洛洛科技全网营销推广案例
  • 北京医疗网站建设公司怎么看网站用的什么cms
  • wordpress教程教程视频关键词是网站seo的核心工作
  • 汽车网站和移动端建设方案常州seo博客
  • 企业网站托管平台有哪些深圳做网站的网络公
  • 哪个网站做美食视频网站好wordpress目录地址
  • 上饶商城网站建设网站代码建设 实例
  • 济南外贸网站建站手机端网站排名
  • 陕西省住房建设厅网站北京公司建站模板
  • 在青海省住房和城乡建设厅网站怎么制作微信表情包
  • 失物招领网站开发项目需求分析做分销微商城网站