@midnames/sdk 1.0.3 → 1.0.5
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/provider.js +1 -1
- package/node_modules/@midnames/ns/package.json +14 -14
- package/package.json +13 -11
- package/node_modules/@midnames/ns/.env +0 -10
- package/node_modules/@midnames/ns/.env.example +0 -11
- package/node_modules/@midnames/ns/.turbo/turbo-build.log +0 -2
- package/node_modules/@midnames/ns/.turbo/turbo-test.log +0 -13
- package/node_modules/@midnames/ns/midnight-level-db/000005.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000008.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000011.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000014.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000019.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000024.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000031.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000034.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000037.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000040.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000045.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000050.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000059.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000064.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000069.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000074.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000083.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000088.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000093.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000098.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000107.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000112.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000121.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000126.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000135.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000140.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000149.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000154.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000163.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000168.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000177.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000182.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000187.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000192.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000201.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000206.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000215.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000220.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000229.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000234.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000243.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000248.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000257.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000262.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000271.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000276.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000281.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000286.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000295.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000300.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000305.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000310.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000313.log +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000319.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000324.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000329.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000334.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000343.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000348.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000357.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000362.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000371.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000376.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000385.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000390.ldb +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/000393.log +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/CURRENT +0 -1
- package/node_modules/@midnames/ns/midnight-level-db/LOCK +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/LOG +0 -3
- package/node_modules/@midnames/ns/midnight-level-db/LOG.old +0 -6
- package/node_modules/@midnames/ns/midnight-level-db/MANIFEST-000312 +0 -0
- package/node_modules/@midnames/ns/midnight-level-db/MANIFEST-000392 +0 -0
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/README.md +0 -32
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/built-ins.d.ts +0 -133
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/built-ins.js +0 -216
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/built-ins.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/casts.d.ts +0 -15
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/casts.js +0 -65
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/casts.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/circuit-context.d.ts +0 -66
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/circuit-context.js +0 -150
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/circuit-context.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/compact-types.d.ts +0 -209
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/compact-types.js +0 -374
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/compact-types.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/constants.d.ts +0 -13
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/constants.js +0 -29
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/constants.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/constructor-context.d.ts +0 -39
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/constructor-context.js +0 -26
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/constructor-context.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/contract-dependencies.d.ts +0 -175
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/contract-dependencies.js +0 -288
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/contract-dependencies.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/error.d.ts +0 -16
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/error.js +0 -43
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/error.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/index.d.ts +0 -15
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/index.js +0 -30
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/index.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/proof-data.d.ts +0 -27
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/proof-data.js +0 -16
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/proof-data.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/utils.d.ts +0 -19
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/utils.js +0 -41
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/utils.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/version.d.ts +0 -2
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/version.js +0 -18
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/version.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/witness.d.ts +0 -24
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/witness.js +0 -26
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/witness.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/zswap.d.ts +0 -172
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/zswap.js +0 -141
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/dist/zswap.js.map +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/compact-runtime/package.json +0 -57
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/ledger-v8.d.ts +0 -3079
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/midnight_ledger_wasm.js +0 -5
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/midnight_ledger_wasm_bg.js +0 -10056
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/midnight_ledger_wasm_bg.wasm +0 -0
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/midnight_ledger_wasm_fs.js +0 -69
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/package-lock.json +0 -12
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/package.json +0 -34
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline0.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline1.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline10.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline11.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline12.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline13.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline14.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline15.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline16.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline17.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline18.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline19.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline2.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline20.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline21.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline22.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline23.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline3.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline4.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline5.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline6.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline7.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline8.js +0 -1
- package/node_modules/@midnames/ns/node_modules/@midnight-ntwrk/ledger-v8/snippets/midnight-ledger-wasm-a0cc58108d931982/inline9.js +0 -1
- package/node_modules/@midnames/ns/reports/report.xml +0 -33
- package/node_modules/@midnames/ns/src/index.ts +0 -13
- package/node_modules/@midnames/ns/src/leaf.compact +0 -290
- package/node_modules/@midnames/ns/src/managed/leaf/compiler/contract-info.json +0 -534
- package/node_modules/@midnames/ns/src/managed/leaf/contract/index.d.ts +0 -197
- package/node_modules/@midnames/ns/src/managed/leaf/contract/index.js +0 -3094
- package/node_modules/@midnames/ns/src/managed/leaf/contract/index.js.map +0 -8
- package/node_modules/@midnames/ns/src/managed/leaf/keys/add_multiple_fields.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/add_multiple_fields.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/buy_domain_for.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/buy_domain_for.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/change_owner.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/change_owner.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/clear_all_fields.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/clear_all_fields.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/clear_field.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/clear_field.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/insert_field.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/insert_field.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/register_domain_for.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/register_domain_for.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/set_resolver.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/set_resolver.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/transfer_domain.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/transfer_domain.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/update_color.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/update_color.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/update_costs.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/update_costs.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/update_domain_target.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/update_domain_target.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/update_target_and_fields.prover +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/keys/update_target_and_fields.verifier +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/add_multiple_fields.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/add_multiple_fields.zkir +0 -424
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/buy_domain_for.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/buy_domain_for.zkir +0 -1456
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/change_owner.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/change_owner.zkir +0 -57
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/clear_all_fields.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/clear_all_fields.zkir +0 -53
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/clear_field.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/clear_field.zkir +0 -58
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/insert_field.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/insert_field.zkir +0 -65
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/register_domain_for.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/register_domain_for.zkir +0 -401
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/set_resolver.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/set_resolver.zkir +0 -109
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/transfer_domain.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/transfer_domain.zkir +0 -212
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/update_color.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/update_color.zkir +0 -58
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/update_costs.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/update_costs.zkir +0 -88
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/update_domain_target.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/update_domain_target.zkir +0 -66
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/update_target_and_fields.bzkir +0 -0
- package/node_modules/@midnames/ns/src/managed/leaf/zkir/update_target_and_fields.zkir +0 -450
- package/node_modules/@midnames/ns/src/test/batch-config.ts +0 -13
- package/node_modules/@midnames/ns/src/test/batch-deploy.ts +0 -914
- package/node_modules/@midnames/ns/src/test/contract.ts +0 -1228
- package/node_modules/@midnames/ns/src/test/derive_seed.ts +0 -102
- package/node_modules/@midnames/ns/src/test/example-deploy.config.ts +0 -76
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000005.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000011.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000014.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000025.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000039.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000049.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000064.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000078.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000092.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000106.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000121.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000135.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000146.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000160.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000174.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000188.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000203.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000217.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000232.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000242.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000256.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000263.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000267.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000276.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000281.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000286.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000291.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000300.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000305.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000314.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000319.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000328.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000333.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000342.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000347.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000356.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000361.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000370.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000375.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000380.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000385.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000392.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000397.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000400.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000403.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000408.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000413.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000422.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000427.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000432.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000437.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000446.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000451.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000456.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000461.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000470.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000475.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000480.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000485.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000494.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000499.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000504.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000509.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000518.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000523.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000528.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000533.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000542.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000547.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000552.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000557.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000566.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000571.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000576.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000581.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000590.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000595.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000600.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000605.ldb +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/000608.log +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/CURRENT +0 -1
- package/node_modules/@midnames/ns/src/test/midnight-level-db/LOCK +0 -0
- package/node_modules/@midnames/ns/src/test/midnight-level-db/LOG +0 -3
- package/node_modules/@midnames/ns/src/test/midnight-level-db/LOG.old +0 -6
- package/node_modules/@midnames/ns/src/test/midnight-level-db/MANIFEST-000607 +0 -0
- package/node_modules/@midnames/ns/src/test/ns-simulator.ts +0 -115
- package/node_modules/@midnames/ns/src/test/ns.test.ts +0 -132
- package/node_modules/@midnames/ns/src/test/profile-fields.ts +0 -148
- package/node_modules/@midnames/ns/src/test/wallet.ts +0 -289
- package/node_modules/@midnames/ns/src/utils.ts +0 -16
- package/node_modules/@midnames/ns/src/witnesses.ts +0 -6
- package/node_modules/@midnames/ns/tsconfig.build.json +0 -5
- package/node_modules/@midnames/ns/tsconfig.json +0 -12
- package/node_modules/@midnames/ns/vitest.config.ts +0 -30
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { NSSimulator } from "./ns-simulator.js";
|
|
2
|
-
import { setNetworkId } from "@midnight-ntwrk/midnight-js-network-id";
|
|
3
|
-
import { describe, it, expect } from "vitest";
|
|
4
|
-
|
|
5
|
-
setNetworkId("undeployed");
|
|
6
|
-
|
|
7
|
-
function paddedKey(dataBytes: number[]): Uint8Array {
|
|
8
|
-
const key = new Uint8Array(32).fill(255);
|
|
9
|
-
for (let i = 0; i < dataBytes.length; i++) key[i] = dataBytes[i];
|
|
10
|
-
return key;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function stringToKey(s: string): Uint8Array {
|
|
14
|
-
const bytes = Array.from(new TextEncoder().encode(s));
|
|
15
|
-
return paddedKey(bytes);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const dummyOwner = { bytes: new Uint8Array(32) };
|
|
19
|
-
const dummyResolver = { bytes: new Uint8Array(32) };
|
|
20
|
-
|
|
21
|
-
describe("Leaf contract", () => {
|
|
22
|
-
it("generates initial ledger state deterministically", () => {
|
|
23
|
-
const simulator0 = new NSSimulator();
|
|
24
|
-
const simulator1 = new NSSimulator();
|
|
25
|
-
const l0 = simulator0.getLedger();
|
|
26
|
-
const l1 = simulator1.getLedger();
|
|
27
|
-
expect(l0.COST_SHORT).toEqual(l1.COST_SHORT);
|
|
28
|
-
expect(l0.COIN_COLOR).toEqual(l1.COIN_COLOR);
|
|
29
|
-
expect(l0.DOMAIN_OWNER).toEqual(l1.DOMAIN_OWNER);
|
|
30
|
-
expect(l0.PARENT_DOMAIN).toEqual(l1.PARENT_DOMAIN);
|
|
31
|
-
expect(l0.DOMAIN).toEqual(l1.DOMAIN);
|
|
32
|
-
expect(l0.domains.isEmpty()).toEqual(l1.domains.isEmpty());
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
it("properly initializes ledger state", () => {
|
|
36
|
-
const simulator = new NSSimulator();
|
|
37
|
-
const ledger = simulator.getLedger();
|
|
38
|
-
expect(ledger.COST_SHORT).toEqual(100n);
|
|
39
|
-
expect(ledger.domains.isEmpty()).toBe(true);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
describe("buy_domain_for — validation", () => {
|
|
44
|
-
it("accepts a valid domain purchase with proper padding", () => {
|
|
45
|
-
const simulator = new NSSimulator();
|
|
46
|
-
// "alice" = [0x61, 0x6c, 0x69, 0x63, 0x65]
|
|
47
|
-
const key = stringToKey("alice");
|
|
48
|
-
expect(() => simulator.buyDomainFor(dummyOwner, key, 5n, dummyResolver)).not.toThrow();
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it("accepts len=1 (short premium name)", () => {
|
|
52
|
-
const simulator = new NSSimulator();
|
|
53
|
-
const key = paddedKey([0x41]);
|
|
54
|
-
expect(() => simulator.buyDomainFor(dummyOwner, key, 1n, dummyResolver)).not.toThrow();
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it("accepts len=32 (max length domain)", () => {
|
|
58
|
-
const simulator = new NSSimulator();
|
|
59
|
-
const key = new Uint8Array(32).fill(0x41);
|
|
60
|
-
expect(() => simulator.buyDomainFor(dummyOwner, key, 32n, dummyResolver)).not.toThrow();
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
it("rejects non-255 byte in padding region", () => {
|
|
64
|
-
const simulator = new NSSimulator();
|
|
65
|
-
const key = paddedKey([0x41, 0x42]);
|
|
66
|
-
key[2] = 0x43; // should be 255
|
|
67
|
-
expect(() => simulator.buyDomainFor(dummyOwner, key, 2n, dummyResolver)).toThrow();
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
it("rejects len > 32", () => {
|
|
71
|
-
const simulator = new NSSimulator();
|
|
72
|
-
const key = new Uint8Array(32).fill(0x41);
|
|
73
|
-
expect(() => simulator.buyDomainFor(dummyOwner, key, 33n, dummyResolver)).toThrow();
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
it("rejects len = 0 (empty name)", () => {
|
|
77
|
-
const simulator = new NSSimulator();
|
|
78
|
-
const key = new Uint8Array(32).fill(255);
|
|
79
|
-
expect(() => simulator.buyDomainFor(dummyOwner, key, 0n, dummyResolver)).toThrow();
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it("rejects duplicate domain purchase", () => {
|
|
83
|
-
const simulator = new NSSimulator();
|
|
84
|
-
const key = stringToKey("alice");
|
|
85
|
-
simulator.buyDomainFor(dummyOwner, key, 5n, dummyResolver);
|
|
86
|
-
expect(() => simulator.buyDomainFor(dummyOwner, key, 5n, dummyResolver)).toThrow();
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
it("stores domain data correctly after purchase", () => {
|
|
90
|
-
const simulator = new NSSimulator();
|
|
91
|
-
const key = stringToKey("bob");
|
|
92
|
-
const ledger = simulator.buyDomainFor(dummyOwner, key, 3n, dummyResolver);
|
|
93
|
-
expect(ledger.domains.member(key)).toBe(true);
|
|
94
|
-
const data = ledger.domains.lookup(key);
|
|
95
|
-
expect(data.owner).toEqual(dummyOwner);
|
|
96
|
-
expect(data.resolver).toEqual(dummyResolver);
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
it("converts string to properly padded Bytes<32>", () => {
|
|
100
|
-
const key = stringToKey("alice");
|
|
101
|
-
// "alice" = [0x61, 0x6c, 0x69, 0x63, 0x65]
|
|
102
|
-
expect(key[0]).toBe(0x61);
|
|
103
|
-
expect(key[1]).toBe(0x6c);
|
|
104
|
-
expect(key[2]).toBe(0x69);
|
|
105
|
-
expect(key[3]).toBe(0x63);
|
|
106
|
-
expect(key[4]).toBe(0x65);
|
|
107
|
-
for (let i = 5; i < 32; i++) {
|
|
108
|
-
expect(key[i]).toBe(255);
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
describe("register_domain_for — validation", () => {
|
|
114
|
-
it("accepts a valid domain registration with proper padding", () => {
|
|
115
|
-
const simulator = new NSSimulator();
|
|
116
|
-
const key = stringToKey("test");
|
|
117
|
-
expect(() => simulator.registerDomainFor(dummyOwner, key, 4n, dummyResolver)).not.toThrow();
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
it("rejects invalid padding", () => {
|
|
121
|
-
const simulator = new NSSimulator();
|
|
122
|
-
const key = paddedKey([0x41, 0x42]);
|
|
123
|
-
key[2] = 0x00; // should be 255
|
|
124
|
-
expect(() => simulator.registerDomainFor(dummyOwner, key, 2n, dummyResolver)).toThrow();
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
it("rejects empty name (len=0)", () => {
|
|
128
|
-
const simulator = new NSSimulator();
|
|
129
|
-
const key = new Uint8Array(32).fill(255);
|
|
130
|
-
expect(() => simulator.registerDomainFor(dummyOwner, key, 0n, dummyResolver)).toThrow();
|
|
131
|
-
});
|
|
132
|
-
});
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Profile field key constants matching the frontend domain profile system.
|
|
3
|
-
*
|
|
4
|
-
* These mirror the keys used in:
|
|
5
|
-
* - frontend-vite-react/src/types/domain.ts (DomainProfile interface)
|
|
6
|
-
* - frontend-vite-react/src/constants/profile-presets.ts (PROFILE_PRESET_FIELDS)
|
|
7
|
-
* - frontend-vite-react/src/utils/social-links.ts (SOCIAL_PLATFORMS)
|
|
8
|
-
* - frontend-vite-react/src/components/domain/AddMultipleFieldsForm.tsx (COMMON_FIELDS)
|
|
9
|
-
* - frontend-vite-react/src/hooks/useDomainOperations.ts (buildInitialFields)
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
// ─── Base Profile Fields ────────────────────────────────────────────────────
|
|
13
|
-
// Always available on the registration form
|
|
14
|
-
export const FIELD_NAME = "name";
|
|
15
|
-
export const FIELD_BIO = "bio";
|
|
16
|
-
export const FIELD_AVATAR = "avatar";
|
|
17
|
-
export const FIELD_WEBSITE = "website";
|
|
18
|
-
export const FIELD_TWITTER = "twitter";
|
|
19
|
-
export const FIELD_GITHUB = "github";
|
|
20
|
-
|
|
21
|
-
// ─── System / Auto-populated Fields ─────────────────────────────────────────
|
|
22
|
-
export const FIELD_PROFILE_TYPE = "profile_type";
|
|
23
|
-
export const FIELD_EPK = "epk"; // encryption public key (from wallet)
|
|
24
|
-
|
|
25
|
-
// ─── Social Platforms ───────────────────────────────────────────────────────
|
|
26
|
-
export const FIELD_DISCORD = "discord";
|
|
27
|
-
export const FIELD_DISCORD_ID = "discord_id";
|
|
28
|
-
export const FIELD_DISCORD_VERIFY = "discord_verify";
|
|
29
|
-
export const FIELD_TELEGRAM = "telegram";
|
|
30
|
-
export const FIELD_TWITCH = "twitch";
|
|
31
|
-
export const FIELD_YOUTUBE = "youtube";
|
|
32
|
-
export const FIELD_INSTAGRAM = "instagram";
|
|
33
|
-
export const FIELD_TIKTOK = "tiktok";
|
|
34
|
-
export const FIELD_EMAIL = "email";
|
|
35
|
-
|
|
36
|
-
// ─── Extended Profile Fields ────────────────────────────────────────────────
|
|
37
|
-
export const FIELD_TICKER = "ticker";
|
|
38
|
-
export const FIELD_LOCATION = "location";
|
|
39
|
-
export const FIELD_PLATFORM = "platform";
|
|
40
|
-
export const FIELD_BANNER = "banner";
|
|
41
|
-
export const FIELD_DESCRIPTION = "description"; // alias for bio
|
|
42
|
-
|
|
43
|
-
// ─── Profile Types ──────────────────────────────────────────────────────────
|
|
44
|
-
export type ProfileType = "personal" | "dao" | "company" | "game" | "creator";
|
|
45
|
-
|
|
46
|
-
export const PROFILE_TYPES: readonly ProfileType[] = [
|
|
47
|
-
"personal",
|
|
48
|
-
"dao",
|
|
49
|
-
"company",
|
|
50
|
-
"game",
|
|
51
|
-
"creator",
|
|
52
|
-
] as const;
|
|
53
|
-
|
|
54
|
-
// ─── Helpers for building field arrays ──────────────────────────────────────
|
|
55
|
-
|
|
56
|
-
/** Build a personal profile field set */
|
|
57
|
-
export function personalFields(opts: {
|
|
58
|
-
name: string;
|
|
59
|
-
bio?: string;
|
|
60
|
-
avatar?: string;
|
|
61
|
-
website?: string;
|
|
62
|
-
twitter?: string;
|
|
63
|
-
github?: string;
|
|
64
|
-
email?: string;
|
|
65
|
-
telegram?: string;
|
|
66
|
-
}, extra?: [string, string][]): [string, string][] {
|
|
67
|
-
return buildFields({ ...opts, [FIELD_PROFILE_TYPE]: "personal" }, extra);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/** Build a DAO profile field set */
|
|
71
|
-
export function daoFields(opts: {
|
|
72
|
-
name: string;
|
|
73
|
-
bio?: string;
|
|
74
|
-
avatar?: string;
|
|
75
|
-
website?: string;
|
|
76
|
-
twitter?: string;
|
|
77
|
-
github?: string;
|
|
78
|
-
ticker?: string;
|
|
79
|
-
discord?: string;
|
|
80
|
-
}, extra?: [string, string][]): [string, string][] {
|
|
81
|
-
return buildFields({ ...opts, [FIELD_PROFILE_TYPE]: "dao" }, extra);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/** Build a company profile field set */
|
|
85
|
-
export function companyFields(opts: {
|
|
86
|
-
name: string;
|
|
87
|
-
bio?: string;
|
|
88
|
-
avatar?: string;
|
|
89
|
-
website?: string;
|
|
90
|
-
twitter?: string;
|
|
91
|
-
github?: string;
|
|
92
|
-
email?: string;
|
|
93
|
-
location?: string;
|
|
94
|
-
}, extra?: [string, string][]): [string, string][] {
|
|
95
|
-
return buildFields({ ...opts, [FIELD_PROFILE_TYPE]: "company" }, extra);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/** Build a game profile field set */
|
|
99
|
-
export function gameFields(opts: {
|
|
100
|
-
name: string;
|
|
101
|
-
bio?: string;
|
|
102
|
-
avatar?: string;
|
|
103
|
-
website?: string;
|
|
104
|
-
twitter?: string;
|
|
105
|
-
github?: string;
|
|
106
|
-
platform?: string;
|
|
107
|
-
discord?: string;
|
|
108
|
-
twitch?: string;
|
|
109
|
-
}, extra?: [string, string][]): [string, string][] {
|
|
110
|
-
return buildFields({ ...opts, [FIELD_PROFILE_TYPE]: "game" }, extra);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/** Build a creator profile field set */
|
|
114
|
-
export function creatorFields(opts: {
|
|
115
|
-
name: string;
|
|
116
|
-
bio?: string;
|
|
117
|
-
avatar?: string;
|
|
118
|
-
website?: string;
|
|
119
|
-
twitter?: string;
|
|
120
|
-
github?: string;
|
|
121
|
-
youtube?: string;
|
|
122
|
-
instagram?: string;
|
|
123
|
-
tiktok?: string;
|
|
124
|
-
}, extra?: [string, string][]): [string, string][] {
|
|
125
|
-
return buildFields({ ...opts, [FIELD_PROFILE_TYPE]: "creator" }, extra);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/** Generic builder — filters out undefined/empty values, appends extras, enforces max 10 */
|
|
129
|
-
function buildFields(
|
|
130
|
-
record: Record<string, string | undefined>,
|
|
131
|
-
extra?: [string, string][],
|
|
132
|
-
): [string, string][] {
|
|
133
|
-
const fields: [string, string][] = [];
|
|
134
|
-
for (const [key, value] of Object.entries(record)) {
|
|
135
|
-
if (value !== undefined && value !== "") {
|
|
136
|
-
fields.push([key, value]);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (extra) {
|
|
140
|
-
for (const pair of extra) {
|
|
141
|
-
fields.push(pair);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
if (fields.length > 10) {
|
|
145
|
-
throw new Error(`Too many fields (${fields.length}) — contract supports max 10`);
|
|
146
|
-
}
|
|
147
|
-
return fields;
|
|
148
|
-
}
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
import { type Wallet } from "@midnight-ntwrk/wallet-api";
|
|
2
|
-
import { nativeToken } from "@midnight-ntwrk/ledger";
|
|
3
|
-
import {
|
|
4
|
-
getLedgerNetworkId,
|
|
5
|
-
getZswapNetworkId,
|
|
6
|
-
NetworkId,
|
|
7
|
-
setNetworkId,
|
|
8
|
-
} from "@midnight-ntwrk/midnight-js-network-id";
|
|
9
|
-
import { type Resource, WalletBuilder } from "@midnight-ntwrk/wallet";
|
|
10
|
-
import * as Rx from "rxjs";
|
|
11
|
-
import { type Logger } from "pino";
|
|
12
|
-
import pinoPretty from "pino-pretty";
|
|
13
|
-
import pino from "pino";
|
|
14
|
-
|
|
15
|
-
// Configuration interfaces
|
|
16
|
-
export interface Config {
|
|
17
|
-
readonly logDir: string;
|
|
18
|
-
readonly indexer: string;
|
|
19
|
-
readonly indexerWS: string;
|
|
20
|
-
readonly node: string;
|
|
21
|
-
readonly proofServer: string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
class TestnetConfig implements Config {
|
|
25
|
-
logDir = "";
|
|
26
|
-
indexer = "https://indexer.testnet-02.midnight.network/api/v1/graphql";
|
|
27
|
-
indexerWS = "wss://indexer.testnet-02.midnight.network/api/v1/graphql/ws";
|
|
28
|
-
node = "https://rpc.testnet-02.midnight.network";
|
|
29
|
-
proofServer = "http://127.0.0.1:6300";
|
|
30
|
-
constructor() {
|
|
31
|
-
setNetworkId(NetworkId.TestNet);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
class StandaloneConfig implements Config {
|
|
36
|
-
logDir = "";
|
|
37
|
-
indexer = "http://127.0.0.1:8088/api/v1/graphql";
|
|
38
|
-
indexerWS = "ws://127.0.0.1:8088/api/v1/graphql/ws";
|
|
39
|
-
node = "http://127.0.0.1:9944";
|
|
40
|
-
proofServer = "http://127.0.0.1:6300";
|
|
41
|
-
constructor() {
|
|
42
|
-
setNetworkId(NetworkId.Undeployed);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Detect running Docker container ports
|
|
46
|
-
async detectRunningContainerPorts() {
|
|
47
|
-
try {
|
|
48
|
-
const { execSync } = await import("node:child_process");
|
|
49
|
-
|
|
50
|
-
// Get indexer port from running container
|
|
51
|
-
const indexerOutput = execSync("docker port counter-indexer 8088/tcp", {
|
|
52
|
-
encoding: "utf8",
|
|
53
|
-
});
|
|
54
|
-
const indexerPort = indexerOutput.split("\n")[0].split(":")[1];
|
|
55
|
-
if (indexerPort) {
|
|
56
|
-
this.indexer = `http://127.0.0.1:${indexerPort}/api/v1/graphql`;
|
|
57
|
-
this.indexerWS = `ws://127.0.0.1:${indexerPort}/api/v1/graphql/ws`;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// Get node port from running container
|
|
61
|
-
const nodeOutput = execSync("docker port counter-node 9944/tcp", {
|
|
62
|
-
encoding: "utf8",
|
|
63
|
-
});
|
|
64
|
-
const nodePort = nodeOutput.split("\n")[0].split(":")[1];
|
|
65
|
-
if (nodePort) {
|
|
66
|
-
this.node = `http://127.0.0.1:${nodePort}`;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Get proof server port from running container
|
|
70
|
-
const proofOutput = execSync(
|
|
71
|
-
"docker port counter-proof-server 6300/tcp",
|
|
72
|
-
{ encoding: "utf8" }
|
|
73
|
-
);
|
|
74
|
-
const proofPort = proofOutput.split("\n")[0].split(":")[1];
|
|
75
|
-
if (proofPort) {
|
|
76
|
-
this.proofServer = `http://127.0.0.1:${proofPort}`;
|
|
77
|
-
}
|
|
78
|
-
} catch (error) {
|
|
79
|
-
console.log(
|
|
80
|
-
"Could not detect running Docker container ports, using default ports"
|
|
81
|
-
);
|
|
82
|
-
console.log("Make sure Docker containers are running: docker ps");
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Logger setup
|
|
88
|
-
const logger: Logger = pino(
|
|
89
|
-
{
|
|
90
|
-
level:
|
|
91
|
-
process.env.DEBUG_LEVEL !== undefined &&
|
|
92
|
-
process.env.DEBUG_LEVEL !== null &&
|
|
93
|
-
process.env.DEBUG_LEVEL !== ""
|
|
94
|
-
? process.env.DEBUG_LEVEL
|
|
95
|
-
: "info",
|
|
96
|
-
depthLimit: 20,
|
|
97
|
-
},
|
|
98
|
-
pinoPretty({
|
|
99
|
-
colorize: true,
|
|
100
|
-
sync: true,
|
|
101
|
-
customColors: {
|
|
102
|
-
debug: "green",
|
|
103
|
-
},
|
|
104
|
-
})
|
|
105
|
-
);
|
|
106
|
-
|
|
107
|
-
// Default seeds for different networks
|
|
108
|
-
const GENESIS_MINT_WALLET_SEED =
|
|
109
|
-
"0000000000000000000000000000000000000000000000000000000000000001";
|
|
110
|
-
const TESTNET_DEFAULT_SEED =
|
|
111
|
-
"557beb4d4bd5c88948712fd375b20f44ed9f38ade5e6ee8c27ece84d26de1639";
|
|
112
|
-
|
|
113
|
-
export const buildWallet = async (
|
|
114
|
-
{ indexer, indexerWS, node, proofServer }: Config,
|
|
115
|
-
seed: string
|
|
116
|
-
): Promise<Wallet & Resource> => {
|
|
117
|
-
logger.info("Building wallet from seed...");
|
|
118
|
-
const wallet = await WalletBuilder.buildFromSeed(
|
|
119
|
-
indexer,
|
|
120
|
-
indexerWS,
|
|
121
|
-
proofServer,
|
|
122
|
-
node,
|
|
123
|
-
seed,
|
|
124
|
-
getZswapNetworkId(),
|
|
125
|
-
"info"
|
|
126
|
-
);
|
|
127
|
-
wallet.start();
|
|
128
|
-
return wallet;
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
function formatBalance(balance: bigint): string {
|
|
132
|
-
// Assuming tDUST has 9 decimal places
|
|
133
|
-
const divisor = 1_000_000_000n;
|
|
134
|
-
const whole = balance / divisor;
|
|
135
|
-
const fraction = balance % divisor;
|
|
136
|
-
|
|
137
|
-
// Format with decimal point
|
|
138
|
-
const fractionStr = fraction.toString().padStart(9, '0');
|
|
139
|
-
const trimmedFraction = fractionStr.replace(/0+$/, ''); // Remove trailing zeros
|
|
140
|
-
|
|
141
|
-
if (trimmedFraction === '') {
|
|
142
|
-
return `${whole}`;
|
|
143
|
-
} else {
|
|
144
|
-
return `${whole}.${trimmedFraction}`;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
function showUsage() {
|
|
149
|
-
console.log(`
|
|
150
|
-
🚀 Midnight Wallet Balance Monitor
|
|
151
|
-
|
|
152
|
-
Usage:
|
|
153
|
-
bun run wallet.ts <network> [seed]
|
|
154
|
-
|
|
155
|
-
Networks:
|
|
156
|
-
standalone Connect to local standalone network
|
|
157
|
-
testnet Connect to remote testnet
|
|
158
|
-
|
|
159
|
-
Seed:
|
|
160
|
-
Optional wallet seed (hex string)
|
|
161
|
-
If not provided, uses default seed for the network
|
|
162
|
-
|
|
163
|
-
Examples:
|
|
164
|
-
bun run wallet.ts testnet
|
|
165
|
-
bun run wallet.ts standalone
|
|
166
|
-
bun run wallet.ts testnet 557beb4d4bd5c88948712fd375b20f44ed9f38ade5e6ee8c27ece84d26de1639
|
|
167
|
-
|
|
168
|
-
Environment Variables:
|
|
169
|
-
WALLET_SEED Set wallet seed via environment variable
|
|
170
|
-
DEBUG_LEVEL Set log level (debug, info, warn, error)
|
|
171
|
-
`);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
async function main() {
|
|
175
|
-
const args = process.argv.slice(2);
|
|
176
|
-
const networkType = args[0];
|
|
177
|
-
|
|
178
|
-
if (!networkType || !["testnet", "standalone"].includes(networkType)) {
|
|
179
|
-
showUsage();
|
|
180
|
-
process.exit(1);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// Get seed from args, env, or use default
|
|
184
|
-
let seed = args[1] || process.env.WALLET_SEED;
|
|
185
|
-
if (!seed) {
|
|
186
|
-
seed = networkType === "standalone" ? GENESIS_MINT_WALLET_SEED : TESTNET_DEFAULT_SEED;
|
|
187
|
-
logger.info(`Using default seed for ${networkType}`);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
logger.info(`Starting wallet monitor for ${networkType} network`);
|
|
191
|
-
|
|
192
|
-
// Configure network
|
|
193
|
-
let config: Config;
|
|
194
|
-
if (networkType === "testnet") {
|
|
195
|
-
config = new TestnetConfig();
|
|
196
|
-
} else {
|
|
197
|
-
config = new StandaloneConfig();
|
|
198
|
-
// Detect running Docker container ports
|
|
199
|
-
await (config as StandaloneConfig).detectRunningContainerPorts();
|
|
200
|
-
logger.info(
|
|
201
|
-
`Using ports - Indexer: ${config.indexer}, Node: ${config.node}, Proof: ${config.proofServer}`
|
|
202
|
-
);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
let wallet: (Wallet & Resource) | null = null;
|
|
206
|
-
|
|
207
|
-
try {
|
|
208
|
-
// Build wallet
|
|
209
|
-
wallet = await buildWallet(config, seed);
|
|
210
|
-
|
|
211
|
-
// Get initial state
|
|
212
|
-
const initialState = await Rx.firstValueFrom(wallet.state());
|
|
213
|
-
logger.info(`Wallet address: ${initialState.address}`);
|
|
214
|
-
logger.info(`Encryption public key: ${initialState.encryptionPublicKey}`);
|
|
215
|
-
logger.info(`Coin public key: ${initialState.coinPublicKey}`);
|
|
216
|
-
|
|
217
|
-
// Monitor wallet state
|
|
218
|
-
logger.info("Starting balance monitor (Ctrl+C to exit)...\n");
|
|
219
|
-
|
|
220
|
-
let lastBalance: bigint | undefined = undefined;
|
|
221
|
-
let lastTxCount = 0;
|
|
222
|
-
let lastBlockHeight: bigint | undefined = undefined;
|
|
223
|
-
|
|
224
|
-
const subscription = wallet.state().pipe(
|
|
225
|
-
Rx.throttleTime(2000), // Update every 2 seconds
|
|
226
|
-
).subscribe((state) => {
|
|
227
|
-
const balance = state.balances[nativeToken()] ?? 0n;
|
|
228
|
-
const applyGap = state.syncProgress?.lag.applyGap ?? 0n;
|
|
229
|
-
const sourceGap = state.syncProgress?.lag.sourceGap ?? 0n;
|
|
230
|
-
const synced = state.syncProgress?.synced ? "✓" : "⟳";
|
|
231
|
-
const txCount = state.transactionHistory.length;
|
|
232
|
-
|
|
233
|
-
// Check if significant changes occurred
|
|
234
|
-
const balanceChanged = lastBalance !== undefined && lastBalance !== balance;
|
|
235
|
-
const txCountChanged = lastTxCount !== txCount;
|
|
236
|
-
|
|
237
|
-
// Build status line
|
|
238
|
-
const statusLine =
|
|
239
|
-
`[${new Date().toLocaleTimeString()}] ` +
|
|
240
|
-
`Balance: ${formatBalance(balance)} tDUST | ` +
|
|
241
|
-
`Sync: ${synced} | ` +
|
|
242
|
-
`Backend lag: ${sourceGap} | ` +
|
|
243
|
-
`Wallet lag: ${applyGap} | ` +
|
|
244
|
-
`Txs: ${txCount}`;
|
|
245
|
-
|
|
246
|
-
// Add change indicators
|
|
247
|
-
const changes = [];
|
|
248
|
-
if (balanceChanged) changes.push(`Balance: ${formatBalance(lastBalance!)} → ${formatBalance(balance)}`);
|
|
249
|
-
if (txCountChanged) changes.push(`New txs: ${txCount - lastTxCount}`);
|
|
250
|
-
|
|
251
|
-
if (changes.length > 0) {
|
|
252
|
-
console.log(statusLine + ` | ⚡ ${changes.join(', ')}`);
|
|
253
|
-
} else {
|
|
254
|
-
console.log(statusLine);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
// Update last values
|
|
258
|
-
lastBalance = balance;
|
|
259
|
-
lastTxCount = txCount;
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
// Handle graceful shutdown
|
|
263
|
-
process.on('SIGINT', async () => {
|
|
264
|
-
logger.info('\n\nShutting down wallet monitor...');
|
|
265
|
-
subscription.unsubscribe();
|
|
266
|
-
if (wallet) {
|
|
267
|
-
await wallet.close();
|
|
268
|
-
logger.info('Wallet closed');
|
|
269
|
-
}
|
|
270
|
-
process.exit(0);
|
|
271
|
-
});
|
|
272
|
-
|
|
273
|
-
// Keep the process running
|
|
274
|
-
await new Promise(() => {});
|
|
275
|
-
|
|
276
|
-
} catch (error) {
|
|
277
|
-
logger.error("Wallet monitor failed:", error);
|
|
278
|
-
throw error;
|
|
279
|
-
} finally {
|
|
280
|
-
if (wallet) {
|
|
281
|
-
await wallet.close();
|
|
282
|
-
logger.info("Wallet closed");
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
if (import.meta.main) {
|
|
288
|
-
main().catch(console.error);
|
|
289
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export function domainToKey(name: string): { key: Uint8Array; len: bigint } {
|
|
2
|
-
const bytes = new TextEncoder().encode(name);
|
|
3
|
-
if (bytes.length === 0 || bytes.length > 32)
|
|
4
|
-
throw new Error(`Domain name must be 1-32 bytes, got ${bytes.length}`);
|
|
5
|
-
const key = new Uint8Array(32).fill(255);
|
|
6
|
-
key.set(bytes);
|
|
7
|
-
return { key, len: BigInt(bytes.length) };
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export function keyToDomain(key: Uint8Array): string {
|
|
11
|
-
let len = 32;
|
|
12
|
-
for (let i = 0; i < 32; i++) {
|
|
13
|
-
if (key[i] === 255) { len = i; break; }
|
|
14
|
-
}
|
|
15
|
-
return new TextDecoder().decode(key.subarray(0, len));
|
|
16
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from "vitest/config";
|
|
2
|
-
|
|
3
|
-
export default defineConfig({
|
|
4
|
-
mode: "node",
|
|
5
|
-
test: {
|
|
6
|
-
deps: {
|
|
7
|
-
interopDefault: true
|
|
8
|
-
},
|
|
9
|
-
globals: true,
|
|
10
|
-
environment: "node",
|
|
11
|
-
include: ["**/*.test.ts"],
|
|
12
|
-
exclude: ["node_modules"],
|
|
13
|
-
root: ".",
|
|
14
|
-
coverage: {
|
|
15
|
-
provider: "v8",
|
|
16
|
-
reporter: ["text", "json", "html"],
|
|
17
|
-
thresholds: {
|
|
18
|
-
branches: 50,
|
|
19
|
-
functions: 73,
|
|
20
|
-
lines: 72,
|
|
21
|
-
statements: -269
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
reporters: ["default", ["junit", { outputFile: "reports/report.xml" }]]
|
|
25
|
-
},
|
|
26
|
-
resolve: {
|
|
27
|
-
extensions: [".ts", ".js"],
|
|
28
|
-
conditions: ["import", "node", "default"]
|
|
29
|
-
}
|
|
30
|
-
});
|