# Calling canister from agent-js - Invalid record - What am I missing?

**URL:** <https://forum.dfinity.org/t/calling-canister-from-agent-js-invalid-record-what-am-i-missing/7618>\
**Category:** Developers\
**Tags:** candid\
**Created:** [September 29, 2021, 7:07pm UTC](https://forum.dfinity.org/t/calling-canister-from-agent-js-invalid-record-what-am-i-missing/7618 "2021-09-29T19:07:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![aramakme](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aramakme/32/3230_2.png) [@aramakme](https://forum.dfinity.org/u/aramakme)\
**Post date:** [September 29, 2021, 7:07pm UTC](https://forum.dfinity.org/t/calling-canister-from-agent-js-invalid-record-what-am-i-missing/7618/1 "2021-09-29T19:07:43Z")

</div>

I’ve created a canister to simulate the ledger for some tests. I’m trying to call the canister from agent-js.

```auto
block = await ledger.send_dfx({
        to: targetAccountID,
        fee: {
          e8s: 10000
        },
        memo: 1,
        from_subaccount: null,
        created_at_time: null,

        amount: {
          e8s: icpBalance_e8s
        }
      });

```

It is throwing the following error an I can’t for the life of me find where my object differes from what it expects.

```auto
Uncaught (in promise) Error: Invalid record 
{to:text; fee:record {e8s:nat64}; memo:nat64; from_subaccount:opt vec nat8; created_at_time:opt record {timestamp_nanos:nat64}; amount:record {e8s:nat64}} 
argument: {"to":"0fcd6c51fda3732d70d59408b58d976f6e09c97c73e87479dcffa32626aed53a","fee":{"e8s":10000},"memo":1,"from_subaccount":null,"created_at_time":null,"amount":{"e8s":200000000}}
    at vendor.c65646c8.js:formatted:3381
    at vendor.c65646c8.js:formatted:2513
    at Array.map (<anonymous>)
    at zipWith (vendor.c65646c8.js:formatted:2513)
    at encode$2 (vendor.c65646c8.js:formatted:3379)
    at r (vendor.c65646c8.js:formatted:8610)
    at Object.n [as send_dfx] (vendor.c65646c8.js:formatted:8626)
    at F (index.56fe35f6.js:1)

```

from my ledger.did.js in declarations:

```auto

'send_dfx' : IDL.Func([SendTransaction], [IDL.Nat64], [])

```

---

<div class="post-metadata">

**Author:** ![chenyan](https://avatars.discourse-cdn.com/v4/letter/c/35a633/32.png) [@chenyan](https://forum.dfinity.org/u/chenyan)\
**Post date:** [September 29, 2021, 7:13pm UTC](https://forum.dfinity.org/t/calling-canister-from-agent-js-invalid-record-what-am-i-missing/7618/2 "2021-09-29T19:13:01Z")

</div>

`opt t` maps to `[] | [t]` in JS. So `{ from_subaccount: [], created_at_time: [], ... }`

---

<div class="post-metadata">

**Author:** ![aramakme](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/aramakme/32/3230_2.png) [@aramakme](https://forum.dfinity.org/u/aramakme)\
**Post date:** [September 29, 2021, 7:20pm UTC](https://forum.dfinity.org/t/calling-canister-from-agent-js-invalid-record-what-am-i-missing/7618/3 "2021-09-29T19:20:03Z")

</div>

Thank you! That was it.
