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

Clear
Unverified · pow.co
Key · pow.co
Replying to@15w9k5…M46g

Testimonial: 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!

Key · pow.co

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

Read more →
Key · pow.co

// 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
Read more →
Key · pow.co

// 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
Read more →
Key · pow.co

It's More Profitable to Short BSV/BTC Than Risk Energy Building on BTC

Key · pow.co

Hyper Bitcoinization Already Happened

Key · pow.co

Hyper Bitcoinization Already Happened

Key · pow.co

Hyper Bitcoinization Already Happened

Key · pow.co
Replying to#93dd0af9

thank you, virtual camera just about ready to go for today's show!

Key · pow.co
Replying to#93dd0af9

thank you, virtual camera just about ready to go for today's show!

Key · pow.co

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'
                    )
                )
            )
        )
    }
}
Read more →
Key · pow.co
Replying to#5d168d43

I see this but do not have time to resolve it before tonight's Peafowl Excellence show.

Key · pow.co
Replying to@1Ho6nW…V7EY

Oof will add a checkbox ur right ☑️

Key · pow.co

Is there any way one can post now without their name being associated?

Key · pow.co
import { SmartContract } from 'scrypt-ts'

class CasasciusCoin extends SmartContract {

}