if p.Witness != nil {
        dat, err := p.Witness.Pack()
        if err != nil {
            return err
        }