near 0.1.0 → 0.2.0
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 +16 -0
- data/README.md +19 -3
- data/VERSION +1 -1
- data/lib/near/account.rb +11 -0
- data/lib/near/balance.rb +10 -1
- data/lib/near/block.rb +6 -0
- data/lib/near/cli/account.rb +13 -13
- data/lib/near/cli/contract.rb +26 -14
- data/lib/near/cli.rb +4 -1
- data/lib/near/mainnet.rb +17 -0
- data/lib/near/network.rb +43 -0
- data/lib/near/testnet.rb +17 -0
- data/lib/near.rb +17 -0
- metadata +5 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cf5d4ecbf47a20dcb7316560abfdf3317505824ed2a501dc769e53186db46571
         | 
| 4 | 
            +
              data.tar.gz: 5745b4bd4742054e9c5e710b4e267795636fd4d82c0866a3209ed804c306b25a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b877435cf142fab1a9d2f4b6651f1993dbf05b7c8eeea28cc76ea9ac6930a855a6570576ae5fb8012e869949efd1b56ca6cce5474bd318735996c9b8713d74f9
         | 
| 7 | 
            +
              data.tar.gz: a0e57d4a298b6e52d320a9c2be9ccc8aef0f6abe7ed24e18535c6dbc0fffdbe153f3b8fa3c676cc33ac5823824d1a878175778684c88d1e272354d841ba9a388
         | 
    
        data/CHANGES.md
    CHANGED
    
    | @@ -5,6 +5,22 @@ 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.2.0 - 2025-01-29
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            ### Added
         | 
| 11 | 
            +
            - `Network#fetch(block)`.
         | 
| 12 | 
            +
            - `NEAR.testnet`, `NEAR.mainnet`.
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            ### Changed
         | 
| 15 | 
            +
            - Use the NEAR_CLI environmnet variable, if set.
         | 
| 16 | 
            +
            - Use a temporary file for `call_function`.
         | 
| 17 | 
            +
            - Enhance `call_function()`.
         | 
| 18 | 
            +
            - Enhance `create_account_with_funding()`.
         | 
| 19 | 
            +
            - Enhance `delete_account()`.
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            ### Fixed
         | 
| 22 | 
            +
            - Fix the formatting of balances.
         | 
| 23 | 
            +
             | 
| 8 24 | 
             
            ## 0.1.0 - 2025-01-19
         | 
| 9 25 |  | 
| 10 26 | 
             
            ## 0.0.0 - 2025-01-11
         | 
    
        data/README.md
    CHANGED
    
    | @@ -17,13 +17,14 @@ It wraps the [NEAR command-line interface] (CLI) into a Ruby interface. | |
| 17 17 | 
             
            - Handles transaction construction, signing, and monitoring.
         | 
| 18 18 | 
             
            - Integrates with hardware wallets and secure key storage.
         | 
| 19 19 | 
             
            - Implements type-safe balance operations and input validation.
         | 
| 20 | 
            +
            - Fetches block data from the [neardata.xyz] API.
         | 
| 20 21 | 
             
            - Supports both the [mainnet] and [testnet] environments.
         | 
| 21 22 | 
             
            - Offers cross-platform support with zero library dependencies.
         | 
| 22 23 | 
             
            - 100% free and unencumbered public domain software.
         | 
| 23 24 |  | 
| 24 25 | 
             
            ## 🛠️ Prerequisites
         | 
| 25 26 |  | 
| 26 | 
            -
            - [NEAR CLI] 0. | 
| 27 | 
            +
            - [NEAR CLI] 0.19+
         | 
| 27 28 | 
             
            - [Ruby] 3.0+
         | 
| 28 29 |  | 
| 29 30 | 
             
            ## ⬇️ Installation
         | 
| @@ -40,12 +41,26 @@ gem install near | |
| 40 41 |  | 
| 41 42 | 
             
            ```ruby
         | 
| 42 43 | 
             
            require 'near'
         | 
| 44 | 
            +
            ```
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            ### Fetching block information
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            Block data is fetched from the high-performance [neardata.xyz] API
         | 
| 49 | 
            +
            that caches blocks using Cloudflare's network with more than 330
         | 
