class Round::WalletCollection
Public Class Methods
new(options, &block)
click to toggle source
Calls superclass method
Round::Collection::new
# File lib/round/wallet.rb, line 41 def initialize(options, &block) super @application = options[:application] end
Public Instance Methods
content_type()
click to toggle source
# File lib/round/wallet.rb, line 46 def content_type Round::Wallet end
create(name, passphrase, network: 'bitcoin_testnet', multiwallet: CoinOp::Bit::MultiWallet.generate([:primary, :backup]))
click to toggle source
# File lib/round/wallet.rb, line 50 def create(name, passphrase, network: 'bitcoin_testnet', multiwallet: CoinOp::Bit::MultiWallet.generate([:primary, :backup])) backup = multiwallet.private_seed(:backup, network: :bitcoin) multiwallet.drop_private(:backup) backup_master = multiwallet.trees[:backup] new_bmaster = MoneyTree::Master.new(public_key: backup_master.public_key, chain_code: backup_master.chain_code) multiwallet.trees[:backup] = new_bmaster wallet_resource = create_wallet_resource(multiwallet, passphrase, name) multiwallet.import( cosigner_public_seed: wallet_resource.cosigner_public_seed ) wallet = Round::Wallet.new( resource: wallet_resource, multiwallet: multiwallet, application: @application, client: @client ) add(wallet) [backup, wallet] end
create_wallet_resource(multiwallet, passphrase, name)
click to toggle source
# File lib/round/wallet.rb, line 71 def create_wallet_resource(multiwallet, passphrase, name) primary_seed = CoinOp::Encodings.hex(multiwallet.trees[:primary].seed) ## Encrypt the primary seed using a passphrase-derived key encrypted_seed = CoinOp::Crypto::PassphraseBox.encrypt(passphrase, primary_seed) @resource.create( name: name, backup_public_seed: multiwallet.trees[:backup].to_bip32, primary_public_seed: multiwallet.trees[:primary].to_bip32, primary_private_seed: encrypted_seed ) end