@@ -258,6 +258,51 @@ def random_deleg(wid, deleg_action)
258258 # API for Transactions
259259 # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Transactions
260260 class Transactions < Base
261+ # Construct transaction
262+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/constructTransaction
263+ # @param wid [String] source wallet id
264+ # @param payments [Array of Hashes] full payments payload with assets
265+ # @param withdrawal [String or Array] 'self' or mnemonic sentence
266+ # @param metadata [Hash] special metadata JSON subset format (cf: https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/postTransaction)
267+ # @param mint [Array of Hashes] mint object
268+ # @param delegations [Array of Hashes] delegations object
269+ # @param validity_interval [Hash] validity_interval object
270+ def construct ( wid ,
271+ payments = nil ,
272+ withdrawal = nil ,
273+ metadata = nil ,
274+ delegations = nil ,
275+ mint = nil ,
276+ validity_interval = nil )
277+ payload = { }
278+ payload [ :payments ] = payments if payments
279+ payload [ :withdrawal ] = withdrawal if withdrawal
280+ payload [ :metadata ] = metadata if metadata
281+ payload [ :mint ] = mint if mint
282+ payload [ :delegations ] = delegations if delegations
283+ payload [ :validity_interval ] = validity_interval if validity_interval
284+
285+ self . class . post ( "/wallets/#{ wid } /transactions-construct" ,
286+ body : payload . to_json ,
287+ headers : { 'Content-Type' => 'application/json' } )
288+ end
289+
290+ # Sign transaction
291+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/signTransaction
292+ # @param wid [String] source wallet id
293+ # @param passphrase [String] wallet's passphrase
294+ # @param passphrase [String] CBOR transaction data
295+ def sign ( wid , passphrase , transaction )
296+ payload = {
297+ 'passphrase' => passphrase ,
298+ 'transaction' => transaction
299+ }
300+
301+ self . class . post ( "/wallets/#{ wid } /transactions-sign" ,
302+ body : payload . to_json ,
303+ headers : { 'Content-Type' => 'application/json' } )
304+ end
305+
261306 # Get tx by id
262307 # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getTransaction
263308 def get ( wid , tx_id )
0 commit comments