Class: Privy::Services::Tron

Inherits:
Object
  • Object
show all
Defined in:
lib/privy/public_api/services/tron.rb

Instance Method Summary collapse

Constructor Details

#initialize(wallets:) ⇒ Tron

Returns a new instance of Tron.



6
7
8
# File 'lib/privy/public_api/services/tron.rb', line 6

def initialize(wallets:)
  @wallets = wallets
end

Instance Method Details

#send_transaction(wallet_id, params:, caip2: nil, authorization_context: nil, idempotency_key: nil, request_expiry: nil, request_options: nil) ⇒ Privy::Models::TronSendTransactionRpcResponseData

Signs and broadcasts a Tron transaction.

Examples:

Send a Tron transaction

client.wallets.tron.send_transaction(wallet_id, params: {
  raw_data: {
    contract: [{
      type: "TransferContract",
      owner_address: "41...",
      to_address: "41...",
      amount: 1
    }]
  },
  reference_id: "my-idempotency-key"
}, caip2: "tron:0xcd8690dc")

Parameters:

  • wallet_id (String)

    ID of the wallet.

  • params (Hash)

    Parameters for tron_sendTransaction. Required key: :raw_data. Optional key: :reference_id for idempotent broadcast.

  • caip2 (String, nil) (defaults to: nil)

    A valid CAIP-2 chain ID (e.g. 'tron:0xcd8690dc').

  • authorization_context (Privy::Authorization::AuthorizationContext, nil) (defaults to: nil)
  • idempotency_key (String, nil) (defaults to: nil)
  • request_expiry (Integer, nil) (defaults to: nil)
  • request_options (Privy::RequestOptions, Hash, nil) (defaults to: nil)

Returns:



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/privy/public_api/services/tron.rb', line 80

def send_transaction(
  wallet_id,
  params:,
  caip2: nil,
  authorization_context: nil,
  idempotency_key: nil,
  request_expiry: nil,
  request_options: nil
)
  body = {method: :tron_sendTransaction, params: params}
  body[:caip2] = caip2 if caip2
  response = @wallets.rpc(
    wallet_id,
    wallet_rpc_request_body: body,
    authorization_context: authorization_context,
    idempotency_key: idempotency_key,
    request_expiry: request_expiry,
    request_options: request_options
  )
  response.data
end

#sign_transaction(wallet_id, params:, authorization_context: nil, idempotency_key: nil, request_expiry: nil, request_options: nil) ⇒ Privy::Models::TronSignTransactionRpcResponseData

Signs a Tron transaction without broadcasting.

Examples:

Sign a Tron transaction

client.wallets.tron.sign_transaction(wallet_id, params: {
  raw_data: {
    contract: [{
      type: "TransferContract",
      owner_address: "41...",
      to_address: "41...",
      amount: 1
    }],
    ref_block_bytes: "1a2b",
    ref_block_hash: "abc1234567890def",
    expiration: (Time.now.to_i * 1000) + 60_000,
    timestamp: Time.now.to_i * 1000
  }
})

Parameters:

  • wallet_id (String)

    ID of the wallet.

  • params (Hash)

    Parameters for tron_signTransaction. Required key: :raw_data.

  • authorization_context (Privy::Authorization::AuthorizationContext, nil) (defaults to: nil)
  • idempotency_key (String, nil) (defaults to: nil)
  • request_expiry (Integer, nil) (defaults to: nil)
  • request_options (Privy::RequestOptions, Hash, nil) (defaults to: nil)

Returns:



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/privy/public_api/services/tron.rb', line 36

def sign_transaction(
  wallet_id,
  params:,
  authorization_context: nil,
  idempotency_key: nil,
  request_expiry: nil,
  request_options: nil
)
  response = @wallets.rpc(
    wallet_id,
    wallet_rpc_request_body: {method: :tron_signTransaction, params: params},
    authorization_context: authorization_context,
    idempotency_key: idempotency_key,
    request_expiry: request_expiry,
    request_options: request_options
  )
  response.data
end