(ctx context.Context, blockNumber *big.Int)
| 234 | } |
| 235 | |
| 236 | func (m *l1MiningAPI) getRandaoProof(ctx context.Context, blockNumber *big.Int) ([]byte, error) { |
| 237 | var caller interface { |
| 238 | HeaderByNumber(context.Context, *big.Int) (*types.Header, error) |
| 239 | } |
| 240 | if m.rc != nil { |
| 241 | caller = m.rc |
| 242 | } else { |
| 243 | caller = m.Client |
| 244 | } |
| 245 | blockHeader, err := caller.HeaderByNumber(ctx, blockNumber) |
| 246 | if err != nil { |
| 247 | m.lg.Error("Failed to get block header", "number", blockNumber, "error", err) |
| 248 | return nil, err |
| 249 | } |
| 250 | headerRlp, err := rlp.EncodeToBytes(blockHeader) |
| 251 | if err != nil { |
| 252 | m.lg.Error("Failed to encode block header in RLP", "error", err) |
| 253 | return nil, err |
| 254 | } |
| 255 | return headerRlp, nil |
| 256 | } |
| 257 | |
| 258 | func (m *l1MiningAPI) composeCalldata(ctx context.Context, rst result) ([]byte, error) { |
| 259 | headerRlp, err := m.getRandaoProof(ctx, rst.blockNumber) |
no test coverage detected