runtime.rs 99.4 KiB
Newer Older
	///
	/// - `code_hash_ptr`: A pointer to the code hash of the dependency.
	#[unstable]
	fn add_delegate_dependency(ctx: _, memory: _, code_hash_ptr: u32) -> Result<(), TrapReason> {
		ctx.charge_gas(RuntimeCosts::AddDelegateDependency)?;
		let code_hash = ctx.read_sandbox_memory_as(memory, code_hash_ptr)?;
		ctx.ext.add_delegate_dependency(code_hash)?;
		Ok(())
	}

	/// Removes the delegate dependency from the contract.
	///
	/// # Parameters
	///
	/// - `code_hash_ptr`: A pointer to the code hash of the dependency.
	#[unstable]
	fn remove_delegate_dependency(ctx: _, memory: _, code_hash_ptr: u32) -> Result<(), TrapReason> {
		ctx.charge_gas(RuntimeCosts::RemoveDelegateDependency)?;
		let code_hash = ctx.read_sandbox_memory_as(memory, code_hash_ptr)?;
		ctx.ext.remove_delegate_dependency(&code_hash)?;
		Ok(())
	}