diff --git a/lib/ckb/api.rb b/lib/ckb/api.rb index deb3fbac..3f379eda 100644 --- a/lib/ckb/api.rb +++ b/lib/ckb/api.rb @@ -152,8 +152,10 @@ def get_live_cell(out_point, with_data = false) # @param transaction [CKB::Types::Transaction] # # @return [String] tx_hash - def send_transaction(transaction) - rpc.send_transaction(transaction.to_raw_transaction_h) + def send_transaction(transaction, outputs_validator = "default") + raise ArgumentError, "Invalid outputs_validator, outputs_validator should be `default` or `passthrough`" unless %w(default passthrough).include?(outputs_validator) + + rpc.send_transaction(transaction.to_raw_transaction_h, outputs_validator) end def compute_transaction_hash(transaction) diff --git a/lib/ckb/rpc.rb b/lib/ckb/rpc.rb index 10a10f1e..e049a37c 100644 --- a/lib/ckb/rpc.rb +++ b/lib/ckb/rpc.rb @@ -73,8 +73,10 @@ def get_live_cell(out_point, with_data = false) rpc_request("get_live_cell", params: [out_point, with_data]) end - def send_transaction(transaction) - rpc_request("send_transaction", params: [transaction]) + def send_transaction(transaction, outputs_validator = "default") + raise ArgumentError, "Invalid outputs_validator, outputs_validator should be `default` or `passthrough`" unless %w(default passthrough).include?(outputs_validator) + + rpc_request("send_transaction", params: [transaction, outputs_validator]) end def local_node_info diff --git a/lib/ckb/wallet.rb b/lib/ckb/wallet.rb index 647f2b2e..2c5237ea 100644 --- a/lib/ckb/wallet.rb +++ b/lib/ckb/wallet.rb @@ -123,9 +123,9 @@ def generate_tx(target_address, capacity, data = "0x", key: nil, fee: 0, use_dep # @param data [String] "0x..." # @param key [CKB::Key | String] Key or private key hex string # @param fee [Integer] transaction fee, in shannon - def send_capacity(target_address, capacity, data = "0x", key: nil, fee: 0) + def send_capacity(target_address, capacity, data = "0x", key: nil, fee: 0, outputs_validator: "default") tx = generate_tx(target_address, capacity, data, key: key, fee: fee) - send_transaction(tx) + send_transaction(tx, outputs_validator) end # @param capacity [Integer] @@ -360,8 +360,8 @@ def lock private # @param transaction [CKB::Transaction] - def send_transaction(transaction) - api.send_transaction(transaction) + def send_transaction(transaction, outputs_validator = "default") + api.send_transaction(transaction, outputs_validator) end # @param capacity [Integer]