openassets-ruby 0.5.3 → 0.5.4
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/README.md +16 -3
- data/lib/openassets/api.rb +11 -6
- data/lib/openassets/protocol/asset_definition_loader.rb +1 -1
- data/lib/openassets/send_asset_param.rb +3 -1
- data/lib/openassets/transaction/spendable_output.rb +8 -1
- data/lib/openassets/transaction/transaction_builder.rb +1 -3
- data/lib/openassets/version.rb +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d7799eb6ff465493ef1873435b320f4700499128
         | 
| 4 | 
            +
              data.tar.gz: 2a30a7092e1d2bdfc301f208c692ca617a0ae95b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: d5bb413b7fe229ea47230bb5b1da509693f0502132ba4383cfc0dee6af146e3b16c84bc7aa42136f13b8dcedb825072d2e53e350f2c94986dfc3b04a089d173f
         | 
| 7 | 
            +
              data.tar.gz: 77ebd36b208b46b2c88d16be49256d822a56b69eed147a374ce7a73195ecbefcab45d52cee1600b5aa26972215b50c4274a5759407cce8ae7027165d227dc82f
         | 
    
        data/README.md
    CHANGED
    
    | @@ -205,18 +205,31 @@ Get tx outputs. (use for debug) | |
| 205 205 | 
             
              ``` 
         | 
| 206 206 |  | 
| 207 207 | 
             
            * **send_assets**  
         | 
| 208 | 
            -
            Creates a transaction for sending **multiple** asset from the open asset address to another.
         | 
| 208 | 
            +
            Creates a transaction for sending **multiple** asset from the open asset address(es) to another.  
         | 
| 209 | 
            +
            `<from open asset address>` is used to send bitcoins **if** needed, and receive bitcoin change **if** any.
         | 
| 209 210 | 
             
              ```ruby
         | 
| 210 211 | 
             
              # send assets
         | 
| 211 212 | 
             
              # api.send_assets(<from open asset address>, <The array of send Asset information(see OpenAssets::SendAssetParam).>, <fees (The fess in satoshis for the transaction. use 10000 satoshi if specified nil)>, <mode=('broadcast', 'signed', 'unsigned')>, <output_qty default value is 1.>)
         | 
| 212 213 |  | 
| 213 214 | 
             
              # example
         | 
| 214 | 
            -
              from = address_to_oa_address('mrxpeizRrF8ymNx5FrvcGGZVecZjtUFVP3')
         | 
| 215 | 
            -
              to = address_to_oa_address('n4MEsSUN8GktDFZzU3V55mP3jWGMN7e4wE')
         | 
| 215 | 
            +
              from = api.address_to_oa_address('mrxpeizRrF8ymNx5FrvcGGZVecZjtUFVP3')
         | 
| 216 | 
            +
              to = api.address_to_oa_address('n4MEsSUN8GktDFZzU3V55mP3jWGMN7e4wE')
         | 
| 216 217 | 
             
              params = []
         | 
| 217 218 | 
             
              params << OpenAssets::SendAssetParam.new('oGu4VXx2TU97d9LmPP8PMCkHckkcPqC5RY', 50, to)
         | 
| 218 219 | 
             
              params << OpenAssets::SendAssetParam.new('oUygwarZqNGrjDvcZUpZdvEc7es6dcs1vs', 4, to)
         | 
| 219 220 | 
             
              tx = api.send_assets(from, params)
         | 
| 221 | 
            +
              
         | 
| 222 | 
            +
              # send assets from multiple addresses.
         | 
| 223 | 
            +
              change_address = 'mwxeANpckdbdgZCpUMTceQhbbhLPJiqpfD'
         | 
| 224 | 
            +
              from = [
         | 
| 225 | 
            +
                api.address_to_oa_address("mrxpeizRrF8ymNx5FrvcGGZVecZjtUFVP3"),
         | 
| 226 | 
            +
                api.address_to_oa_address("mvYbB238p3rFYFjM56cHhNNHeQb5ypQJ3T")
         | 
| 227 | 
            +
              ]
         | 
| 228 | 
            +
              to = api.address_to_oa_address('n4MEsSUN8GktDFZzU3V55mP3jWGMN7e4wE')
         | 
| 229 | 
            +
              params = []
         | 
