在以太坊或类似的区块链网络中,一个合约调用另一个合约时,通常不会创建一笔新的交易,但具体行为取决于调用方式。以下是关键细节: 1. 内部调用(Internal Call)示例: solidity
contract B { function foo() public {}}contract A { function callB(address bAddr) public { B(bAddr).foo(); // 内部调用,无新交易 }}
2. 外部调用(External Call) 3. 关键区别场景 是否创建新交易 链上可见性 交易哈希
合约A → 合约B调用❌ 否仅在交易回溯中可见与原始交易相同
用户发起的新交易✅ 是独立交易新的交易哈希
4. 如何验证? 总结除非涉及跨链或合约创建,否则合约间的调用是同一笔交易内的内部操作。这是以太坊设计中的关键优化,避免不必要的链上开销。
|