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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +28 -7
- data/lib/ic_agent/principal.rb +5 -4
- data/lib/ic_agent/utils.rb +4 -0
- data/lib/ic_agent/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 872963d331d311c6a940f64445ef0583397885eb9455464f4d865d325f24ee97
|
4
|
+
data.tar.gz: 8b11f6cc71864468b52e66a6577fb3002bcf14cfde2ce93b1dfb6f819eb1df84
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ead16aeb03ac87caa4620ee9f813e7d79399f95d9cb2424cbedd2af828f9dd06f14a1f9d200ac596783ea3b47fdd88f500256608e972011e1dae01e69452cf4
|
7
|
+
data.tar.gz: d6ebbda49c03f1e2df8fe3e28ffd2b53424a83e04b386841f8874c6b888f4089d8c0150194930ffdab836e81961cfc657168a6e225e0ddd32c665d03159e1cc3
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -13,12 +13,13 @@ gem install ic_agent
|
|
13
13
|
|
14
14
|
### Features
|
15
15
|
|
16
|
-
1.
|
17
|
-
2.
|
18
|
-
3.
|
19
|
-
4. canister
|
20
|
-
5.
|
21
|
-
6.
|
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
|
-
|
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
|
|
data/lib/ic_agent/principal.rb
CHANGED
@@ -72,7 +72,7 @@ module IcAgent
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def to_account_id(sub_account = 0)
|
75
|
-
AccountIdentifier.
|
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.
|
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
|
-
|
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
|
data/lib/ic_agent/utils.rb
CHANGED
data/lib/ic_agent/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2023-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: base32
|