@resvary/sdk 0.5.0-alpha.2 → 0.5.0-alpha.3
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/billing/meter.d.ts.map +1 -1
- package/dist/billing/meter.js +1 -3
- package/dist/billing/meter.js.map +1 -1
- package/dist/billing/plans.d.ts.map +1 -1
- package/dist/billing/plans.js.map +1 -1
- package/dist/client/buyer.d.ts.map +1 -1
- package/dist/client/buyer.js +4 -4
- package/dist/client/buyer.js.map +1 -1
- package/dist/credits/ledger.d.ts.map +1 -1
- package/dist/credits/ledger.js +11 -2
- package/dist/credits/ledger.js.map +1 -1
- package/dist/credits/store.d.ts +3 -2
- package/dist/credits/store.d.ts.map +1 -1
- package/dist/credits/store.js +7 -4
- package/dist/credits/store.js.map +1 -1
- package/dist/middleware/next.d.ts.map +1 -1
- package/dist/middleware/next.js.map +1 -1
- package/dist/middleware/paywall.d.ts.map +1 -1
- package/dist/middleware/paywall.js.map +1 -1
- package/dist/receipts/amount.d.ts.map +1 -1
- package/dist/receipts/amount.js +1 -2
- package/dist/receipts/amount.js.map +1 -1
- package/dist/receipts/index.d.ts +2 -2
- package/dist/receipts/index.d.ts.map +1 -1
- package/dist/receipts/index.js +1 -1
- package/dist/receipts/index.js.map +1 -1
- package/dist/receipts/invoice.js +3 -3
- package/dist/receipts/invoice.js.map +1 -1
- package/dist/receipts/ledger.d.ts.map +1 -1
- package/dist/receipts/ledger.js +22 -7
- package/dist/receipts/ledger.js.map +1 -1
- package/dist/receipts/memo-payment.d.ts.map +1 -1
- package/dist/receipts/memo-payment.js +1 -1
- package/dist/receipts/memo-payment.js.map +1 -1
- package/dist/receipts/memo.d.ts.map +1 -1
- package/dist/receipts/memo.js +1 -5
- package/dist/receipts/memo.js.map +1 -1
- package/dist/receipts/persistent-ledger.d.ts +5 -3
- package/dist/receipts/persistent-ledger.d.ts.map +1 -1
- package/dist/receipts/persistent-ledger.js +89 -49
- package/dist/receipts/persistent-ledger.js.map +1 -1
- package/dist/receipts/persistent-webhook-inbox.d.ts.map +1 -1
- package/dist/receipts/persistent-webhook-inbox.js +5 -7
- package/dist/receipts/persistent-webhook-inbox.js.map +1 -1
- package/dist/receipts/proof.d.ts.map +1 -1
- package/dist/receipts/proof.js +10 -8
- package/dist/receipts/proof.js.map +1 -1
- package/dist/receipts/serialization.js +4 -4
- package/dist/receipts/serialization.js.map +1 -1
- package/dist/receipts/store.d.ts +6 -1
- package/dist/receipts/store.d.ts.map +1 -1
- package/dist/receipts/store.js +39 -7
- package/dist/receipts/store.js.map +1 -1
- package/dist/receipts/webhook-inbox.d.ts.map +1 -1
- package/dist/receipts/webhook-inbox.js +5 -7
- package/dist/receipts/webhook-inbox.js.map +1 -1
- package/dist/receipts/webhook-route.d.ts.map +1 -1
- package/dist/receipts/webhook-route.js +2 -2
- package/dist/receipts/webhook-route.js.map +1 -1
- package/dist/receipts/webhooks.d.ts.map +1 -1
- package/dist/receipts/webhooks.js +2 -6
- package/dist/receipts/webhooks.js.map +1 -1
- package/package.json +1 -1
package/dist/receipts/index.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ export { createWebhookEvent, serializeWebhookPayload, signWebhookEvent, verifyWe
|
|
|
9
9
|
export { WebhookInbox, type ReceiveWebhookInput, type ReplayWebhookInput, type WebhookDeliveryFilter, } from './webhook-inbox.js';
|
|
10
10
|
export { PersistentReceiptLedger, type PersistentReceiptLedgerConfig, } from './persistent-ledger.js';
|
|
11
11
|
export { PersistentWebhookInbox, type PersistentReceiveWebhookInput, type PersistentReplayWebhookInput, type PersistentWebhookInboxConfig, } from './persistent-webhook-inbox.js';
|
|
12
|
-
export { InMemoryReceiptStore, createWatcherCursorKey, type ReceiptStore, type ReceiptStoreDeliveryFilter, type ReceiptStoreEventFilter, type ReceiptStoreInvoiceFilter, type WatcherCursor, type WatcherCursorKeyInput, } from './store.js';
|
|
13
|
-
export { parseReceiptStoreValue, serializeReceiptStoreValue
|
|
12
|
+
export { InMemoryReceiptStore, type TransactionalReceiptStore, createWatcherCursorKey, type ReceiptStore, type ReceiptStoreDeliveryFilter, type ReceiptStoreEventFilter, type ReceiptStoreInvoiceFilter, type WatcherCursor, type WatcherCursorKeyInput, } from './store.js';
|
|
13
|
+
export { parseReceiptStoreValue, serializeReceiptStoreValue } from './serialization.js';
|
|
14
14
|
export { createWebhookRouteHandler, type WebhookRouteHandlerConfig, type WebhookRouteResult, } from './webhook-route.js';
|
|
15
15
|
export type { PaymentInvoice, PaymentReceipt, ReceiptOnchainProof, CreateInvoiceInput, InvoiceStatus, MemoPaymentRequest, ObservedPayment, PaymentMatchResult, ReceiptStatus, StablecoinSymbol, WebhookDeliveryAttempt, WebhookDeliveryStatus, WebhookEvent, WebhookEventType, } from './types.js';
|
|
16
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/receipts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,GAClC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/receipts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,GAClC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EACL,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
package/dist/receipts/index.js
CHANGED
|
@@ -10,6 +10,6 @@ export { WebhookInbox, } from './webhook-inbox.js';
|
|
|
10
10
|
export { PersistentReceiptLedger, } from './persistent-ledger.js';
|
|
11
11
|
export { PersistentWebhookInbox, } from './persistent-webhook-inbox.js';
|
|
12
12
|
export { InMemoryReceiptStore, createWatcherCursorKey, } from './store.js';
|
|
13
|
-
export { parseReceiptStoreValue, serializeReceiptStoreValue
|
|
13
|
+
export { parseReceiptStoreValue, serializeReceiptStoreValue } from './serialization.js';
|
|
14
14
|
export { createWebhookRouteHandler, } from './webhook-route.js';
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/receipts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAEhB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,GAEzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,GAIf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GAUvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,GAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,GAIb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,GAIvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/receipts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAEhB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,GAEzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,GAIf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GAUvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,GAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,GAIb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,GAIvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,oBAAoB,EAEpB,sBAAsB,GAOvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EACL,yBAAyB,GAG1B,MAAM,oBAAoB,CAAC"}
|
package/dist/receipts/invoice.js
CHANGED
|
@@ -69,9 +69,9 @@ export function matchPaymentToInvoice(invoice, payment, now = Date.now()) {
|
|
|
69
69
|
if (payment.memo !== undefined && payment.memo !== invoice.memo) {
|
|
70
70
|
return { success: false, reason: 'wrong_memo' };
|
|
71
71
|
}
|
|
72
|
-
if (payment.memoId !== undefined
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
if (payment.memoId !== undefined &&
|
|
73
|
+
invoice.memoId !== undefined &&
|
|
74
|
+
payment.memoId.toLowerCase() !== invoice.memoId.toLowerCase()) {
|
|
75
75
|
return { success: false, reason: 'wrong_memo_id' };
|
|
76
76
|
}
|
|
77
77
|
if (!isAmountAtLeast(payment.amount, invoice.amount)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../src/receipts/invoice.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../src/receipts/invoice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/receipts/ledger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc;IAOxD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIlD,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,EAAE;IAcrD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc;
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/receipts/ledger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAE7C,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc;IAOxD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIlD,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,EAAE;IAcrD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc;IAsB1E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,cAAc;IAYhE,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE;QAAE,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAC3D,cAAc;IA8CjB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIlD,kBAAkB,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAQzF,YAAY,IAAI,cAAc,EAAE;IAIhC,iBAAiB,IAAI,YAAY,EAAE;IAInC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;CAMtB"}
|
package/dist/receipts/ledger.js
CHANGED
|
@@ -34,10 +34,11 @@ export class ReceiptLedger {
|
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
recordPayment(invoiceId, payment) {
|
|
37
|
-
const existingReceipt = payment.txHash
|
|
38
|
-
? this.getReceiptByTxHash(payment.txHash, invoiceId)
|
|
39
|
-
: undefined;
|
|
37
|
+
const existingReceipt = payment.txHash ? this.getReceiptByTxHash(payment.txHash) : undefined;
|
|
40
38
|
if (existingReceipt) {
|
|
39
|
+
if (existingReceipt.invoiceId !== invoiceId) {
|
|
40
|
+
throw new Error(`Payment transaction ${payment.txHash} is already assigned to invoice ${existingReceipt.invoiceId}`);
|
|
41
|
+
}
|
|
41
42
|
return existingReceipt;
|
|
42
43
|
}
|
|
43
44
|
const invoice = this.requireInvoice(invoiceId);
|
|
@@ -60,7 +61,21 @@ export class ReceiptLedger {
|
|
|
60
61
|
}
|
|
61
62
|
markRefunded(invoiceId, refund = {}) {
|
|
62
63
|
const invoice = this.requireInvoice(invoiceId);
|
|
63
|
-
const
|
|
64
|
+
const invoiceReceipts = [...this.receipts.values()].filter((item) => item.invoiceId === invoiceId);
|
|
65
|
+
const existingRefund = invoiceReceipts.find((item) => item.status === 'refunded');
|
|
66
|
+
if (invoice.status === 'refunded' && existingRefund)
|
|
67
|
+
return existingRefund;
|
|
68
|
+
if (refund.txHash) {
|
|
69
|
+
const transactionReceipt = this.getReceiptByTxHash(refund.txHash);
|
|
70
|
+
if (transactionReceipt) {
|
|
71
|
+
if (transactionReceipt.invoiceId === invoiceId &&
|
|
72
|
+
transactionReceipt.status === 'refunded') {
|
|
73
|
+
return transactionReceipt;
|
|
74
|
+
}
|
|
75
|
+
throw new Error(`Refund transaction ${refund.txHash} is already assigned to receipt ${transactionReceipt.id}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
const receipt = invoiceReceipts.find((item) => item.status === 'paid');
|
|
64
79
|
if (!receipt) {
|
|
65
80
|
throw new Error(`Cannot refund invoice without a paid receipt: ${invoiceId}`);
|
|
66
81
|
}
|
|
@@ -68,7 +83,7 @@ export class ReceiptLedger {
|
|
|
68
83
|
...receipt,
|
|
69
84
|
id: `rfnd_${receipt.id}`,
|
|
70
85
|
status: 'refunded',
|
|
71
|
-
txHash: refund.txHash
|
|
86
|
+
txHash: refund.txHash,
|
|
72
87
|
createdAt: refund.refundedAt ?? Date.now(),
|
|
73
88
|
};
|
|
74
89
|
this.receipts.set(refundedReceipt.id, refundedReceipt);
|
|
@@ -83,8 +98,8 @@ export class ReceiptLedger {
|
|
|
83
98
|
return this.receipts.get(id);
|
|
84
99
|
}
|
|
85
100
|
getReceiptByTxHash(txHash, invoiceId) {
|
|
86
|
-
return [...this.receipts.values()].find((receipt) =>
|
|
87
|
-
|
|
101
|
+
return [...this.receipts.values()].find((receipt) => receipt.txHash?.toLowerCase() === txHash.toLowerCase() &&
|
|
102
|
+
(invoiceId === undefined || receipt.invoiceId === invoiceId));
|
|
88
103
|
}
|
|
89
104
|
listReceipts() {
|
|
90
105
|
return [...this.receipts.values()];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/receipts/ledger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAS9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAOnD,MAAM,OAAO,aAAa;IACP,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC7C,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC7C,MAAM,GAAmB,EAAE,CAAC;IAE7C,aAAa,CAAC,KAAyB;QACrC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,UAAU,CAAC,OAAuB;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,MAAqB;QAChC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YACpD,IAAI,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,MAAM,EAAE,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;gBACnE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,OAAwB;QACvD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/receipts/ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo-payment.d.ts","sourceRoot":"","sources":["../../src/receipts/memo-payment.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"memo-payment.d.ts","sourceRoot":"","sources":["../../src/receipts/memo-payment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBP,CAAC;AAEzB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCD,CAAC;AAEzB,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CAC9B;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,yBAA8B,GACtC,kBAAkB,CA8BpB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Helpers for Arc Memo-wrapped USDC invoice payments.
|
|
3
3
|
*/
|
|
4
|
-
import { encodeFunctionData, keccak256
|
|
4
|
+
import { encodeFunctionData, keccak256 } from 'viem';
|
|
5
5
|
import { ARC_TESTNET_CONTRACTS } from '../constants.js';
|
|
6
6
|
import { createInvoiceMemoData, createInvoiceMemoId } from './memo.js';
|
|
7
7
|
export const ERC20_TRANSFER_ABI = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo-payment.js","sourceRoot":"","sources":["../../src/receipts/memo-payment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"memo-payment.js","sourceRoot":"","sources":["../../src/receipts/memo-payment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo.d.ts","sourceRoot":"","sources":["../../src/receipts/memo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,MAAM,CAalF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAEpE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAEjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"memo.d.ts","sourceRoot":"","sources":["../../src/receipts/memo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,MAAM,CAalF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAEpE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAEjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAavE"}
|
package/dist/receipts/memo.js
CHANGED
|
@@ -22,11 +22,7 @@ export function createInvoiceMemoData(memo) {
|
|
|
22
22
|
}
|
|
23
23
|
export function parseInvoiceMemo(memo) {
|
|
24
24
|
const [namespace, kind, version, invoiceId, ...extra] = memo.split(':');
|
|
25
|
-
if (!namespace
|
|
26
|
-
|| kind !== 'invoice'
|
|
27
|
-
|| version !== 'v1'
|
|
28
|
-
|| !invoiceId
|
|
29
|
-
|| extra.length > 0) {
|
|
25
|
+
if (!namespace || kind !== 'invoice' || version !== 'v1' || !invoiceId || extra.length > 0) {
|
|
30
26
|
return null;
|
|
31
27
|
}
|
|
32
28
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/receipts/memo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAS9C,MAAM,OAAO,GAAG,kBAAkB,CAAC;AAEnC,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,SAAS,GAAG,SAAS;IACxE,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAExC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,GAAG,cAAc,eAAe,cAAc,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAExE,
|
|
1
|
+
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/receipts/memo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAS9C,MAAM,OAAO,GAAG,kBAAkB,CAAC;AAEnC,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,SAAS,GAAG,SAAS;IACxE,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAExC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,GAAG,cAAc,eAAe,cAAc,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,OAAO,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAExE,IAAI,CAAC,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,SAAS;QACT,IAAI;QACJ,OAAO;QACP,SAAS;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -11,6 +11,7 @@ export declare class PersistentReceiptLedger {
|
|
|
11
11
|
getInvoice(id: string): Promise<PaymentInvoice | undefined>;
|
|
12
12
|
listInvoices(filter?: ReceiptStoreInvoiceFilter): Promise<PaymentInvoice[]>;
|
|
13
13
|
recordPayment(invoiceId: string, payment: ObservedPayment): Promise<PaymentReceipt>;
|
|
14
|
+
private recordPaymentInStore;
|
|
14
15
|
markExpired(invoiceId: string, now?: number): Promise<PaymentInvoice>;
|
|
15
16
|
markRefunded(invoiceId: string, refund?: {
|
|
16
17
|
txHash?: `0x${string}`;
|
|
@@ -20,8 +21,9 @@ export declare class PersistentReceiptLedger {
|
|
|
20
21
|
getReceiptByTxHash(txHash: `0x${string}`, invoiceId?: string): Promise<PaymentReceipt | undefined>;
|
|
21
22
|
listReceipts(): Promise<PaymentReceipt[]>;
|
|
22
23
|
listWebhookEvents(): Promise<WebhookEvent[]>;
|
|
23
|
-
private
|
|
24
|
-
private
|
|
25
|
-
private
|
|
24
|
+
private addInvoiceToStore;
|
|
25
|
+
private requireInvoiceFromStore;
|
|
26
|
+
private updateInvoiceInStore;
|
|
27
|
+
private withTransaction;
|
|
26
28
|
}
|
|
27
29
|
//# sourceMappingURL=persistent-ledger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistent-ledger.d.ts","sourceRoot":"","sources":["../../src/receipts/persistent-ledger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"persistent-ledger.d.ts","sourceRoot":"","sources":["../../src/receipts/persistent-ledger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,YAAY,EACZ,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,MAAM,EAAE,6BAA6B;IAI3C,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IASjE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAI3D,YAAY,CAAC,MAAM,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI3E,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;YAI3E,oBAAoB;IAgD5B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAgBzE,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE;QAAE,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAC3D,OAAO,CAAC,cAAc,CAAC;IA+CpB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAI3D,kBAAkB,CACtB,MAAM,EAAE,KAAK,MAAM,EAAE,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAIhC,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIzC,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YAIpC,iBAAiB;YAMjB,uBAAuB;YASvB,oBAAoB;IAWlC,OAAO,CAAC,eAAe;CAMxB"}
|
|
@@ -7,16 +7,14 @@ export class PersistentReceiptLedger {
|
|
|
7
7
|
}
|
|
8
8
|
async createInvoice(input) {
|
|
9
9
|
const invoice = createInvoice(input);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
return this.withTransaction(async (store) => {
|
|
11
|
+
await this.addInvoiceToStore(store, invoice);
|
|
12
|
+
await store.saveWebhookEvent(createWebhookEvent('invoice.created', { invoice }));
|
|
13
|
+
return invoice;
|
|
14
|
+
});
|
|
13
15
|
}
|
|
14
16
|
async addInvoice(invoice) {
|
|
15
|
-
|
|
16
|
-
if (existing) {
|
|
17
|
-
throw new Error(`Invoice already exists: ${invoice.id}`);
|
|
18
|
-
}
|
|
19
|
-
await this.store.saveInvoice(invoice);
|
|
17
|
+
await this.withTransaction((store) => this.addInvoiceToStore(store, invoice));
|
|
20
18
|
}
|
|
21
19
|
async getInvoice(id) {
|
|
22
20
|
return this.store.getInvoice(id);
|
|
@@ -25,59 +23,92 @@ export class PersistentReceiptLedger {
|
|
|
25
23
|
return this.store.listInvoices(filter);
|
|
26
24
|
}
|
|
27
25
|
async recordPayment(invoiceId, payment) {
|
|
26
|
+
return this.withTransaction((store) => this.recordPaymentInStore(store, invoiceId, payment));
|
|
27
|
+
}
|
|
28
|
+
async recordPaymentInStore(store, invoiceId, payment) {
|
|
28
29
|
const existingReceipt = payment.txHash
|
|
29
|
-
? await
|
|
30
|
+
? await store.getReceiptByTxHash(payment.txHash)
|
|
30
31
|
: undefined;
|
|
31
32
|
if (existingReceipt) {
|
|
33
|
+
if (existingReceipt.invoiceId !== invoiceId) {
|
|
34
|
+
throw new Error(`Payment transaction ${payment.txHash} is already assigned to invoice ${existingReceipt.invoiceId}`);
|
|
35
|
+
}
|
|
32
36
|
return existingReceipt;
|
|
33
37
|
}
|
|
34
|
-
const invoice = await this.
|
|
35
|
-
const observedInvoice = await this.
|
|
36
|
-
|
|
38
|
+
const invoice = await this.requireInvoiceFromStore(store, invoiceId);
|
|
39
|
+
const observedInvoice = await this.updateInvoiceInStore(store, invoice.id, {
|
|
40
|
+
status: 'observed',
|
|
41
|
+
});
|
|
42
|
+
await store.saveWebhookEvent(createWebhookEvent('invoice.observed', {
|
|
37
43
|
invoice: observedInvoice,
|
|
38
44
|
payment,
|
|
39
45
|
}));
|
|
40
46
|
const receipt = createReceipt(observedInvoice, payment);
|
|
41
|
-
await
|
|
47
|
+
await store.saveReceipt(receipt);
|
|
42
48
|
const persistedReceipt = payment.txHash
|
|
43
|
-
? ((await
|
|
49
|
+
? ((await store.getReceiptByTxHash(payment.txHash)) ?? receipt)
|
|
44
50
|
: receipt;
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
if (persistedReceipt.invoiceId !== invoice.id) {
|
|
52
|
+
throw new Error(`Payment transaction ${payment.txHash} is already assigned to invoice ${persistedReceipt.invoiceId}`);
|
|
53
|
+
}
|
|
54
|
+
const paidInvoice = await this.updateInvoiceInStore(store, invoice.id, { status: 'paid' });
|
|
55
|
+
await store.saveWebhookEvent(createWebhookEvent('invoice.paid', {
|
|
47
56
|
invoice: paidInvoice,
|
|
48
57
|
receipt: persistedReceipt,
|
|
49
58
|
}));
|
|
50
59
|
return persistedReceipt;
|
|
51
60
|
}
|
|
52
61
|
async markExpired(invoiceId, now = Date.now()) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
return this.withTransaction(async (store) => {
|
|
63
|
+
const invoice = await this.requireInvoiceFromStore(store, invoiceId);
|
|
64
|
+
if (!isInvoiceExpired(invoice, now)) {
|
|
65
|
+
throw new Error(`Invoice is not expired: ${invoiceId}`);
|
|
66
|
+
}
|
|
67
|
+
const expiredInvoice = await this.updateInvoiceInStore(store, invoiceId, {
|
|
68
|
+
status: 'expired',
|
|
69
|
+
});
|
|
70
|
+
await store.saveWebhookEvent(createWebhookEvent('invoice.expired', { invoice: expiredInvoice }));
|
|
71
|
+
return expiredInvoice;
|
|
72
|
+
});
|
|
60
73
|
}
|
|
61
74
|
async markRefunded(invoiceId, refund = {}) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
receipt
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
return this.withTransaction(async (store) => {
|
|
76
|
+
const invoice = await this.requireInvoiceFromStore(store, invoiceId);
|
|
77
|
+
const invoiceReceipts = (await store.listReceipts()).filter((item) => item.invoiceId === invoiceId);
|
|
78
|
+
const existingRefund = invoiceReceipts.find((item) => item.status === 'refunded');
|
|
79
|
+
if (invoice.status === 'refunded' && existingRefund)
|
|
80
|
+
return existingRefund;
|
|
81
|
+
if (refund.txHash) {
|
|
82
|
+
const transactionReceipt = await store.getReceiptByTxHash(refund.txHash);
|
|
83
|
+
if (transactionReceipt) {
|
|
84
|
+
if (transactionReceipt.invoiceId === invoiceId &&
|
|
85
|
+
transactionReceipt.status === 'refunded') {
|
|
86
|
+
return transactionReceipt;
|
|
87
|
+
}
|
|
88
|
+
throw new Error(`Refund transaction ${refund.txHash} is already assigned to receipt ${transactionReceipt.id}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const receipt = invoiceReceipts.find((item) => item.status === 'paid');
|
|
92
|
+
if (!receipt) {
|
|
93
|
+
throw new Error(`Cannot refund invoice without a paid receipt: ${invoiceId}`);
|
|
94
|
+
}
|
|
95
|
+
const refundedReceipt = {
|
|
96
|
+
...receipt,
|
|
97
|
+
id: `rfnd_${receipt.id}`,
|
|
98
|
+
status: 'refunded',
|
|
99
|
+
txHash: refund.txHash,
|
|
100
|
+
createdAt: refund.refundedAt ?? Date.now(),
|
|
101
|
+
};
|
|
102
|
+
await store.saveReceipt(refundedReceipt);
|
|
103
|
+
const refundedInvoice = await this.updateInvoiceInStore(store, invoice.id, {
|
|
104
|
+
status: 'refunded',
|
|
105
|
+
});
|
|
106
|
+
await store.saveWebhookEvent(createWebhookEvent('invoice.refunded', {
|
|
107
|
+
invoice: refundedInvoice,
|
|
108
|
+
receipt: refundedReceipt,
|
|
109
|
+
}));
|
|
110
|
+
return refundedReceipt;
|
|
111
|
+
});
|
|
81
112
|
}
|
|
82
113
|
async getReceipt(id) {
|
|
83
114
|
return this.store.getReceipt(id);
|
|
@@ -91,21 +122,30 @@ export class PersistentReceiptLedger {
|
|
|
91
122
|
async listWebhookEvents() {
|
|
92
123
|
return this.store.listWebhookEvents();
|
|
93
124
|
}
|
|
94
|
-
async
|
|
95
|
-
await
|
|
125
|
+
async addInvoiceToStore(store, invoice) {
|
|
126
|
+
const existing = await store.getInvoice(invoice.id);
|
|
127
|
+
if (existing)
|
|
128
|
+
throw new Error(`Invoice already exists: ${invoice.id}`);
|
|
129
|
+
await store.saveInvoice(invoice);
|
|
96
130
|
}
|
|
97
|
-
async
|
|
98
|
-
const invoice = await
|
|
131
|
+
async requireInvoiceFromStore(store, id) {
|
|
132
|
+
const invoice = await store.getInvoice(id);
|
|
99
133
|
if (!invoice) {
|
|
100
134
|
throw new Error(`Invoice not found: ${id}`);
|
|
101
135
|
}
|
|
102
136
|
return invoice;
|
|
103
137
|
}
|
|
104
|
-
async
|
|
105
|
-
const invoice = await this.
|
|
138
|
+
async updateInvoiceInStore(store, id, patch) {
|
|
139
|
+
const invoice = await this.requireInvoiceFromStore(store, id);
|
|
106
140
|
const next = { ...invoice, ...patch };
|
|
107
|
-
await
|
|
141
|
+
await store.saveInvoice(next);
|
|
108
142
|
return next;
|
|
109
143
|
}
|
|
144
|
+
withTransaction(handler) {
|
|
145
|
+
const store = this.store;
|
|
146
|
+
return typeof store.transaction === 'function'
|
|
147
|
+
? store.transaction(handler)
|
|
148
|
+
: handler(this.store);
|
|
149
|
+
}
|
|
110
150
|
}
|
|
111
151
|
//# sourceMappingURL=persistent-ledger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistent-ledger.js","sourceRoot":"","sources":["../../src/receipts/persistent-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"persistent-ledger.js","sourceRoot":"","sources":["../../src/receipts/persistent-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistent-webhook-inbox.d.ts","sourceRoot":"","sources":["../../src/receipts/persistent-webhook-inbox.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"persistent-webhook-inbox.d.ts","sourceRoot":"","sources":["../../src/receipts/persistent-webhook-inbox.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAG3E,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,MAAM,EAAE,4BAA4B;IAI1C,OAAO,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAyB9E,MAAM,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAkB5E,cAAc,CAAC,MAAM,GAAE,0BAA+B,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAI1F,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;YAI5D,cAAc;CAW7B"}
|
|
@@ -58,9 +58,7 @@ export class PersistentWebhookInbox {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
function parseWebhookPayload(payload) {
|
|
61
|
-
const event = typeof payload === 'string'
|
|
62
|
-
? parseJson(payload)
|
|
63
|
-
: payload;
|
|
61
|
+
const event = typeof payload === 'string' ? parseJson(payload) : payload;
|
|
64
62
|
if (!isWebhookEventLike(event)) {
|
|
65
63
|
return {
|
|
66
64
|
eventId: 'unknown',
|
|
@@ -85,9 +83,9 @@ function isWebhookEventLike(value) {
|
|
|
85
83
|
return false;
|
|
86
84
|
}
|
|
87
85
|
const event = value;
|
|
88
|
-
return typeof event.id === 'string'
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
return (typeof event.id === 'string' &&
|
|
87
|
+
typeof event.type === 'string' &&
|
|
88
|
+
typeof event.createdAt === 'number' &&
|
|
89
|
+
'data' in event);
|
|
92
90
|
}
|
|
93
91
|
//# sourceMappingURL=persistent-webhook-inbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistent-webhook-inbox.js","sourceRoot":"","sources":["../../src/receipts/persistent-webhook-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"persistent-webhook-inbox.js","sourceRoot":"","sources":["../../src/receipts/persistent-webhook-inbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof.d.ts","sourceRoot":"","sources":["../../src/receipts/proof.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"proof.d.ts","sourceRoot":"","sources":["../../src/receipts/proof.ts"],"names":[],"mappings":"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"}
|
package/dist/receipts/proof.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Read-only Arc Testnet proof verification for Memo-wrapped receipt payments.
|
|
3
3
|
*/
|
|
4
|
-
import { createPublicClient, getAddress, http, parseAbiItem, parseEventLogs
|
|
4
|
+
import { createPublicClient, getAddress, http, parseAbiItem, parseEventLogs } from 'viem';
|
|
5
5
|
import { ARC_TESTNET } from '../constants.js';
|
|
6
6
|
import { ARC_MEMO_ABI, ERC20_TRANSFER_ABI } from './memo-payment.js';
|
|
7
7
|
const MEMO_EVENT = parseAbiItem('event Memo(address indexed sender,address indexed target,bytes32 callDataHash,bytes32 indexed memoId,bytes memo,uint256 memoIndex)');
|
|
@@ -15,9 +15,10 @@ export class MemoPaymentProofError extends Error {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
export async function verifyMemoPaymentProof(input) {
|
|
18
|
-
const client = input.publicClient ??
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const client = input.publicClient ??
|
|
19
|
+
createPublicClient({
|
|
20
|
+
transport: http(input.rpcUrl ?? ARC_TESTNET.rpcUrl),
|
|
21
|
+
});
|
|
21
22
|
let txReceipt;
|
|
22
23
|
try {
|
|
23
24
|
txReceipt = await client.getTransactionReceipt({ hash: input.txHash });
|
|
@@ -36,9 +37,10 @@ export async function verifyMemoPaymentProof(input) {
|
|
|
36
37
|
});
|
|
37
38
|
}
|
|
38
39
|
export async function findMemoPaymentProof(input) {
|
|
39
|
-
const client = (input.publicClient ??
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
const client = (input.publicClient ??
|
|
41
|
+
createPublicClient({
|
|
42
|
+
transport: http(input.rpcUrl ?? ARC_TESTNET.rpcUrl),
|
|
43
|
+
}));
|
|
42
44
|
const { fromBlock, toBlock } = await resolveProofSearchRange(input, client);
|
|
43
45
|
if (fromBlock > toBlock) {
|
|
44
46
|
return {
|
|
@@ -75,7 +77,7 @@ export async function findMemoPaymentProof(input) {
|
|
|
75
77
|
}
|
|
76
78
|
async function resolveProofSearchRange(input, client) {
|
|
77
79
|
const confirmations = BigInt(input.confirmations ?? 1);
|
|
78
|
-
const latestBlock = input.toBlock ?? await client.getBlockNumber();
|
|
80
|
+
const latestBlock = input.toBlock ?? (await client.getBlockNumber());
|
|
79
81
|
const toBlock = latestBlock > confirmations ? latestBlock - confirmations : 0n;
|
|
80
82
|
const lookbackBlocks = input.lookbackBlocks === undefined
|
|
81
83
|
? DEFAULT_PROOF_LOOKBACK_BLOCKS
|