lib/module_handler/aptos/coin.ex

defmodule Web3AptosEx.ModuleHandler.Aptos.Coin.APT do
  @moduledoc """
    0x1::coin
  """
  alias Web3AptosEx.Aptos.RPC
  import Web3AptosEx.Aptos
  alias Web3AptosEx.Aptos

  @resources %{
    coin_store: "0x1::coin"
  }

  def get_coin_store(client, acct) do
    with {:ok, result} <- RPC.get_resource(
      client,
      acct,
      "#{@resources.coin_store}::CoinStore<0x1::aptos_coin::AptosCoin>") do
      result.data
    end
  end

    def transfer(client, acct, to, amount, options \\ []) do
    {:ok, f} = ~a"0x1::aptos_account::transfer(address, u64)"
    payload = Aptos.call_function(f, [], [to, amount])
    Aptos.submit_txn_with_auto_acct_updating(client, acct, payload, options)
  end
  

  # def transfer(client, acct, to, amount) do
  #   {:ok, f} = ~a"0x1::coin::transfer<CoinType>(address, u64)"
  #   payload = Aptos.call_function(f, ["0x1::aptos_coin::AptosCoin"], [to, amount])
  #   Aptos.submit_txn(client, acct, payload)
  # end
  
end