const tx = new Transaction();
const [bm] = tx.moveCall({ target: 'balance_manager::new' });
tx.moveCall({ target: 'balance_manager::share', arguments: [bm] });
const [tradeCap] = tx.moveCall({
target: 'balance_manager::mint_trade_cap',
arguments: [bm, owner],
});
// optional DUSDC deposit:
if (depositCoin) tx.moveCall({ target: 'balance_manager::deposit<DUSDC>', arguments: [bm, depositCoin] });
const [agent, ownerCap] = tx.moveCall({
target: `${DARKPOOL_PACKAGE_ID}::agent::register_agent`,
arguments: [registry, name, strategyBlob, agentAddr, bm, tradeCap, predictManagerId],
});
tx.transferObjects([tradeCap], operatorAddress);
tx.transferObjects([agent, ownerCap], ownerAddress);