| 50 | 
            +
            global edge locations:
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            ```ruby
         | 
| 53 | 
            +
            block = NEAR.testnet.fetch(186_132_854)
         | 
| 54 | 
            +
            ```
         | 
| 43 55 |  | 
| 56 | 
            +
            ### Instantiating the CLI wrapper
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            ```ruby
         | 
| 44 59 | 
             
            # Use the NEAR testnet (the default):
         | 
| 45 | 
            -
            testnet = NEAR::CLI.new(network:  | 
| 60 | 
            +
            testnet = NEAR::CLI.new(network: NEAR.testnet)
         | 
| 46 61 |  | 
| 47 62 | 
             
            # Use the NEAR mainnet (to test in prod):
         | 
| 48 | 
            -
            # mainnet = NEAR::CLI.new(network:  | 
| 63 | 
            +
            # mainnet = NEAR::CLI.new(network: NEAR.mainnet)
         | 
| 49 64 | 
             
            ```
         | 
| 50 65 |  | 
| 51 66 | 
             
            ### Viewing account details
         | 
| @@ -230,3 +245,4 @@ git clone https://github.com/dryruby/near.rb.git | |
| 230 245 | 
             
            [Ruby]: https://ruby-lang.org
         | 
| 231 246 | 
             
            [mainnet]: https://docs.near.org/concepts/basics/networks#mainnet
         | 
| 232 247 | 
             
            [testnet]: https://docs.near.org/concepts/basics/networks#testnet
         | 
| 248 | 
            +
            [neardata.xyz]: https://neardata.xyz
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0. | 
| 1 | 
            +
            0.2.0
         | 
    
        data/lib/near/account.rb
    CHANGED
    
    | @@ -5,12 +5,23 @@ | |
| 5 5 | 
             
            #
         | 
| 6 6 | 
             
            # @see https://nomicon.io/DataStructures/Account
         | 
| 7 7 | 
             
            class NEAR::Account
         | 
| 8 | 
            +
              def self.parse(id)
         | 
| 9 | 
            +
                self.new(id.to_s)
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 8 12 | 
             
              ##
         | 
| 9 13 | 
             
              # @param [String, #to_s] id
         | 
| 10 14 | 
             
              def initialize(id)
         | 
| 11 15 | 
             
                @id = id.to_s
         | 
| 12 16 | 
             
              end
         | 
| 13 17 |  | 
| 18 | 
            +
              ##
         | 
| 19 | 
            +
              # @return [NEAR::Account]
         | 
| 20 | 
            +
              def parent
         | 
| 21 | 
            +
                return nil unless @id.include?('.')
         | 
| 22 | 
            +
                self.class.new(@id.split('.').drop(1).join('.'))
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
             | 
| 14 25 | 
             
              ##
         | 
| 15 26 | 
             
              # The account name.
         | 
| 16 27 | 
             
              #
         | 
    
        data/lib/near/balance.rb
    CHANGED
    
    | @@ -23,6 +23,10 @@ class NEAR::Balance | |
| 23 23 | 
             
                end
         | 
| 24 24 | 
             
              end
         | 
| 25 25 |  | 
| 26 | 
            +
              ##
         | 
| 27 | 
            +
              # The canonical zero balance.
         | 
| 28 | 
            +
              ZERO = self.new(0).freeze
         | 
| 29 | 
            +
             | 
| 26 30 | 
             
              ##
         | 
| 27 31 | 
             
              # The balance as a Ⓝ-prefixed string.
         | 
| 28 32 | 
             
              #
         | 
| @@ -35,7 +39,12 @@ class NEAR::Balance | |
| 35 39 | 
             
              # The balance as a string.
         | 
| 36 40 | 
             
              #
         | 
| 37 41 | 
             
              # @return [String]
         | 
| 38 | 
            -
              def to_s | 
| 42 | 
            +
              def to_s
         | 
| 43 | 
            +
                case @quantity
         | 
| 44 | 
            +
                  when BigDecimal then @quantity.to_s('F')
         | 
| 45 | 
            +
                  else @quantity.to_s
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
              end
         | 
| 39 48 |  | 
| 40 49 | 
             
              ##
         | 
| 41 50 | 
             
              # The balance as a rational number.
         | 
    
        data/lib/near/block.rb
    CHANGED
    
    
    
        data/lib/near/cli/account.rb
    CHANGED
    
    | @@ -88,18 +88,17 @@ module NEAR::CLI::Account | |
| 88 88 | 
             
              ##
         | 
| 89 89 | 
             
              # Creates a new account funded by another account.
         | 
| 90 90 | 
             
              #
         | 
| 91 | 
            -
              # @param [ | 
| 92 | 
            -
              # @param [ | 
| 93 | 
            -
              # @param [ | 
| 94 | 
            -
              # @param [String] deposit
         | 
| 91 | 
            +
              # @param [NEAR::Account] new_account
         | 
| 92 | 
            +
              # @param [NEAR::Account] signer Account that signs & funds the transaction
         | 
| 93 | 
            +
              # @param [NEAR::Balance] deposit Amount of NEAR to attach
         | 
| 95 94 | 
             
              # @return [String]
         | 
| 96 | 
            -
              def create_account_with_funding( | 
| 95 | 
            +
              def create_account_with_funding(new_account, signer:, deposit: nil)
         | 
| 97 96 | 
             
                stdout, stderr = execute(
         | 
| 98 97 | 
             
                  'account',
         | 
| 99 98 | 
             
                  'create-account',
         | 
| 100 | 
            -
                  'fund-myself',  | 
| 101 | 
            -
                  ' | 
| 102 | 
            -
                  'sign-as',  | 
| 99 | 
            +
                  'fund-myself', new_account.to_s, (deposit ? deposit.to_s : '0') + ' NEAR',
         | 
| 100 | 
            +
                  'autogenerate-new-keypair', 'save-to-keychain',
         | 
| 101 | 
            +
                  'sign-as', signer.to_s,
         | 
| 103 102 | 
             
                  'network-config', @network,
         | 
| 104 103 | 
             
                  'sign-with-keychain',
         | 
| 105 104 | 
             
                  'send'
         | 
| @@ -126,14 +125,15 @@ module NEAR::CLI::Account | |
| 126 125 | 
             
              ##
         | 
| 127 126 | 
             
              # Deletes an account and transfers remaining balance to beneficiary.
         | 
| 128 127 | 
             
              #
         | 
| 129 | 
            -
              # @param [ | 
| 130 | 
            -
              # @param [ | 
| 128 | 
            +
              # @param [NEAR::Account] account
         | 
| 129 | 
            +
              # @param [NEAR::Account] beneficiary
         | 
| 131 130 | 
             
              # @return [String]
         | 
| 132 | 
            -
              def delete_account( | 
| 131 | 
            +
              def delete_account(account, beneficiary: nil)
         | 
| 132 | 
            +
                account = NEAR::Account.parse(account)
         | 
| 133 133 | 
             
                stdout, stderr = execute(
         | 
| 134 134 | 
             
                  'account',
         | 
| 135 | 
            -
                  'delete-account',  | 
| 136 | 
            -
                  'beneficiary',  | 
| 135 | 
            +
                  'delete-account', account.to_s,
         | 
| 136 | 
            +
                  'beneficiary', (beneficiary || account.parent).to_s,
         | 
| 137 137 | 
             
                  'network-config', @network,
         | 
| 138 138 | 
             
                  'sign-with-keychain',
         | 
| 139 139 | 
             
                  'send'
         | 
    
        data/lib/near/cli/contract.rb
    CHANGED
    
    | @@ -1,21 +1,24 @@ | |
| 1 1 | 
             
            # This is free and unencumbered software released into the public domain.
         | 
| 2 2 |  | 
| 3 | 
            +
            require "base64"
         | 
| 4 | 
            +
            require "pathname"
         | 
| 5 | 
            +
             | 
| 3 6 | 
             
            ##
         | 
| 4 7 | 
             
            # @see https://github.com/near/near-cli-rs/blob/main/docs/GUIDE.en.md#contract---Manage-smart-contracts-deploy-code-call-functions
         | 
| 5 8 | 
             
            module NEAR::CLI::Contract
         | 
| 6 9 | 
             
              ##
         | 
| 7 10 | 
             
              # Calls a view method on a contract (read-only).
         | 
| 8 11 | 
             
              #
         | 
| 9 | 
            -
              # @param [ | 
| 12 | 
            +
              # @param [NEAR::Account] contract
         | 
| 10 13 | 
             
              # @param [String] method_name
         | 
| 11 14 | 
             
              # @param [Hash] args JSON arguments for the method
         | 
| 12 15 | 
             
              # @param [Block, Integer, String, Symbol] block
         | 
| 13 16 | 
             
              # @return [String] The method call result
         | 
| 14 | 
            -
              def view_call( | 
| 17 | 
            +
              def view_call(contract, method_name, args = {}, block: :now)
         | 
| 15 18 | 
             
                stdout, _ = execute(
         | 
| 16 19 | 
             
                  'contract',
         | 
| 17 20 | 
             
                  'call-function',
         | 
| 18 | 
            -
                  'as-read-only',  | 
| 21 | 
            +
                  'as-read-only', contract.to_s, method_name,
         | 
| 19 22 | 
             
                  'json-args', args.to_json,
         | 
| 20 23 | 
             
                  'network-config', @network,
         | 
| 21 24 | 
             
                  *block_args(block)
         | 
| @@ -26,22 +29,31 @@ module NEAR::CLI::Contract | |
| 26 29 | 
             
              ##
         | 
| 27 30 | 
             
              # Calls a state-changing method on a contract.
         | 
| 28 31 | 
             
              #
         | 
| 29 | 
            -
              # @param [ | 
| 32 | 
            +
              # @param [NEAR::Account] contract
         | 
| 30 33 | 
             
              # @param [String] method_name
         | 
| 31 | 
            -
              # @param [Hash] args  | 
| 32 | 
            -
              # @param [ | 
| 33 | 
            -
              # @param [ | 
| 34 | 
            -
              # @param [ | 
| 34 | 
            +
              # @param [Hash, Array, String, Pathname] args Arguments for the method
         | 
| 35 | 
            +
              # @param [NEAR::Account] signer Account that signs the transaction
         | 
| 36 | 
            +
              # @param [NEAR::Balance] deposit Amount of NEAR to attach
         | 
| 37 | 
            +
              # @param [NEAR::Gas, #to_s] gas Amount of gas to attach
         | 
| 35 38 | 
             
              # @return [String] Transaction result
         | 
| 36 | 
            -
              def call_function( | 
| 39 | 
            +
              def call_function(contract, method_name, args = {}, signer:, deposit: nil, gas: '100.0 Tgas')
         | 
| 40 | 
            +
                args = case args
         | 
| 41 | 
            +
                  when Hash, Array then ['json-args', args.to_json]
         | 
| 42 | 
            +
                  when String then case
         | 
| 43 | 
            +
                    when args.ascii_only? then ['text-args', args]
         | 
| 44 | 
            +
                    else ['base64-args', Base64.strict_encode64(args)]
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
                  when Pathname then ['file-args', args.to_s]
         | 
| 47 | 
            +
                  else raise ArgumentError, "Invalid argument type: #{args.inspect}"
         | 
| 48 | 
            +
                end
         | 
| 37 49 | 
             
                stdout, stderr = execute(
         | 
| 38 50 | 
             
                  'contract',
         | 
| 39 51 | 
             
                  'call-function',
         | 
| 40 | 
            -
                  'as-transaction',  | 
| 41 | 
            -
                   | 
| 42 | 
            -
                  'prepaid-gas', gas,
         | 
| 43 | 
            -
                  'attached-deposit', deposit,
         | 
| 44 | 
            -
                  'sign-as',  | 
| 52 | 
            +
                  'as-transaction', contract.to_s, method_name.to_s,
         | 
| 53 | 
            +
                  *args,
         | 
| 54 | 
            +
                  'prepaid-gas', gas.to_s,
         | 
| 55 | 
            +
                  'attached-deposit', (deposit ? deposit.to_s : '0') + ' NEAR',
         | 
| 56 | 
            +
                  'sign-as', signer.to_s,
         | 
| 45 57 | 
             
                  'network-config', @network,
         | 
| 46 58 | 
             
                  'sign-with-keychain',
         | 
| 47 59 | 
             
                  'send'
         | 
    
        data/lib/near/cli.rb
    CHANGED
    
    | @@ -22,6 +22,8 @@ class NEAR::CLI | |
| 22 22 | 
             
              class ExecutionError < Error; end
         | 
| 23 23 |  | 
| 24 24 | 
             
              def self.find_program
         | 
| 25 | 
            +
                return ENV['NEAR_CLI'] if ENV['NEAR_CLI']
         | 
| 26 | 
            +
             | 
| 25 27 | 
             
                # First, check `$HOME/.cargo/bin/near`:
         | 
| 26 28 | 
             
                path = File.expand_path('~/.cargo/bin/near')
         | 
| 27 29 | 
             
                return path if File.executable?(path)
         | 
| @@ -37,7 +39,7 @@ class NEAR::CLI | |
| 37 39 |  | 
| 38 40 | 
             
              ##
         | 
| 39 41 | 
             
              # @param [String, #to_s] path
         | 
| 40 | 
            -
              # @param [ | 
| 42 | 
            +
              # @param [Network, #to_s] network
         | 
| 41 43 | 
             
              def initialize(path: self.class.find_program, network: NEAR_ENV)
         | 
| 42 44 | 
             
                @path, @network = path.to_s, network.to_s
         | 
| 43 45 | 
             
              end
         | 
| @@ -61,6 +63,7 @@ class NEAR::CLI | |
| 61 63 | 
             
              # @param [Array<String>] args
         | 
| 62 64 | 
             
              # @return [Array<String>]
         | 
| 63 65 | 
             
              def execute(*args)
         | 
| 66 | 
            +
                #command = [@path, '--quiet', *args.map(&:to_s)] # TODO: near-cli-rs 0.19+
         | 
| 64 67 | 
             
                command = [@path, *args.map(&:to_s)]
         | 
| 65 68 | 
             
                puts command.join(' ') if false
         | 
| 66 69 | 
             
                stdout, stderr, status = Open3.capture3(*command)
         | 
    
        data/lib/near/mainnet.rb
    ADDED
    
    | @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            # This is free and unencumbered software released into the public domain.
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require_relative 'network'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ##
         | 
| 6 | 
            +
            # Represents the NEAR Mainnet.
         | 
| 7 | 
            +
            #
         | 
| 8 | 
            +
            # @see https://docs.near.org/concepts/basics/networks#mainnet
         | 
| 9 | 
            +
            class NEAR::Mainnet < NEAR::Network
         | 
| 10 | 
            +
              NEARDATA_URL = 'https://mainnet.neardata.xyz'.freeze
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              ##
         | 
| 13 | 
            +
              # @return [void]
         | 
| 14 | 
            +
              def initialize
         | 
| 15 | 
            +
                super(:mainnet)
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end # NEAR::Mainnet
         | 
    
        data/lib/near/network.rb
    ADDED
    
    | @@ -0,0 +1,43 @@ | |
| 1 | 
            +
            # This is free and unencumbered software released into the public domain.
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'net/http'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ##
         | 
| 6 | 
            +
            # Represents a NEAR Protocol network.
         | 
| 7 | 
            +
            #
         | 
| 8 | 
            +
            # @see https://docs.near.org/concepts/basics/networks
         | 
| 9 | 
            +
            class NEAR::Network
         | 
| 10 | 
            +
              ##
         | 
| 11 | 
            +
              # @param [Symbol, #to_sym] id
         | 
| 12 | 
            +
              # @return [void]
         | 
| 13 | 
            +
              def initialize(id)
         | 
| 14 | 
            +
                @id = id.to_sym
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              ##
         | 
| 18 | 
            +
              # @return [String]
         | 
| 19 | 
            +
              def to_s; @id.to_s; end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              ##
         | 
| 22 | 
            +
              # @return [String]
         | 
| 23 | 
            +
              def neardata_url
         | 
| 24 | 
            +
                self.class.const_get(:NEARDATA_URL)
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              ##
         | 
| 28 | 
            +
              # Fetches the block at the given height.
         | 
| 29 | 
            +
              #
         | 
| 30 | 
            +
              # The block data is fetched from the neardata.xyz API.
         | 
| 31 | 
            +
              # If the block does not exist, `nil` is returned.
         | 
| 32 | 
            +
              #
         | 
| 33 | 
            +
              # @param [NEAR::Block, #to_i] block
         | 
| 34 | 
            +
              # @return [Object]
         | 
| 35 | 
            +
              def fetch(block)
         | 
| 36 | 
            +
                response = Net::HTTP.get_response(URI("#{neardata_url}/v0/block/#{block.to_i}"))
         | 
| 37 | 
            +
                case response
         | 
| 38 | 
            +
                  when Net::HTTPSuccess then JSON.parse(response.body)
         | 
| 39 | 
            +
                  when Net::HTTPNotFound then nil
         | 
| 40 | 
            +
                  else raise response.to_s
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
            end # NEAR::Testnet
         | 
    
        data/lib/near/testnet.rb
    ADDED
    
    | @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            # This is free and unencumbered software released into the public domain.
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require_relative 'network'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ##
         | 
| 6 | 
            +
            # Represents the NEAR Testnet.
         | 
| 7 | 
            +
            #
         | 
| 8 | 
            +
            # @see https://docs.near.org/concepts/basics/networks#testnet
         | 
| 9 | 
            +
            class NEAR::Testnet < NEAR::Network
         | 
| 10 | 
            +
              NEARDATA_URL = 'https://testnet.neardata.xyz'.freeze
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              ##
         | 
| 13 | 
            +
              # @return [void]
         | 
| 14 | 
            +
              def initialize
         | 
| 15 | 
            +
                super(:testnet)
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
            end # NEAR::Testnet
         | 
    
        data/lib/near.rb
    CHANGED
    
    | @@ -6,5 +6,22 @@ require_relative 'near/account' | |
| 6 6 | 
             
            require_relative 'near/balance'
         | 
| 7 7 | 
             
            require_relative 'near/block'
         | 
| 8 8 | 
             
            require_relative 'near/cli'
         | 
| 9 | 
            +
            require_relative 'near/mainnet'
         | 
| 10 | 
            +
            require_relative 'near/network'
         | 
| 11 | 
            +
            require_relative 'near/testnet'
         | 
| 9 12 | 
             
            require_relative 'near/transaction'
         | 
| 10 13 | 
             
            require_relative 'near/version'
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            module NEAR
         | 
| 16 | 
            +
              ##
         | 
| 17 | 
            +
              # @return [NEAR::Testnet]
         | 
| 18 | 
            +
              def self.testnet
         | 
| 19 | 
            +
                @testnet ||= Testnet.new
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              ##
         | 
| 23 | 
            +
              # @return [NEAR::Mainnet]
         | 
| 24 | 
            +
              def self.mainnet
         | 
| 25 | 
            +
                @mainnet ||= Mainnet.new
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
            end
         | 
    
        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. | 
| 4 | 
            +
              version: 0.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Arto Bendiken
         | 
| 8 8 | 
             
            bindir: bin
         | 
| 9 9 | 
             
            cert_chain: []
         | 
| 10 | 
            -
            date: 2025-01- | 
| 10 | 
            +
            date: 2025-01-29 00:00:00.000000000 Z
         | 
| 11 11 | 
             
            dependencies:
         | 
| 12 12 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 13 13 | 
             
              name: rspec
         | 
| @@ -59,6 +59,9 @@ files: | |
| 59 59 | 
             
            - lib/near/cli/staking.rb
         | 
| 60 60 | 
             
            - lib/near/cli/tokens.rb
         | 
| 61 61 | 
             
            - lib/near/cli/transaction.rb
         | 
| 62 | 
            +
            - lib/near/mainnet.rb
         | 
| 63 | 
            +
            - lib/near/network.rb
         | 
| 64 | 
            +
            - lib/near/testnet.rb
         | 
| 62 65 | 
             
            - lib/near/transaction.rb
         | 
| 63 66 | 
             
            - lib/near/version.rb
         | 
| 64 67 | 
             
            homepage: https://github.com/dryruby/near.rb
         |