ic_agent 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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