@@ -7,6 +7,7 @@ package programs
77
88import (
99 "errors"
10+ "fmt"
1011 "unsafe"
1112
1213 "github.com/ethereum/go-ethereum/arbitrum/multigas"
@@ -124,10 +125,9 @@ func programRequiresPrepare(
124125
125126//go:wasmimport programs program_prepare
126127func ProgramPrepare (
127- statedbPtr unsafe.Pointer ,
128+ wasmPtr unsafe.Pointer ,
128129 moduleHashPtr unsafe.Pointer ,
129130 addressForLoggingPtr unsafe.Pointer ,
130- codePtr unsafe.Pointer ,
131131 codeSize uint64 ,
132132 codehashPtr unsafe.Pointer ,
133133 maxWasmSize uint32 ,
@@ -156,21 +156,25 @@ func startProgram(module uint32) uint32
156156//go:wasmimport programs send_response
157157func sendResponse (req_id uint32 ) uint32
158158
159- func handleProgramPrepare (statedb vm.StateDB , moduleHash common.Hash , addressForLogging common.Address , code []byte , codehash common.Hash , params * StylusParams , time uint64 , debugMode bool , program Program , runCtx * core.MessageRunContext ) []byte {
159+ func handleProgramPrepare (statedb vm.StateDB , moduleHash common.Hash , programAddress common.Address , code []byte , codehash common.Hash , params * StylusParams , time uint64 , debugMode bool , program Program , runCtx * core.MessageRunContext ) []byte {
160160 requiresPrepare := programRequiresPrepare (unsafe .Pointer (& moduleHash [0 ]))
161161 if requiresPrepare != 0 {
162162 var debugInt uint32
163163 if debugMode {
164164 debugInt = 1
165165 }
166166
167+ wasm , err := getWasm (statedb , programAddress , params )
168+ if err != nil {
169+ panic (fmt .Sprintf ("failed to get wasm for program, program address: %v, err: %v" , programAddress .Hex (), err ))
170+ }
171+
167172 codeSize := uint64 (len (code ))
168173
169174 ProgramPrepare (
170- unsafe .Pointer (& statedb ),
175+ unsafe .Pointer (& wasm ),
171176 unsafe .Pointer (& moduleHash ),
172- unsafe .Pointer (& addressForLogging ),
173- unsafe .Pointer (& code ),
177+ unsafe .Pointer (& programAddress ),
174178 codeSize ,
175179 unsafe .Pointer (& codehash ),
176180 params .MaxWasmSize ,
0 commit comments