@Test
public void transferFromDefaultAccountShouldCreateTheCorrectScript() throws Throwable {

    setUpWireMockForCall("invokescript", "invokescript_transfer.json");
    setUpWireMockForInvokeFunction("decimals", "invokefunction_decimals_gas.json");
    setUpWireMockForGetBlockCount(1000);
    setUpWireMockForInvokeFunction("balanceOf", "invokefunction_balanceOf_300000000.json");
    byte[] expectedScript = new ScriptBuilder().contractCall(GAS_TOKEN_SCRIPT_HASH,
            NEP5_TRANSFER, Arrays.asList(
                    ContractParameter.hash160(account1.getScriptHash()),
                    ContractParameter.hash160(RECIPIENT_SCRIPT_HASH),
                    ContractParameter.integer(100000000))).toArray(); // 1 GAS
    Transaction tx = gasToken.transferFromDefaultAccount(Wallet.withAccounts(account1, account2),
            RECIPIENT_SCRIPT_HASH, BigDecimal.ONE)
            .buildTransaction();
    assertThat(tx.getScript(), is(expectedScript));
}