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[:] )
| 54 | |
| 55 | // Snapshot adds to b the snapshot of a pay-to-multisig-program contract as it appears in the UTXO set. |
| 56 | func 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 | } |
no test coverage detected