near 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +2 -0
- data/README.md +22 -12
- data/VERSION +1 -1
- data/lib/near/account.rb +10 -0
- data/lib/near/cli/account.rb +21 -10
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d113e40c4ca1414cd8bff319acdaeba7d7cd1a07ebc866ce875afd2080e44b1
|
4
|
+
data.tar.gz: ae7151a4a1022ecf3b9d652ae11bcabfffc427ccaad0cc07858fd662fb91cbd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 779325138cf044d38991e1911d8bf115f8559d86a530bda11e0b97a75367406386b63e81a7e9a3d9db69b70ab826ce146e0b326efdb9e69dcf3545083227c1bb
|
7
|
+
data.tar.gz: f5b55100bc19a9c8d3e6c165e66d7780b94a60ed1fea90bce0523cf77657b384b13c1439c8aabbc4db2b6d2ae5534ef186ad9d7ed82dd2bb3e85ee915f5e1fb0
|
data/CHANGES.md
CHANGED
@@ -5,6 +5,8 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
|
+
## 0.3.1 - 2025-02-05
|
9
|
+
|
8
10
|
## 0.3.0 - 2025-02-02
|
9
11
|
|
10
12
|
### Added
|
data/README.md
CHANGED
@@ -6,12 +6,13 @@
|
|
6
6
|
[](https://rubydoc.info/gems/near)
|
7
7
|
|
8
8
|
**NEAR.rb** is a [Ruby] client library for the [NEAR Protocol].
|
9
|
-
It provides a [neardata.xyz] API client as well as wraps the
|
10
|
-
[NEAR
|
9
|
+
It provides a [neardata.xyz] API client for block data as well as wraps the
|
10
|
+
[NEAR Command-Line Interface] (CLI) in a high-productivity Ruby interface.
|
11
11
|
|
12
12
|
## ✨ Features
|
13
13
|
|
14
14
|
- Fetches block data from the [neardata.xyz] API.
|
15
|
+
- Supports parsing of block, chunk, transaction, and action data.
|
15
16
|
- Wraps the complete CLI features in an idiomatic Ruby interface.
|
16
17
|
- Provides comprehensive account management operations.
|
17
18
|
- Supports token operations for NEAR and other assets.
|
@@ -25,7 +26,7 @@ It provides a [neardata.xyz] API client as well as wraps the
|
|
25
26
|
|
26
27
|
## 🛠️ Prerequisites
|
27
28
|
|
28
|
-
- [NEAR CLI] 0.
|
29
|
+
- [NEAR CLI] 0.18+
|
29
30
|
- [Ruby] 3.0+
|
30
31
|
|
31
32
|
## ⬇️ Installation
|
@@ -84,8 +85,6 @@ end
|
|
84
85
|
|
85
86
|
### Tracking chain transactions
|
86
87
|
|
87
|
-
See [`examples/monitor_all_transactions.rb`](examples/monitor_all_transactions.rb).
|
88
|
-
|
89
88
|
```ruby
|
90
89
|
NEAR.testnet.fetch_blocks do |block|
|
91
90
|
puts block.inspect
|
@@ -96,9 +95,12 @@ NEAR.testnet.fetch_blocks do |block|
|
|
96
95
|
end
|
97
96
|
```
|
98
97
|
|
99
|
-
|
98
|
+
For a more elaborated example, see
|
99
|
+
[`examples/monitor_all_transactions.rb`](examples/monitor_all_transactions.rb):
|
100
100
|
|
101
|
-
|
101
|
+
[](examples/monitor_all_transactions.gif)
|
102
|
+
|
103
|
+
### Tracking chain actions
|
102
104
|
|
103
105
|
```ruby
|
104
106
|
NEAR.testnet.fetch_blocks do |block|
|
@@ -110,9 +112,12 @@ NEAR.testnet.fetch_blocks do |block|
|
|
110
112
|
end
|
111
113
|
```
|
112
114
|
|
113
|
-
|
115
|
+
For a more elaborated example, see
|
116
|
+
[`examples/monitor_all_actions.rb`](examples/monitor_all_actions.rb):
|
114
117
|
|
115
|
-
|
118
|
+
[](examples/monitor_all_actions.gif)
|
119
|
+
|
120
|
+
### Tracking contract interactions
|
116
121
|
|
117
122
|
```ruby
|
118
123
|
NEAR.testnet.fetch_blocks do |block|
|
@@ -124,6 +129,11 @@ NEAR.testnet.fetch_blocks do |block|
|
|
124
129
|
end
|
125
130
|
```
|
126
131
|
|
132
|
+
For a more elaborated example, see
|
133
|
+
[`examples/index_evm_transactions.rb`](examples/index_evm_transactions.rb):
|
134
|
+
|
135
|
+
[](examples/index_evm_transactions.gif)
|
136
|
+
|
127
137
|
### Instantiating the CLI wrapper
|
128
138
|
|
129
139
|
```ruby
|
@@ -177,7 +187,7 @@ result = testnet.import_account_with_private_key(
|
|
177
187
|
# Create an account funded from a faucet (testnet only):
|
178
188
|
result = testnet.create_account_with_faucet(
|
179
189
|
'mynewaccount.testnet',
|
180
|
-
'ed25519:HVPgAsZkZ7cwLZDqK313XJsDyqAvgBxrATcD7VacA8KE'
|
190
|
+
public_key: 'ed25519:HVPgAsZkZ7cwLZDqK313XJsDyqAvgBxrATcD7VacA8KE'
|
181
191
|
)
|
182
192
|
|
183
193
|
# Create an account funded by another account:
|
@@ -197,8 +207,8 @@ result = testnet.create_implicit_account('/path/to/credentials/folder')
|
|
197
207
|
```ruby
|
198
208
|
# Delete an existing account:
|
199
209
|
result = testnet.delete_account(
|
200
|
-
'
|
201
|
-
'
|
210
|
+
'my-obsolete-account.testnet', # account to delete
|
211
|
+
beneficiary: 'v2.faucet.nonofficial.testnet' # account receiving remaining balance
|
202
212
|
)
|
203
213
|
```
|
204
214
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/lib/near/account.rb
CHANGED
@@ -5,10 +5,20 @@
|
|
5
5
|
#
|
6
6
|
# @see https://nomicon.io/DataStructures/Account
|
7
7
|
class NEAR::Account
|
8
|
+
##
|
9
|
+
# @param [String, #to_s] id
|
10
|
+
# @return [NEAR::Account]
|
8
11
|
def self.parse(id)
|
9
12
|
self.new(id.to_s)
|
10
13
|
end
|
11
14
|
|
15
|
+
##
|
16
|
+
# @return [NEAR::Account]
|
17
|
+
def self.temp
|
18
|
+
timestamp = (Time.now.to_f * 1_000).to_i
|
19
|
+
self.new("temp-#{timestamp}.testnet")
|
20
|
+
end
|
21
|
+
|
12
22
|
##
|
13
23
|
# @param [String, #to_s] id
|
14
24
|
def initialize(id)
|
data/lib/near/cli/account.rb
CHANGED
@@ -70,15 +70,20 @@ module NEAR::CLI::Account
|
|
70
70
|
##
|
71
71
|
# Creates a new account sponsored by the faucet service.
|
72
72
|
#
|
73
|
-
# @param [
|
74
|
-
# @param [String] public_key
|
73
|
+
# @param [NEAR::Account, #to_s] new_account
|
74
|
+
# @param [String, nil] public_key
|
75
75
|
# @return [String]
|
76
|
-
def create_account_with_faucet(
|
76
|
+
def create_account_with_faucet(new_account, public_key: nil)
|
77
77
|
stdout, stderr = execute(
|
78
78
|
'account',
|
79
79
|
'create-account',
|
80
|
-
'sponsor-by-faucet-service',
|
81
|
-
|
80
|
+
'sponsor-by-faucet-service', new_account.to_s,
|
81
|
+
*case public_key
|
82
|
+
when nil then ['autogenerate-new-keypair', 'save-to-keychain']
|
83
|
+
when String then ['use-manually-provided-public-key', public_key]
|
84
|
+
when Array then public_key
|
85
|
+
else raise ArgumentError
|
86
|
+
end,
|
82
87
|
'network-config', @network,
|
83
88
|
'create'
|
84
89
|
)
|
@@ -88,16 +93,22 @@ module NEAR::CLI::Account
|
|
88
93
|
##
|
89
94
|
# Creates a new account funded by another account.
|
90
95
|
#
|
91
|
-
# @param [NEAR::Account] new_account
|
92
|
-
# @param [NEAR::Account] signer Account that signs & funds the transaction
|
93
|
-
# @param [
|
96
|
+
# @param [NEAR::Account, #to_s] new_account
|
97
|
+
# @param [NEAR::Account, #to_s] signer Account that signs & funds the transaction
|
98
|
+
# @param [String, nil] public_key
|
99
|
+
# @param [NEAR::Balance, #to_s] deposit Amount of NEAR to attach
|
94
100
|
# @return [String]
|
95
|
-
def create_account_with_funding(new_account, signer:, deposit: nil)
|
101
|
+
def create_account_with_funding(new_account, signer:, public_key: nil, deposit: nil)
|
96
102
|
stdout, stderr = execute(
|
97
103
|
'account',
|
98
104
|
'create-account',
|
99
105
|
'fund-myself', new_account.to_s, (deposit ? deposit.to_s : '0') + ' NEAR',
|
100
|
-
|
106
|
+
*case public_key
|
107
|
+
when nil then ['autogenerate-new-keypair', 'save-to-keychain']
|
108
|
+
when String then ['use-manually-provided-public-key', public_key]
|
109
|
+
when Array then public_key
|
110
|
+
else raise ArgumentError
|
111
|
+
end,
|
101
112
|
'sign-as', signer.to_s,
|
102
113
|
'network-config', @network,
|
103
114
|
'sign-with-keychain',
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: near
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arto Bendiken
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-02-
|
10
|
+
date: 2025-02-05 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: base64
|
@@ -159,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
159
159
|
- !ruby/object:Gem::Version
|
160
160
|
version: '0'
|
161
161
|
requirements: []
|
162
|
-
rubygems_version: 3.6.
|
162
|
+
rubygems_version: 3.6.3
|
163
163
|
specification_version: 4
|
164
164
|
summary: 'NEAR.rb: NEAR for Ruby'
|
165
165
|
test_files: []
|