near 0.3.0 → 0.3.1
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/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: []
|