Skip to content

Instantly share code, notes, and snippets.

View Siimone's full-sized avatar
🎯
Focusing

Simone Da Re Siimone

🎯
Focusing
View GitHub Profile
@Siimone
Siimone / htlc.rs
Created December 19, 2018 11:26
Bitcoin - HTLC.rs - COMIT
#[derive(Clone, Debug, PartialOrd, Ord, PartialEq, Eq, Hash)]
pub struct Htlc {
recipient_redeem_pubkey_hash: PubkeyHash,
sender_refund_pubkey_hash: PubkeyHash,
secret_hash: SecretHash,
relative_timelock: u32,
script: Script,
}
@Siimone
Siimone / Erc20Htlc.rs
Created December 19, 2018 10:53
Test for compiled Contract - Erc20Htlc - COMIT
#[test]
fn compiled_contract_is_same_length_as_template() {
let htlc = Erc20Htlc::new(
Seconds(100),
Address::new(),
Address::new(),
SecretHash::from_str(
"1000000000000000000000000000000000000000000000000000000000000001",
)
.unwrap(),
@Siimone
Siimone / Erc20Htlc.rs
Created December 19, 2018 10:44
compile_to_hex - Erc20Htlc - COMIT
fn compile_to_hex(&self) -> ByteCode {
let refund_timeout = format!("{:0>8x}", self.refund_timeout.0);
let redeem_address = format!("{:x}", self.redeem_address);
let refund_address = format!("{:x}", self.refund_address);
let secret_hash = format!("{:x}", self.secret_hash);
let token_contract_address = format!("{:x}", self.token_contract_address);
let amount = format!("{:0>64}", format!("{:x}", self.amount));
let contract_code = Self::CONTRACT_CODE_TEMPLATE
@Siimone
Siimone / Erc20Htlc.rs
Created December 19, 2018 10:24
Use of Erc20Htlc constructor - COMIT
let htlc = Erc20Htlc::new(
Seconds(100),
Address::new(),
Address::new(),
SecretHash::from_str(
"1000000000000000000000000000000000000000000000000000000000000001",
)
.unwrap(),
Address::new(),
U256::from(100),
@Siimone
Siimone / Erc20Htlc.rs
Created December 19, 2018 10:04
Erc20Htlc - new - COMIT
pub fn new(
refund_timeout: Seconds,
refund_address: Address,
redeem_address: Address,
secret_hash: SecretHash,
token_contract_address: Address,
amount: U256,
) -> Self {
let htlc = Erc20Htlc {
refund_timeout,
@Siimone
Siimone / Erc20Htlc.rs
Created December 19, 2018 09:56
Struct for Erc20Htlc - COMIT
#[derive(Debug, Clone)]
pub struct Erc20Htlc {
refund_timeout: Seconds,
refund_address: Address,
redeem_address: Address,
secret_hash: SecretHash,
token_contract_address: Address,
amount: U256,
}
@Siimone
Siimone / gasEstimates-Transfer.sol
Created September 28, 2018 14:27
Solidity method that gives us "Undefined Gas"
pragma solidity ^0.4.0;
contract gasEstimates {
constructor() payable public{
msg.sender.transfer(10);
}
}
@Siimone
Siimone / IOTA-getTransactions.js
Created September 24, 2018 23:30
Get transactions of IOTA address with Iota.lib.js
document.getElementById('search-transactions-js').addEventListener('click', function () {
let container = document.getElementById('transactions-js');
container.innerHTML = "";
let address = document.getElementById('iota-address-transactions-js').value
if (iota.valid.isAddress(address))
iota.api.findTransactionObjects(
{
addresses: [address]
}, function (err, res) {
if (err)
@Siimone
Siimone / IOTA-generate-address-progress.js
Created September 24, 2018 23:02
Progression of Entropy generation
sjcl.random.addEventListener("progress", function (p) {
if (p != 1) {
document.getElementById("seed").innerText = "Sto creando entropia, muovi il tuo mouse!\nProgress: " + p * 100 + "%"
}
});
@Siimone
Siimone / IOTA-generate-address.js
Created September 24, 2018 23:00
Generate IOTA address with iota.lib.js and sjcl.js
sjcl.random.addEventListener("seeded", function () {
let seed = genSeed();
document.getElementById("seed").innerHTML = "Seed: <pre>" + seed + "</pre>";
iota.api.getNewAddress(
seed,
{
index: 0,
security: 1
},
(err, res) => {