MCPcopy Create free account
hub / github.com/chain/txvm / Snapshot

Function Snapshot

protocol/txbuilder/standard/input.go:56–87  ·  view source on GitHub ↗

Snapshot adds to b the snapshot of a pay-to-multisig-program contract as it appears in the UTXO set.

(b *txvmutil.Builder,
	quorum int,
	pubkeys []ed25519.PublicKey,
	amount int64,
	assetID bc.Hash,
	anchor []byte,
	seed []byte, // PayToMultisigSeed1[:] or PayToMultisigSeed2[:]
)

Source from the content-addressed store, hash-verified

54
55// Snapshot adds to b the snapshot of a pay-to-multisig-program contract as it appears in the UTXO set.
56func Snapshot(b *txvmutil.Builder,
57 quorum int,
58 pubkeys []ed25519.PublicKey,
59 amount int64,
60 assetID bc.Hash,
61 anchor []byte,
62 seed []byte, // PayToMultisigSeed1[:] or PayToMultisigSeed2[:]
63) {
64 b.Tuple(func(contract *txvmutil.TupleBuilder) {
65 contract.PushdataByte(txvm.ContractCode) // 'C'
66 contract.PushdataBytes(seed) // <seed>
67 contract.PushdataBytes(payToMultisigProgUnlock) // [<multisig unlock prog>]
68 contract.Tuple(func(tup *txvmutil.TupleBuilder) { // {'Z', quorum}
69 tup.PushdataByte(txvm.IntCode)
70 tup.PushdataInt64(int64(quorum))
71 })
72 contract.Tuple(func(tup *txvmutil.TupleBuilder) { // {'T', {p1,...,p_n}}
73 tup.PushdataByte(txvm.TupleCode)
74 tup.Tuple(func(pktup *txvmutil.TupleBuilder) {
75 for _, pubkey := range pubkeys {
76 pktup.PushdataBytes(pubkey)
77 }
78 })
79 })
80 contract.Tuple(func(tup *txvmutil.TupleBuilder) { // {'V', amount, assetID, anchor}
81 tup.PushdataByte(txvm.ValueCode)
82 tup.PushdataInt64(amount)
83 tup.PushdataBytes(assetID.Bytes())
84 tup.PushdataBytes(anchor)
85 })
86 })
87}

Callers 1

SpendMultisigFunction · 0.70

Calls 5

TupleMethod · 0.45
PushdataByteMethod · 0.45
PushdataBytesMethod · 0.45
PushdataInt64Method · 0.45
BytesMethod · 0.45

Tested by

no test coverage detected