| 230 | 
            +
              params << OpenAssets::SendAssetParam.new('oGu4VXx2TU97d9LmPP8PMCkHckkcPqC5RY', 100, to, from[0])
         | 
| 231 | 
            +
              params << OpenAssets::SendAssetParam.new('oUygwarZqNGrjDvcZUpZdvEc7es6dcs1vs', 100, to, from[1])
         | 
| 232 | 
            +
              tx = api.send_assets(change_address, params)
         | 
| 220 233 | 
             
              ```
         | 
| 221 234 |  | 
| 222 235 | 
             
            * **send_bitcoins**  
         | 
    
        data/lib/openassets/api.rb
    CHANGED
    
    | @@ -125,19 +125,22 @@ module OpenAssets | |
| 125 125 | 
             
                end
         | 
| 126 126 |  | 
| 127 127 | 
             
                # Creates a transaction for sending multiple asset from an address to another.
         | 
| 128 | 
            -
                # @param[String] from The open asset address to send the asset from.
         | 
| 129 | 
            -
                #  | 
| 128 | 
            +
                # @param[String] from The open asset address to send the asset from when send_asset_param hasn't from.
         | 
| 129 | 
            +
                # to send the bitcoins from, if needed. where to send bitcoin change, if any.
         | 
| 130 | 
            +
                # @param[Array[OpenAssets::SendAssetParam]] send_asset_params The send Asset information(asset_id, amount, to, from).
         | 
| 130 131 | 
             
                # @param[Integer] fees The fess in satoshis for the transaction.
         | 
| 131 132 | 
             
                # @param[String] mode 'broadcast' (default) for signing and broadcasting the transaction,
         | 
| 132 133 | 
             
                # 'signed' for signing the transaction without broadcasting,
         | 
| 133 134 | 
             
                # 'unsigned' for getting the raw unsigned transaction without broadcasting"""='broadcast'
         | 
| 134 135 | 
             
                # @return[Bitcoin::Protocol:Tx] The resulting transaction.
         | 
| 135 136 | 
             
                def send_assets(from, send_asset_params, fees = nil, mode = 'broadcast')
         | 
| 136 | 
            -
                   | 
| 137 | 
            -
             | 
| 138 | 
            -
                    [param.asset_id, OpenAssets::Transaction::TransferParameters.new(colored_outputs, param.to, from, param.amount)]
         | 
| 137 | 
            +
                  transfer_specs = send_asset_params.map{ |param|
         | 
| 138 | 
            +
                    colored_outputs = get_unspent_outputs([oa_address_to_address(param.from || from)])
         | 
| 139 | 
            +
                    [param.asset_id, OpenAssets::Transaction::TransferParameters.new(colored_outputs, param.to, param.from || from, param.amount)]
         | 
| 139 140 | 
             
                  }
         | 
| 140 | 
            -
                   | 
| 141 | 
            +
                  btc_transfer_spec = OpenAssets::Transaction::TransferParameters.new(
         | 
| 142 | 
            +
                      get_unspent_outputs([oa_address_to_address(from)]), nil, oa_address_to_address(from), 0)
         | 
| 143 | 
            +
                  tx = create_tx_builder.transfer_assets(transfer_specs, btc_transfer_spec, fees.nil? ? @config[:default_fees]: fees)
         | 
| 141 144 | 
             
                  tx = process_transaction(tx, mode)
         | 
| 142 145 | 
             
                  tx
         | 
| 143 146 | 
             
                end
         | 
| @@ -205,6 +208,8 @@ module OpenAssets | |
| 205 208 | 
             
                    output = OpenAssets::Transaction::SpendableOutput.new(
         | 
| 206 209 | 
             
                      OpenAssets::Transaction::OutPoint.new(item['txid'], item['vout']), output_result)
         | 
| 207 210 | 
             
                    output.confirmations = item['confirmations']
         | 
| 211 | 
            +
                    output.spendable = item['spendable']
         | 
| 212 | 
            +
                    output.solvable = item['solvable']
         | 
| 208 213 | 
             
                    output
         | 
| 209 214 | 
             
                  }
         | 
| 210 215 | 
             
                  result
         | 
| @@ -4,11 +4,13 @@ module OpenAssets | |
| 4 4 | 
             
                  attr_accessor :asset_id
         | 
| 5 5 | 
             
                  attr_accessor :amount
         | 
| 6 6 | 
             
                  attr_accessor :to
         | 
| 7 | 
            +
                  attr_accessor :from
         | 
| 7 8 |  | 
| 8 | 
            -
                  def initialize(asset_id, amount, to)
         | 
| 9 | 
            +
                  def initialize(asset_id, amount, to, from = nil)
         | 
| 9 10 | 
             
                    @asset_id = asset_id
         | 
| 10 11 | 
             
                    @amount = amount
         | 
| 11 12 | 
             
                    @to = to
         | 
| 13 | 
            +
                    @from = from
         | 
| 12 14 | 
             
                  end
         | 
| 13 15 | 
             
                end
         | 
| 14 16 |  | 
| @@ -10,6 +10,8 @@ module OpenAssets | |
| 10 10 | 
             
                  attr_accessor :output
         | 
| 11 11 |  | 
| 12 12 | 
             
                  attr_accessor :confirmations
         | 
| 13 | 
            +
                  attr_accessor :spendable
         | 
| 14 | 
            +
                  attr_accessor :solvable
         | 
| 13 15 |  | 
| 14 16 | 
             
                  # @param [OpenAssets::Transaction::OutPoint] out_point
         | 
| 15 17 | 
             
                  # @param [OpenAssets::Protocol::TransactionOutput] output
         | 
| @@ -17,12 +19,17 @@ module OpenAssets | |
| 17 19 | 
             
                    @out_point = out_point
         | 
| 18 20 | 
             
                    @output = output
         | 
| 19 21 | 
             
                    @confirmations = nil
         | 
| 22 | 
            +
                    @solvable = nil
         | 
| 23 | 
            +
                    @spendable = nil
         | 
| 20 24 | 
             
                  end
         | 
| 21 25 |  | 
| 22 26 | 
             
                  # convert to hash.
         | 
| 23 27 | 
             
                  def to_hash
         | 
| 24 28 | 
             
                    return {} if @output.nil?
         | 
| 25 | 
            -
                    {'txid' => @out_point.hash, 'vout' => @out_point.index, 'confirmations' => @confirmations}.merge(@output.to_hash)
         | 
| 29 | 
            +
                    h = {'txid' => @out_point.hash, 'vout' => @out_point.index, 'confirmations' => @confirmations}.merge(@output.to_hash)
         | 
| 30 | 
            +
                    h['solvable'] = @solvable unless @solvable.nil?
         | 
| 31 | 
            +
                    h['spendable'] = @spendable unless @spendable.nil?
         | 
| 32 | 
            +
                    h
         | 
| 26 33 | 
             
                  end
         | 
| 27 34 |  | 
| 28 35 | 
             
                end
         | 
| @@ -66,9 +66,7 @@ module OpenAssets | |
| 66 66 | 
             
                  # @param[String] btc_change_script The script where to send bitcoin change, if any.
         | 
| 67 67 | 
             
                  # @param[Integer] fees The fees to include in the transaction.
         | 
| 68 68 | 
             
                  # @return[Bitcoin::Protocol:Tx] The resulting unsigned transaction.
         | 
| 69 | 
            -
                  def transfer_assets(transfer_specs,  | 
| 70 | 
            -
                    btc_transfer_spec = OpenAssets::Transaction::TransferParameters.new(
         | 
| 71 | 
            -
                        transfer_specs[0][1].unspent_outputs, nil, oa_address_to_address(btc_change_script), 0)
         | 
| 69 | 
            +
                  def transfer_assets(transfer_specs, btc_transfer_spec, fees)
         | 
| 72 70 | 
             
                    transfer(transfer_specs, [btc_transfer_spec], fees)
         | 
| 73 71 | 
             
                  end
         | 
| 74 72 |  | 
    
        data/lib/openassets/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: openassets-ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - azuchi
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-09- | 
| 11 | 
            +
            date: 2016-09-20 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bitcoin-ruby
         | 
| @@ -226,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 226 226 | 
             
                  version: '0'
         | 
| 227 227 | 
             
            requirements: []
         | 
| 228 228 | 
             
            rubyforge_project: 
         | 
| 229 | 
            -
            rubygems_version: 2.4. | 
| 229 | 
            +
            rubygems_version: 2.4.6
         | 
| 230 230 | 
             
            signing_key: 
         | 
| 231 231 | 
             
            specification_version: 4
         | 
| 232 232 | 
             
            summary: The implementation of the Open Assets Protocol for Ruby.
         |