* add rescan-blocks api
* rename rescan-blocks to rescan-wallet
* rename rescanWallet to rescanWallet
* add arbitrary for retire
* retireAction needs a program
* retireAction used address
* add RetireProgram for script
* update RetireProgram for script
type retireAction struct {
bc.AssetAmount
+ Arbitrary json.HexBytes `json:"arbitrary"`
}
func (a *retireAction) Build(ctx context.Context, b *TemplateBuilder) error {
return MissingFieldsError(missing...)
}
- out := types.NewTxOutput(*a.AssetId, a.Amount, retirementProgram)
+ program, err := vmutil.RetireProgram(a.Arbitrary)
+ if err != nil {
+ return err
+ }
+ out := types.NewTxOutput(*a.AssetId, a.Amount, program)
return b.AddOutput(out)
}
return builder.Build()
}
+// RetireProgram generates the script for retire output
+func RetireProgram(comment []byte) ([]byte, error) {
+ builder := NewBuilder()
+ builder.AddOp(vm.OP_FAIL)
+ if len(comment) != 0 {
+ builder.AddData(comment)
+ }
+ return builder.Build()
+}
+
// P2PKHSigProgram generates the script for control with pubkey hash
func P2PKHSigProgram(pubkeyHash []byte) ([]byte, error) {
builder := NewBuilder()