Class: IcAgent::SyetemState
- Inherits:
-
Object
- Object
- IcAgent::SyetemState
- Defined in:
- lib/ic_agent/system_state.rb
Class Method Summary collapse
- .canister_controllers(agent, canister_id) ⇒ Object
- .canister_module_hash(agent, canister_id) ⇒ Object
- .subnet_canister_ranges(agent, canister_id, subnet_id) ⇒ Object
- .subnet_public_key(agent, canister_id, subnet_id) ⇒ Object
- .time(agent, canister_id) ⇒ Object
Class Method Details
.canister_controllers(agent, canister_id) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/ic_agent/system_state.rb', line 36 def self.canister_controllers(agent, canister_id) path = ['canister', Principal.from_str(canister_id).bytes, 'controllers'] cert = agent.read_state_raw(canister_id, [path]) controllers = Certificate.lookup(path, cert) CBOR.decode(controllers).value.map { |item| Principal.new(bytes: item) } end |
.canister_module_hash(agent, canister_id) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/ic_agent/system_state.rb', line 29 def self.canister_module_hash(agent, canister_id) path = ['canister', Principal.from_str(canister_id).bytes, 'module_hash'] cert = agent.read_state_raw(canister_id, [path]) module_hash = Certificate.lookup(path, cert) module_hash.str2hex end |
.subnet_canister_ranges(agent, canister_id, subnet_id) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/ic_agent/system_state.rb', line 22 def self.subnet_canister_ranges(agent, canister_id, subnet_id) path = ['subnet', Principal.from_str(subnet_id).bytes, 'canister_ranges'] cert = agent.read_state_raw(canister_id, [path]) ranges = Certificate.lookup(path, cert) CBOR.decode(ranges).value.map { |range| range.map { |item| Principal.new(bytes: item) } } end |
.subnet_public_key(agent, canister_id, subnet_id) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/ic_agent/system_state.rb', line 15 def self.subnet_public_key(agent, canister_id, subnet_id) path = ['subnet', Principal.from_str(subnet_id).bytes, 'public_key'] cert = agent.read_state_raw(canister_id, [path]) pubkey = Certificate.lookup(path, cert) pubkey.str2hex end |
.time(agent, canister_id) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/ic_agent/system_state.rb', line 8 def self.time(agent, canister_id) cert = agent.read_state_raw(canister_id, [['time']]) = Certificate.lookup(['time'], cert) str_io = StringIO.new() LEB128.decode_signed(str_io) end |