Upload code
If you need to load the program code into the chain without initialization use GearApi.code.upload
method to create upload_code
extrinsic:
const code = fs.readFileSync('path/to/program.opt.wasm');
const { codeHash } = await api.code.upload(code);
api.code.signAndSend(alice, () => {
events.forEach(({ event: { method, data } }) => {
if (method === 'ExtrinsicFailed') {
throw new Error(data.toString());
} else if (method === 'CodeChanged') {
console.log(data.toHuman());
}
});
});
Create program from uploaded code on chain​
Use api.program.create
method to create create_program
extrinsic:
const codeId = '0x…';
const program = {
codeId,
gasLimit: 1000000,
value: 1000,
initPayload: somePayload,
};
const { programId, salt, extrinsic } = api.program.create(program, meta);
await extrinsic.signAndSend(keyring, (event) => {
console.log(event.toHuman());
});