assert_raises_rpc_error(-8,f"Invalid parameter 'subtract fee from output', destination {addr_3} not found in tx outputs",self.def_wallet.sendmany,dummy='',amounts={addr_1:1,addr_2:1},subtractfeefrom=[addr_3])
self.log.info("Test using negative index in SFFO argument")
assert_raises_rpc_error(-8,"Invalid parameter 'subtract fee from output', negative position: -5",self.def_wallet.sendmany,dummy='',amounts={addr_1:1,addr_2:1},subtractfeefrom=[-5])
self.log.info("Test using an out of bounds index in SFFO argument")
assert_raises_rpc_error(-8,"Invalid parameter 'subtract fee from output', position too large: 5",self.def_wallet.sendmany,dummy='',amounts={addr_1:1,addr_2:1},subtractfeefrom=[5])
self.log.info("Test using an unexpected type in SFFO argument")
assert_raises_rpc_error(-8,"Invalid parameter 'subtract fee from output', invalid value type: bool",self.def_wallet.sendmany,dummy='',amounts={addr_1:1,addr_2:1},subtractfeefrom=[False])
self.log.info("Test duplicates in SFFO argument, mix string destinations with numeric indexes")
assert_raises_rpc_error(-8,"Invalid parameter 'subtract fee from output', duplicated position: 0",self.def_wallet.sendmany,dummy='',amounts={addr_1:1,addr_2:1},subtractfeefrom=[0,addr_1])
self.log.info("Test valid mixing of string destinations with numeric indexes in SFFO argument")