Skip to content

Instantly share code, notes, and snippets.

@juntao
Last active November 26, 2019 07:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juntao/acaece4dcfa1ddb338b11c71c427db59 to your computer and use it in GitHub Desktop.
Save juntao/acaece4dcfa1ddb338b11c71c427db59 to your computer and use it in GitHub Desktop.
Add the following to "dapp -- Resources"
* JavaScript: https://code.jquery.com/jquery-3.4.1.min.js
* CSS: https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css
The "dapp -- CSS" should be empty
https://opendapps.secondstate.io/2019_1574356829918.html
<p>欢迎参加2019普华科技大会!</p><p><center><img width="320px" src="https://www.secondstate.io/demo/2019-puhua.jpg"></center></p><p>请各位嘉宾在下方输入名字签到</p>
<p>签到系统由CyberMiles 公链提供</p><ul><li>全球第一个并且是唯一的无币应用公链</li><li>自主研发的WASM虚拟机实现了1000倍的计算速度提升,可运用在AI / 大数据等领域</li><li>提供政府政务、医疗健康及电商等领域区块链技术解决方案,提供区块链行业知识培训</li></ul>
pragma solidity >= 0.4.0;
contract CheckIns {
address owner;
string public greeting;
string public success;
struct Checkin {
string name;
string organization;
}
mapping (address => Checkin) checkins;
address [] addrs;
constructor (string _greeting, string _success) public {
owner = msg.sender;
greeting = _greeting;
success = _success;
}
function setGreeting (string _greeting, string _success) public {
require (msg.sender == owner);
greeting = _greeting;
success = _success;
}
function getGreeting () public constant returns(string, string) {
return (greeting, success);
}
function addCheckin (string _name, string _organization) public {
checkins[msg.sender] = Checkin(_name, _organization);
addrs.push(msg.sender);
}
function getCheckin (address _addr) public constant returns(string, string) {
return (checkins[_addr].name, checkins[_addr].organization);
}
function getAddrs () public constant returns (address []) {
return addrs;
}
}
<div class="container">
<br/>
<div class="jumbotron">
<p class="lead" id="greeting">欢迎参加2019普华科技大会!请各位嘉宾在下方输入名字签到</p>
<hr/>
<form id="form">
<div class="form-group">
<label for="name">您的姓名</label>
<input type="text" class="form-control" id="name" placeholder="">
</div>
<button type="button" id="submit" class="btn btn-primary">发送</button>
</form>
<div id="formSubmitted" style="display:none">共识上链中,请等 20 秒 ...</div>
<p id="me" style="display:none"><span id="myname" class="badge badge-info"></span> 已经签到,谢谢!<span id="meal" style="color:blue;display:none">请出示签到截图,领取餐券。</span></p>
</div>
<h4>已经签到</h4>
<table class="table table-striped">
<thead>
<tr>
<th scope="col">姓名</th>
<th scope="col">单位</th>
</tr>
</thead>
<tbody id="checkins">
</tbody>
</table>
<p style="text-align:center">永久记录在 <a target="_blank" href="https://app.cybermiles.io/">CyberMiles</a> 公链</p>
</div>
/* Don't modify */
var instance = null;
window.addEventListener('web3Ready', function() {
var contract = web3.ss.contract(abi);
instance = contract.at(cAddr);
reload();
});
var names = {
'Michael Yuan' : 'Second State',
'胡晓维' : 'Second State',
'Andy' : '火车头资本',
'鲍子绵' : ' ',
'曾善平' : '东创科技',
'柴甜甜' : '区投资促进局',
'巢中梁' : '杭州博行',
'陈彪' : '梆梆安全',
'陈晨' : '一墨(杭州)互动传媒有限公司',
'陈澄宇' : '幸福人寿',
'陈柯' : ' ',
'陈兰' : '园聚智谷',
'陈凌英' : '浦发银行',
'陈清华' : '泰矽微',
'陈书艺' : '白鹭',
'陈向红' : ' ',
'陈志云' : '杭州中恒电气股份有限公司',
'戴雪玲' : ' ',
'单东阳' : '半山街道办事处',
'单一' : '锌财经',
'丁金超' : '银杏谷资本',
'董强' : '德创能源',
'范瑾' : '未铭资本',
'方建业' : '丘比特',
'方武英' : '浙江广目企业管理有限公司',
'方赟' : '浙江省北大信息技术高等研究院',
'付煜成' : '杭州屯安科技有限公司',
'高彬' : '英孚康',
'高成龙' : '九成信息',
'高若阳' : '中信证券',
'高少龙' : '软体机器人',
'高小东' : '炒米科技',
'高智源' : ' MINIEYE',
'龚丹宁' : ' ',
'龚杰锋' : '神州云合',
'龚树钢' : '宁波双马',
'顾建东' : '杭州慧库信息技术有限公司',
'郭玮' : '亘存科技',
'韩云峰' : '小河街道办事处',
'郝翌' : '浦发银行',
'何昌杰' : ' ',
'何儒斯' : '云从科技',
'何松东' : '铂诺',
'何云' : '杭州弗莱德科技有限公司',
'贺京梅' : '东兴证券股份有限公司',
'侯玉梅' : '大观资本',
'胡金鑫' : '影创科技',
'胡克' : '比特币中国',
'胡炜' : '浙大网新集团',
'胡彦卿' : '安达富资本',
'胡舟' : '芯片超人',
'黄国纬' : '宁波座头鲸文化科技有限公司',
'黄金' : '首域科技(杭州)有限公司',
'黄明飞' : '开放智能',
'黄润聪' : '源星资本',
'黄兆京' : ' ',
'黄之皓' : '凯尔特创投',
'惠海涛' : '拱墅区人民政府',
'季金露' : '一墨(杭州)互动传媒有限公司',
'贾维剑' : '浙江秘银投资管理有限公司',
'简仁贤' : '竹间智能',
'江玲霞' : '康桥街道办事处',
'姜飞' : '宁波双马',
'姜伟' : '景行创服',
'蒋万诺' : '湖墅街道办事处',
'蒋欣霖' : '舜宇V基金',
'揭兴飞' : '光通天下',
'金虹冶' : '汉理资本',
'金华月' : '杭州共链科技有限公司',
'金灵敏' : ' ',
'景爱军' : '景行创服(杭州)网络科技有限公司',
'兰婷' : '杭州九幽雀投资管理有限公司',
'乐元' : '汉理资本',
'雷濛' : '木链科技',
'黎力' : '墨迹天气',
'李德贞' : '龙岩经发集团',
'李东锦' : ' ',
'李峰' : '小步网络',
'李海波' : '喜马拉雅FM',
'李江' : '新浚资本',
'李杰' : '校宝在线',
'李雷' : '网化/智化',
'李林喆' : '盈动资本',
'李明豪' : '大心电子',
'李卿' : ' ',
'李肖婧' : '区投资促进局',
'李啸' : '彤沁创投',
'李旭鹏' : '浙商创投',
'李亚非' : '深交所',
'李元蓁' : ' ',
'李占猛' : '汉理资本',
'李昭' : '赛马资本',
'厉炳先' : '游艇杂志',
'梁式纯' : '银江资本',
'梁天祥' : 'Lyndon Capital',
'林慧' : ' ',
'林三瑜' : ' ',
'林振清' : '浙江潮达科技有限公司',
'刘百奇' : '星河动力',
'刘波' : '涵越科技',
'刘强' : '36kr',
'刘澍泉' : 'DeepMap',
'刘旭' : '财信金控集团财富证券基金服务部',
'刘烨来' : '凯尔特创投',
'柳静' : '幸福人寿',
'卢斌' : ' ',
'陆明富' : ' ',
'陆一峰' : '信雅达',
'罗敏翔' : '区科技局',
'吕剑清' : '杭州立元创业投资股份有限公司',
'吕昕' : '北大研究院',
'马杜' : '华云数据',
'马金花' : ' ',
'马千里' : '巴比特',
'满坤' : '安创资本',
'毛颖欣' : ' ',
'木明仙' : ' ',
'木妮雅' : ' ',
'纳兰玹' : '同家资本',
'倪黎玮' : '拱宸桥办事处',
'潘颉炜' : '栈略信息',
'潘伟光' : '恒生银行(中国)有限公司',
'彭彬' : ' ',
'钱云龙' : '火柴头',
'樵攀' : '浙商创投',
'秦霞' : '民生银行解放支行',
'全李彬' : '杭州罗赛塔信息科技有限公司',
'冉旭' : '启舰科技',
'茹恒' : ' ',
'汝爱峰' : '杭州绿厨网络集团有限公司',
'阮小龙' : '杭州银行科技文创金融事业部',
'阮志敏' : '飞致云',
'邵宏坚' : '浙江微天下信息科技股份有限公司',
'沈晓音' : '杭摩新材料集团股份有限公司',
'施洋' : '深交所',
'石勇' : '星云互联',
'史高阳' : ' ',
'舒宇航' : '凯银投资',
'舒子振' : '超凡股份',
'苏道仙' : 'BlockFund',
'苏德余' : '创领集团',
'苏亮亮' : '宇泛智能',
'苏绮杨' : 'CyberMiles',
'苏婷' : '中新社',
'苏旭云' : ' ',
'苏义仁' : '杭州珂俪维生物科技有限公司',
'苏渊' : ' ',
'苏忠合' : ' ',
'孙向红' : ' ',
'孙晓瑶' : '杭开集团',
'孙一乔' : '悉之教育',
'谈恩峰' : '熊猫资本',
'唐佳' : '创业邦',
'唐林芳' : ' ',
'陶佳木' : 'Shaka VC',
'屠勇刚' : '嘉兴市财政局数字财政管理服务中心',
'汪倩群' : ' ',
'王军' : '祥符街道办事处',
'王爱东' : ' ',
'王常辉' : '找钢网',
'王飞尧' : '浙江品利股权投资基金管理有限公司',
'王国伟' : '芯石器',
'王虹' : '全景网',
'王惠才' : '杭州联合银行',
'王慧慧' : '相芯科技/美戴',
'王捷' : '锦翼投资',
'王珂' : '歌斐资产',
'王柯' : '同家资本',
'王李华' : '宁波梅山保税港区九剑资产管理有限公司',
'王玲' : '浙江华裕投资',
'王敏娜' : '超腾能源',
'王琪' : ' ',
'王绍迪' : '知存科技',
'王威鹏' : '浙江小牛哥整家互联网科技有限公司',
'王卫华' : '杭州亿脑创新工场有限公司',
'王武平' : '云巴科技',
'王晓龙' : ' ',
'王新玲' : '华云数据',
'王燕飞' : '锦天城',
'王志刚' : '北京金禾投资',
'王竺慧' : '浙江滕华资产管理有限公司',
'吴刚' : ' ',
'吴灏哲' : '浦发银行杭州分行',
'吴维丽' : '大关街道办事处',
'吴谢良' : '赛富投资基金',
'吴阳恒' : '海汇投资',
'吴志刚' : '栈略信息',
'夏晓亮' : '芯耘光电',
'向昶宇' : '木链科技',
'项雷' : '浙商证券',
'项亦斌' : '杭州投资发展有限公司',
'谢璐' : '区投资促进局投资服务促进中心',
'谢小丽' : ' ',
'徐崇表' : ' ',
'邢小四' : '运河财富小镇管委会',
'熊海峰' : '泰矽微',
'徐崇表' : ' ',
'徐涵' : '圣奥集团',
'徐薇' : '浙大网新',
'许春铮' : '眯客',
'闫海龙' : '天下贷',
    '严超杰' : '个人投资者',
    '杨恩潮' : '浙江小牛哥整家互联网科技有限公司',
    '杨湖德' : '伊豆饰品',
    '杨杰' : '欧美思',
    '杨景' : '懒猫',
    '杨莉' : '毕马威',
    '杨烈生' : '杭电股份',
    '杨荣' : ' ',
    '姚宏' : '美融创商贸',
    '奕琴' : '上塘街道办事处',
    '尹江' : ' ',
    '游思丹' : '睿趣资本',
    '于胜浩' : '浙江创信商业管理有限公司',
    '余玲兵' : '宋小菜',
    '虞翀' : '区投资促进局',
    '袁初成' : '缔安科技',
    '岳丽丽' : '创业邦',               
    '詹磊' : ' ',
    '詹忆' : '浙江沪杭甬高速公路股份有限公司',
    '占晓芳' : '杭摩新材料集团股份有限公司',
    '张超' : '达摩家族办公室',
    '张弛' : '湖畔山南',
    '张飞' : '弘颐资产',
    '张丰毅' : '深交所',
    '张弘捷' : ' ',
    '张慧琴' : '区科技工业功能区管委会',
    '张佳洪' : ' ',
    '张骊' : ' ',
    '张蔓' : '华兴资本',
    '张天曧' : '杭州高科技融资担保有限公司',
    '张文强' : '机慧科技',
    '张小龙' : '兴富资本',
    '张兴' : '杭州夏果投资',
    '张旭东' : '卡得万利',
    '张易' : '毕马威',
    '张毅' : '星云互联',
    '张振炜' : '中国建筑',
    '章晓佳' : '区投资促进局招商中心',
    '赵秉' : '和睦街道办事处',
    '赵毅' : '米市巷办事处',
    '赵辰' : '竹间智能',
    '郑昌勇' : '拱墅区区府办',
    '郑楚明' : '启舰科技',
    '郑丁' : '华道创投',
    '郑格' : '杭州东方嘉富资产管理有限公司',
    '郑奇' : '安丰创业投资有限公司',
    '郑晓亮' : '浙江信诚资产管理有限公司',
    '郑照临' : '东方嘉富',
    '周干植' : '华睿投资',
    '周俊临' : '数之联',
    '周骐' : '浙江光通通信工程有限公司',
    '周涛' : '数之联',
    '周燕青' : '杭州城投',
    '周紫霞' : '天下货',
    '朱鸿鹄' : '余杭金控',
    '朱令群' : '杭州博海汇金资产管理有限公司',
    '朱鹏翀' : '栈略信息',
    '祝洁炜' : '每日商报',
'章昕' : '普华资本',
'吴晓丰' : '普华资本',
'钟南海' : '普华资本',
'卢泰至' : '普华资本',
'陈若愚' : ' ',
'陈涛' : '世创电子',
'池伟洁' : '络漫科技',
'方晓农' : '君南',
'蒋安澜' : '光通天下',
'李晓燕' : '网易易现',
'厉玥' : '络漫科技',
'林银' : '连连支付',
'蔺会杰' : '爱股票',
'楼江' : '天蓝星',
'罗清篮' : '漏洞银行',
'单夏烨' : '光通天下',
'沈菁' : '易批',
'史凌骅' : '智鲤信息',
'王萌' : '智鲤信息',
'闻建霞' : '美创科技',
'谢璐' : '区投资促进局投资服务促进中心',
'徐斌' : ' ',
'徐德智' : ' ',
'许陈琼' : '万驾',
'奕琴' : '上塘街道办事处',
'长铗' : '巴比特',
'朱泉峰' : '络漫科技',
'庄建宏' : ' ',
'张洋' : ' ',
'徐元霄' : ' ',
'倪彬斌' : ' ',
'陈礼萍' : ' ',
'王阳' : ' ',
'王小龙' : ' '
};
var meals = [
'Michael Yuan',
'胡晓维',
'章昕',
'吴晓丰',
'钟南海',
'杨杰',
'杨景',
'杨莉',
'奕琴',
'尹江',
'余玲兵',
'袁初成',
'岳丽丽',
'张驰挺',
'张弘捷',
'张慧琴',
'张佳洪',
'张旭东',
'张易',
'张毅',
'章晓佳',
'赵秉',
'赵毅',
'赵辰',
'郑昌勇',
'郑楚明',
'郑丁',
'周俊临',
'周涛',
'周紫霞',
'朱鸿鹄',
'朱鹏翀',
'苏德余',
'苏亮亮',
'苏绮杨',
'苏婷',
'苏义仁',
'苏渊',
'苏忠合',
'孙一乔',
'唐佳',
'汪倩群',
'王爱东',
'王常辉',
'王慧慧',
'王军',
'王玲',
'王敏娜',
'王绍迪',
'王新玲',
'吴刚',
'吴维丽',
'吴志刚',
'夏晓亮',
'向昶宇',
'项亦斌',
'谢璐',
'邢小四',
'熊海峰',
'徐斌',
'徐崇表',
'徐德智',
'许春铮',
'闫海龙',
'严超杰',
'鲍子绵',
'曾善平',
'柴甜甜',
'陈彪',
'陈柯',
'陈清华',
'陈若愚',
'陈书艺',
'董强',
'高彬',
'高少龙',
'高智源',
'龚杰锋',
'龚树钢',
'顾建东',
'郭玮',
'韩云峰',
'何儒斯',
'何松东',
'胡金鑫',
'胡舟',
'黄明飞',
'黄兆京',
'黄之皓',
'惠海涛',
'简仁贤',
'江玲霞',
'姜飞',
'蒋万诺',
'揭兴飞',
'金灵敏',
'兰婷',
'雷濛',
'黎力',
'李德贞',
'李东锦',
'李峰',
'李海波',
'李杰',
'李雷',
'李明豪',
'李卿',
'李肖婧',
'李亚非',
'李元蓁',
'刘百奇',
'刘澍泉',
'刘烨来',
'楼江',
'陆明富',
'罗敏翔',
'马杜',
'马千里',
'满坤',
'木明仙',
'木妮雅',
'倪黎玮',
'潘颉炜',
'钱云龙',
'秦霞',
'冉旭',
'茹恒',
'阮小龙',
'阮志敏',
'单东阳',
'单一',
'石勇',
'史高阳',
'舒旭云'
];
function reload() {
var greeting = "";
var success = "";
instance.getGreeting(function (e, r) {
greeting = r[0];
success = r[1];
$("#greeting").html(greeting);
});
$("#formSubmitted").css("display", "none");
$("#me").css("display", "none");
web3.ss.getAccounts(function (e, address) {
if (!e) {
instance.getCheckin(address, function (ee, result) {
if (result[0]) {
$("#greeting").html(success);
$("#greeting").css("font-size", "14px");
$("#form").css("display", "none");
$("#me").css("display", "block");
$("#myname").html(result[0]);
if (meals.indexOf(result[0]) != -1) {
$("#meal").css("display", "block");
}
}
});
var checkins = "";
instance.getAddrs(function (ee, addrs) {
addrs.forEach(function(addr) {
instance.getCheckin(addr, function (ee, r) {
if (!ee) {
var content = $("#checkins").html();
if (content.indexOf(r[0])!==-1 && content.indexOf(r[1])!==-1) {
// skip
} else {
checkins = "<tr><td>" + r[0] + "</td><td>" + r[1] + "</td></tr>" + checkins;
$("#checkins").html(checkins);
}
}
});
});
});
$("#checkins").html(checkins);
}
});
}
$("#submit").click(function() {
var n = $("#name").val().trim();
var o = names[n];
if (!o) {
o = " ";
}
if (!n) {
alert("请输入姓名");
return false;
}
web3.ss.getAccounts(function (e, address) {
if (!e) {
if (confirm("确认签到 " + n + " [" + o + "]")) {
$("#formSubmitted").css("display", "block");
instance.addCheckin (n, o, {
gas: 499000,
gasPrice: 0
}, function (ee, r) {
if (ee) {
window.alert("Failed at " + address);
}
});
setTimeout(function () {
reload ();
}, 20 * 1000);
}
}
});
return false;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment