@agirails/sdk 2.0.0 → 2.0.1-beta
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 +108 -116
- package/dist/ACTPClient.d.ts +33 -456
- package/dist/ACTPClient.d.ts.map +1 -1
- package/dist/ACTPClient.js +93 -477
- package/dist/ACTPClient.js.map +1 -1
- package/dist/abi/EscrowVault.json +38 -106
- package/dist/builders/DeliveryProofBuilder.d.ts +1 -60
- package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
- package/dist/builders/DeliveryProofBuilder.js +5 -81
- package/dist/builders/DeliveryProofBuilder.js.map +1 -1
- package/dist/builders/QuoteBuilder.d.ts +0 -101
- package/dist/builders/QuoteBuilder.d.ts.map +1 -1
- package/dist/builders/QuoteBuilder.js +3 -120
- package/dist/builders/QuoteBuilder.js.map +1 -1
- package/dist/builders/index.d.ts +0 -4
- package/dist/builders/index.d.ts.map +1 -1
- package/dist/builders/index.js +0 -4
- package/dist/builders/index.js.map +1 -1
- package/dist/config/networks.d.ts +0 -28
- package/dist/config/networks.d.ts.map +1 -1
- package/dist/config/networks.js +12 -60
- package/dist/config/networks.js.map +1 -1
- package/dist/errors/index.d.ts +2 -165
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -260
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +13 -61
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -141
- package/dist/index.js.map +1 -1
- package/dist/protocol/ACTPKernel.d.ts +2 -229
- package/dist/protocol/ACTPKernel.d.ts.map +1 -1
- package/dist/protocol/ACTPKernel.js +33 -367
- package/dist/protocol/ACTPKernel.js.map +1 -1
- package/dist/protocol/EASHelper.d.ts +2 -57
- package/dist/protocol/EASHelper.d.ts.map +1 -1
- package/dist/protocol/EASHelper.js +37 -230
- package/dist/protocol/EASHelper.js.map +1 -1
- package/dist/protocol/EscrowVault.d.ts +2 -93
- package/dist/protocol/EscrowVault.d.ts.map +1 -1
- package/dist/protocol/EscrowVault.js +33 -122
- package/dist/protocol/EscrowVault.js.map +1 -1
- package/dist/protocol/EventMonitor.d.ts +1 -45
- package/dist/protocol/EventMonitor.d.ts.map +1 -1
- package/dist/protocol/EventMonitor.js +8 -64
- package/dist/protocol/EventMonitor.js.map +1 -1
- package/dist/protocol/MessageSigner.d.ts +2 -116
- package/dist/protocol/MessageSigner.d.ts.map +1 -1
- package/dist/protocol/MessageSigner.js +9 -215
- package/dist/protocol/MessageSigner.js.map +1 -1
- package/dist/protocol/ProofGenerator.d.ts +0 -93
- package/dist/protocol/ProofGenerator.d.ts.map +1 -1
- package/dist/protocol/ProofGenerator.js +9 -194
- package/dist/protocol/ProofGenerator.js.map +1 -1
- package/dist/protocol/QuoteBuilder.d.ts +0 -8
- package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
- package/dist/protocol/QuoteBuilder.js +0 -8
- package/dist/protocol/QuoteBuilder.js.map +1 -1
- package/dist/types/eip712.d.ts +0 -34
- package/dist/types/eip712.d.ts.map +1 -1
- package/dist/types/eip712.js +5 -31
- package/dist/types/eip712.js.map +1 -1
- package/dist/types/escrow.d.ts +10 -17
- package/dist/types/escrow.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -8
- package/dist/types/index.js.map +1 -1
- package/dist/types/message.d.ts +0 -32
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js +0 -4
- package/dist/types/message.js.map +1 -1
- package/dist/types/state.d.ts +0 -28
- package/dist/types/state.d.ts.map +1 -1
- package/dist/types/state.js +6 -37
- package/dist/types/state.js.map +1 -1
- package/dist/types/transaction.d.ts +0 -17
- package/dist/types/transaction.d.ts.map +1 -1
- package/dist/utils/IPFSClient.d.ts +0 -113
- package/dist/utils/IPFSClient.d.ts.map +1 -1
- package/dist/utils/IPFSClient.js +7 -128
- package/dist/utils/IPFSClient.js.map +1 -1
- package/dist/utils/NonceManager.d.ts +1 -234
- package/dist/utils/NonceManager.d.ts.map +1 -1
- package/dist/utils/NonceManager.js +7 -372
- package/dist/utils/NonceManager.js.map +1 -1
- package/dist/utils/ReceivedNonceTracker.d.ts +0 -175
- package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
- package/dist/utils/ReceivedNonceTracker.js +5 -261
- package/dist/utils/ReceivedNonceTracker.js.map +1 -1
- package/dist/utils/canonicalJson.d.ts +0 -22
- package/dist/utils/canonicalJson.d.ts.map +1 -1
- package/dist/utils/canonicalJson.js +3 -26
- package/dist/utils/canonicalJson.js.map +1 -1
- package/dist/utils/computeTypeHash.d.ts +0 -14
- package/dist/utils/computeTypeHash.d.ts.map +1 -1
- package/dist/utils/computeTypeHash.js +2 -19
- package/dist/utils/computeTypeHash.js.map +1 -1
- package/dist/utils/validation.d.ts +0 -40
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +7 -184
- package/dist/utils/validation.js.map +1 -1
- package/package.json +37 -54
- package/src/ACTPClient.ts +178 -692
- package/src/__tests__/ProofGenerator.test.ts +124 -0
- package/src/__tests__/QuoteBuilder.test.ts +516 -0
- package/src/__tests__/StateMachine.test.ts +82 -0
- package/src/__tests__/builders/DeliveryProofBuilder.test.ts +581 -0
- package/src/__tests__/integration/ACTPClient.test.ts +263 -0
- package/src/__tests__/integration.test.ts +289 -0
- package/src/__tests__/protocol/EASHelper.test.ts +472 -0
- package/src/__tests__/protocol/EventMonitor.test.ts +382 -0
- package/src/__tests__/security/ACTPKernel.security.test.ts +1167 -0
- package/src/__tests__/security/EscrowVault.security.test.ts +570 -0
- package/src/__tests__/security/MessageSigner.security.test.ts +286 -0
- package/src/__tests__/security/NonceReplay.security.test.ts +501 -0
- package/src/__tests__/security/validation.security.test.ts +376 -0
- package/src/__tests__/utils/IPFSClient.test.ts +262 -0
- package/src/__tests__/utils/NonceManager.test.ts +205 -0
- package/src/__tests__/utils/canonicalJson.test.ts +153 -0
- package/src/abi/EscrowVault.json +38 -106
- package/src/builders/DeliveryProofBuilder.ts +2 -3
- package/src/config/networks.ts +9 -32
- package/src/errors/index.ts +1 -298
- package/src/index.ts +71 -207
- package/src/protocol/ACTPKernel.ts +23 -175
- package/src/protocol/EASHelper.ts +46 -230
- package/src/protocol/EscrowVault.ts +50 -68
- package/src/protocol/EventMonitor.ts +15 -44
- package/src/protocol/MessageSigner.ts +13 -193
- package/src/protocol/ProofGenerator.ts +4 -223
- package/src/types/escrow.ts +11 -12
- package/src/types/index.ts +1 -5
- package/src/types/state.ts +3 -12
- package/src/types/transaction.ts +1 -4
- package/src/utils/IPFSClient.ts +5 -122
- package/src/utils/NonceManager.ts +8 -305
- package/src/utils/ReceivedNonceTracker.ts +0 -170
- package/src/utils/validation.ts +0 -164
- package/LICENSE +0 -190
- package/bin/actp +0 -10
- package/dist/abi/AgentRegistry.json +0 -782
- package/dist/abi/IdentityRegistry.json +0 -316
- package/dist/adapters/BaseAdapter.d.ts +0 -231
- package/dist/adapters/BaseAdapter.d.ts.map +0 -1
- package/dist/adapters/BaseAdapter.js +0 -393
- package/dist/adapters/BaseAdapter.js.map +0 -1
- package/dist/adapters/BeginnerAdapter.d.ts +0 -152
- package/dist/adapters/BeginnerAdapter.d.ts.map +0 -1
- package/dist/adapters/BeginnerAdapter.js +0 -168
- package/dist/adapters/BeginnerAdapter.js.map +0 -1
- package/dist/adapters/IntermediateAdapter.d.ts +0 -211
- package/dist/adapters/IntermediateAdapter.d.ts.map +0 -1
- package/dist/adapters/IntermediateAdapter.js +0 -260
- package/dist/adapters/IntermediateAdapter.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -15
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -26
- package/dist/adapters/index.js.map +0 -1
- package/dist/cli/commands/balance.d.ts +0 -13
- package/dist/cli/commands/balance.d.ts.map +0 -1
- package/dist/cli/commands/balance.js +0 -89
- package/dist/cli/commands/balance.js.map +0 -1
- package/dist/cli/commands/batch.d.ts +0 -24
- package/dist/cli/commands/batch.d.ts.map +0 -1
- package/dist/cli/commands/batch.js +0 -424
- package/dist/cli/commands/batch.js.map +0 -1
- package/dist/cli/commands/config.d.ts +0 -13
- package/dist/cli/commands/config.d.ts.map +0 -1
- package/dist/cli/commands/config.js +0 -192
- package/dist/cli/commands/config.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -19
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -143
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/mint.d.ts +0 -13
- package/dist/cli/commands/mint.d.ts.map +0 -1
- package/dist/cli/commands/mint.js +0 -91
- package/dist/cli/commands/mint.js.map +0 -1
- package/dist/cli/commands/pay.d.ts +0 -18
- package/dist/cli/commands/pay.d.ts.map +0 -1
- package/dist/cli/commands/pay.js +0 -87
- package/dist/cli/commands/pay.js.map +0 -1
- package/dist/cli/commands/simulate.d.ts +0 -32
- package/dist/cli/commands/simulate.d.ts.map +0 -1
- package/dist/cli/commands/simulate.js +0 -290
- package/dist/cli/commands/simulate.js.map +0 -1
- package/dist/cli/commands/time.d.ts +0 -29
- package/dist/cli/commands/time.d.ts.map +0 -1
- package/dist/cli/commands/time.js +0 -252
- package/dist/cli/commands/time.js.map +0 -1
- package/dist/cli/commands/tx.d.ts +0 -16
- package/dist/cli/commands/tx.d.ts.map +0 -1
- package/dist/cli/commands/tx.js +0 -379
- package/dist/cli/commands/tx.js.map +0 -1
- package/dist/cli/commands/watch.d.ts +0 -20
- package/dist/cli/commands/watch.d.ts.map +0 -1
- package/dist/cli/commands/watch.js +0 -160
- package/dist/cli/commands/watch.js.map +0 -1
- package/dist/cli/index.d.ts +0 -17
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -104
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/utils/client.d.ts +0 -70
- package/dist/cli/utils/client.d.ts.map +0 -1
- package/dist/cli/utils/client.js +0 -240
- package/dist/cli/utils/client.js.map +0 -1
- package/dist/cli/utils/config.d.ts +0 -91
- package/dist/cli/utils/config.d.ts.map +0 -1
- package/dist/cli/utils/config.js +0 -240
- package/dist/cli/utils/config.js.map +0 -1
- package/dist/cli/utils/output.d.ts +0 -174
- package/dist/cli/utils/output.d.ts.map +0 -1
- package/dist/cli/utils/output.js +0 -380
- package/dist/cli/utils/output.js.map +0 -1
- package/dist/level0/Provider.d.ts +0 -106
- package/dist/level0/Provider.d.ts.map +0 -1
- package/dist/level0/Provider.js +0 -10
- package/dist/level0/Provider.js.map +0 -1
- package/dist/level0/ServiceDirectory.d.ts +0 -74
- package/dist/level0/ServiceDirectory.d.ts.map +0 -1
- package/dist/level0/ServiceDirectory.js +0 -122
- package/dist/level0/ServiceDirectory.js.map +0 -1
- package/dist/level0/index.d.ts +0 -10
- package/dist/level0/index.d.ts.map +0 -1
- package/dist/level0/index.js +0 -15
- package/dist/level0/index.js.map +0 -1
- package/dist/level0/provide.d.ts +0 -51
- package/dist/level0/provide.d.ts.map +0 -1
- package/dist/level0/provide.js +0 -113
- package/dist/level0/provide.js.map +0 -1
- package/dist/level0/request.d.ts +0 -53
- package/dist/level0/request.d.ts.map +0 -1
- package/dist/level0/request.js +0 -462
- package/dist/level0/request.js.map +0 -1
- package/dist/level1/Agent.d.ts +0 -472
- package/dist/level1/Agent.d.ts.map +0 -1
- package/dist/level1/Agent.js +0 -1091
- package/dist/level1/Agent.js.map +0 -1
- package/dist/level1/index.d.ts +0 -10
- package/dist/level1/index.d.ts.map +0 -1
- package/dist/level1/index.js +0 -30
- package/dist/level1/index.js.map +0 -1
- package/dist/level1/pricing/PriceCalculator.d.ts +0 -62
- package/dist/level1/pricing/PriceCalculator.d.ts.map +0 -1
- package/dist/level1/pricing/PriceCalculator.js +0 -237
- package/dist/level1/pricing/PriceCalculator.js.map +0 -1
- package/dist/level1/pricing/PricingStrategy.d.ts +0 -179
- package/dist/level1/pricing/PricingStrategy.d.ts.map +0 -1
- package/dist/level1/pricing/PricingStrategy.js +0 -11
- package/dist/level1/pricing/PricingStrategy.js.map +0 -1
- package/dist/level1/types/Job.d.ts +0 -166
- package/dist/level1/types/Job.d.ts.map +0 -1
- package/dist/level1/types/Job.js +0 -11
- package/dist/level1/types/Job.js.map +0 -1
- package/dist/level1/types/Options.d.ts +0 -258
- package/dist/level1/types/Options.d.ts.map +0 -1
- package/dist/level1/types/Options.js +0 -8
- package/dist/level1/types/Options.js.map +0 -1
- package/dist/level1/types/index.d.ts +0 -8
- package/dist/level1/types/index.d.ts.map +0 -1
- package/dist/level1/types/index.js +0 -8
- package/dist/level1/types/index.js.map +0 -1
- package/dist/protocol/AgentRegistry.d.ts +0 -177
- package/dist/protocol/AgentRegistry.d.ts.map +0 -1
- package/dist/protocol/AgentRegistry.js +0 -449
- package/dist/protocol/AgentRegistry.js.map +0 -1
- package/dist/protocol/DIDManager.d.ts +0 -289
- package/dist/protocol/DIDManager.d.ts.map +0 -1
- package/dist/protocol/DIDManager.js +0 -481
- package/dist/protocol/DIDManager.js.map +0 -1
- package/dist/protocol/DIDResolver.d.ts +0 -236
- package/dist/protocol/DIDResolver.d.ts.map +0 -1
- package/dist/protocol/DIDResolver.js +0 -495
- package/dist/protocol/DIDResolver.js.map +0 -1
- package/dist/runtime/BlockchainRuntime.d.ts +0 -360
- package/dist/runtime/BlockchainRuntime.d.ts.map +0 -1
- package/dist/runtime/BlockchainRuntime.js +0 -767
- package/dist/runtime/BlockchainRuntime.js.map +0 -1
- package/dist/runtime/IACTPRuntime.d.ts +0 -271
- package/dist/runtime/IACTPRuntime.d.ts.map +0 -1
- package/dist/runtime/IACTPRuntime.js +0 -15
- package/dist/runtime/IACTPRuntime.js.map +0 -1
- package/dist/runtime/MockRuntime.d.ts +0 -445
- package/dist/runtime/MockRuntime.d.ts.map +0 -1
- package/dist/runtime/MockRuntime.js +0 -1065
- package/dist/runtime/MockRuntime.js.map +0 -1
- package/dist/runtime/MockStateManager.d.ts +0 -233
- package/dist/runtime/MockStateManager.d.ts.map +0 -1
- package/dist/runtime/MockStateManager.js +0 -533
- package/dist/runtime/MockStateManager.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -14
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -42
- package/dist/runtime/index.js.map +0 -1
- package/dist/runtime/types/MockState.d.ts +0 -167
- package/dist/runtime/types/MockState.d.ts.map +0 -1
- package/dist/runtime/types/MockState.js +0 -43
- package/dist/runtime/types/MockState.js.map +0 -1
- package/dist/types/agent.d.ts +0 -76
- package/dist/types/agent.d.ts.map +0 -1
- package/dist/types/agent.js +0 -8
- package/dist/types/agent.js.map +0 -1
- package/dist/types/did.d.ts +0 -192
- package/dist/types/did.d.ts.map +0 -1
- package/dist/types/did.js +0 -38
- package/dist/types/did.js.map +0 -1
- package/dist/utils/ErrorRecoveryGuide.d.ts +0 -125
- package/dist/utils/ErrorRecoveryGuide.d.ts.map +0 -1
- package/dist/utils/ErrorRecoveryGuide.js +0 -579
- package/dist/utils/ErrorRecoveryGuide.js.map +0 -1
- package/dist/utils/Helpers.d.ts +0 -453
- package/dist/utils/Helpers.d.ts.map +0 -1
- package/dist/utils/Helpers.js +0 -623
- package/dist/utils/Helpers.js.map +0 -1
- package/dist/utils/Logger.d.ts +0 -195
- package/dist/utils/Logger.d.ts.map +0 -1
- package/dist/utils/Logger.js +0 -382
- package/dist/utils/Logger.js.map +0 -1
- package/dist/utils/RateLimiter.d.ts +0 -253
- package/dist/utils/RateLimiter.d.ts.map +0 -1
- package/dist/utils/RateLimiter.js +0 -424
- package/dist/utils/RateLimiter.js.map +0 -1
- package/dist/utils/SDKLifecycle.d.ts +0 -156
- package/dist/utils/SDKLifecycle.d.ts.map +0 -1
- package/dist/utils/SDKLifecycle.js +0 -347
- package/dist/utils/SDKLifecycle.js.map +0 -1
- package/dist/utils/SecureNonce.d.ts +0 -57
- package/dist/utils/SecureNonce.d.ts.map +0 -1
- package/dist/utils/SecureNonce.js +0 -80
- package/dist/utils/SecureNonce.js.map +0 -1
- package/dist/utils/Semaphore.d.ts +0 -123
- package/dist/utils/Semaphore.d.ts.map +0 -1
- package/dist/utils/Semaphore.js +0 -247
- package/dist/utils/Semaphore.js.map +0 -1
- package/dist/utils/UsedAttestationTracker.d.ts +0 -167
- package/dist/utils/UsedAttestationTracker.d.ts.map +0 -1
- package/dist/utils/UsedAttestationTracker.js +0 -309
- package/dist/utils/UsedAttestationTracker.js.map +0 -1
- package/dist/utils/fsSafe.d.ts +0 -14
- package/dist/utils/fsSafe.d.ts.map +0 -1
- package/dist/utils/fsSafe.js +0 -89
- package/dist/utils/fsSafe.js.map +0 -1
- package/dist/utils/index.d.ts +0 -15
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -51
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/security.d.ts +0 -147
- package/dist/utils/security.d.ts.map +0 -1
- package/dist/utils/security.js +0 -391
- package/dist/utils/security.js.map +0 -1
- package/src/abi/AgentRegistry.json +0 -782
- package/src/abi/IdentityRegistry.json +0 -316
- package/src/adapters/BaseAdapter.ts +0 -473
- package/src/adapters/BeginnerAdapter.ts +0 -232
- package/src/adapters/IntermediateAdapter.ts +0 -316
- package/src/adapters/index.ts +0 -25
- package/src/cli/commands/balance.ts +0 -110
- package/src/cli/commands/batch.ts +0 -487
- package/src/cli/commands/config.ts +0 -231
- package/src/cli/commands/init.ts +0 -161
- package/src/cli/commands/mint.ts +0 -116
- package/src/cli/commands/pay.ts +0 -113
- package/src/cli/commands/simulate.ts +0 -345
- package/src/cli/commands/time.ts +0 -303
- package/src/cli/commands/tx.ts +0 -448
- package/src/cli/commands/watch.ts +0 -211
- package/src/cli/index.ts +0 -116
- package/src/cli/utils/client.ts +0 -249
- package/src/cli/utils/config.ts +0 -282
- package/src/cli/utils/output.ts +0 -465
- package/src/level0/Provider.ts +0 -117
- package/src/level0/ServiceDirectory.ts +0 -131
- package/src/level0/index.ts +0 -10
- package/src/level0/provide.ts +0 -131
- package/src/level0/request.ts +0 -494
- package/src/level1/Agent.ts +0 -1432
- package/src/level1/index.ts +0 -10
- package/src/level1/pricing/PriceCalculator.ts +0 -255
- package/src/level1/pricing/PricingStrategy.ts +0 -198
- package/src/level1/types/Job.ts +0 -179
- package/src/level1/types/Options.ts +0 -291
- package/src/level1/types/index.ts +0 -8
- package/src/protocol/AgentRegistry.ts +0 -559
- package/src/protocol/DIDManager.ts +0 -629
- package/src/protocol/DIDResolver.ts +0 -554
- package/src/runtime/BlockchainRuntime.ts +0 -993
- package/src/runtime/IACTPRuntime.ts +0 -284
- package/src/runtime/MockRuntime.ts +0 -1244
- package/src/runtime/MockStateManager.ts +0 -576
- package/src/runtime/index.ts +0 -25
- package/src/runtime/types/MockState.ts +0 -227
- package/src/types/agent.ts +0 -79
- package/src/types/did.ts +0 -223
- package/src/utils/ErrorRecoveryGuide.ts +0 -675
- package/src/utils/Helpers.ts +0 -688
- package/src/utils/Logger.ts +0 -484
- package/src/utils/RateLimiter.ts +0 -534
- package/src/utils/SDKLifecycle.ts +0 -416
- package/src/utils/SecureNonce.ts +0 -78
- package/src/utils/Semaphore.ts +0 -276
- package/src/utils/UsedAttestationTracker.ts +0 -387
- package/src/utils/fsSafe.ts +0 -75
- package/src/utils/index.ts +0 -80
- package/src/utils/security.ts +0 -418
package/README.md
CHANGED
|
@@ -1,182 +1,174 @@
|
|
|
1
1
|
# @agirails/sdk
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Protocol SDK for ACTP (Agent Commerce Transaction Protocol)
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
npm install @agirails/sdk
|
|
9
|
+
# or
|
|
10
|
+
yarn add @agirails/sdk
|
|
9
11
|
```
|
|
10
12
|
|
|
11
13
|
## Quick Start
|
|
12
14
|
|
|
13
|
-
### Simple API (Beginner)
|
|
14
|
-
|
|
15
15
|
```typescript
|
|
16
|
-
import { ACTPClient } from '@agirails/sdk';
|
|
16
|
+
import { ACTPClient, State } from '@agirails/sdk';
|
|
17
|
+
import { ethers } from 'ethers';
|
|
17
18
|
|
|
19
|
+
// Initialize client (async factory pattern ensures EIP-712 domain is ready)
|
|
18
20
|
const client = await ACTPClient.create({
|
|
19
21
|
network: 'base-sepolia',
|
|
20
22
|
privateKey: process.env.PRIVATE_KEY
|
|
21
23
|
});
|
|
22
24
|
|
|
23
|
-
//
|
|
24
|
-
const
|
|
25
|
+
// Create transaction
|
|
26
|
+
const txId = await client.kernel.createTransaction({
|
|
25
27
|
provider: '0xProviderAddress...',
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
requester: await client.getAddress(),
|
|
29
|
+
amount: ethers.utils.parseUnits('100', 6), // 100 USDC
|
|
30
|
+
deadline: Math.floor(Date.now() / 1000) + 86400, // 24 hours
|
|
31
|
+
disputeWindow: 3600 // 1 hour
|
|
28
32
|
});
|
|
29
33
|
|
|
30
|
-
console.log(
|
|
31
|
-
console.log('Status:', result.status);
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Standard API (Intermediate)
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
import { ACTPClient } from '@agirails/sdk';
|
|
34
|
+
console.log(`Transaction created: ${txId}`);
|
|
38
35
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
// Watch transaction
|
|
37
|
+
client.events.watchTransaction(txId, (state) => {
|
|
38
|
+
console.log(`State changed to: ${State[state]}`);
|
|
42
39
|
});
|
|
43
40
|
|
|
44
|
-
//
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
serviceRef: 'ipfs://Qm...'
|
|
49
|
-
});
|
|
41
|
+
// Get transaction
|
|
42
|
+
const tx = await client.kernel.getTransaction(txId);
|
|
43
|
+
console.log('Transaction:', tx);
|
|
44
|
+
```
|
|
50
45
|
|
|
51
|
-
|
|
52
|
-
await client.intermediate.linkEscrow(txId);
|
|
46
|
+
## Features
|
|
53
47
|
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
- ✅ **Protocol SDK** - Direct blockchain interaction with ACTP Kernel
|
|
49
|
+
- ✅ **State Machine** - Full ACTP state validation (8 states)
|
|
50
|
+
- ✅ **Event Monitoring** - Real-time blockchain event listening
|
|
51
|
+
- ✅ **Message Signing** - Cryptographic signing per Yellow Paper §11.4
|
|
52
|
+
- ✅ **Proof Generation** - Content hashing & delivery proofs
|
|
53
|
+
- ✅ **TypeScript** - Full type safety
|
|
54
|
+
- ✅ **Base L2** - Optimized for Base Sepolia & Mainnet
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
await client.intermediate.releaseEscrow(txId);
|
|
59
|
-
```
|
|
56
|
+
## V1 Limitations
|
|
60
57
|
|
|
61
|
-
|
|
58
|
+
⚠️ **Important**: ACTP SDK v2.0.0-beta is designed for **Base Sepolia testnet** and controlled partner usage. The following limitations apply:
|
|
62
59
|
|
|
63
|
-
|
|
64
|
-
const status = await client.beginner.checkStatus(txId);
|
|
65
|
-
console.log(status.state); // 'COMMITTED', 'DELIVERED', 'SETTLED', etc.
|
|
66
|
-
console.log(status.amount); // '10.00'
|
|
67
|
-
console.log(status.provider); // '0x...'
|
|
68
|
-
```
|
|
60
|
+
### 1. Attestation Validation is SDK-Enforced, Not Protocol-Enforced
|
|
69
61
|
|
|
70
|
-
|
|
62
|
+
The V1 ACTPKernel accepts attestation UIDs without on-chain validation. All verification (existence, schema, txId, revocation, expiry) is performed by SDK helpers like `releaseEscrowWithVerification()`.
|
|
71
63
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
64
|
+
**Security checks performed by SDK:**
|
|
65
|
+
- Attestation exists and UID matches
|
|
66
|
+
- Schema UID matches canonical delivery schema (`0x1b0e...ffce`)
|
|
67
|
+
- txId in attestation matches expected transaction
|
|
68
|
+
- Attestation is not revoked (`revocationTime === 0`)
|
|
69
|
+
- Attestation has not expired
|
|
75
70
|
|
|
76
|
-
|
|
77
|
-
actp init
|
|
71
|
+
**Integrators who bypass the SDK must implement equivalent verification logic.**
|
|
78
72
|
|
|
79
|
-
|
|
80
|
-
actp create --provider 0x... --amount 10 --service "echo service"
|
|
73
|
+
### 2. Multiple Attestations Per Transaction Are Possible
|
|
81
74
|
|
|
82
|
-
|
|
83
|
-
actp status <txId>
|
|
75
|
+
EAS does not enforce uniqueness - multiple attestations can exist for the same `txId`. The SDK uses the **first valid (non-revoked) attestation** provided. This policy is testnet-appropriate; V2 will enforce uniqueness at the protocol level.
|
|
84
76
|
|
|
85
|
-
|
|
86
|
-
actp list
|
|
87
|
-
```
|
|
77
|
+
### 3. This SDK is Not For Unrestricted Mainnet Usage
|
|
88
78
|
|
|
89
|
-
|
|
79
|
+
V2 will move critical verification on-chain. Until then, use only on Base Sepolia testnet with testnet USDC.
|
|
90
80
|
|
|
91
|
-
|
|
81
|
+
### Additional Limitations
|
|
92
82
|
|
|
93
|
-
|
|
94
|
-
|
|
83
|
+
| Area | Limitation | Workaround |
|
|
84
|
+
|------|------------|------------|
|
|
85
|
+
| Network Resilience | No automatic retry | Manual retry required |
|
|
86
|
+
| Timeout Handling | `tx.wait()` may hang | Set custom timeout |
|
|
87
|
+
| State Transitions | TOCTOU race condition | Contract provides final validation |
|
|
88
|
+
| Revocation Window | Attestation can be revoked between verify and settle | Use `releaseEscrowWithVerification()` |
|
|
95
89
|
|
|
96
|
-
|
|
97
|
-
mode: 'mock'
|
|
98
|
-
});
|
|
90
|
+
For detailed documentation, visit the [GitHub repository](https://github.com/agirails/sdk-js).
|
|
99
91
|
|
|
100
|
-
|
|
101
|
-
const result = await client.beginner.pay({
|
|
102
|
-
provider: '0x1234...',
|
|
103
|
-
amount: '5.00',
|
|
104
|
-
service: 'test-service'
|
|
105
|
-
});
|
|
106
|
-
```
|
|
92
|
+
**V2.0 Planned**: On-chain attestation validation, uniqueness enforcement, multi-provider fallback
|
|
107
93
|
|
|
108
|
-
|
|
94
|
+
---
|
|
109
95
|
|
|
110
|
-
|
|
111
|
-
|---------|----------|--------|
|
|
112
|
-
| Base Sepolia | 84532 | ✅ Active (Testnet) |
|
|
113
|
-
| Base Mainnet | 8453 | ⏳ Not Deployed |
|
|
96
|
+
## Network Support
|
|
114
97
|
|
|
115
|
-
|
|
98
|
+
- **Base Sepolia** (testnet) - `chainId: 84532`
|
|
99
|
+
- **Base Mainnet** - `chainId: 8453`
|
|
116
100
|
|
|
117
|
-
##
|
|
101
|
+
## Documentation
|
|
118
102
|
|
|
119
|
-
|
|
120
|
-
INITIATED → QUOTED → COMMITTED → IN_PROGRESS → DELIVERED → SETTLED
|
|
121
|
-
↓
|
|
122
|
-
DISPUTED → SETTLED
|
|
123
|
-
```
|
|
103
|
+
For full documentation, examples, and specifications, visit the [GitHub repository](https://github.com/agirails/sdk-js).
|
|
124
104
|
|
|
125
|
-
##
|
|
105
|
+
## Development
|
|
126
106
|
|
|
127
|
-
|
|
107
|
+
```bash
|
|
108
|
+
# Install dependencies
|
|
109
|
+
npm install
|
|
128
110
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
client.beginner.checkStatus(txId) // Get human-readable status
|
|
132
|
-
```
|
|
111
|
+
# Build
|
|
112
|
+
npm run build
|
|
133
113
|
|
|
134
|
-
|
|
114
|
+
# Unit tests (Jest - fast, no network)
|
|
115
|
+
npm test
|
|
135
116
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
client.intermediate.getTransaction(txId) // Get transaction details
|
|
142
|
-
client.intermediate.getEscrowBalance(escrowId) // Check locked amount
|
|
117
|
+
# Integration tests (Hardhat - requires Base Sepolia RPC)
|
|
118
|
+
npm run test:integration
|
|
119
|
+
|
|
120
|
+
# Lint
|
|
121
|
+
npm run lint
|
|
143
122
|
```
|
|
144
123
|
|
|
145
|
-
###
|
|
124
|
+
### Integration Testing
|
|
146
125
|
|
|
147
|
-
|
|
148
|
-
client.runtime // Direct access to BlockchainRuntime or MockRuntime
|
|
149
|
-
```
|
|
126
|
+
Integration tests run against **deployed contracts** on Base Sepolia testnet:
|
|
150
127
|
|
|
151
|
-
|
|
128
|
+
**Prerequisites:**
|
|
129
|
+
1. Create `.env` file:
|
|
130
|
+
```bash
|
|
131
|
+
BASE_SEPOLIA_RPC=https://sepolia.base.org # or your Alchemy URL
|
|
132
|
+
PRIVATE_KEY=0x... # Account with Base Sepolia ETH for gas
|
|
133
|
+
```
|
|
152
134
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
PRIVATE_KEY=0x...
|
|
156
|
-
BASE_SEPOLIA_RPC=https://...
|
|
135
|
+
2. Get testnet ETH:
|
|
136
|
+
- [Base Sepolia Faucet](https://www.coinbase.com/faucets/base-ethereum-goerli-faucet)
|
|
157
137
|
|
|
158
|
-
|
|
159
|
-
|
|
138
|
+
**Run tests:**
|
|
139
|
+
```bash
|
|
140
|
+
npx hardhat test --network base-sepolia
|
|
160
141
|
```
|
|
161
142
|
|
|
162
|
-
|
|
143
|
+
Tests will:
|
|
144
|
+
- ✅ Connect to deployed ACTPKernel, EscrowVault, MockUSDC
|
|
145
|
+
- ✅ Mint test USDC (MockUSDC has open minting on testnet)
|
|
146
|
+
- ✅ Run full transaction lifecycle (INITIATED → SETTLED)
|
|
147
|
+
- ✅ Verify escrow release and fund transfers
|
|
163
148
|
|
|
164
|
-
|
|
165
|
-
- **Minimum Fee**: $0.05 USDC
|
|
149
|
+
## Contract Addresses
|
|
166
150
|
|
|
167
|
-
|
|
151
|
+
### Base Sepolia (Testnet) ✅ Deployed & Verified
|
|
152
|
+
- **ACTPKernel:** `0x6aDB650e185b0ee77981AC5279271f0Fa6CFe7ba` ([view](https://sepolia.basescan.org/address/0x6aDB650e185b0ee77981AC5279271f0Fa6CFe7ba#code))
|
|
153
|
+
- **EscrowVault:** `0x921edE340770db5DB6059B5B866be987d1b7311F` ([view](https://sepolia.basescan.org/address/0x921edE340770db5DB6059B5B866be987d1b7311F#code))
|
|
154
|
+
- **MockUSDC:** `0x444b4e1A65949AB2ac75979D5d0166Eb7A248Ccb` ([view](https://sepolia.basescan.org/address/0x444b4e1A65949AB2ac75979D5d0166Eb7A248Ccb#code))
|
|
155
|
+
- **EAS Contract:** `0x4200000000000000000000000000000000000021` (Base native)
|
|
156
|
+
- **EAS Schema Registry:** `0x4200000000000000000000000000000000000020` (Base native)
|
|
157
|
+
- **Delivery Schema UID:** `0x1b0ebdf0bd20c28ec9d5362571ce8715a55f46e81c3de2f9b0d8e1b95fb5ffce`
|
|
168
158
|
|
|
169
|
-
-
|
|
170
|
-
- EIP-712 typed message signing
|
|
171
|
-
- EAS (Ethereum Attestation Service) for delivery proofs
|
|
172
|
-
- Replay protection with nonce management
|
|
159
|
+
*Redeployed: 2025-11-25 | Fixed auto-transition in linkEscrow, optimizer-runs 200 | Matches src/config/networks.ts*
|
|
173
160
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
- [Discord](https://discord.gg/agirails)
|
|
161
|
+
### Base Mainnet (Production)
|
|
162
|
+
- **ACTPKernel:** TBD *(pending mainnet deployment)*
|
|
163
|
+
- **EscrowVault:** TBD *(pending mainnet deployment)*
|
|
164
|
+
- **USDC:** `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` (official USDC on Base)
|
|
179
165
|
|
|
180
166
|
## License
|
|
181
167
|
|
|
182
168
|
Apache-2.0
|
|
169
|
+
|
|
170
|
+
## Support
|
|
171
|
+
|
|
172
|
+
- **Email:** developers@agirails.io
|
|
173
|
+
- **GitHub:** [github.com/agirails/sdk-js](https://github.com/agirails/sdk-js)
|
|
174
|
+
|