BLOCK 973832
A sovereign social network
powered by Bitcoin
Every post signed. Every block a heartbeat.
Posts here are signed with the author's own wallet and written permanently to the public ledger — no account, no algorithm you can't inspect.
pow.co 1,523 posts
ClearTestimonial: I have worked extensively with and under Elvis’s supervision and have found him knowledgeable and a great mentor. Together we’ve built a number of services and applications rapidly and with little delays. I would recommend Elvis to anybody looking for a developer or somebody who can get a job done!
Why is BSV being used in modern day concentration camps like RiseCities.org? They are being built by the Quandt family who is the silent might behind one of the world's largest and most profitable automakers, BMW. Yet the family has a very dark past. Its businesses profited from forced labour during the Third Reich, and the patriarchs, who were intimately involved with the Nazi regime, managed to escape prosecution and keep those profits when the war ended, profits with which they could buy and rescue BMW. This documentary shows the victims, and asks the question, "Why are the Quandts silent?"
It is my hope that, by making this excellent German documentary from 2007 available in the English-speaking world, the resulting public pressure will help to move the Quandts to acknowledge the family's role, apologise, and take active steps to make reparations to the victims. https://youtu.be/shkgyrual2g
40:45 / 1:01:58
The Dero Uprising: Discussing the Next Big Thing in Crypto! https://youtu.be/AcbQ35r1meg
// https://by-example.scrypt.io/cltv/
Hacking Your Time Preference
Locking Money Up For A Period of Time:
import { PubKey, bigint, SmartContract } from 'scrypt-ts'
class SavingsAccount extends SmartContract {
@prop(true)
matureTime: bigint;
@prop(true)
owner: PubKey
constructor(matureTime: bigint, owner: PubKey) {
super(matureTime)
this.matureTime = matureTime;
this.owner = owner;
}
@method()
public unlock(sig: Sig) {
// Before the matureTime satoshis may not be unlocked
assert(this.ctx.locktime >= this.matureTime, "locktime too low");
// Satoshis may be only unlocked by the current owner of the account
assert(this.checkSig(sig, this.owner));
}
@method()
public transfer(newOwner: PubKey, sig: Sig) {
/* Allows for transfer of ownership but not unlocking of satoshis */
assert(this.checkSig(sig, this.owner))
const outputs = Utils.buildPublicKeyHashOutput(hash160(newOwner),this.ctx.utxo.value)
assert(this.ctx.hashOutputs === hash256(outputs),'check hashOutputs failed for same amount retained')
}
}
To deposit funds into your savings account determine the date of maturity and send satoshis to the script.
import moment from 'moment'
import { PubKey } from 'scrypt-ts'
const matureTime = moment().add(1, 'year').unix()
const controller = PubKey('<my-sensilet-publickey>')
const savingsAccount = new SavingsAccount(matureTime, controller)
const script = savingsAccount.toString("hex")
relayone.send({
to: script,
amount: 1_000_000_000 // 10 bitcoins
})
After one year load the transaction from the utxo script and call the unlock method (this part is more like design rather than valid code)
import { fetch } from 'powco'
const txhex = await fetch('<txid>')
const savingsAccount = SavingsAccount.fromRawTransaction(txhex)
const script = savingsAccount.unlock() // TODO: Real Sensilet Unlock Example
// https://by-example.scrypt.io/cltv/
Hacking Your Time Preference
Locking Money Up For A Period of Time:
import { PubKey, bigint, SmartContract } from 'scrypt-ts'
class SavingsAccount extends SmartContract {
matureTime: bigint;
controller: PubKey
constructor(matureTime: bigint, controller: PubKey) {
this.matureTime = matureTime;
this.controller = controller;
}
@method()
public unlock(sig: Sig) {
assert(this.ctx.locktime >= this.matureTime, "locktime too low");
assert(this.checkSig(sig, this.controller));
}
}
To deposit founds into your savings account determine the date of maturity and send satoshis to the script.
import moment from 'moment'
import { PubKey } from 'scrypt-ts'
const matureTime = moment().add(1, 'year').unix()
const controller = PubKey('<my-sensilet-publickey>')
const savingsAccount = new SavingsAccount(matureTime, controller)
const script = savingsAccount.toString("hex")
relayone.send({
to: script,
amount: 1_000_000_000 // 10 bitcoins
})
After one year load the transaction from the utxo script and call the unlock method
import { fetch } from 'powco'
const txhex = await fetch('<txid>')
const savingsAccount = SavingsAccount.fromRawTransaction(txhex)
const script = savingsAccount.unlock() // TODO: Real Sensilet Unlock Example
It's More Profitable to Short BSV/BTC Than Risk Energy Building on BTC
Hyper Bitcoinization Already Happened
Hyper Bitcoinization Already Happened
Hyper Bitcoinization Already Happened
thank you, virtual camera just about ready to go for today's show!
thank you, virtual camera just about ready to go for today's show!
TokenMeet Ticket SmartContract Proposal
import {
assert,
ByteString,
PubKey,
method,
prop,
Sig,
SmartContract,
hash160,
Utils,
hash256,
toByteString,
} from 'scrypt-ts'
export class PeafowlTickets extends SmartContract {
// Purchaser or current holder of the ticket
@prop(true)
holder: PubKey
// Host of the show
@prop()
host: PubKey
// Unique identifier for the show
@prop()
show: ByteString
// Unique identifier for the episode of the show
@prop()
episode: ByteString
constructor(
show: ByteString,
episode: ByteString,
holder: PubKey,
host: PubKey
) {
super(...arguments)
this.show = show
this.episode = episode
this.holder = holder
this.host = host
}
@method()
public transfer(newHolder: PubKey, sig: Sig) {
// Only the current token holder can transfer ownership
assert(this.checkSig(sig, this.holder))
// While transferring, ensure no satoshis are removed from the token
const outputs = Utils.buildPublicKeyHashOutput(
hash160(newHolder),
this.ctx.utxo.value
)
assert(
this.ctx.hashOutputs === hash256(outputs),
'check hashOutputs failed'
)
}
@method()
public withdrawFees() {
const minimumSatoshis = 1000n
// Ensure a base value of 1000 satoshis remains in the ticket at all times
// while allowing the host of the show host of the platform admin to withdraw the
// satoshis contained above that amount
const outputs = Utils.buildPublicKeyHashOutput(
hash160(this.holder),
minimumSatoshis
)
assert(
this.ctx.hashOutputs === hash256(outputs),
'check hashOutputs failed'
)
}
@method()
public liquidate(sig: Sig) {
// Ensure that only the TokenMeet platform may liquidate the final base satoshis
assert(
this.checkSig(
sig,
PubKey(
toByteString(
'03abae428d2175299f4e1295a187c3eea59176b520aeec48d8b1b5e3a068af87ae'
)
)
)
)
}
}
I see this but do not have time to resolve it before tonight's Peafowl Excellence show.
test without paymail
test with paymail
Oof will add a checkbox ur right ☑️
Is there any way one can post now without their name being associated?
import { SmartContract } from 'scrypt-ts'
class CasasciusCoin extends SmartContract {
}
What does it mean?