* Inject properties from a witness program. * @private * @param {Number} version * @param {Buffer} data
(version, data)
| 1585 | */ |
| 1586 | |
| 1587 | fromProgram(version, data) { |
| 1588 | assert((version & 0xff) === version && version >= 0 && version <= 16); |
| 1589 | assert(Buffer.isBuffer(data) && data.length >= 2 && data.length <= 40); |
| 1590 | |
| 1591 | this.raw = Buffer.allocUnsafe(2 + data.length); |
| 1592 | this.raw[0] = version === 0 ? 0 : version + 0x50; |
| 1593 | this.raw[1] = data.length; |
| 1594 | data.copy(this.raw, 2); |
| 1595 | |
| 1596 | data = this.raw.slice(2, 2 + data.length); |
| 1597 | |
| 1598 | this.code.length = 0; |
| 1599 | this.code.push(Opcode.fromSmall(version)); |
| 1600 | this.code.push(Opcode.fromPush(data)); |
| 1601 | |
| 1602 | return this; |
| 1603 | } |
| 1604 | |
| 1605 | /** |
| 1606 | * Create a witness program. |
no test coverage detected