@antseed/node 0.2.26 → 0.2.27
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.
- package/README.md +74 -1
- package/dist/discovery/announcer.d.ts +2 -0
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +10 -6
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/discovery/index.d.ts +0 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +0 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/reputation-verifier.d.ts +7 -4
- package/dist/discovery/reputation-verifier.d.ts.map +1 -1
- package/dist/discovery/reputation-verifier.js +33 -9
- package/dist/discovery/reputation-verifier.js.map +1 -1
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +60 -33
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +640 -324
- package/dist/node.js.map +1 -1
- package/dist/p2p/connection-manager.d.ts.map +1 -1
- package/dist/p2p/connection-manager.js +6 -0
- package/dist/p2p/connection-manager.js.map +1 -1
- package/dist/p2p/identity.d.ts +27 -3
- package/dist/p2p/identity.d.ts.map +1 -1
- package/dist/p2p/identity.js +52 -13
- package/dist/p2p/identity.js.map +1 -1
- package/dist/p2p/index.d.ts +0 -2
- package/dist/p2p/index.d.ts.map +1 -1
- package/dist/p2p/index.js +0 -2
- package/dist/p2p/index.js.map +1 -1
- package/dist/p2p/payment-codec.d.ts +7 -13
- package/dist/p2p/payment-codec.d.ts.map +1 -1
- package/dist/p2p/payment-codec.js +32 -50
- package/dist/p2p/payment-codec.js.map +1 -1
- package/dist/p2p/payment-mux.d.ts +11 -20
- package/dist/p2p/payment-mux.d.ts.map +1 -1
- package/dist/p2p/payment-mux.js +36 -52
- package/dist/p2p/payment-mux.js.map +1 -1
- package/dist/payments/buyer-payment-manager.d.ts +34 -93
- package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
- package/dist/payments/buyer-payment-manager.js +184 -189
- package/dist/payments/buyer-payment-manager.js.map +1 -1
- package/dist/payments/chain-config.d.ts +38 -0
- package/dist/payments/chain-config.d.ts.map +1 -0
- package/dist/payments/chain-config.js +60 -0
- package/dist/payments/chain-config.js.map +1 -0
- package/dist/payments/evm/ants-token-client.d.ts +16 -0
- package/dist/payments/evm/ants-token-client.d.ts.map +1 -0
- package/dist/payments/evm/ants-token-client.js +66 -0
- package/dist/payments/evm/ants-token-client.js.map +1 -0
- package/dist/payments/evm/base-evm-client.d.ts +13 -0
- package/dist/payments/evm/base-evm-client.d.ts.map +1 -0
- package/dist/payments/evm/base-evm-client.js +38 -0
- package/dist/payments/evm/base-evm-client.js.map +1 -0
- package/dist/payments/evm/emissions-client.d.ts +23 -0
- package/dist/payments/evm/emissions-client.d.ts.map +1 -0
- package/dist/payments/evm/emissions-client.js +84 -0
- package/dist/payments/evm/emissions-client.js.map +1 -0
- package/dist/payments/evm/escrow-client.d.ts +57 -36
- package/dist/payments/evm/escrow-client.d.ts.map +1 -1
- package/dist/payments/evm/escrow-client.js +200 -93
- package/dist/payments/evm/escrow-client.js.map +1 -1
- package/dist/payments/evm/identity-client.d.ts +34 -0
- package/dist/payments/evm/identity-client.d.ts.map +1 -0
- package/dist/payments/evm/identity-client.js +125 -0
- package/dist/payments/evm/identity-client.js.map +1 -0
- package/dist/payments/evm/signatures.d.ts +18 -5
- package/dist/payments/evm/signatures.d.ts.map +1 -1
- package/dist/payments/evm/signatures.js +21 -12
- package/dist/payments/evm/signatures.js.map +1 -1
- package/dist/payments/evm/subpool-client.d.ts +30 -0
- package/dist/payments/evm/subpool-client.d.ts.map +1 -0
- package/dist/payments/evm/subpool-client.js +158 -0
- package/dist/payments/evm/subpool-client.js.map +1 -0
- package/dist/payments/index.d.ts +20 -7
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +17 -6
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/readiness.d.ts +12 -0
- package/dist/payments/readiness.d.ts.map +1 -0
- package/dist/payments/readiness.js +64 -0
- package/dist/payments/readiness.js.map +1 -0
- package/dist/payments/seller-payment-manager.d.ts +74 -34
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +327 -118
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/payments/session-store.d.ts +65 -0
- package/dist/payments/session-store.d.ts.map +1 -0
- package/dist/payments/session-store.js +243 -0
- package/dist/payments/session-store.js.map +1 -0
- package/dist/payments/usdc-utils.d.ts +9 -0
- package/dist/payments/usdc-utils.d.ts.map +1 -0
- package/dist/payments/usdc-utils.js +17 -0
- package/dist/payments/usdc-utils.js.map +1 -0
- package/dist/types/http.d.ts +2 -0
- package/dist/types/http.d.ts.map +1 -1
- package/dist/types/http.js +2 -0
- package/dist/types/http.js.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/metering.d.ts +1 -1
- package/dist/types/metering.d.ts.map +1 -1
- package/dist/types/protocol.d.ts +43 -60
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +5 -8
- package/dist/types/protocol.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,131 +1,200 @@
|
|
|
1
|
-
import { Contract
|
|
1
|
+
import { Contract } from 'ethers';
|
|
2
|
+
import { BaseEvmClient } from './base-evm-client.js';
|
|
2
3
|
const ESCROW_ABI = [
|
|
3
|
-
//
|
|
4
|
+
// Buyer operations
|
|
4
5
|
'function deposit(uint256 amount) external',
|
|
5
|
-
'function
|
|
6
|
-
|
|
7
|
-
'function
|
|
8
|
-
'function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
'function
|
|
12
|
-
'function
|
|
13
|
-
'function
|
|
14
|
-
//
|
|
15
|
-
'function
|
|
6
|
+
'function depositFor(address buyer, uint256 amount) external',
|
|
7
|
+
'function requestWithdrawal(uint256 amount) external',
|
|
8
|
+
'function executeWithdrawal() external',
|
|
9
|
+
'function cancelWithdrawal() external',
|
|
10
|
+
// Seller operations
|
|
11
|
+
'function stake(uint256 amount) external',
|
|
12
|
+
'function unstake() external',
|
|
13
|
+
'function setTokenRate(uint256 rate) external',
|
|
14
|
+
'function claimEarnings() external',
|
|
15
|
+
// Core — reserve & settle
|
|
16
|
+
'function reserve(address buyer, bytes32 sessionId, uint256 maxAmount, uint256 nonce, uint256 deadline, uint256 previousConsumption, bytes32 previousSessionId, bytes calldata buyerSig) external',
|
|
17
|
+
'function settle(bytes32 sessionId, uint256 tokenCount) external',
|
|
18
|
+
'function settleTimeout(bytes32 sessionId) external',
|
|
16
19
|
// View functions
|
|
17
|
-
'function
|
|
18
|
-
'function
|
|
19
|
-
'function
|
|
20
|
+
'function getBuyerBalance(address buyer) external view returns (uint256 available, uint256 reserved, uint256 pendingWithdrawal, uint256 lastActivityAt)',
|
|
21
|
+
'function getBuyerCreditLimit(address buyer) external view returns (uint256)',
|
|
22
|
+
'function getSellerAccount(address seller) external view returns (uint256 stake, uint256 earnings, uint256 stakedAt, uint256 tokenRate)',
|
|
23
|
+
'function domainSeparator() external view returns (bytes32)',
|
|
24
|
+
'function FIRST_SIGN_CAP() external view returns (uint256)',
|
|
25
|
+
'function PROVEN_SIGN_COOLDOWN() external view returns (uint256)',
|
|
26
|
+
'function latestSessionId(address buyer, address seller) external view returns (bytes32)',
|
|
27
|
+
'function firstSessionTimestamp(address buyer, address seller) external view returns (uint256)',
|
|
28
|
+
'function sessions(bytes32 sessionId) external view returns (address buyer, address seller, uint256 maxAmount, uint256 nonce, uint256 deadline, uint256 previousConsumption, bytes32 previousSessionId, uint256 reservedAt, uint256 settledAmount, uint256 settledTokenCount, uint256 tokenRate, uint8 status, bool isFirstSign, bool isProvenSign, bool isQualifiedProvenSign)',
|
|
20
29
|
];
|
|
21
30
|
const ERC20_ABI = [
|
|
22
31
|
'function approve(address spender, uint256 amount) external returns (bool)',
|
|
23
32
|
'function balanceOf(address owner) external view returns (uint256)',
|
|
24
33
|
'function allowance(address owner, address spender) external view returns (uint256)',
|
|
25
34
|
];
|
|
26
|
-
export class BaseEscrowClient {
|
|
27
|
-
_provider;
|
|
28
|
-
_contractAddress;
|
|
35
|
+
export class BaseEscrowClient extends BaseEvmClient {
|
|
29
36
|
_usdcAddress;
|
|
30
|
-
_nonceCursor = new Map();
|
|
31
37
|
constructor(config) {
|
|
32
|
-
|
|
33
|
-
this._contractAddress = config.contractAddress;
|
|
38
|
+
super(config.rpcUrl, config.contractAddress);
|
|
34
39
|
this._usdcAddress = config.usdcAddress;
|
|
35
40
|
}
|
|
36
|
-
get provider() { return this._provider; }
|
|
37
|
-
get contractAddress() { return this._contractAddress; }
|
|
38
41
|
get usdcAddress() { return this._usdcAddress; }
|
|
39
|
-
_ensureConnected(signer) {
|
|
40
|
-
if (signer.provider) {
|
|
41
|
-
return signer;
|
|
42
|
-
}
|
|
43
|
-
return signer.connect(this._provider);
|
|
44
|
-
}
|
|
45
|
-
async reserveNonce(address) {
|
|
46
|
-
const networkNonce = await this._provider.getTransactionCount(address, 'pending');
|
|
47
|
-
const cachedNext = this._nonceCursor.get(address);
|
|
48
|
-
const nonce = cachedNext === undefined ? networkNonce : Math.max(networkNonce, cachedNext);
|
|
49
|
-
this._nonceCursor.set(address, nonce + 1);
|
|
50
|
-
return nonce;
|
|
51
|
-
}
|
|
52
42
|
async _prepareEscrowWrite(signer) {
|
|
53
43
|
const connected = this._ensureConnected(signer);
|
|
54
44
|
const signerAddress = await connected.getAddress();
|
|
55
|
-
const nonce = await this.
|
|
45
|
+
const nonce = await this._reserveNonce(signerAddress);
|
|
56
46
|
const contract = new Contract(this._contractAddress, ESCROW_ABI, connected);
|
|
57
47
|
return { contract, nonce };
|
|
58
48
|
}
|
|
49
|
+
// ─── Buyer Operations ──────────────────────────────────────────────
|
|
59
50
|
async deposit(signer, amount) {
|
|
60
51
|
const connected = this._ensureConnected(signer);
|
|
61
52
|
const signerAddress = await connected.getAddress();
|
|
62
53
|
const usdc = new Contract(this._usdcAddress, ERC20_ABI, connected);
|
|
63
|
-
const approveNonce = await this.
|
|
54
|
+
const approveNonce = await this._reserveNonce(signerAddress);
|
|
64
55
|
const approveTx = await usdc.getFunction('approve')(this._contractAddress, amount, { nonce: approveNonce });
|
|
65
|
-
await approveTx.wait();
|
|
56
|
+
const approveReceipt = await approveTx.wait();
|
|
57
|
+
if (!approveReceipt)
|
|
58
|
+
throw new Error('Transaction was dropped or replaced');
|
|
66
59
|
const contract = new Contract(this._contractAddress, ESCROW_ABI, connected);
|
|
67
|
-
const depositNonce = await this.
|
|
60
|
+
const depositNonce = await this._reserveNonce(signerAddress);
|
|
68
61
|
const tx = await contract.getFunction('deposit')(amount, { nonce: depositNonce });
|
|
69
62
|
const receipt = await tx.wait();
|
|
63
|
+
if (!receipt)
|
|
64
|
+
throw new Error('Transaction was dropped or replaced');
|
|
65
|
+
return receipt.hash;
|
|
66
|
+
}
|
|
67
|
+
async depositFor(signer, buyer, amount) {
|
|
68
|
+
const connected = this._ensureConnected(signer);
|
|
69
|
+
const signerAddress = await connected.getAddress();
|
|
70
|
+
const usdc = new Contract(this._usdcAddress, ERC20_ABI, connected);
|
|
71
|
+
const approveNonce = await this._reserveNonce(signerAddress);
|
|
72
|
+
const approveTx = await usdc.getFunction('approve')(this._contractAddress, amount, { nonce: approveNonce });
|
|
73
|
+
const approveReceipt = await approveTx.wait();
|
|
74
|
+
if (!approveReceipt)
|
|
75
|
+
throw new Error('Transaction was dropped or replaced');
|
|
76
|
+
const contract = new Contract(this._contractAddress, ESCROW_ABI, connected);
|
|
77
|
+
const depositNonce = await this._reserveNonce(signerAddress);
|
|
78
|
+
const tx = await contract.getFunction('depositFor')(buyer, amount, { nonce: depositNonce });
|
|
79
|
+
const receipt = await tx.wait();
|
|
80
|
+
if (!receipt)
|
|
81
|
+
throw new Error('Transaction was dropped or replaced');
|
|
70
82
|
return receipt.hash;
|
|
71
83
|
}
|
|
72
|
-
async
|
|
84
|
+
async requestWithdrawal(signer, amount) {
|
|
73
85
|
const { contract, nonce } = await this._prepareEscrowWrite(signer);
|
|
74
|
-
const tx = await contract.getFunction('
|
|
86
|
+
const tx = await contract.getFunction('requestWithdrawal')(amount, { nonce });
|
|
75
87
|
const receipt = await tx.wait();
|
|
88
|
+
if (!receipt)
|
|
89
|
+
throw new Error('Transaction was dropped or replaced');
|
|
76
90
|
return receipt.hash;
|
|
77
91
|
}
|
|
78
|
-
async
|
|
79
|
-
const { contract, nonce } = await this._prepareEscrowWrite(
|
|
80
|
-
const tx = await contract.getFunction('
|
|
92
|
+
async executeWithdrawal(signer) {
|
|
93
|
+
const { contract, nonce } = await this._prepareEscrowWrite(signer);
|
|
94
|
+
const tx = await contract.getFunction('executeWithdrawal')({ nonce });
|
|
81
95
|
const receipt = await tx.wait();
|
|
96
|
+
if (!receipt)
|
|
97
|
+
throw new Error('Transaction was dropped or replaced');
|
|
82
98
|
return receipt.hash;
|
|
83
99
|
}
|
|
84
|
-
async
|
|
85
|
-
const { contract, nonce } = await this._prepareEscrowWrite(
|
|
86
|
-
const tx = await contract.getFunction('
|
|
100
|
+
async cancelWithdrawal(signer) {
|
|
101
|
+
const { contract, nonce } = await this._prepareEscrowWrite(signer);
|
|
102
|
+
const tx = await contract.getFunction('cancelWithdrawal')({ nonce });
|
|
87
103
|
const receipt = await tx.wait();
|
|
104
|
+
if (!receipt)
|
|
105
|
+
throw new Error('Transaction was dropped or replaced');
|
|
88
106
|
return receipt.hash;
|
|
89
107
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const
|
|
108
|
+
// ─── Seller Operations ─────────────────────────────────────────────
|
|
109
|
+
async stake(signer, amount) {
|
|
110
|
+
const connected = this._ensureConnected(signer);
|
|
111
|
+
const signerAddress = await connected.getAddress();
|
|
112
|
+
const usdc = new Contract(this._usdcAddress, ERC20_ABI, connected);
|
|
113
|
+
const approveNonce = await this._reserveNonce(signerAddress);
|
|
114
|
+
const approveTx = await usdc.getFunction('approve')(this._contractAddress, amount, { nonce: approveNonce });
|
|
115
|
+
const approveReceipt = await approveTx.wait();
|
|
116
|
+
if (!approveReceipt)
|
|
117
|
+
throw new Error('Transaction was dropped or replaced');
|
|
118
|
+
const contract = new Contract(this._contractAddress, ESCROW_ABI, connected);
|
|
119
|
+
const stakeNonce = await this._reserveNonce(signerAddress);
|
|
120
|
+
const tx = await contract.getFunction('stake')(amount, { nonce: stakeNonce });
|
|
93
121
|
const receipt = await tx.wait();
|
|
122
|
+
if (!receipt)
|
|
123
|
+
throw new Error('Transaction was dropped or replaced');
|
|
94
124
|
return receipt.hash;
|
|
95
125
|
}
|
|
96
|
-
async
|
|
97
|
-
const { contract, nonce } = await this._prepareEscrowWrite(
|
|
98
|
-
const tx = await contract.getFunction('
|
|
126
|
+
async unstake(signer) {
|
|
127
|
+
const { contract, nonce } = await this._prepareEscrowWrite(signer);
|
|
128
|
+
const tx = await contract.getFunction('unstake')({ nonce });
|
|
99
129
|
const receipt = await tx.wait();
|
|
130
|
+
if (!receipt)
|
|
131
|
+
throw new Error('Transaction was dropped or replaced');
|
|
100
132
|
return receipt.hash;
|
|
101
133
|
}
|
|
102
|
-
async
|
|
103
|
-
const { contract, nonce } = await this._prepareEscrowWrite(
|
|
104
|
-
const tx = await contract.getFunction('
|
|
134
|
+
async setTokenRate(signer, rate) {
|
|
135
|
+
const { contract, nonce } = await this._prepareEscrowWrite(signer);
|
|
136
|
+
const tx = await contract.getFunction('setTokenRate')(rate, { nonce });
|
|
105
137
|
const receipt = await tx.wait();
|
|
138
|
+
if (!receipt)
|
|
139
|
+
throw new Error('Transaction was dropped or replaced');
|
|
106
140
|
return receipt.hash;
|
|
107
141
|
}
|
|
108
|
-
async
|
|
109
|
-
const { contract, nonce } = await this._prepareEscrowWrite(
|
|
110
|
-
const tx = await contract.getFunction('
|
|
142
|
+
async claimEarnings(signer) {
|
|
143
|
+
const { contract, nonce } = await this._prepareEscrowWrite(signer);
|
|
144
|
+
const tx = await contract.getFunction('claimEarnings')({ nonce });
|
|
111
145
|
const receipt = await tx.wait();
|
|
146
|
+
if (!receipt)
|
|
147
|
+
throw new Error('Transaction was dropped or replaced');
|
|
112
148
|
return receipt.hash;
|
|
113
149
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const
|
|
150
|
+
// ─── Core — Reserve & Settle ───────────────────────────────────────
|
|
151
|
+
async reserve(signer, buyer, sessionId, maxAmount, nonce, deadline, previousConsumption, previousSessionId, buyerSig) {
|
|
152
|
+
const { contract, nonce: txNonce } = await this._prepareEscrowWrite(signer);
|
|
153
|
+
const tx = await contract.getFunction('reserve')(buyer, sessionId, maxAmount, nonce, deadline, previousConsumption, previousSessionId, buyerSig, { nonce: txNonce });
|
|
117
154
|
const receipt = await tx.wait();
|
|
155
|
+
if (!receipt)
|
|
156
|
+
throw new Error('Transaction was dropped or replaced');
|
|
118
157
|
return receipt.hash;
|
|
119
158
|
}
|
|
120
|
-
async
|
|
159
|
+
async settle(signer, sessionId, tokenCount) {
|
|
160
|
+
const { contract, nonce } = await this._prepareEscrowWrite(signer);
|
|
161
|
+
const tx = await contract.getFunction('settle')(sessionId, tokenCount, { nonce });
|
|
162
|
+
const receipt = await tx.wait();
|
|
163
|
+
if (!receipt)
|
|
164
|
+
throw new Error('Transaction was dropped or replaced');
|
|
165
|
+
return receipt.hash;
|
|
166
|
+
}
|
|
167
|
+
async settleTimeout(signer, sessionId) {
|
|
168
|
+
const { contract, nonce } = await this._prepareEscrowWrite(signer);
|
|
169
|
+
const tx = await contract.getFunction('settleTimeout')(sessionId, { nonce });
|
|
170
|
+
const receipt = await tx.wait();
|
|
171
|
+
if (!receipt)
|
|
172
|
+
throw new Error('Transaction was dropped or replaced');
|
|
173
|
+
return receipt.hash;
|
|
174
|
+
}
|
|
175
|
+
// ─── View Functions ────────────────────────────────────────────────
|
|
176
|
+
async getBuyerBalance(buyerAddr) {
|
|
177
|
+
const contract = new Contract(this._contractAddress, ESCROW_ABI, this._provider);
|
|
178
|
+
const result = await contract.getFunction('getBuyerBalance')(buyerAddr);
|
|
179
|
+
return {
|
|
180
|
+
available: result[0],
|
|
181
|
+
reserved: result[1],
|
|
182
|
+
pendingWithdrawal: result[2],
|
|
183
|
+
lastActivityAt: result[3],
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
async getBuyerCreditLimit(buyerAddr) {
|
|
187
|
+
const contract = new Contract(this._contractAddress, ESCROW_ABI, this._provider);
|
|
188
|
+
return contract.getFunction('getBuyerCreditLimit')(buyerAddr);
|
|
189
|
+
}
|
|
190
|
+
async getSellerAccount(sellerAddr) {
|
|
121
191
|
const contract = new Contract(this._contractAddress, ESCROW_ABI, this._provider);
|
|
122
|
-
const result = await contract.getFunction('
|
|
123
|
-
const deposited = result[0];
|
|
124
|
-
const committed = result[1];
|
|
192
|
+
const result = await contract.getFunction('getSellerAccount')(sellerAddr);
|
|
125
193
|
return {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
194
|
+
stake: result[0],
|
|
195
|
+
earnings: result[1],
|
|
196
|
+
stakedAt: result[2],
|
|
197
|
+
tokenRate: result[3],
|
|
129
198
|
};
|
|
130
199
|
}
|
|
131
200
|
async getSession(sessionId) {
|
|
@@ -134,32 +203,70 @@ export class BaseEscrowClient {
|
|
|
134
203
|
return {
|
|
135
204
|
buyer: result[0],
|
|
136
205
|
seller: result[1],
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
206
|
+
maxAmount: result[2],
|
|
207
|
+
nonce: result[3],
|
|
208
|
+
deadline: result[4],
|
|
209
|
+
previousConsumption: result[5],
|
|
210
|
+
previousSessionId: result[6],
|
|
211
|
+
reservedAt: result[7],
|
|
212
|
+
settledAmount: result[8],
|
|
213
|
+
settledTokenCount: result[9],
|
|
214
|
+
tokenRate: result[10],
|
|
215
|
+
status: Number(result[11]),
|
|
216
|
+
isFirstSign: result[12],
|
|
217
|
+
isProvenSign: result[13],
|
|
218
|
+
isQualifiedProvenSign: result[14],
|
|
145
219
|
};
|
|
146
220
|
}
|
|
147
|
-
async
|
|
221
|
+
async domainSeparator() {
|
|
222
|
+
const contract = new Contract(this._contractAddress, ESCROW_ABI, this._provider);
|
|
223
|
+
return contract.getFunction('domainSeparator')();
|
|
224
|
+
}
|
|
225
|
+
async getFirstSignCap() {
|
|
148
226
|
const contract = new Contract(this._contractAddress, ESCROW_ABI, this._provider);
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
227
|
+
return contract.getFunction('FIRST_SIGN_CAP')();
|
|
228
|
+
}
|
|
229
|
+
async getLatestSessionId(buyerAddr, sellerAddr) {
|
|
230
|
+
const contract = new Contract(this._contractAddress, ESCROW_ABI, this._provider);
|
|
231
|
+
return contract.getFunction('latestSessionId')(buyerAddr, sellerAddr);
|
|
232
|
+
}
|
|
233
|
+
async getFirstSessionTimestamp(buyerAddr, sellerAddr) {
|
|
234
|
+
const contract = new Contract(this._contractAddress, ESCROW_ABI, this._provider);
|
|
235
|
+
return contract.getFunction('firstSessionTimestamp')(buyerAddr, sellerAddr);
|
|
236
|
+
}
|
|
237
|
+
async getProvenSignCooldown() {
|
|
238
|
+
const contract = new Contract(this._contractAddress, ESCROW_ABI, this._provider);
|
|
239
|
+
return contract.getFunction('PROVEN_SIGN_COOLDOWN')();
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Fetch all data the buyer needs to display a payment approval card.
|
|
243
|
+
* Batches multiple view calls in parallel.
|
|
244
|
+
*/
|
|
245
|
+
async getBuyerApprovalContext(buyerAddr, sellerAddr) {
|
|
246
|
+
const ZERO_BYTES32 = '0x' + '00'.repeat(32);
|
|
247
|
+
const [buyerBalance, firstSignCap, latestSessId, firstSessTs, cooldown] = await Promise.all([
|
|
248
|
+
this.getBuyerBalance(buyerAddr),
|
|
249
|
+
this.getFirstSignCap(),
|
|
250
|
+
this.getLatestSessionId(buyerAddr, sellerAddr),
|
|
251
|
+
this.getFirstSessionTimestamp(buyerAddr, sellerAddr),
|
|
252
|
+
this.getProvenSignCooldown(),
|
|
253
|
+
]);
|
|
254
|
+
const isFirstSign = latestSessId === ZERO_BYTES32;
|
|
255
|
+
const nowSecs = BigInt(Math.floor(Date.now() / 1000));
|
|
256
|
+
let cooldownRemainingSecs = 0;
|
|
257
|
+
if (!isFirstSign && firstSessTs > 0n) {
|
|
258
|
+
const cooldownEnd = firstSessTs + cooldown;
|
|
259
|
+
if (cooldownEnd > nowSecs) {
|
|
260
|
+
cooldownRemainingSecs = Number(cooldownEnd - nowSecs);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
157
263
|
return {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
264
|
+
buyerBalance,
|
|
265
|
+
firstSignCap,
|
|
266
|
+
latestSessionId: latestSessId,
|
|
267
|
+
firstSessionTimestamp: firstSessTs,
|
|
268
|
+
isFirstSign,
|
|
269
|
+
cooldownRemainingSecs,
|
|
163
270
|
};
|
|
164
271
|
}
|
|
165
272
|
async getUSDCBalance(ownerAddr) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escrow-client.js","sourceRoot":"","sources":["../../../src/payments/evm/escrow-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"escrow-client.js","sourceRoot":"","sources":["../../../src/payments/evm/escrow-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type AbstractSigner } from 'ethers';
|
|
2
|
+
import { BaseEvmClient } from './base-evm-client.js';
|
|
3
|
+
export interface IdentityClientConfig {
|
|
4
|
+
rpcUrl: string;
|
|
5
|
+
contractAddress: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ProvenReputation {
|
|
8
|
+
firstSignCount: number;
|
|
9
|
+
qualifiedProvenSignCount: number;
|
|
10
|
+
unqualifiedProvenSignCount: number;
|
|
11
|
+
ghostCount: number;
|
|
12
|
+
totalQualifiedTokenVolume: bigint;
|
|
13
|
+
lastProvenAt: number;
|
|
14
|
+
}
|
|
15
|
+
export interface FeedbackSummary {
|
|
16
|
+
count: number;
|
|
17
|
+
summaryValue: bigint;
|
|
18
|
+
summaryValueDecimals: number;
|
|
19
|
+
}
|
|
20
|
+
export declare class IdentityClient extends BaseEvmClient {
|
|
21
|
+
constructor(config: IdentityClientConfig);
|
|
22
|
+
register(signer: AbstractSigner, peerId: string, metadataURI: string): Promise<string>;
|
|
23
|
+
deregister(signer: AbstractSigner, tokenId: number): Promise<string>;
|
|
24
|
+
updateMetadata(signer: AbstractSigner, tokenId: number, metadataURI: string): Promise<string>;
|
|
25
|
+
submitFeedback(signer: AbstractSigner, agentId: number, value: number, tag: string): Promise<string>;
|
|
26
|
+
isRegistered(address: string): Promise<boolean>;
|
|
27
|
+
getTokenId(address: string): Promise<number>;
|
|
28
|
+
getTokenIdByPeerId(peerId: string): Promise<number>;
|
|
29
|
+
getPeerId(tokenId: number): Promise<string>;
|
|
30
|
+
getReputation(tokenId: number): Promise<ProvenReputation>;
|
|
31
|
+
getReputationByPeerId(peerId: string): Promise<ProvenReputation>;
|
|
32
|
+
getFeedbackSummary(agentId: number, tag: string): Promise<FeedbackSummary>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=identity-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/identity-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,MAAM,CAAC;IACjC,0BAA0B,EAAE,MAAM,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB,EAAE,MAAM,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AA+BD,qBAAa,cAAe,SAAQ,aAAa;gBACnC,MAAM,EAAE,oBAAoB;IAMlC,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYtF,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWpE,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7F,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcpG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOnD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK3C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAazD,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKhE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAUjF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { Contract, encodeBytes32String, keccak256, toUtf8Bytes } from 'ethers';
|
|
2
|
+
import { BaseEvmClient } from './base-evm-client.js';
|
|
3
|
+
const IDENTITY_ABI = [
|
|
4
|
+
// Registration
|
|
5
|
+
'function register(bytes32 peerId, string metadataURI) external returns (uint256)',
|
|
6
|
+
'function deregister(uint256 tokenId) external',
|
|
7
|
+
'function updateMetadata(uint256 tokenId, string metadataURI) external',
|
|
8
|
+
// View — identity lookups
|
|
9
|
+
'function isRegistered(address addr) external view returns (bool)',
|
|
10
|
+
'function getTokenId(address addr) external view returns (uint256)',
|
|
11
|
+
'function getTokenIdByPeerId(bytes32 peerId) external view returns (uint256)',
|
|
12
|
+
'function getPeerId(uint256 tokenId) external view returns (bytes32)',
|
|
13
|
+
// Reputation
|
|
14
|
+
'function getReputation(uint256 tokenId) external view returns (uint64 firstSignCount, uint64 qualifiedProvenSignCount, uint64 unqualifiedProvenSignCount, uint64 ghostCount, uint256 totalQualifiedTokenVolume, uint64 lastProvenAt)',
|
|
15
|
+
'function updateReputation(uint256 tokenId, tuple(uint8 updateType, uint256 tokenVolume) update) external',
|
|
16
|
+
// Feedback (ERC-8004)
|
|
17
|
+
'function giveFeedback(uint256 agentId, int128 value, uint8 valueDecimals, bytes32 tag1, bytes32 tag2) external',
|
|
18
|
+
'function getSummary(uint256 agentId, bytes32 tag) external view returns (uint256 count, int256 summaryValue, uint8 summaryValueDecimals)',
|
|
19
|
+
'function readFeedback(uint256 agentId, address client, uint256 index) external view returns (tuple(address client, int128 value, uint8 valueDecimals, bytes32 tag1, bytes32 tag2, uint64 timestamp, bool revoked))',
|
|
20
|
+
'function revokeFeedback(uint256 agentId, uint256 index) external',
|
|
21
|
+
'function getFeedbackCount(uint256 agentId, address client) external view returns (uint256)',
|
|
22
|
+
// Admin
|
|
23
|
+
'function setEscrowContract(address _escrow) external',
|
|
24
|
+
'function escrowContract() external view returns (address)',
|
|
25
|
+
'function owner() external view returns (address)',
|
|
26
|
+
];
|
|
27
|
+
export class IdentityClient extends BaseEvmClient {
|
|
28
|
+
constructor(config) {
|
|
29
|
+
super(config.rpcUrl, config.contractAddress);
|
|
30
|
+
}
|
|
31
|
+
// ── Write methods ──────────────────────────────────────────────────
|
|
32
|
+
async register(signer, peerId, metadataURI) {
|
|
33
|
+
const connected = this._ensureConnected(signer);
|
|
34
|
+
const signerAddress = await connected.getAddress();
|
|
35
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, connected);
|
|
36
|
+
const nonce = await this._reserveNonce(signerAddress);
|
|
37
|
+
const peerIdBytes = keccak256(toUtf8Bytes(peerId));
|
|
38
|
+
const tx = await contract.getFunction('register')(peerIdBytes, metadataURI, { nonce });
|
|
39
|
+
const receipt = await tx.wait();
|
|
40
|
+
if (!receipt)
|
|
41
|
+
throw new Error('Transaction was dropped or replaced');
|
|
42
|
+
return receipt.hash;
|
|
43
|
+
}
|
|
44
|
+
async deregister(signer, tokenId) {
|
|
45
|
+
const connected = this._ensureConnected(signer);
|
|
46
|
+
const signerAddress = await connected.getAddress();
|
|
47
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, connected);
|
|
48
|
+
const nonce = await this._reserveNonce(signerAddress);
|
|
49
|
+
const tx = await contract.getFunction('deregister')(tokenId, { nonce });
|
|
50
|
+
const receipt = await tx.wait();
|
|
51
|
+
if (!receipt)
|
|
52
|
+
throw new Error('Transaction was dropped or replaced');
|
|
53
|
+
return receipt.hash;
|
|
54
|
+
}
|
|
55
|
+
async updateMetadata(signer, tokenId, metadataURI) {
|
|
56
|
+
const connected = this._ensureConnected(signer);
|
|
57
|
+
const signerAddress = await connected.getAddress();
|
|
58
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, connected);
|
|
59
|
+
const nonce = await this._reserveNonce(signerAddress);
|
|
60
|
+
const tx = await contract.getFunction('updateMetadata')(tokenId, metadataURI, { nonce });
|
|
61
|
+
const receipt = await tx.wait();
|
|
62
|
+
if (!receipt)
|
|
63
|
+
throw new Error('Transaction was dropped or replaced');
|
|
64
|
+
return receipt.hash;
|
|
65
|
+
}
|
|
66
|
+
async submitFeedback(signer, agentId, value, tag) {
|
|
67
|
+
const connected = this._ensureConnected(signer);
|
|
68
|
+
const signerAddress = await connected.getAddress();
|
|
69
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, connected);
|
|
70
|
+
const nonce = await this._reserveNonce(signerAddress);
|
|
71
|
+
const tagBytes = encodeBytes32String(tag);
|
|
72
|
+
const tx = await contract.getFunction('giveFeedback')(agentId, value, 0, tagBytes, tagBytes, { nonce });
|
|
73
|
+
const receipt = await tx.wait();
|
|
74
|
+
if (!receipt)
|
|
75
|
+
throw new Error('Transaction was dropped or replaced');
|
|
76
|
+
return receipt.hash;
|
|
77
|
+
}
|
|
78
|
+
// ── View methods ───────────────────────────────────────────────────
|
|
79
|
+
async isRegistered(address) {
|
|
80
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, this._provider);
|
|
81
|
+
return contract.getFunction('isRegistered')(address);
|
|
82
|
+
}
|
|
83
|
+
async getTokenId(address) {
|
|
84
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, this._provider);
|
|
85
|
+
const result = await contract.getFunction('getTokenId')(address);
|
|
86
|
+
return Number(result);
|
|
87
|
+
}
|
|
88
|
+
async getTokenIdByPeerId(peerId) {
|
|
89
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, this._provider);
|
|
90
|
+
const peerIdBytes = keccak256(toUtf8Bytes(peerId));
|
|
91
|
+
const result = await contract.getFunction('getTokenIdByPeerId')(peerIdBytes);
|
|
92
|
+
return Number(result);
|
|
93
|
+
}
|
|
94
|
+
async getPeerId(tokenId) {
|
|
95
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, this._provider);
|
|
96
|
+
return contract.getFunction('getPeerId')(tokenId);
|
|
97
|
+
}
|
|
98
|
+
async getReputation(tokenId) {
|
|
99
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, this._provider);
|
|
100
|
+
const result = await contract.getFunction('getReputation')(tokenId);
|
|
101
|
+
return {
|
|
102
|
+
firstSignCount: Number(result[0]),
|
|
103
|
+
qualifiedProvenSignCount: Number(result[1]),
|
|
104
|
+
unqualifiedProvenSignCount: Number(result[2]),
|
|
105
|
+
ghostCount: Number(result[3]),
|
|
106
|
+
totalQualifiedTokenVolume: result[4],
|
|
107
|
+
lastProvenAt: Number(result[5]),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
async getReputationByPeerId(peerId) {
|
|
111
|
+
const tokenId = await this.getTokenIdByPeerId(peerId);
|
|
112
|
+
return this.getReputation(tokenId);
|
|
113
|
+
}
|
|
114
|
+
async getFeedbackSummary(agentId, tag) {
|
|
115
|
+
const contract = new Contract(this._contractAddress, IDENTITY_ABI, this._provider);
|
|
116
|
+
const tagBytes = encodeBytes32String(tag);
|
|
117
|
+
const result = await contract.getFunction('getSummary')(agentId, tagBytes);
|
|
118
|
+
return {
|
|
119
|
+
count: Number(result[0]),
|
|
120
|
+
summaryValue: result[1],
|
|
121
|
+
summaryValueDecimals: Number(result[2]),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=identity-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-client.js","sourceRoot":"","sources":["../../../src/payments/evm/identity-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAuB,MAAM,QAAQ,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAsBrD,MAAM,YAAY,GAAG;IACnB,eAAe;IACf,kFAAkF;IAClF,+CAA+C;IAC/C,uEAAuE;IAEvE,0BAA0B;IAC1B,kEAAkE;IAClE,mEAAmE;IACnE,6EAA6E;IAC7E,qEAAqE;IAErE,aAAa;IACb,sOAAsO;IACtO,0GAA0G;IAE1G,sBAAsB;IACtB,gHAAgH;IAChH,0IAA0I;IAC1I,oNAAoN;IACpN,kEAAkE;IAClE,4FAA4F;IAE5F,QAAQ;IACR,sDAAsD;IACtD,2DAA2D;IAC3D,kDAAkD;CAC1C,CAAC;AAEX,MAAM,OAAO,cAAe,SAAQ,aAAa;IAC/C,YAAY,MAA4B;QACtC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IAED,sEAAsE;IAEtE,KAAK,CAAC,QAAQ,CAAC,MAAsB,EAAE,MAAc,EAAE,WAAmB;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAsB,EAAE,OAAe;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAsB,EAAE,OAAe,EAAE,WAAmB;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAsB,EAAE,OAAe,EAAE,KAAa,EAAE,GAAW;QACtF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAC9E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxG,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,sEAAsE;IAEtE,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,OAAO,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACrC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7E,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,OAAO,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE,OAAO;YACL,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACjC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3C,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC7B,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAW;YAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAc;QACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe,EAAE,GAAW;QACnD,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3E,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,YAAY,EAAE,MAAM,CAAC,CAAC,CAAW;YACjC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACxC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
import { type AbstractSigner } from 'ethers';
|
|
1
|
+
import { type AbstractSigner, type TypedDataDomain } from 'ethers';
|
|
2
2
|
import type { Identity } from '../../p2p/identity.js';
|
|
3
|
-
export declare
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
export declare const SPENDING_AUTH_TYPES: {
|
|
4
|
+
SpendingAuth: {
|
|
5
|
+
name: string;
|
|
6
|
+
type: string;
|
|
7
|
+
}[];
|
|
8
|
+
};
|
|
9
|
+
export interface SpendingAuthMessage {
|
|
10
|
+
seller: string;
|
|
11
|
+
sessionId: string;
|
|
12
|
+
maxAmount: bigint;
|
|
13
|
+
nonce: number;
|
|
14
|
+
deadline: number;
|
|
15
|
+
previousConsumption: bigint;
|
|
16
|
+
previousSessionId: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function makeEscrowDomain(chainId: number, contractAddress: string): TypedDataDomain;
|
|
19
|
+
export declare function signSpendingAuth(signer: AbstractSigner, domain: TypedDataDomain, msg: SpendingAuthMessage): Promise<string>;
|
|
7
20
|
export declare function buildReceiptMessage(sessionId: Uint8Array, runningTotal: bigint, requestCount: number, responseHash: Uint8Array): Uint8Array;
|
|
8
21
|
export declare function buildAckMessage(sessionId: Uint8Array, runningTotal: bigint, requestCount: number): Uint8Array;
|
|
9
22
|
export declare function signMessageEd25519(identity: Identity, message: Uint8Array): Promise<Uint8Array>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAOtD,eAAO,MAAM,mBAAmB;;;;;CAU/B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,eAAe,CAO1F;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAMD,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,UAAU,GACvB,UAAU,CAaZ;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,UAAU,CAWZ;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,OAAO,CAAC,CAElB"}
|