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 +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
|