| 833 | } |
| 834 | |
| 835 | func (s *Script) PushSingleData(data []byte) error { |
| 836 | dataLen := len(data) |
| 837 | if dataLen < opcodes.OP_PUSHDATA1 { |
| 838 | s.data = append(s.data, byte(dataLen)) |
| 839 | } else if dataLen <= 0xff { |
| 840 | s.data = append(s.data, opcodes.OP_PUSHDATA1, byte(dataLen)) |
| 841 | } else if dataLen <= 0xffff { |
| 842 | s.data = append(s.data, opcodes.OP_PUSHDATA2) |
| 843 | buf := make([]byte, 2) |
| 844 | binary.LittleEndian.PutUint16(buf, uint16(dataLen)) |
| 845 | s.data = append(s.data, buf...) |
| 846 | } else { |
| 847 | s.data = append(s.data, opcodes.OP_PUSHDATA4) |
| 848 | buf := make([]byte, 4) |
| 849 | binary.LittleEndian.PutUint32(buf, uint32(dataLen)) |
| 850 | s.data = append(s.data, buf...) |
| 851 | } |
| 852 | s.data = append(s.data, data...) |
| 853 | err := s.convertOPS() |
| 854 | return err |
| 855 | } |
| 856 | |
| 857 | func (s *Script) PushMultData(data [][]byte) error { |
| 858 | for _, e := range data { |