There are multiple scenarios to trigger MOVRs transfer. You will find quick description of those below. The web3 SDK (or Ethereum API) is not sufficient to monitor all the transfers, you should use the PolkadotJs SDK (also known as the Substrate API)
First, we have to consider there are 2 elements associated with a block:
- Extrinsics (those can be considered "transactions", they are ordered by execution)
- Events (those are generated from the extrinsic, and can be multiple per extrinsic. They are also ordered)
- This will create an extrinsic balances.transfer or _balances.transferKeepAlive _
- This will create an event balances.Transfer
(Some features, like "Treasury", would also send Tokens to an address)
- This will create an extrinsic (ex: treasury.proposeSpend)
- This will create 1 or multiple events balances.Transfer
- This will create an extrinsic ethereum.transact (with input being empty)
- This will create 1 event balances.Transfer
- This will create an extrinsic ethereum.transact (with input having data)
- This will create 1 or multiple events balances.Transfer
All those scenario will effectively transfer MOVRs, and the easiest way to monitor them is to rely on the event balances.Transfer See the provided scripts