Skip to content

Instantly share code, notes, and snippets.

View michielmulders's full-sized avatar

Michiel Mulders michielmulders

View GitHub Profile
@michielmulders
michielmulders / helloworld.rho
Created May 30, 2018 19:25
Rholang hello world
new HelloWorld in {
contract HelloWorld(return) = {
return!("Hello, World!")
} |
new myChannel in {
HelloWorld!(*myChannel)
}
}
@michielmulders
michielmulders / helloagain.rho
Created May 30, 2018 19:27
Rholang hello again input output
new HelloAgain in {
contract HelloAgain(_) = {
new chan in {
chan!("Hello again, world!") |
for (@text <- chan) { Nil }
}
} | HelloAgain!(Nil)
}
@michielmulders
michielmulders / token.rho
Created May 30, 2018 19:44
Rholang RChain token smart contract Ethereum clone
contract Token( message_sender, total_supply ) {
def transfer( message_sender, to, amount, rtn ) = {
for( balances <- balances_channel ) {
x!( *balances.get(message_sender) )
| y!( *balances.get(to) )
| for( balance_of_sender <- x ; balances_of_receiver <- y ) {
@michielmulders
michielmulders / erc1070.sol
Created June 12, 2018 19:50
ERC1070 standard
initializeBounty(address _controller, string _data)
fulfillBounty(address[] _fulfillers, uint[] _numerators, uint _denomenator, string _data)
acceptFulfillment(uint _fulfillmentId, StandardToken[] _payoutTokens, uint[] _tokenAmounts)
drainBounty(StandardToken[] _payoutTokens)
changeBounty(address _controller, string _data)
@michielmulders
michielmulders / remove_options.js
Created June 21, 2018 14:38
React Remove Options From List - Pass function two levels
import React from "react";
import ReactDOM from "react-dom";
import "./styles.css";
class IndecisionApp extends React.Component {
constructor(props) {
super(props);
this.handleDeleteOptions = this.handleDeleteOptions.bind(this);
@michielmulders
michielmulders / collections_config.json
Created July 30, 2018 08:40
Collection Config HLF
[
{
"name": "carCollection",
"policy": "OR ('Org1MSP.member','Org2MSP.member')",
"requiredPeerCount": 0,
"maxPeerCount": 3,
"blockToLive":1000000
}
]
@michielmulders
michielmulders / MyChaincode.ts
Created July 30, 2018 09:00
Original createCar function Hyperledger Fabric
async createCar(stubHelper: StubHelper, args: string[]) {
const verifiedArgs = await Helpers.checkArgs<any>(args[0], Yup.object()
.shape({
key: Yup.string().required(),
make: Yup.string().required(),
model: Yup.string().required(),
color: Yup.string().required(),
owner: Yup.string().required(),
}));
@michielmulders
michielmulders / MyChaincode.ts
Created July 30, 2018 09:02
Hyperledger Fabric private data
await stubHelper.putState(verifiedArgs.key, car, {privateCollection: 'carCollection'});
@michielmulders
michielmulders / MyChaincode.ts
Created July 30, 2018 09:05
Query private data Hyperledger Fabric
async queryPrivateCar(stubHelper: StubHelper, args: string[]) {
const verifiedArgs = await Helpers.checkArgs<any>(args[0], Yup.object()
.shape({
key: Yup.string().required(),
}));
const car = await stubHelper.getStateAsObject(verifiedArgs.key, {privateCollection: 'carCollection'});
if (!car) {
throw new NotFoundError('Car does not exist');
@michielmulders
michielmulders / Keybase proof
Created August 3, 2018 15:35
Keybase Proof
### Keybase proof
I hereby claim:
* I am michielmulders on github.
* I am michielmulders (https://keybase.io/michielmulders) on keybase.
* I have a public key ASB9UR_k4yrvwvtGSf6dTRRvrRkO2yL1dXCUHUnM-VJkego
To claim this, I am signing this object: