class Xpring::Wallet
Representation of a XRP wallet
Constants
- INVALID_MNEMONIC_OR_DERIVATION_PATH_MSG
- SIGN_ERROR_MSG
Attributes
private_key[R]
public_key[R]
test[R]
Public Class Methods
from_mnemonic(mnemonic, derivation_path: nil, test: false)
click to toggle source
@param mnemonic [#to_s] @param derivation_path [#to_s, nil] @param test [true, false] @raise [Xpring::Error] @return [Xpring::Wallet]
# File lib/xpring/wallet.rb, line 20 def self.from_mnemonic(mnemonic, derivation_path: nil, test: false) result = Javascript.run do <<~JAVASCRIPT #{Javascript::ENTRY_POINT}.Wallet.generateWalletFromMnemonic( '#{mnemonic}', '#{derivation_path&.to_s}' || #{Javascript::ENTRY_POINT}.Wallet.getDefaultDerivationPath(), #{test}, ); JAVASCRIPT end raise Error.new(INVALID_MNEMONIC_OR_DERIVATION_PATH_MSG) if result.nil? new(result[:publicKey], result[:privateKey], result[:test]) end
from_seed(seed, test: false)
click to toggle source
@param seed [#to_s] @param test [true, false] @return [Xpring::Wallet]
# File lib/xpring/wallet.rb, line 40 def self.from_seed(seed, test: false) result = Javascript.run do <<~JAVASCRIPT #{Javascript::ENTRY_POINT}.Wallet.generateWalletFromSeed( '#{seed}', #{test}, ); JAVASCRIPT end new(result[:publicKey], result[:privateKey], result[:test]) end
new(public_key, private_key, test)
click to toggle source
@param public_key
[#to_s] @param private_key
[#to_s] @param test [true, false]
# File lib/xpring/wallet.rb, line 55 def initialize(public_key, private_key, test) @public_key = public_key.to_s @private_key = private_key.to_s @test = test end
Public Instance Methods
address()
click to toggle source
@return [String]
# File lib/xpring/wallet.rb, line 62 def address @address ||= Javascript.run do <<~JAVASCRIPT #{to_javascript}.getAddress(); JAVASCRIPT end end
sign(input)
click to toggle source
@param input [#to_s] @raise [Xpring::Error] @return [String]
# File lib/xpring/wallet.rb, line 73 def sign(input) signed = Javascript.run do <<~JAVASCRIPT #{to_javascript}.sign('#{input}'); JAVASCRIPT end raise Error.new(SIGN_ERROR_MSG) if signed.nil? signed end
to_javascript()
click to toggle source
@return [String] Javascript
constructor expression for this Wallet
# File lib/xpring/wallet.rb, line 96 def to_javascript <<~JAVASCRIPT new #{Javascript::ENTRY_POINT}.Wallet( '#{public_key}', '#{private_key}', #{test}, ) JAVASCRIPT end
valid?(message, signature)
click to toggle source
@param message [#to_s] @param signature [#to_s] @return [true, false]
# File lib/xpring/wallet.rb, line 87 def valid?(message, signature) Javascript.run do <<~JAVASCRIPT #{to_javascript}.verify('#{message}', '#{signature}'); JAVASCRIPT end == true end