smartledger-bsv 3.3.1 → 3.3.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/CHANGELOG.md +211 -83
- package/README.md +266 -71
- package/bsv-covenant.min.js +26 -3
- package/bsv-gdaf.min.js +11 -9
- package/bsv-ltp.min.js +10 -8
- package/bsv-script-helper.min.js +2 -2
- package/bsv-security.min.js +3 -24
- package/bsv-shamir.min.js +2 -2
- package/bsv-smartcontract.min.js +10 -8
- package/bsv.bundle.js +9 -9
- package/bsv.min.js +10 -8
- package/build/webpack.bundle.config.js +2 -2
- package/build/webpack.config.js +2 -2
- package/build/webpack.covenant.config.js +2 -2
- package/build/webpack.gdaf.config.js +6 -43
- package/build/webpack.script-helper.config.js +2 -2
- package/build/webpack.security.config.js +2 -2
- package/build/webpack.smartcontract.config.js +2 -2
- package/bundle-entry.js +1 -341
- package/covenant-entry.js +1 -44
- package/docs/DOCUMENTATION_REVIEW_REPORT.md +295 -0
- package/docs/MODULE_REFERENCE_COMPLETE.md +330 -0
- package/docs/README.md +107 -79
- package/docs/advanced/LEGAL_TOKEN_PROTOCOL.md +411 -0
- package/docs/advanced/SMART_CONTRACT_GUIDE.md +1255 -0
- package/docs/advanced/UTXO_MANAGER_GUIDE.md +851 -0
- package/docs/api/LTP.md +334 -0
- package/docs/getting-started/INSTALLATION.md +410 -0
- package/docs/getting-started/QUICK_START.md +180 -0
- package/docs/migration/FROM_BSV_1_5_6.md +260 -0
- package/docs/technical/GDAF_DEVELOPER_INTERFACE.md +187 -0
- package/docs/technical/GDAF_IMPLEMENTATION_COMPLETE.md +190 -0
- package/docs/technical/SHAMIR_INTEGRATION_SUMMARY.md +165 -0
- package/docs/technical/roadmap.md +1250 -0
- package/docs/technical/trust_law.md +142 -0
- package/gdaf-entry.js +2 -54
- package/index.js +32 -0
- package/ltp-entry.js +2 -92
- package/package.json +5 -3
- package/script-helper-entry.js +1 -49
- package/security-entry.js +1 -70
- package/shamir-entry.js +1 -173
- package/smartcontract-entry.js +1 -133
- package/tests/test_builtin_verify.js +117 -0
- package/tests/test_debug_integration.js +71 -0
- package/tests/test_ecdsa_little.js +70 -0
- package/tests/test_smartverify_der.js +110 -0
- package/utilities/blockchain-state.js +155 -155
- package/utilities/blockchain-state.json +103293 -5244
- package/utilities/miner-simulator.js +354 -358
- package/utilities/mock-utxo-generator.js +54 -54
- package/utilities/raw-tx-examples.js +120 -122
- package/utilities/success-demo.js +104 -105
- package/utilities/transaction-examples.js +188 -188
- package/utilities/utxo-manager.js +91 -91
- package/utilities/wallet-setup.js +79 -80
- package/utilities/working-signature-demo.js +108 -110
- package/SECURITY.md +0 -75
- package/architecture_demo.js +0 -247
- package/build/bsv-covenant.min.js +0 -10
- package/build/bsv-script-helper.min.js +0 -10
- package/build/bsv-security.min.js +0 -31
- package/build/bsv-smartcontract.min.js +0 -39
- package/build/bsv.bundle.js +0 -39
- package/build/bsv.min.js +0 -39
- package/complete_ltp_demo.js +0 -511
- package/shamir_demo.js +0 -121
- package/simple_demo.js +0 -204
- package/validation_test.js +0 -97
- /package/docs/{ADVANCED_COVENANT_DEVELOPMENT.md → advanced/ADVANCED_COVENANT_DEVELOPMENT.md} +0 -0
- /package/docs/{CUSTOM_SCRIPT_DEVELOPMENT.md → advanced/CUSTOM_SCRIPT_DEVELOPMENT.md} +0 -0
- /package/docs/{block.md → api/BLOCKS.md} +0 -0
- /package/docs/{ecies.md → api/ECIES.md} +0 -0
- /package/docs/{networks.md → api/NETWORKS.md} +0 -0
- /package/docs/{script.md → api/SCRIPTS.md} +0 -0
- /package/docs/{transaction.md → api/TRANSACTIONS.md} +0 -0
- /package/docs/{unspentoutput.md → api/UTXO.md} +0 -0
- /package/{test_shamir.js → tests/test_shamir.js} +0 -0
- /package/{test_standalone_shamir.html → tests/test_standalone_shamir.html} +0 -0
package/simple_demo.js
DELETED
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SmartLedger-BSV Legal Token Protocol (LTP) - Primitives-Only Architecture Demo
|
|
3
|
-
*
|
|
4
|
-
* This demonstrates the architectural transformation from application framework
|
|
5
|
-
* to foundation library with primitives-only approach.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
const bsv = require('./index.js')
|
|
9
|
-
|
|
10
|
-
console.log('🚀 SmartLedger-BSV LTP: Primitives-Only Architecture')
|
|
11
|
-
console.log('==================================================\n')
|
|
12
|
-
|
|
13
|
-
console.log('🔄 ARCHITECTURAL TRANSFORMATION COMPARISON')
|
|
14
|
-
console.log('------------------------------------------\n')
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* BEFORE vs AFTER: Key Differences
|
|
18
|
-
*/
|
|
19
|
-
console.log('📋 BEFORE (Application Framework Approach):')
|
|
20
|
-
console.log('--------------------------------------------')
|
|
21
|
-
console.log('❌ bsv.createRightToken() → Created AND published to blockchain')
|
|
22
|
-
console.log('❌ bsv.validateLegalClaim() → Validated AND stored in database')
|
|
23
|
-
console.log('❌ bsv.anchorTokenBatch() → Created batch AND sent transaction')
|
|
24
|
-
console.log('❌ bsv.createLegalRegistry() → Created registry AND managed storage')
|
|
25
|
-
console.log('❌ bsv.transferRight() → Prepared transfer AND published')
|
|
26
|
-
console.log('')
|
|
27
|
-
console.log(' Problems with this approach:')
|
|
28
|
-
console.log(' • Library had too many responsibilities')
|
|
29
|
-
console.log(' • Developers locked into specific platforms')
|
|
30
|
-
console.log(' • Hard to integrate with existing systems')
|
|
31
|
-
console.log(' • Mixed crypto logic with application logic')
|
|
32
|
-
console.log('')
|
|
33
|
-
|
|
34
|
-
console.log('📋 AFTER (Primitives-Only Approach):')
|
|
35
|
-
console.log('-------------------------------------')
|
|
36
|
-
console.log('✅ bsv.prepareRightToken() → Prepares token structure only')
|
|
37
|
-
console.log('✅ bsv.prepareClaimValidation() → Validates structure only')
|
|
38
|
-
console.log('✅ bsv.prepareBatchCommitment() → Prepares commitment only')
|
|
39
|
-
console.log('✅ bsv.prepareRegistry() → Prepares registry data only')
|
|
40
|
-
console.log('✅ bsv.prepareRightTokenTransfer() → Prepares transfer data only')
|
|
41
|
-
console.log('')
|
|
42
|
-
console.log(' Benefits of this approach:')
|
|
43
|
-
console.log(' • Clear separation of concerns')
|
|
44
|
-
console.log(' • Maximum developer flexibility')
|
|
45
|
-
console.log(' • Easy integration with any system')
|
|
46
|
-
console.log(' • Focus on cryptographic correctness')
|
|
47
|
-
console.log('')
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* DEMONSTRATE THE NEW INTERFACE
|
|
51
|
-
*/
|
|
52
|
-
console.log('🛠️ NEW PRIMITIVES INTERFACE AVAILABLE:')
|
|
53
|
-
console.log('======================================\n')
|
|
54
|
-
|
|
55
|
-
console.log('🏛️ RIGHT TOKEN PRIMITIVES:')
|
|
56
|
-
console.log(' • bsv.prepareRightToken()')
|
|
57
|
-
console.log(' • bsv.prepareRightTokenVerification()')
|
|
58
|
-
console.log(' • bsv.prepareRightTokenTransfer()')
|
|
59
|
-
console.log(' • bsv.prepareRightTypeValidation()')
|
|
60
|
-
console.log('')
|
|
61
|
-
|
|
62
|
-
console.log('⚖️ OBLIGATION TOKEN PRIMITIVES:')
|
|
63
|
-
console.log(' • bsv.prepareObligationToken()')
|
|
64
|
-
console.log(' • bsv.prepareObligationVerification()')
|
|
65
|
-
console.log(' • bsv.prepareObligationFulfillment()')
|
|
66
|
-
console.log(' • bsv.prepareObligationBreachAssessment()')
|
|
67
|
-
console.log(' • bsv.prepareObligationMonitoringReport()')
|
|
68
|
-
console.log('')
|
|
69
|
-
|
|
70
|
-
console.log('📝 CLAIM VALIDATION PRIMITIVES:')
|
|
71
|
-
console.log(' • bsv.prepareClaimValidation()')
|
|
72
|
-
console.log(' • bsv.prepareClaimAttestation()')
|
|
73
|
-
console.log(' • bsv.prepareClaimDispute()')
|
|
74
|
-
console.log(' • bsv.prepareBulkClaimValidation()')
|
|
75
|
-
console.log(' • bsv.prepareClaimTemplate()')
|
|
76
|
-
console.log('')
|
|
77
|
-
|
|
78
|
-
console.log('🔐 PROOF GENERATION PRIMITIVES:')
|
|
79
|
-
console.log(' • bsv.prepareSignatureProof()')
|
|
80
|
-
console.log(' • bsv.prepareSelectiveDisclosure()')
|
|
81
|
-
console.log(' • bsv.prepareLegalValidityProof()')
|
|
82
|
-
console.log(' • bsv.prepareZeroKnowledgeProof()')
|
|
83
|
-
console.log('')
|
|
84
|
-
|
|
85
|
-
console.log('📚 REGISTRY MANAGEMENT PRIMITIVES:')
|
|
86
|
-
console.log(' • bsv.prepareRegistry()')
|
|
87
|
-
console.log(' • bsv.prepareTokenRegistration()')
|
|
88
|
-
console.log(' • bsv.prepareTokenApproval()')
|
|
89
|
-
console.log(' • bsv.prepareTokenRevocation()')
|
|
90
|
-
console.log(' • bsv.prepareTokenStatusQuery()')
|
|
91
|
-
console.log(' • bsv.prepareTokenSearch()')
|
|
92
|
-
console.log('')
|
|
93
|
-
|
|
94
|
-
console.log('⛓️ BLOCKCHAIN ANCHORING PRIMITIVES:')
|
|
95
|
-
console.log(' • bsv.prepareTokenCommitment()')
|
|
96
|
-
console.log(' • bsv.prepareBatchCommitment()')
|
|
97
|
-
console.log(' • bsv.verifyTokenAnchor()')
|
|
98
|
-
console.log(' • bsv.formatRevocation()')
|
|
99
|
-
console.log('')
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* SHOW UTILITY FUNCTIONS (UNCHANGED)
|
|
103
|
-
*/
|
|
104
|
-
console.log('🔧 UTILITY FUNCTIONS (Unchanged):')
|
|
105
|
-
console.log(' • bsv.getRightTypes() → Static data access')
|
|
106
|
-
console.log(' • bsv.getObligationTypes() → Static data access')
|
|
107
|
-
console.log(' • bsv.getClaimSchemas() → Static data access')
|
|
108
|
-
console.log(' • bsv.canonicalizeClaim() → Data transformation')
|
|
109
|
-
console.log(' • bsv.hashClaim() → Hash generation')
|
|
110
|
-
console.log('')
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* EXAMPLE USAGE PATTERN
|
|
114
|
-
*/
|
|
115
|
-
console.log('💡 EXAMPLE: How Applications Use The New Primitives')
|
|
116
|
-
console.log('===================================================\n')
|
|
117
|
-
|
|
118
|
-
console.log('// STEP 1: Use SmartLedger-BSV to prepare legal structures')
|
|
119
|
-
console.log('const rightTokenPrep = bsv.prepareRightToken(')
|
|
120
|
-
console.log(' "PROPERTY_OWNERSHIP", issuerDID, ownerDID, claimData, privateKey')
|
|
121
|
-
console.log(')')
|
|
122
|
-
console.log('')
|
|
123
|
-
|
|
124
|
-
console.log('// STEP 2: Use external system to publish to blockchain')
|
|
125
|
-
console.log('const blockchainResult = await MyBlockchain.publish({')
|
|
126
|
-
console.log(' commitment: rightTokenPrep.commitment,')
|
|
127
|
-
console.log(' signature: rightTokenPrep.signature')
|
|
128
|
-
console.log('})')
|
|
129
|
-
console.log('')
|
|
130
|
-
|
|
131
|
-
console.log('// STEP 3: Use external system to store in registry')
|
|
132
|
-
console.log('const registryResult = await MyRegistry.store({')
|
|
133
|
-
console.log(' token: rightTokenPrep.token,')
|
|
134
|
-
console.log(' metadata: rightTokenPrep.metadata')
|
|
135
|
-
console.log('})')
|
|
136
|
-
console.log('')
|
|
137
|
-
|
|
138
|
-
console.log('// STEP 4: Use SmartLedger-BSV to verify the results')
|
|
139
|
-
console.log('const verification = bsv.verifyTokenAnchor(')
|
|
140
|
-
console.log(' rightTokenPrep.token, blockchainResult.txid')
|
|
141
|
-
console.log(')')
|
|
142
|
-
console.log('')
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* BENEFITS SUMMARY
|
|
146
|
-
*/
|
|
147
|
-
console.log('🎯 PRIMITIVES-ONLY ARCHITECTURE BENEFITS')
|
|
148
|
-
console.log('========================================\n')
|
|
149
|
-
|
|
150
|
-
console.log('👨💻 FOR DEVELOPERS:')
|
|
151
|
-
console.log(' ✅ Choose your own blockchain (BSV, Bitcoin, Ethereum, etc.)')
|
|
152
|
-
console.log(' ✅ Choose your own storage (SQL, NoSQL, IPFS, etc.)')
|
|
153
|
-
console.log(' ✅ Choose your own UI framework (React, Vue, Angular, etc.)')
|
|
154
|
-
console.log(' ✅ Integrate with existing business systems')
|
|
155
|
-
console.log(' ✅ Maintain full control over user experience')
|
|
156
|
-
console.log('')
|
|
157
|
-
|
|
158
|
-
console.log('🏢 FOR ENTERPRISES:')
|
|
159
|
-
console.log(' ✅ No vendor lock-in to specific platforms')
|
|
160
|
-
console.log(' ✅ Compliance with existing IT policies')
|
|
161
|
-
console.log(' ✅ Integration with legacy systems')
|
|
162
|
-
console.log(' ✅ Scalable architecture patterns')
|
|
163
|
-
console.log(' ✅ Audit-friendly separation of concerns')
|
|
164
|
-
console.log('')
|
|
165
|
-
|
|
166
|
-
console.log('🔒 FOR SECURITY:')
|
|
167
|
-
console.log(' ✅ Cryptographic operations isolated and testable')
|
|
168
|
-
console.log(' ✅ No network dependencies in core library')
|
|
169
|
-
console.log(' ✅ Predictable, deterministic behavior')
|
|
170
|
-
console.log(' ✅ Smaller attack surface')
|
|
171
|
-
console.log(' ✅ Clear boundaries for security reviews')
|
|
172
|
-
console.log('')
|
|
173
|
-
|
|
174
|
-
console.log('⚖️ FOR LEGAL COMPLIANCE:')
|
|
175
|
-
console.log(' ✅ Standardized legal token structures')
|
|
176
|
-
console.log(' ✅ Cryptographic proof generation')
|
|
177
|
-
console.log(' ✅ Audit trail preparation')
|
|
178
|
-
console.log(' ✅ Jurisdiction-specific adaptability')
|
|
179
|
-
console.log(' ✅ Regulatory compliance primitives')
|
|
180
|
-
console.log('')
|
|
181
|
-
|
|
182
|
-
console.log('🚀 CONCLUSION')
|
|
183
|
-
console.log('=============')
|
|
184
|
-
console.log('')
|
|
185
|
-
console.log('SmartLedger-BSV is now a pure foundation library that provides')
|
|
186
|
-
console.log('everything needed to build Legal Token Protocol applications')
|
|
187
|
-
console.log('while giving developers complete architectural freedom.')
|
|
188
|
-
console.log('')
|
|
189
|
-
console.log('The library focuses on what it does best:')
|
|
190
|
-
console.log('• Cryptographic correctness')
|
|
191
|
-
console.log('• Legal structure validation')
|
|
192
|
-
console.log('• Standardized data formats')
|
|
193
|
-
console.log('• Compliance primitives')
|
|
194
|
-
console.log('')
|
|
195
|
-
console.log('External systems handle:')
|
|
196
|
-
console.log('• Blockchain publishing')
|
|
197
|
-
console.log('• Data storage')
|
|
198
|
-
console.log('• User interfaces')
|
|
199
|
-
console.log('• Business workflows')
|
|
200
|
-
console.log('')
|
|
201
|
-
console.log('This creates the perfect foundation for any Legal Token')
|
|
202
|
-
console.log('Protocol application while maintaining maximum flexibility!')
|
|
203
|
-
console.log('')
|
|
204
|
-
console.log('🎉 Primitives-only transformation: COMPLETE! 🎉')
|
package/validation_test.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* SmartLedger-BSV Signature Verification Fix Validation
|
|
5
|
-
*
|
|
6
|
-
* This script validates that the signature verification bug has been fixed
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
const bsv = require('./index.js');
|
|
10
|
-
|
|
11
|
-
console.log('🎯 SmartLedger-BSV Signature Verification Fix Validation');
|
|
12
|
-
console.log('=======================================================\n');
|
|
13
|
-
|
|
14
|
-
// Test with multiple different signatures
|
|
15
|
-
const testCases = [
|
|
16
|
-
{
|
|
17
|
-
name: 'Test Case 1: hello world',
|
|
18
|
-
privateKey: 'L1aW4aubDFB7yfras2S1mN3bqg9nwySY8nkoLmJebSLD5BWv3ENZ',
|
|
19
|
-
message: 'hello world'
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
name: 'Test Case 2: BSV transaction',
|
|
23
|
-
privateKey: 'KzsjKq2FVqVuQv2ueHVFuB65A9uEZ6S1E6hrhGCi5LAFS9kBf7Nm',
|
|
24
|
-
message: 'BSV blockchain transaction data'
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: 'Test Case 3: empty message',
|
|
28
|
-
privateKey: 'L4rK1yDtCWekvXuE6oXD9jCYfFNV2cWRpVuPLBcCU2z8TrisoyY1',
|
|
29
|
-
message: ''
|
|
30
|
-
}
|
|
31
|
-
];
|
|
32
|
-
|
|
33
|
-
let passedTests = 0;
|
|
34
|
-
let totalTests = 0;
|
|
35
|
-
|
|
36
|
-
for (const testCase of testCases) {
|
|
37
|
-
console.log(`\n📝 ${testCase.name}:`);
|
|
38
|
-
console.log('='.repeat(testCase.name.length + 4));
|
|
39
|
-
|
|
40
|
-
try {
|
|
41
|
-
const privateKey = new bsv.PrivateKey(testCase.privateKey);
|
|
42
|
-
const publicKey = privateKey.publicKey;
|
|
43
|
-
const message = Buffer.from(testCase.message, 'utf8');
|
|
44
|
-
const hash = bsv.crypto.Hash.sha256(message);
|
|
45
|
-
|
|
46
|
-
// Create signature
|
|
47
|
-
const signature = bsv.crypto.ECDSA.sign(hash, privateKey);
|
|
48
|
-
const derSig = signature.toDER();
|
|
49
|
-
const canonicalSig = signature.toCanonical();
|
|
50
|
-
const canonicalDer = canonicalSig.toDER();
|
|
51
|
-
|
|
52
|
-
console.log(`Private Key: ${testCase.privateKey}`);
|
|
53
|
-
console.log(`Message: "${testCase.message}"`);
|
|
54
|
-
console.log(`Signature canonical: ${signature.isCanonical()}`);
|
|
55
|
-
|
|
56
|
-
// Test all verification methods
|
|
57
|
-
const tests = [
|
|
58
|
-
{ name: 'ECDSA.verify(hash, derSig, publicKey)', result: bsv.crypto.ECDSA.verify(hash, derSig, publicKey) },
|
|
59
|
-
{ name: 'ECDSA.verify(hash, canonicalDer, publicKey)', result: bsv.crypto.ECDSA.verify(hash, canonicalDer, publicKey) },
|
|
60
|
-
{ name: 'ECDSA.verify(hash, signature, publicKey)', result: bsv.crypto.ECDSA.verify(hash, signature, publicKey) },
|
|
61
|
-
{ name: 'SmartVerify.smartVerify(hash, derSig, publicKey)', result: bsv.SmartVerify.smartVerify(hash, derSig, publicKey) },
|
|
62
|
-
{ name: 'SmartVerify.smartVerify(hash, canonicalDer, publicKey)', result: bsv.SmartVerify.smartVerify(hash, canonicalDer, publicKey) },
|
|
63
|
-
{ name: 'SmartVerify.isCanonical(derSig)', result: bsv.SmartVerify.isCanonical(derSig) },
|
|
64
|
-
{ name: 'SmartVerify.isCanonical(canonicalDer)', result: bsv.SmartVerify.isCanonical(canonicalDer) }
|
|
65
|
-
];
|
|
66
|
-
|
|
67
|
-
for (const test of tests) {
|
|
68
|
-
totalTests++;
|
|
69
|
-
const status = test.result ? '✅ PASS' : '❌ FAIL';
|
|
70
|
-
console.log(`${status} ${test.name}: ${test.result}`);
|
|
71
|
-
if (test.result) passedTests++;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
} catch (error) {
|
|
75
|
-
console.log(`❌ Test failed with error: ${error.message}`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
console.log('\n🏆 Summary:');
|
|
80
|
-
console.log('===========');
|
|
81
|
-
console.log(`Passed: ${passedTests}/${totalTests} tests`);
|
|
82
|
-
console.log(`Success rate: ${((passedTests / totalTests) * 100).toFixed(1)}%`);
|
|
83
|
-
|
|
84
|
-
if (passedTests === totalTests) {
|
|
85
|
-
console.log('\n🎉 ALL TESTS PASSED! Signature verification is now working correctly.');
|
|
86
|
-
console.log('✅ The SmartLedger-BSV v3.0.1 signature verification bug has been FIXED!');
|
|
87
|
-
} else {
|
|
88
|
-
console.log('\n⚠️ Some tests failed. The fix may not be complete.');
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
console.log('\n📋 Fix Summary:');
|
|
92
|
-
console.log('===============');
|
|
93
|
-
console.log('1. Fixed ECDSA.set() to auto-parse DER buffers to Signature objects');
|
|
94
|
-
console.log('2. Fixed ECDSA.sigError() to handle canonical signature verification properly');
|
|
95
|
-
console.log('3. Fixed SmartVerify.smartVerify() to accept both DER buffers and Signature objects');
|
|
96
|
-
console.log('4. Fixed SmartVerify.isCanonical() to parse DER buffers correctly');
|
|
97
|
-
console.log('5. Enhanced compatibility with both canonical and non-canonical signature inputs');
|
/package/docs/{ADVANCED_COVENANT_DEVELOPMENT.md → advanced/ADVANCED_COVENANT_DEVELOPMENT.md}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|