Method: FlowClient::Client#add_contract
- Defined in:
- lib/flow_client/client.rb
#add_contract(name, code, payer_account, signer) ⇒ Object
Adds a contract to an account
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/flow_client/client.rb', line 134 def add_contract(name, code, payer_account, signer) script = File.read(File.join("lib", "cadence", "templates", "add-contract.cdc")) code_hex = code.unpack1("H*") arguments = [ CadenceType.String(name), CadenceType.String(code_hex) ] transaction = FlowClient::Transaction.new transaction.script = script transaction.reference_block_id = get_latest_block.id transaction.proposer_address = payer_account.address transaction.proposer_key_index = 0 transaction.arguments = arguments transaction.proposer_key_sequence_number = get_account(payer_account.address).keys.first.sequence_number transaction.payer_address = payer_account.address transaction. = [payer_account.address] transaction.add_envelope_signature(payer_account.address, 0, signer) res = send_transaction(transaction) wait_for_transaction(res.id) do |response| raise CadenceRuntimeError, response. if response.status_code != 0 end end |