Sha256: 0283184761cedd41c606575eb2a9ff487b9bfe96dc01cc5230b0b44f72335e85

Contents?: true

Size: 1.28 KB

Versions: 2

Compression:

Stored size: 1.28 KB

Contents

### Get Core Token(lat or atp) balance  
### Get Arc20/Prc20 balance

require "platon"

### Example on Alaya:

RPC = "http://127.0.0.1:6789" # change to your rpc address

TARGET_ADDRESS_1 = "atp1lsds5k5wys93vhm8gvkvepyx5e9hxtfz8w4r5x"
TARGET_ADDRESS_2 = "atp1djc6dvd2y2kj04hhy30rmctkc9nnqmmzlk42uv"


client = Platon::HttpClient.new(RPC,"alaya")

###Get Core Token(lat or atp) balance
res =  client.platon_get_balance(TARGET_ADDRESS_1,"latest")
balance = res / 10**18.to_f
puts "#{TARGET_ADDRESS_1} #{client.hrp.upcase} balance: #{balance} "

###Get Arc20/Prc20 balance
client.default_account = Platon::Key.new.bech32_address  # 随机生成地址并指定即可。 因platon节点要求call也必须传入from参数
minABI=[{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"type":"function"}];
contract = Platon::Contract.create(
	client:client, 
	name: "MyContract", 
	address: "atp16lellpkrv894hmg8am7ns3p2qny2vqj85ud8s6",  #ARC20 contract address
	abi:minABI # Arc20 contract abi
	)

res2 =  contract.call.balance_of(TARGET_ADDRESS_2)
aETH_balance = res2 / 10**18.to_f
puts "#{TARGET_ADDRESS_2} aETH balance: #{aETH_balance}"

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
platon-1.0.0 examples/get_balance.rb
platon-0.2.9 examples/get_balance.rb