ic_agent 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f6dd5be4d1dbd760c09b92da6efa53590adf43cad43c6ef495ccb704deccf1a
4
- data.tar.gz: d28f144bd132dbb0dca0a13f7f12f8749595b1055f70801ffa8dc117cc113bb0
3
+ metadata.gz: 872963d331d311c6a940f64445ef0583397885eb9455464f4d865d325f24ee97
4
+ data.tar.gz: 8b11f6cc71864468b52e66a6577fb3002bcf14cfde2ce93b1dfb6f819eb1df84
5
5
  SHA512:
6
- metadata.gz: b332d5369452f62130204a09c92d24a96029a054c7e02f92ddbaed137167b7f7eccf6e7458b76e6bf4a56da43a540ae937435dae5bd5a2329f680e100f80d53f
7
- data.tar.gz: d7ff9b8954dc25684ef50da692aeea12e000b7e146a40c803aec70bfb6ffc4e5f0348984af230fd55cb71ab7b69f1c91634d9fdd7b7f47d471d9b6efac321098
6
+ metadata.gz: 5ead16aeb03ac87caa4620ee9f813e7d79399f95d9cb2424cbedd2af828f9dd06f14a1f9d200ac596783ea3b47fdd88f500256608e972011e1dae01e69452cf4
7
+ data.tar.gz: d6ebbda49c03f1e2df8fe3e28ffd2b53424a83e04b386841f8874c6b888f4089d8c0150194930ffdab836e81961cfc657168a6e225e0ddd32c665d03159e1cc3
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ic_agent (0.1.2)
4
+ ic_agent (0.1.4)
5
5
  base32 (~> 0.3.4)
6
6
  bitcoin-ruby (~> 0.0.20)
7
7
  cbor (~> 0.5.9.6)
data/README.md CHANGED
@@ -13,12 +13,13 @@ gem install ic_agent
13
13
 
14
14
  ### Features
15
15
 
16
- 1. candid types encode & decode
17
- 2. support secp256k1 & ed25519 identity
18
- 3. canister DID file parsing
19
- 4. canister class, initialized with canister id and DID file
20
- 5. common canister interfaces: ledger, management, nns, cycles wallet
21
- 6. BLS Verify
16
+ 1. principal create and generate
17
+ 2. candid types encode & decode
18
+ 3. support secp256k1 & ed25519 identity
19
+ 4. canister DID file parsing
20
+ 5. canister class, initialized with canister id and DID file
21
+ 6. common canister interfaces: ledger, management, nns, cycles wallet
22
+ 7. BLS Verify
22
23
 
23
24
  ### Modules & Usage
24
25
 
@@ -141,7 +142,27 @@ subnet_public_key = IcAgent::SyetemState.subnet_public_key(agent, "gvbup-jyaaa-a
141
142
  Create a canister instance with candid interface file and canister id, and call canister method with canister instance:
142
143
 
143
144
  ```ruby
144
- gov_canister = IcAgent::Canister.new(@agent, @gov_canister_id, @gov_didl)
145
+ agent = IcAgent::Agent.new(iden, client)
146
+ gov_canister_id = 'rrkah-fqaaa-aaaaa-aaaaq-cai'
147
+ gov_didl = <<~DIDL_DOC
148
+ // type
149
+ type AccountIdentifier = record { hash : vec nat8 };
150
+ type Action = variant {
151
+ RegisterKnownNeuron : KnownNeuron;
152
+ ManageNeuron : ManageNeuron;
153
+ ExecuteNnsFunction : ExecuteNnsFunction;
154
+ RewardNodeProvider : RewardNodeProvider;
155
+ SetDefaultFollowees : SetDefaultFollowees;
156
+ RewardNodeProviders : RewardNodeProviders;
157
+ ManageNetworkEconomics : NetworkEconomics;
158
+ ApproveGenesisKyc : ApproveGenesisKyc;
159
+ AddOrRemoveNodeProvider : AddOrRemoveNodeProvider;
160
+ Motion : Motion;
161
+ };
162
+ ......
163
+ DIDL_DOC
164
+
165
+ gov_canister = IcAgent::Canister.new(agent, gov_canister_id, gov_didl)
145
166
  res = gov_canister.get_neuron_ids()
146
167
  ```
147
168
 
@@ -72,7 +72,7 @@ module IcAgent
72
72
  end
73
73
 
74
74
  def to_account_id(sub_account = 0)
75
- AccountIdentifier.new(self, sub_account)
75
+ AccountIdentifier.generate(self, sub_account)
76
76
  end
77
77
 
78
78
  def to_s
@@ -97,11 +97,12 @@ module IcAgent
97
97
  to_str
98
98
  end
99
99
 
100
- def self.new(principal, sub_account = 0)
101
- sha224 = Digest::SHA224.new
100
+ def self.generate(principal, sub_account = 0)
101
+ sha224 = OpenSSL::Digest::SHA224.new
102
102
  sha224 << "\naccount-id"
103
103
  sha224 << principal.bytes
104
- sub_account = [sub_account].pack('N')
104
+ format_sub_account = "%08d" % sub_account
105
+ sub_account = format_sub_account.chars.map {|c| c.to_i}.pack('N*')
105
106
  sha224 << sub_account
106
107
  hash = sha224.digest
107
108
  checksum = Zlib.crc32(hash) & 0xFFFFFFFF
@@ -66,6 +66,10 @@ module IcAgent
66
66
  s = vec.sort.join
67
67
  Digest::SHA256.digest(s)
68
68
  end
69
+
70
+ def self.decode_blob(blob_bytes)
71
+ blob_bytes.pack('C*')
72
+ end
69
73
  end
70
74
  end
71
75
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IcAgent
4
- VERSION = '0.1.3'
4
+ VERSION = '0.1.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ic_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Terry.Tu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-19 00:00:00.000000000 Z
11
+ date: 2023-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base32