Skip to content

Instantly share code, notes, and snippets.

@iisaint
iisaint / index.js
Last active December 10, 2021 01:20
Using node.js to deploy a smart contract
const Web3 = require('web3');
const fs = require('fs');
const solc = require('solc');
/*
* connect to ethereum node
*/
const ethereumUri = 'http://localhost:8540';
const address = '0x004ec07d2329997267Ec62b4166639513386F32E'; // user
@iisaint
iisaint / connect.js
Created March 1, 2017 05:21
Using node.js to connect to parity node
const Web3 = require('web3');
/*
* connect to ethereum node
*/
const ethereumUri = 'http://localhost:8540';
let web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider(ethereumUri));
@iisaint
iisaint / BasicToken.sol
Created March 1, 2017 05:23
A simple smart contract
pragma solidity ^0.4.8;
/*
* Basic token
* Basic version of StandardToken, with no allowances
*/
contract BasicToken {
address public owner;
uint public totalSupply;
mapping(address => uint) balances;
@iisaint
iisaint / compile.js
Created March 1, 2017 05:24
Compile a smart contract
const fs = require('fs');
const solc = require('solc');
---- connect的部分省略 ----
/*
* Compile Contract and Fetch ABI, bytecode
*/
let source = fs.readFileSync("./contracts/BasicToken.sol", 'utf8');
console.log('compiling contract...');
@iisaint
iisaint / connect_unlockAccount.js
Created March 1, 2017 05:26
Connect to a parity node
/*
* connect to ethereum node
*/
const ethereumUri = 'http://localhost:8540';
const address = '0x004ec07d2329997267Ec62b4166639513386F32E'; // user
let web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider(ethereumUri));
if(!web3.isConnected()){
@iisaint
iisaint / deploy.js
Created March 1, 2017 05:28
Deploy a compiled smart contract
---- 前面省略 ----
/*
* deploy contract
*/
let gasEstimate = web3.eth.estimateGas({data: '0x' + bytecode});
console.log('gasEstimate = ' + gasEstimate);
let MyContract = web3.eth.contract(abi);
console.log('deploying contract...');
@iisaint
iisaint / SimpleOracle.sol
Last active March 31, 2017 09:10
oracle introduction
pragma solidity ^0.4.10;
contract SimpleOracle {
// 儲存response
mapping(uint256 => bytes) responses;
// 傳出去的Query Event
event QueryEvent(uint256 _id, bytes _query);
// 使用者query功能
@iisaint
iisaint / SimpleOracle2.sol
Last active March 31, 2017 09:39
simple oracle v2
pragma solidity ^0.4.10;
contract SimpleOracle {
// 增加owner
address owner;
// 增加responder
address public responder;
mapping(uint256 => bytes) responses;
// 設定owner
@iisaint
iisaint / Oracle.sol
Created April 13, 2017 05:49
Oracle.sol for My Oracle
pragma solidity ^0.4.10;
contract Oracle {
address owner;
address public cbAddress; // callback address
function Oracle() {
owner = msg.sender;
}
@iisaint
iisaint / OracleResolver.sol
Created April 13, 2017 05:51
OracleResolver.sol for My Oracle
pragma solidity ^0.4.10;
contract OracleResolver {
address owner;
address public oracleAddress;
function OracleResolver() {
owner = msg.sender;
}