@toon-protocol/connector 1.8.3 → 2.1.0
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/dist/btp/btp-claim-types.d.ts +24 -2
- package/dist/btp/btp-claim-types.d.ts.map +1 -1
- package/dist/btp/btp-claim-types.js +115 -9
- package/dist/btp/btp-claim-types.js.map +1 -1
- package/dist/btp/btp-client.d.ts.map +1 -1
- package/dist/btp/btp-client.js +0 -3
- package/dist/btp/btp-client.js.map +1 -1
- package/dist/btp/inbound-claim-validator.d.ts +1 -0
- package/dist/btp/inbound-claim-validator.d.ts.map +1 -1
- package/dist/btp/inbound-claim-validator.js +29 -7
- package/dist/btp/inbound-claim-validator.js.map +1 -1
- package/dist/config/config-loader.d.ts.map +1 -1
- package/dist/config/config-loader.js +2 -0
- package/dist/config/config-loader.js.map +1 -1
- package/dist/config/types.d.ts +11 -5
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +45 -0
- package/dist/config/types.js.map +1 -1
- package/dist/core/connector-node.d.ts.map +1 -1
- package/dist/core/connector-node.js +37 -12
- package/dist/core/connector-node.js.map +1 -1
- package/dist/core/local-delivery-client.d.ts.map +1 -1
- package/dist/core/local-delivery-client.js +0 -16
- package/dist/core/local-delivery-client.js.map +1 -1
- package/dist/core/packet-handler.d.ts.map +1 -1
- package/dist/core/packet-handler.js +15 -54
- package/dist/core/packet-handler.js.map +1 -1
- package/dist/core/payment-handler.d.ts +0 -2
- package/dist/core/payment-handler.d.ts.map +1 -1
- package/dist/core/payment-handler.js +0 -11
- package/dist/core/payment-handler.js.map +1 -1
- package/dist/http/ilp-send-handler.d.ts +0 -4
- package/dist/http/ilp-send-handler.d.ts.map +1 -1
- package/dist/http/ilp-send-handler.js +0 -13
- package/dist/http/ilp-send-handler.js.map +1 -1
- package/dist/lib.d.ts +3 -3
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +1 -3
- package/dist/lib.js.map +1 -1
- package/dist/settlement/channel-manager.d.ts +3 -2
- package/dist/settlement/channel-manager.d.ts.map +1 -1
- package/dist/settlement/channel-manager.js +18 -6
- package/dist/settlement/channel-manager.js.map +1 -1
- package/dist/settlement/claim-receiver.d.ts +12 -3
- package/dist/settlement/claim-receiver.d.ts.map +1 -1
- package/dist/settlement/claim-receiver.js +407 -117
- package/dist/settlement/claim-receiver.js.map +1 -1
- package/dist/settlement/claim-sender.d.ts +4 -2
- package/dist/settlement/claim-sender.d.ts.map +1 -1
- package/dist/settlement/claim-sender.js +38 -0
- package/dist/settlement/claim-sender.js.map +1 -1
- package/dist/settlement/mina-payment-channel-sdk.d.ts +73 -0
- package/dist/settlement/mina-payment-channel-sdk.d.ts.map +1 -0
- package/dist/settlement/mina-payment-channel-sdk.js +538 -0
- package/dist/settlement/mina-payment-channel-sdk.js.map +1 -0
- package/dist/settlement/per-packet-claim-service.d.ts +7 -6
- package/dist/settlement/per-packet-claim-service.d.ts.map +1 -1
- package/dist/settlement/per-packet-claim-service.js +168 -33
- package/dist/settlement/per-packet-claim-service.js.map +1 -1
- package/dist/settlement/privacy/index.d.ts +3 -0
- package/dist/settlement/privacy/index.d.ts.map +1 -0
- package/dist/settlement/privacy/index.js +11 -0
- package/dist/settlement/privacy/index.js.map +1 -0
- package/dist/settlement/privacy/nip59-claim-wrapper.d.ts +50 -0
- package/dist/settlement/privacy/nip59-claim-wrapper.d.ts.map +1 -0
- package/dist/settlement/privacy/nip59-claim-wrapper.js +253 -0
- package/dist/settlement/privacy/nip59-claim-wrapper.js.map +1 -0
- package/dist/settlement/provider/chain-provider-registry.d.ts +20 -0
- package/dist/settlement/provider/chain-provider-registry.d.ts.map +1 -0
- package/dist/settlement/provider/chain-provider-registry.js +53 -0
- package/dist/settlement/provider/chain-provider-registry.js.map +1 -0
- package/dist/settlement/provider/evm-payment-channel-provider.d.ts +31 -0
- package/dist/settlement/provider/evm-payment-channel-provider.d.ts.map +1 -0
- package/dist/settlement/provider/evm-payment-channel-provider.js +207 -0
- package/dist/settlement/provider/evm-payment-channel-provider.js.map +1 -0
- package/dist/settlement/provider/index.d.ts +6 -0
- package/dist/settlement/provider/index.d.ts.map +1 -0
- package/dist/settlement/provider/index.js +16 -0
- package/dist/settlement/provider/index.js.map +1 -0
- package/dist/settlement/provider/mina-payment-channel-provider.d.ts +43 -0
- package/dist/settlement/provider/mina-payment-channel-provider.d.ts.map +1 -0
- package/dist/settlement/provider/mina-payment-channel-provider.js +330 -0
- package/dist/settlement/provider/mina-payment-channel-provider.js.map +1 -0
- package/dist/settlement/provider/payment-channel-provider.d.ts +79 -0
- package/dist/settlement/provider/payment-channel-provider.d.ts.map +1 -0
- package/dist/settlement/provider/payment-channel-provider.js +3 -0
- package/dist/settlement/provider/payment-channel-provider.js.map +1 -0
- package/dist/settlement/provider/solana-payment-channel-provider.d.ts +38 -0
- package/dist/settlement/provider/solana-payment-channel-provider.d.ts.map +1 -0
- package/dist/settlement/provider/solana-payment-channel-provider.js +262 -0
- package/dist/settlement/provider/solana-payment-channel-provider.js.map +1 -0
- package/dist/settlement/settlement-executor.d.ts +11 -7
- package/dist/settlement/settlement-executor.d.ts.map +1 -1
- package/dist/settlement/settlement-executor.js +74 -65
- package/dist/settlement/settlement-executor.js.map +1 -1
- package/dist/settlement/settlement-monitor.d.ts.map +1 -1
- package/dist/settlement/settlement-monitor.js.map +1 -1
- package/dist/settlement/solana-payment-channel-sdk.d.ts +75 -0
- package/dist/settlement/solana-payment-channel-sdk.d.ts.map +1 -0
- package/dist/settlement/solana-payment-channel-sdk.js +600 -0
- package/dist/settlement/solana-payment-channel-sdk.js.map +1 -0
- package/dist/settlement/types.d.ts +1 -1
- package/dist/settlement/types.d.ts.map +1 -1
- package/dist/settlement/types.js.map +1 -1
- package/package.json +12 -1
|
@@ -10,17 +10,19 @@ exports.ERRORS = {
|
|
|
10
10
|
CHANNEL_NOT_OPENED: 'Channel not in opened state',
|
|
11
11
|
SIGNER_NOT_PARTICIPANT: 'Signer is not a channel participant',
|
|
12
12
|
ON_CHAIN_VERIFICATION_FAILED: 'On-chain channel verification failed',
|
|
13
|
+
INVALID_SIGNATURE: 'Invalid balance proof signature',
|
|
14
|
+
NO_PROVIDER_REGISTERED: 'No provider registered for blockchain:',
|
|
13
15
|
};
|
|
14
16
|
class ClaimReceiver extends events_1.EventEmitter {
|
|
15
17
|
db;
|
|
16
|
-
|
|
18
|
+
chainProviderRegistry;
|
|
17
19
|
logger;
|
|
18
20
|
channelManager;
|
|
19
21
|
peerIdToAddressMap;
|
|
20
|
-
constructor(db,
|
|
22
|
+
constructor(db, chainProviderRegistry, logger, channelManager, peerIdToAddressMap) {
|
|
21
23
|
super();
|
|
22
24
|
this.db = db;
|
|
23
|
-
this.
|
|
25
|
+
this.chainProviderRegistry = chainProviderRegistry;
|
|
24
26
|
this.logger = logger;
|
|
25
27
|
this.channelManager = channelManager;
|
|
26
28
|
this.peerIdToAddressMap = peerIdToAddressMap;
|
|
@@ -46,21 +48,54 @@ class ClaimReceiver extends events_1.EventEmitter {
|
|
|
46
48
|
const messageId = claimMessage.messageId;
|
|
47
49
|
const blockchain = claimMessage.blockchain;
|
|
48
50
|
childLogger.info({ messageId, blockchain }, 'Received claim message');
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
const provider = this.resolveProvider(claimMessage);
|
|
52
|
+
if (!provider) {
|
|
53
|
+
const errorMsg = `${exports.ERRORS.NO_PROVIDER_REGISTERED} ${blockchain}`;
|
|
54
|
+
childLogger.warn({ messageId, blockchain }, errorMsg);
|
|
55
|
+
this._persistReceivedClaim(peerId, claimMessage, false);
|
|
56
|
+
return;
|
|
51
57
|
}
|
|
52
|
-
const verificationResult = await this.
|
|
58
|
+
const verificationResult = await this.verifyClaim(claimMessage, peerId, provider);
|
|
53
59
|
if (verificationResult.valid) {
|
|
54
60
|
this._persistReceivedClaim(peerId, claimMessage, true);
|
|
55
61
|
childLogger.info({ messageId }, 'Claim verified and stored');
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
try {
|
|
63
|
+
if ((0, btp_claim_types_1.isEVMClaim)(claimMessage)) {
|
|
64
|
+
const event = {
|
|
65
|
+
peerId,
|
|
66
|
+
channelId: claimMessage.channelId,
|
|
67
|
+
cumulativeAmount: BigInt(claimMessage.transferredAmount),
|
|
68
|
+
};
|
|
69
|
+
this.emit('CLAIM_RECEIVED', event);
|
|
70
|
+
childLogger.debug({ channelId: event.channelId, cumulativeAmount: event.cumulativeAmount.toString() }, 'CLAIM_RECEIVED event emitted');
|
|
71
|
+
}
|
|
72
|
+
else if ((0, btp_claim_types_1.isSolanaClaim)(claimMessage)) {
|
|
73
|
+
const event = {
|
|
74
|
+
peerId,
|
|
75
|
+
channelId: claimMessage.channelAccount,
|
|
76
|
+
cumulativeAmount: BigInt(claimMessage.transferredAmount),
|
|
77
|
+
};
|
|
78
|
+
this.emit('CLAIM_RECEIVED', event);
|
|
79
|
+
childLogger.debug({
|
|
80
|
+
channelAccount: event.channelId,
|
|
81
|
+
cumulativeAmount: event.cumulativeAmount.toString(),
|
|
82
|
+
}, 'CLAIM_RECEIVED event emitted (Solana)');
|
|
83
|
+
}
|
|
84
|
+
else if ((0, btp_claim_types_1.isMinaClaim)(claimMessage)) {
|
|
85
|
+
const event = {
|
|
86
|
+
peerId,
|
|
87
|
+
channelId: claimMessage.zkAppAddress,
|
|
88
|
+
cumulativeAmount: BigInt(0),
|
|
89
|
+
};
|
|
90
|
+
this.emit('CLAIM_RECEIVED', event);
|
|
91
|
+
childLogger.debug({ zkAppAddress: event.channelId }, 'CLAIM_RECEIVED event emitted (Mina)');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (eventError) {
|
|
95
|
+
childLogger.warn({
|
|
96
|
+
messageId: claimMessage.messageId,
|
|
97
|
+
error: eventError instanceof Error ? eventError.message : String(eventError),
|
|
98
|
+
}, 'Failed to emit CLAIM_RECEIVED event (invalid transferredAmount for BigInt conversion)');
|
|
64
99
|
}
|
|
65
100
|
}
|
|
66
101
|
else {
|
|
@@ -72,114 +107,63 @@ class ClaimReceiver extends events_1.EventEmitter {
|
|
|
72
107
|
childLogger.error({ error }, 'Failed to parse claim message');
|
|
73
108
|
}
|
|
74
109
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
lockedAmount: BigInt(claim.lockedAmount),
|
|
82
|
-
locksRoot: claim.locksRoot,
|
|
83
|
-
};
|
|
84
|
-
this.logger.debug({ channelId: claim.channelId }, 'Checking channel existence in metadata');
|
|
85
|
-
const knownChannel = this.channelManager?.getChannelById(claim.channelId);
|
|
86
|
-
if (!knownChannel && this.channelManager) {
|
|
87
|
-
this.logger.info({ channelId: claim.channelId }, 'Unknown channel detected, starting on-chain verification');
|
|
88
|
-
if (claim.chainId === undefined || !claim.tokenNetworkAddress || !claim.tokenAddress) {
|
|
89
|
-
this.logger.warn({ channelId: claim.channelId, signerAddress: claim.signerAddress }, exports.ERRORS.MISSING_SELF_DESCRIBING_FIELDS);
|
|
90
|
-
return {
|
|
91
|
-
valid: false,
|
|
92
|
-
messageId: claim.messageId,
|
|
93
|
-
error: exports.ERRORS.MISSING_SELF_DESCRIBING_FIELDS,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
let channelState;
|
|
97
|
-
try {
|
|
98
|
-
channelState = await this.evmChannelSDK.getChannelStateByNetwork(claim.channelId, claim.tokenNetworkAddress);
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
this.logger.warn({ channelId: claim.channelId, signerAddress: claim.signerAddress, error }, exports.ERRORS.ON_CHAIN_VERIFICATION_FAILED);
|
|
102
|
-
return {
|
|
103
|
-
valid: false,
|
|
104
|
-
messageId: claim.messageId,
|
|
105
|
-
error: exports.ERRORS.ON_CHAIN_VERIFICATION_FAILED,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
if (!channelState.exists) {
|
|
109
|
-
this.logger.warn({ channelId: claim.channelId, signerAddress: claim.signerAddress }, exports.ERRORS.CHANNEL_NOT_FOUND);
|
|
110
|
-
return {
|
|
111
|
-
valid: false,
|
|
112
|
-
messageId: claim.messageId,
|
|
113
|
-
error: exports.ERRORS.CHANNEL_NOT_FOUND,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
if (channelState.state !== 1) {
|
|
117
|
-
this.logger.warn({ channelId: claim.channelId, signerAddress: claim.signerAddress }, exports.ERRORS.CHANNEL_NOT_OPENED);
|
|
118
|
-
return {
|
|
119
|
-
valid: false,
|
|
120
|
-
messageId: claim.messageId,
|
|
121
|
-
error: exports.ERRORS.CHANNEL_NOT_OPENED,
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
const signerLower = claim.signerAddress.toLowerCase();
|
|
125
|
-
if (signerLower !== channelState.participant1.toLowerCase() &&
|
|
126
|
-
signerLower !== channelState.participant2.toLowerCase()) {
|
|
127
|
-
this.logger.warn({ channelId: claim.channelId, signerAddress: claim.signerAddress }, exports.ERRORS.SIGNER_NOT_PARTICIPANT);
|
|
128
|
-
return {
|
|
129
|
-
valid: false,
|
|
130
|
-
messageId: claim.messageId,
|
|
131
|
-
error: exports.ERRORS.SIGNER_NOT_PARTICIPANT,
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
this.logger.info({
|
|
135
|
-
channelId: claim.channelId,
|
|
136
|
-
participant1: channelState.participant1,
|
|
137
|
-
participant2: channelState.participant2,
|
|
138
|
-
state: channelState.state,
|
|
139
|
-
}, 'On-chain channel verified successfully');
|
|
140
|
-
const sigValid = await this.evmChannelSDK.verifyBalanceProofWithDomain(balanceProof, claim.signature, claim.signerAddress, claim.chainId, claim.tokenNetworkAddress);
|
|
141
|
-
if (!sigValid) {
|
|
142
|
-
return {
|
|
143
|
-
valid: false,
|
|
144
|
-
messageId: claim.messageId,
|
|
145
|
-
error: 'Invalid EIP-712 signature',
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
this.channelManager.registerExternalChannel({
|
|
149
|
-
channelId: claim.channelId,
|
|
150
|
-
peerId,
|
|
151
|
-
tokenAddress: claim.tokenAddress,
|
|
152
|
-
tokenNetworkAddress: claim.tokenNetworkAddress,
|
|
153
|
-
chainId: claim.chainId,
|
|
154
|
-
status: 'open',
|
|
155
|
-
});
|
|
156
|
-
this.logger.info({ channelId: claim.channelId, peerId }, 'External channel registered');
|
|
157
|
-
if (this.peerIdToAddressMap && !this.peerIdToAddressMap.has(peerId)) {
|
|
158
|
-
this.peerIdToAddressMap.set(peerId, claim.signerAddress);
|
|
159
|
-
this.logger.info({ peerId, signerAddress: claim.signerAddress }, 'Peer EVM address registered from self-describing claim');
|
|
110
|
+
resolveProvider(claim) {
|
|
111
|
+
if ((0, btp_claim_types_1.isEVMClaim)(claim)) {
|
|
112
|
+
if (this.channelManager) {
|
|
113
|
+
const knownChannel = this.channelManager.getChannelById(claim.channelId);
|
|
114
|
+
if (knownChannel && knownChannel.chain) {
|
|
115
|
+
return this.chainProviderRegistry.getProvider(claim.blockchain, knownChannel.chain);
|
|
160
116
|
}
|
|
161
117
|
}
|
|
162
|
-
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
118
|
+
if (claim.chainId !== undefined) {
|
|
119
|
+
const chainKey = `${claim.blockchain}:${claim.chainId}`;
|
|
120
|
+
return this.chainProviderRegistry.getProvider(claim.blockchain, chainKey);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if ((0, btp_claim_types_1.isSolanaClaim)(claim)) {
|
|
124
|
+
if (this.channelManager) {
|
|
125
|
+
const knownChannel = this.channelManager.getChannelById(claim.channelAccount);
|
|
126
|
+
if (knownChannel && knownChannel.chain) {
|
|
127
|
+
return this.chainProviderRegistry.getProvider(claim.blockchain, knownChannel.chain);
|
|
170
128
|
}
|
|
171
129
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
130
|
+
if (claim.cluster !== undefined) {
|
|
131
|
+
const chainKey = `${claim.blockchain}:${claim.cluster}`;
|
|
132
|
+
return this.chainProviderRegistry.getProvider(claim.blockchain, chainKey);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if ((0, btp_claim_types_1.isMinaClaim)(claim)) {
|
|
136
|
+
if (this.channelManager) {
|
|
137
|
+
const knownChannel = this.channelManager.getChannelById(claim.zkAppAddress);
|
|
138
|
+
if (knownChannel && knownChannel.chain) {
|
|
139
|
+
return this.chainProviderRegistry.getProvider(claim.blockchain, knownChannel.chain);
|
|
180
140
|
}
|
|
181
141
|
}
|
|
182
|
-
|
|
142
|
+
if (claim.network !== undefined) {
|
|
143
|
+
const chainKey = `${claim.blockchain}:${claim.network}`;
|
|
144
|
+
return this.chainProviderRegistry.getProvider(claim.blockchain, chainKey);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
const allProviders = this.chainProviderRegistry.getAllProviders();
|
|
148
|
+
return allProviders.find((p) => p.chainType === claim.blockchain);
|
|
149
|
+
}
|
|
150
|
+
async verifyClaim(claim, peerId, provider) {
|
|
151
|
+
try {
|
|
152
|
+
if ((0, btp_claim_types_1.isEVMClaim)(claim)) {
|
|
153
|
+
return await this.verifyEVMClaim(claim, peerId, provider);
|
|
154
|
+
}
|
|
155
|
+
if ((0, btp_claim_types_1.isSolanaClaim)(claim)) {
|
|
156
|
+
return await this.verifySolanaClaim(claim, peerId, provider);
|
|
157
|
+
}
|
|
158
|
+
if ((0, btp_claim_types_1.isMinaClaim)(claim)) {
|
|
159
|
+
return await this.verifyMinaClaim(claim, peerId, provider);
|
|
160
|
+
}
|
|
161
|
+
const _exhaustiveCheck = claim;
|
|
162
|
+
return {
|
|
163
|
+
valid: false,
|
|
164
|
+
messageId: _exhaustiveCheck.messageId,
|
|
165
|
+
error: `Verification not supported for blockchain: ${_exhaustiveCheck.blockchain}`,
|
|
166
|
+
};
|
|
183
167
|
}
|
|
184
168
|
catch (error) {
|
|
185
169
|
return {
|
|
@@ -189,9 +173,315 @@ class ClaimReceiver extends events_1.EventEmitter {
|
|
|
189
173
|
};
|
|
190
174
|
}
|
|
191
175
|
}
|
|
176
|
+
async verifyEVMClaim(claim, peerId, provider) {
|
|
177
|
+
this.logger.debug({ channelId: claim.channelId }, 'Checking channel existence in metadata');
|
|
178
|
+
const knownChannel = this.channelManager?.getChannelById(claim.channelId);
|
|
179
|
+
if (!knownChannel && this.channelManager) {
|
|
180
|
+
this.logger.info({ channelId: claim.channelId }, 'Unknown channel detected, starting on-chain verification');
|
|
181
|
+
if (claim.chainId === undefined || !claim.tokenNetworkAddress || !claim.tokenAddress) {
|
|
182
|
+
this.logger.warn({ channelId: claim.channelId, signerAddress: claim.signerAddress }, exports.ERRORS.MISSING_SELF_DESCRIBING_FIELDS);
|
|
183
|
+
return {
|
|
184
|
+
valid: false,
|
|
185
|
+
messageId: claim.messageId,
|
|
186
|
+
error: exports.ERRORS.MISSING_SELF_DESCRIBING_FIELDS,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
let channelState;
|
|
190
|
+
try {
|
|
191
|
+
channelState = await provider.getChannelState(claim.channelId);
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
this.logger.warn({ channelId: claim.channelId, signerAddress: claim.signerAddress, error }, exports.ERRORS.ON_CHAIN_VERIFICATION_FAILED);
|
|
195
|
+
return {
|
|
196
|
+
valid: false,
|
|
197
|
+
messageId: claim.messageId,
|
|
198
|
+
error: exports.ERRORS.ON_CHAIN_VERIFICATION_FAILED,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
if (channelState.status !== 'opened') {
|
|
202
|
+
const errorMsg = channelState.status === 'settled' || channelState.status === 'closed'
|
|
203
|
+
? exports.ERRORS.CHANNEL_NOT_OPENED
|
|
204
|
+
: exports.ERRORS.CHANNEL_NOT_FOUND;
|
|
205
|
+
this.logger.warn({ channelId: claim.channelId, signerAddress: claim.signerAddress }, errorMsg);
|
|
206
|
+
return {
|
|
207
|
+
valid: false,
|
|
208
|
+
messageId: claim.messageId,
|
|
209
|
+
error: errorMsg,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
const signerLower = claim.signerAddress.toLowerCase();
|
|
213
|
+
if (!channelState.participants.some((p) => p.toLowerCase() === signerLower)) {
|
|
214
|
+
this.logger.warn({ channelId: claim.channelId, signerAddress: claim.signerAddress }, exports.ERRORS.SIGNER_NOT_PARTICIPANT);
|
|
215
|
+
return {
|
|
216
|
+
valid: false,
|
|
217
|
+
messageId: claim.messageId,
|
|
218
|
+
error: exports.ERRORS.SIGNER_NOT_PARTICIPANT,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
this.logger.info({
|
|
222
|
+
channelId: claim.channelId,
|
|
223
|
+
participants: channelState.participants,
|
|
224
|
+
status: channelState.status,
|
|
225
|
+
}, 'On-chain channel verified successfully');
|
|
226
|
+
const verifyParams = this.buildVerifyParams(claim);
|
|
227
|
+
const sigValid = await provider.verifyBalanceProof(verifyParams);
|
|
228
|
+
if (!sigValid) {
|
|
229
|
+
return {
|
|
230
|
+
valid: false,
|
|
231
|
+
messageId: claim.messageId,
|
|
232
|
+
error: exports.ERRORS.INVALID_SIGNATURE,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
this.channelManager.registerExternalChannel({
|
|
236
|
+
channelId: claim.channelId,
|
|
237
|
+
peerId,
|
|
238
|
+
tokenAddress: claim.tokenAddress,
|
|
239
|
+
tokenNetworkAddress: claim.tokenNetworkAddress,
|
|
240
|
+
chainId: claim.chainId,
|
|
241
|
+
status: 'open',
|
|
242
|
+
});
|
|
243
|
+
this.logger.info({ channelId: claim.channelId, peerId }, 'External channel registered');
|
|
244
|
+
if (this.peerIdToAddressMap && !this.peerIdToAddressMap.has(peerId)) {
|
|
245
|
+
this.peerIdToAddressMap.set(peerId, claim.signerAddress);
|
|
246
|
+
this.logger.info({ peerId, signerAddress: claim.signerAddress }, 'Peer EVM address registered from self-describing claim');
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
const verifyParams = this.buildVerifyParams(claim);
|
|
251
|
+
const isValid = await provider.verifyBalanceProof(verifyParams);
|
|
252
|
+
if (!isValid) {
|
|
253
|
+
return {
|
|
254
|
+
valid: false,
|
|
255
|
+
messageId: claim.messageId,
|
|
256
|
+
error: exports.ERRORS.INVALID_SIGNATURE,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const latestClaim = await this.getLatestVerifiedClaim(peerId, claim.blockchain, claim.channelId);
|
|
261
|
+
if (latestClaim && (0, btp_claim_types_1.isEVMClaim)(latestClaim)) {
|
|
262
|
+
if (claim.nonce <= latestClaim.nonce) {
|
|
263
|
+
return {
|
|
264
|
+
valid: false,
|
|
265
|
+
messageId: claim.messageId,
|
|
266
|
+
error: 'Nonce not monotonically increasing',
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return { valid: true, messageId: claim.messageId };
|
|
271
|
+
}
|
|
272
|
+
buildVerifyParams(claim) {
|
|
273
|
+
return {
|
|
274
|
+
channelId: claim.channelId,
|
|
275
|
+
nonce: claim.nonce,
|
|
276
|
+
transferredAmount: claim.transferredAmount,
|
|
277
|
+
lockedAmount: claim.lockedAmount,
|
|
278
|
+
locksRoot: claim.locksRoot,
|
|
279
|
+
signature: claim.signature,
|
|
280
|
+
signerAddress: claim.signerAddress,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
async verifySolanaClaim(claim, peerId, provider) {
|
|
284
|
+
this.logger.debug({ channelAccount: claim.channelAccount }, 'Verifying Solana claim');
|
|
285
|
+
const knownChannel = this.channelManager?.getChannelById(claim.channelAccount);
|
|
286
|
+
if (!knownChannel && this.channelManager) {
|
|
287
|
+
this.logger.info({ channelAccount: claim.channelAccount }, 'Unknown Solana channel detected, starting on-chain verification');
|
|
288
|
+
let channelState;
|
|
289
|
+
try {
|
|
290
|
+
channelState = await provider.getChannelState(claim.channelAccount);
|
|
291
|
+
}
|
|
292
|
+
catch (error) {
|
|
293
|
+
this.logger.warn({
|
|
294
|
+
channelAccount: claim.channelAccount,
|
|
295
|
+
signerPublicKey: claim.signerPublicKey,
|
|
296
|
+
error,
|
|
297
|
+
}, exports.ERRORS.ON_CHAIN_VERIFICATION_FAILED);
|
|
298
|
+
return {
|
|
299
|
+
valid: false,
|
|
300
|
+
messageId: claim.messageId,
|
|
301
|
+
error: exports.ERRORS.ON_CHAIN_VERIFICATION_FAILED,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
if (channelState.status !== 'opened' && channelState.status !== 'closed') {
|
|
305
|
+
const errorMsg = channelState.status === 'settled' ? exports.ERRORS.CHANNEL_NOT_OPENED : exports.ERRORS.CHANNEL_NOT_FOUND;
|
|
306
|
+
this.logger.warn({ channelAccount: claim.channelAccount, status: channelState.status }, errorMsg);
|
|
307
|
+
return {
|
|
308
|
+
valid: false,
|
|
309
|
+
messageId: claim.messageId,
|
|
310
|
+
error: errorMsg,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
if (!channelState.participants.includes(claim.signerPublicKey)) {
|
|
314
|
+
this.logger.warn({
|
|
315
|
+
channelAccount: claim.channelAccount,
|
|
316
|
+
signerPublicKey: claim.signerPublicKey,
|
|
317
|
+
}, exports.ERRORS.SIGNER_NOT_PARTICIPANT);
|
|
318
|
+
return {
|
|
319
|
+
valid: false,
|
|
320
|
+
messageId: claim.messageId,
|
|
321
|
+
error: exports.ERRORS.SIGNER_NOT_PARTICIPANT,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
this.logger.info({
|
|
325
|
+
channelAccount: claim.channelAccount,
|
|
326
|
+
participants: channelState.participants,
|
|
327
|
+
status: channelState.status,
|
|
328
|
+
}, 'On-chain Solana channel verified successfully');
|
|
329
|
+
const verifyParams = this.buildSolanaVerifyParams(claim);
|
|
330
|
+
const sigValid = await provider.verifyBalanceProof(verifyParams);
|
|
331
|
+
if (!sigValid) {
|
|
332
|
+
return {
|
|
333
|
+
valid: false,
|
|
334
|
+
messageId: claim.messageId,
|
|
335
|
+
error: exports.ERRORS.INVALID_SIGNATURE,
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
this.channelManager.registerExternalChannel({
|
|
339
|
+
channelId: claim.channelAccount,
|
|
340
|
+
peerId,
|
|
341
|
+
tokenAddress: claim.programId,
|
|
342
|
+
status: 'open',
|
|
343
|
+
chain: `solana:${claim.cluster ?? 'devnet'}`,
|
|
344
|
+
});
|
|
345
|
+
this.logger.info({ channelAccount: claim.channelAccount, peerId }, 'External Solana channel registered');
|
|
346
|
+
if (this.peerIdToAddressMap && !this.peerIdToAddressMap.has(peerId)) {
|
|
347
|
+
this.peerIdToAddressMap.set(peerId, claim.signerPublicKey);
|
|
348
|
+
this.logger.info({ peerId, signerPublicKey: claim.signerPublicKey }, 'Peer Solana address registered from self-describing claim');
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
const verifyParams = this.buildSolanaVerifyParams(claim);
|
|
353
|
+
const isValid = await provider.verifyBalanceProof(verifyParams);
|
|
354
|
+
if (!isValid) {
|
|
355
|
+
return {
|
|
356
|
+
valid: false,
|
|
357
|
+
messageId: claim.messageId,
|
|
358
|
+
error: exports.ERRORS.INVALID_SIGNATURE,
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
const latestClaim = await this.getLatestVerifiedClaim(peerId, claim.blockchain, claim.channelAccount);
|
|
363
|
+
if (latestClaim && (0, btp_claim_types_1.isSolanaClaim)(latestClaim)) {
|
|
364
|
+
if (claim.nonce <= latestClaim.nonce) {
|
|
365
|
+
return {
|
|
366
|
+
valid: false,
|
|
367
|
+
messageId: claim.messageId,
|
|
368
|
+
error: 'Nonce not monotonically increasing',
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
return { valid: true, messageId: claim.messageId };
|
|
373
|
+
}
|
|
374
|
+
buildSolanaVerifyParams(claim) {
|
|
375
|
+
return {
|
|
376
|
+
channelId: claim.channelAccount,
|
|
377
|
+
nonce: claim.nonce,
|
|
378
|
+
transferredAmount: claim.transferredAmount,
|
|
379
|
+
lockedAmount: '0',
|
|
380
|
+
locksRoot: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
381
|
+
signature: claim.signature,
|
|
382
|
+
signerAddress: claim.signerPublicKey,
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
async verifyMinaClaim(claim, peerId, provider) {
|
|
386
|
+
this.logger.debug({
|
|
387
|
+
event: 'mina_claim_received',
|
|
388
|
+
messageId: claim.messageId,
|
|
389
|
+
zkAppAddress: claim.zkAppAddress,
|
|
390
|
+
}, 'Verifying Mina claim');
|
|
391
|
+
const knownChannel = this.channelManager?.getChannelById(claim.zkAppAddress);
|
|
392
|
+
if (!knownChannel && this.channelManager) {
|
|
393
|
+
this.logger.info({ zkAppAddress: claim.zkAppAddress }, 'Unknown Mina channel detected, starting on-chain verification');
|
|
394
|
+
let channelState;
|
|
395
|
+
try {
|
|
396
|
+
channelState = await provider.getChannelState(claim.zkAppAddress);
|
|
397
|
+
}
|
|
398
|
+
catch (error) {
|
|
399
|
+
this.logger.warn({ event: 'mina_claim_verification_failed', messageId: claim.messageId, error }, exports.ERRORS.ON_CHAIN_VERIFICATION_FAILED);
|
|
400
|
+
return {
|
|
401
|
+
valid: false,
|
|
402
|
+
messageId: claim.messageId,
|
|
403
|
+
error: exports.ERRORS.ON_CHAIN_VERIFICATION_FAILED,
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
if (channelState.status !== 'opened' && channelState.status !== 'closed') {
|
|
407
|
+
const errorMsg = channelState.status === 'settled' ? exports.ERRORS.CHANNEL_NOT_OPENED : exports.ERRORS.CHANNEL_NOT_FOUND;
|
|
408
|
+
this.logger.warn({ zkAppAddress: claim.zkAppAddress, status: channelState.status }, errorMsg);
|
|
409
|
+
return {
|
|
410
|
+
valid: false,
|
|
411
|
+
messageId: claim.messageId,
|
|
412
|
+
error: errorMsg,
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
this.logger.info({
|
|
416
|
+
zkAppAddress: claim.zkAppAddress,
|
|
417
|
+
participants: channelState.participants,
|
|
418
|
+
status: channelState.status,
|
|
419
|
+
}, 'On-chain Mina channel verified successfully');
|
|
420
|
+
const verifyParams = this.buildMinaVerifyParams(claim);
|
|
421
|
+
const proofValid = await provider.verifyBalanceProof(verifyParams);
|
|
422
|
+
if (!proofValid) {
|
|
423
|
+
this.logger.warn({ event: 'mina_claim_verification_failed', messageId: claim.messageId }, exports.ERRORS.INVALID_SIGNATURE);
|
|
424
|
+
return {
|
|
425
|
+
valid: false,
|
|
426
|
+
messageId: claim.messageId,
|
|
427
|
+
error: exports.ERRORS.INVALID_SIGNATURE,
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
this.channelManager.registerExternalChannel({
|
|
431
|
+
channelId: claim.zkAppAddress,
|
|
432
|
+
peerId,
|
|
433
|
+
tokenAddress: claim.tokenId,
|
|
434
|
+
status: 'open',
|
|
435
|
+
chain: `mina:${claim.network ?? 'devnet'}`,
|
|
436
|
+
});
|
|
437
|
+
this.logger.info({ zkAppAddress: claim.zkAppAddress, peerId }, 'External Mina channel registered');
|
|
438
|
+
}
|
|
439
|
+
else {
|
|
440
|
+
const verifyParams = this.buildMinaVerifyParams(claim);
|
|
441
|
+
const isValid = await provider.verifyBalanceProof(verifyParams);
|
|
442
|
+
if (!isValid) {
|
|
443
|
+
return {
|
|
444
|
+
valid: false,
|
|
445
|
+
messageId: claim.messageId,
|
|
446
|
+
error: exports.ERRORS.INVALID_SIGNATURE,
|
|
447
|
+
};
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
const latestClaim = await this.getLatestVerifiedClaim(peerId, claim.blockchain, claim.zkAppAddress);
|
|
451
|
+
if (latestClaim && (0, btp_claim_types_1.isMinaClaim)(latestClaim)) {
|
|
452
|
+
if (claim.nonce <= latestClaim.nonce) {
|
|
453
|
+
return {
|
|
454
|
+
valid: false,
|
|
455
|
+
messageId: claim.messageId,
|
|
456
|
+
error: 'Nonce not monotonically increasing',
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
return { valid: true, messageId: claim.messageId };
|
|
461
|
+
}
|
|
462
|
+
buildMinaVerifyParams(claim) {
|
|
463
|
+
return {
|
|
464
|
+
channelId: claim.zkAppAddress,
|
|
465
|
+
nonce: claim.nonce,
|
|
466
|
+
transferredAmount: claim.balanceCommitment,
|
|
467
|
+
lockedAmount: '0',
|
|
468
|
+
locksRoot: '0x' + '0'.repeat(64),
|
|
469
|
+
signature: claim.proof,
|
|
470
|
+
signerAddress: claim.zkAppAddress,
|
|
471
|
+
};
|
|
472
|
+
}
|
|
192
473
|
_persistReceivedClaim(peerId, claim, verified) {
|
|
193
474
|
try {
|
|
194
|
-
|
|
475
|
+
let channelId = '';
|
|
476
|
+
if ((0, btp_claim_types_1.isEVMClaim)(claim)) {
|
|
477
|
+
channelId = claim.channelId;
|
|
478
|
+
}
|
|
479
|
+
else if ((0, btp_claim_types_1.isSolanaClaim)(claim)) {
|
|
480
|
+
channelId = claim.channelAccount;
|
|
481
|
+
}
|
|
482
|
+
else if ((0, btp_claim_types_1.isMinaClaim)(claim)) {
|
|
483
|
+
channelId = claim.zkAppAddress;
|
|
484
|
+
}
|
|
195
485
|
const stmt = this.db.prepare(`
|
|
196
486
|
INSERT INTO received_claims (
|
|
197
487
|
message_id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-receiver.js","sourceRoot":"","sources":["../../src/settlement/claim-receiver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claim-receiver.js","sourceRoot":"","sources":["../../src/settlement/claim-receiver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Database } from 'better-sqlite3';
|
|
2
|
-
import { Logger } from 'pino';
|
|
3
|
-
import { BTPClient } from '../btp/btp-client';
|
|
2
|
+
import type { Logger } from 'pino';
|
|
3
|
+
import type { BTPClient } from '../btp/btp-client';
|
|
4
4
|
export interface ClaimSendResult {
|
|
5
5
|
success: boolean;
|
|
6
6
|
messageId: string;
|
|
@@ -13,6 +13,8 @@ export declare class ClaimSender {
|
|
|
13
13
|
private readonly nodeId?;
|
|
14
14
|
constructor(db: Database, logger: Logger, nodeId?: string | undefined);
|
|
15
15
|
sendEVMClaim(peerId: string, btpClient: BTPClient, channelId: string, nonce: number, transferredAmount: string, lockedAmount: string, locksRoot: string, signature: string, signerAddress: string, chainId?: number, tokenNetworkAddress?: string, tokenAddress?: string): Promise<ClaimSendResult>;
|
|
16
|
+
sendSolanaClaim(peerId: string, btpClient: BTPClient, programId: string, channelAccount: string, nonce: number, transferredAmount: string, signature: string, signerPublicKey: string, cluster?: string): Promise<ClaimSendResult>;
|
|
17
|
+
sendMinaClaim(peerId: string, btpClient: BTPClient, zkAppAddress: string, tokenId: string, balanceCommitment: string, nonce: number, proof: string, salt: string, network?: string): Promise<ClaimSendResult>;
|
|
16
18
|
private sendClaim;
|
|
17
19
|
private _generateMessageId;
|
|
18
20
|
private _serializeClaimMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-sender.d.ts","sourceRoot":"","sources":["../../src/settlement/claim-sender.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"claim-sender.d.ts","sourceRoot":"","sources":["../../src/settlement/claim-sender.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAanD,MAAM,WAAW,eAAe;IAE9B,OAAO,EAAE,OAAO,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;IAElB,SAAS,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAeD,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAFP,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,YAAA;IAsC5B,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,mBAAmB,CAAC,EAAE,MAAM,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,eAAe,CAAC;IAuDrB,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EACzB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC;IAoCrB,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC;YAgCb,SAAS;IA2DvB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,sBAAsB;YAqBhB,cAAc;IA0C5B,OAAO,CAAC,iBAAiB;CAqB1B"}
|