remitmd 0.1.3 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 92f3192f6e981e0a39fd2faf98437858b5b25f8f462ae4daea65163c1b9d210b
4
- data.tar.gz: 2d20d2c5dfda21c3ce11ff9876a8d27a488076091535b7186d3d4252b7f78b7d
3
+ metadata.gz: d343ece392d469fe2aa4c2388d912506654744486007eabc5dd8f030e19c00e3
4
+ data.tar.gz: 7b5ff1660f2dc09b105db50d29c0d9ffa6085a0537e1dce8faf3b6546de6c817
5
5
  SHA512:
6
- metadata.gz: 8c90a39e2ce798a689270c82ec4cc8e69a65494f3969f0f4263f0476decf45ffd5ee2886574992113dd467dc50946e7bf00213ae81ec9e3f01e89c3db7a9a820
7
- data.tar.gz: a36878cebc127b81bdf28ea8a5b9e9a9a1c4dd809e3ca59a0ef54c4060fd4c0216e3ccd2af87b9be1214fbc3a6958d74a833f2b67f9e794c62fd629a09da7a62
6
+ metadata.gz: 238bc729c10f5e79104d6d139dff95fc87aaa824f4a6dc75bf024c63ced60f2f86b5d1a01ae16c8a47418e8ab37d4443a940c63bfd1f6424d65fba46e96b5c88
7
+ data.tar.gz: ac95ef3316ad9684c6e8996fb0704a23423a77fa4083f98e70d1294c2157a91fda366214aaded0f8648241dabfc41ae7b92b2056f7690a0a8e467ebc8b5fac72
data/README.md CHANGED
@@ -194,9 +194,9 @@ wallet.return_deposit(deposit_id) # Transaction
194
194
  # Webhooks
195
195
  wallet.register_webhook(url, events, chains: nil) # Webhook
196
196
 
197
- # Operator links
197
+ # Operator links (optional: messages: [], agent_name: "")
198
198
  wallet.create_fund_link # LinkResponse
199
- wallet.create_withdraw_link # LinkResponse
199
+ wallet.create_withdraw_link(messages: ["Withdraw"], agent_name: "my-agent") # LinkResponse
200
200
 
201
201
  # Testnet
202
202
  wallet.mint(amount) # Hash {tx_hash, balance}
data/lib/remitmd/http.rb CHANGED
@@ -9,8 +9,8 @@ require "openssl"
9
9
  module Remitmd
10
10
  # Chain configuration: maps chain names to (api_url, chain_id) pairs.
11
11
  CHAIN_CONFIG = {
12
- "base" => { url: "https://api.remit.md/api/v0", chain_id: 8453 },
13
- "base_sepolia" => { url: "https://testnet.remit.md/api/v0", chain_id: 84532 },
12
+ "base" => { url: "https://remit.md/api/v1", chain_id: 8453 },
13
+ "base_sepolia" => { url: "https://testnet.remit.md/api/v1", chain_id: 84532 },
14
14
  }.freeze
15
15
 
16
16
  # HTTP transport layer. Signs each request with EIP-712 auth headers and
@@ -117,10 +117,12 @@ module Remitmd
117
117
  @fee_calculator = h["fee_calculator"]
118
118
  @key_registry = h["key_registry"]
119
119
  @arbitration = h["arbitration"]
120
+ @relayer = h["relayer"]
120
121
  end
121
122
 
122
123
  attr_reader :chain_id, :usdc, :router, :escrow, :tab, :stream,
123
- :bounty, :deposit, :fee_calculator, :key_registry, :arbitration
124
+ :bounty, :deposit, :fee_calculator, :key_registry, :arbitration,
125
+ :relayer
124
126
  end
125
127
 
126
128
  class Transaction < Model
@@ -563,22 +563,36 @@ module Remitmd
563
563
  # Generate a one-time URL for the operator to fund this wallet.
564
564
  # @param messages [Array<Hash>, nil] chat-style messages (each with :role and :text)
565
565
  # @param agent_name [String, nil] agent display name shown on the funding page
566
+ # @param permit [PermitSignature, nil] EIP-2612 permit — auto-signed if nil
566
567
  # @return [LinkResponse]
567
- def create_fund_link(messages: nil, agent_name: nil)
568
+ def create_fund_link(messages: nil, agent_name: nil, permit: nil)
568
569
  body = {}
569
570
  body[:messages] = messages if messages
570
571
  body[:agent_name] = agent_name if agent_name
572
+ begin
573
+ resolved = permit || auto_permit("relayer", 999_999_999.0)
574
+ body[:permit] = resolved.to_h
575
+ rescue StandardError
576
+ # permit signing failed — proceed without permit (custodial fallback)
577
+ end
571
578
  LinkResponse.new(@transport.post("/links/fund", body))
572
579
  end
573
580
 
574
581
  # Generate a one-time URL for the operator to withdraw funds.
575
582
  # @param messages [Array<Hash>, nil] chat-style messages (each with :role and :text)
576
583
  # @param agent_name [String, nil] agent display name shown on the withdraw page
584
+ # @param permit [PermitSignature, nil] EIP-2612 permit — auto-signed if nil
577
585
  # @return [LinkResponse]
578
- def create_withdraw_link(messages: nil, agent_name: nil)
586
+ def create_withdraw_link(messages: nil, agent_name: nil, permit: nil)
579
587
  body = {}
580
588
  body[:messages] = messages if messages
581
589
  body[:agent_name] = agent_name if agent_name
590
+ begin
591
+ resolved = permit || auto_permit("relayer", 999_999_999.0)
592
+ body[:permit] = resolved.to_h
593
+ rescue StandardError
594
+ # permit signing failed — proceed without permit (custodial fallback)
595
+ end
582
596
  LinkResponse.new(@transport.post("/links/withdraw", body))
583
597
  end
584
598
 
@@ -692,12 +706,14 @@ module Remitmd
692
706
 
693
707
  # Spender contract mapping for auto_permit.
694
708
  PERMIT_SPENDER = {
695
- pay: :router,
696
- create_escrow: :escrow,
697
- create_tab: :tab,
698
- create_stream: :stream,
699
- create_bounty: :bounty,
700
- place_deposit: :deposit,
709
+ pay: :router,
710
+ create_escrow: :escrow,
711
+ create_tab: :tab,
712
+ create_stream: :stream,
713
+ create_bounty: :bounty,
714
+ place_deposit: :deposit,
715
+ create_fund_link: :relayer,
716
+ create_withdraw_link: :relayer,
701
717
  }.freeze
702
718
  end
703
719
  end
data/lib/remitmd.rb CHANGED
@@ -22,5 +22,5 @@ require_relative "remitmd/mock"
22
22
  # mock.was_paid?("0x0000000000000000000000000000000000000001", 1.00) # => true
23
23
  #
24
24
  module Remitmd
25
- VERSION = "0.1.3"
25
+ VERSION = "0.1.4"
26
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remitmd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - remit.md
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-20 00:00:00.000000000 Z
11
+ date: 2026-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec