在Aeternity中,合约之间的跨合约调用可以通过以下步骤实现:
stateful entrypoint call_another_contract(arg1: int, arg2: string) : int =
Chain.spend(Contract.call("another_contract.aes", "function_name", Arg.arg1, Arg.arg2));
其中的 "another_contract.aes" 为目标合约文件名,"function_name" 为目标合约中要调用的函数名,Arg.arg1 和 Arg.arg2 为传入目标函数的参数。
stateful entrypoint target_function(arg1: int, arg2: string) : int =
... //函数体
call_another_contract(123, "hello");
其中的参数可以根据实际情况进行调整。
注意:在跨合约调用中需要在Aeternity中进行链上的交易,因此需要消耗相应的gas费用。因此在调用时需要确保自身合约有足够的余额来支付gas费用,否则会导致交易失败。