Bank of America admitted to wilfully breaking US anti-money laundering law as the Treasury hit it with a $1.2 billion penalty over suspicious transactions tied to foreign laundering networks.