@geeqdev/geeq-sdk 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/geeq_sdk.iml +12 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/.nvmrc +1 -0
- package/CONTRIBUTING.md +20 -0
- package/dist/src/address/record-type.d.ts +10 -0
- package/dist/src/address/record-type.js +59 -0
- package/dist/src/address/record-type.js.map +1 -0
- package/dist/src/address/wallet-address.d.ts +34 -0
- package/dist/src/address/wallet-address.js +90 -0
- package/dist/src/address/wallet-address.js.map +1 -0
- package/dist/src/amount.d.ts +43 -0
- package/dist/src/amount.js +105 -0
- package/dist/src/amount.js.map +1 -0
- package/dist/src/assert.d.ts +12 -0
- package/dist/src/assert.js +24 -0
- package/dist/src/assert.js.map +1 -0
- package/dist/src/capnp/adminNetTx.capnp.d.ts +75 -0
- package/dist/src/capnp/adminNetTx.capnp.js +66 -0
- package/dist/src/capnp/adminNetTx.capnp.js.map +1 -0
- package/dist/src/capnp/appLayBlock.capnp.d.ts +26 -0
- package/dist/src/capnp/appLayBlock.capnp.js +24 -0
- package/dist/src/capnp/appLayBlock.capnp.js.map +1 -0
- package/dist/src/capnp/appLayLedger.capnp.d.ts +34 -0
- package/dist/src/capnp/appLayLedger.capnp.js +32 -0
- package/dist/src/capnp/appLayLedger.capnp.js.map +1 -0
- package/dist/src/capnp/appLayRec.capnp.d.ts +129 -0
- package/dist/src/capnp/appLayRec.capnp.js +156 -0
- package/dist/src/capnp/appLayRec.capnp.js.map +1 -0
- package/dist/src/capnp/chainStateView.capnp.d.ts +50 -0
- package/dist/src/capnp/chainStateView.capnp.js +48 -0
- package/dist/src/capnp/chainStateView.capnp.js.map +1 -0
- package/dist/src/capnp/coinAcctRec.capnp.d.ts +178 -0
- package/dist/src/capnp/coinAcctRec.capnp.js +189 -0
- package/dist/src/capnp/coinAcctRec.capnp.js.map +1 -0
- package/dist/src/capnp/genesisBlock.capnp.d.ts +61 -0
- package/dist/src/capnp/genesisBlock.capnp.js +55 -0
- package/dist/src/capnp/genesisBlock.capnp.js.map +1 -0
- package/dist/src/capnp/hubContentStmt.capnp.d.ts +63 -0
- package/dist/src/capnp/hubContentStmt.capnp.js +57 -0
- package/dist/src/capnp/hubContentStmt.capnp.js.map +1 -0
- package/dist/src/capnp/misc.capnp.d.ts +20 -0
- package/dist/src/capnp/misc.capnp.js +18 -0
- package/dist/src/capnp/misc.capnp.js.map +1 -0
- package/dist/src/capnp/netActorRec.capnp.d.ts +65 -0
- package/dist/src/capnp/netActorRec.capnp.js +65 -0
- package/dist/src/capnp/netActorRec.capnp.js.map +1 -0
- package/dist/src/capnp/nodeContentStmt.capnp.d.ts +67 -0
- package/dist/src/capnp/nodeContentStmt.capnp.js +61 -0
- package/dist/src/capnp/nodeContentStmt.capnp.js.map +1 -0
- package/dist/src/capnp/nodePayloadList.capnp.d.ts +28 -0
- package/dist/src/capnp/nodePayloadList.capnp.js +26 -0
- package/dist/src/capnp/nodePayloadList.capnp.js.map +1 -0
- package/dist/src/capnp/nodeTxList.capnp.d.ts +36 -0
- package/dist/src/capnp/nodeTxList.capnp.js +34 -0
- package/dist/src/capnp/nodeTxList.capnp.js.map +1 -0
- package/dist/src/capnp/paramAcctRec.capnp.d.ts +338 -0
- package/dist/src/capnp/paramAcctRec.capnp.js +669 -0
- package/dist/src/capnp/paramAcctRec.capnp.js.map +1 -0
- package/dist/src/capnp/payload.capnp.d.ts +237 -0
- package/dist/src/capnp/payload.capnp.js +260 -0
- package/dist/src/capnp/payload.capnp.js.map +1 -0
- package/dist/src/capnp/proxyAcctRec.capnp.d.ts +223 -0
- package/dist/src/capnp/proxyAcctRec.capnp.js +255 -0
- package/dist/src/capnp/proxyAcctRec.capnp.js.map +1 -0
- package/dist/src/capnp/relayContentStmt.capnp.d.ts +82 -0
- package/dist/src/capnp/relayContentStmt.capnp.js +85 -0
- package/dist/src/capnp/relayContentStmt.capnp.js.map +1 -0
- package/dist/src/capnp/sysAcctRec.capnp.d.ts +48 -0
- package/dist/src/capnp/sysAcctRec.capnp.js +46 -0
- package/dist/src/capnp/sysAcctRec.capnp.js.map +1 -0
- package/dist/src/capnp/userAppTx.capnp.d.ts +230 -0
- package/dist/src/capnp/userAppTx.capnp.js +270 -0
- package/dist/src/capnp/userAppTx.capnp.js.map +1 -0
- package/dist/src/capnp/userValTx.capnp.d.ts +1575 -0
- package/dist/src/capnp/userValTx.capnp.js +2004 -0
- package/dist/src/capnp/userValTx.capnp.js.map +1 -0
- package/dist/src/capnp/valLayBlock.capnp.d.ts +88 -0
- package/dist/src/capnp/valLayBlock.capnp.js +86 -0
- package/dist/src/capnp/valLayBlock.capnp.js.map +1 -0
- package/dist/src/capnp/valLayLedger.capnp.d.ts +85 -0
- package/dist/src/capnp/valLayLedger.capnp.js +75 -0
- package/dist/src/capnp/valLayLedger.capnp.js.map +1 -0
- package/dist/src/chain/geeq-chain.d.ts +474 -0
- package/dist/src/chain/geeq-chain.js +721 -0
- package/dist/src/chain/geeq-chain.js.map +1 -0
- package/dist/src/chain/geeq-node.d.ts +57 -0
- package/dist/src/chain/geeq-node.js +62 -0
- package/dist/src/chain/geeq-node.js.map +1 -0
- package/dist/src/chain/nonce-guard.d.ts +42 -0
- package/dist/src/chain/nonce-guard.js +68 -0
- package/dist/src/chain/nonce-guard.js.map +1 -0
- package/dist/src/chain/select.d.ts +40 -0
- package/dist/src/chain/select.js +114 -0
- package/dist/src/chain/select.js.map +1 -0
- package/dist/src/crypto/account-id.d.ts +35 -0
- package/dist/src/crypto/account-id.js +58 -0
- package/dist/src/crypto/account-id.js.map +1 -0
- package/dist/src/crypto/keypair.d.ts +24 -0
- package/dist/src/crypto/keypair.js +158 -0
- package/dist/src/crypto/keypair.js.map +1 -0
- package/dist/src/crypto/mnemonic.d.ts +34 -0
- package/dist/src/crypto/mnemonic.js +57 -0
- package/dist/src/crypto/mnemonic.js.map +1 -0
- package/dist/src/encoding/base64.d.ts +8 -0
- package/dist/src/encoding/base64.js +53 -0
- package/dist/src/encoding/base64.js.map +1 -0
- package/dist/src/encoding/hex.d.ts +2 -0
- package/dist/src/encoding/hex.js +35 -0
- package/dist/src/encoding/hex.js.map +1 -0
- package/dist/src/errors.d.ts +83 -0
- package/dist/src/errors.js +49 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/index.d.ts +59 -0
- package/dist/src/index.js +53 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/ledger/coin-accounts.d.ts +42 -0
- package/dist/src/ledger/coin-accounts.js +37 -0
- package/dist/src/ledger/coin-accounts.js.map +1 -0
- package/dist/src/ledger/decode.d.ts +18 -0
- package/dist/src/ledger/decode.js +113 -0
- package/dist/src/ledger/decode.js.map +1 -0
- package/dist/src/ledger/geeq-ledger.d.ts +99 -0
- package/dist/src/ledger/geeq-ledger.js +125 -0
- package/dist/src/ledger/geeq-ledger.js.map +1 -0
- package/dist/src/ledger/net-actors.d.ts +65 -0
- package/dist/src/ledger/net-actors.js +53 -0
- package/dist/src/ledger/net-actors.js.map +1 -0
- package/dist/src/ledger/nft-records.d.ts +13 -0
- package/dist/src/ledger/nft-records.js +41 -0
- package/dist/src/ledger/nft-records.js.map +1 -0
- package/dist/src/ledger/params.d.ts +34 -0
- package/dist/src/ledger/params.js +71 -0
- package/dist/src/ledger/params.js.map +1 -0
- package/dist/src/ledger/proxy-accounts.d.ts +26 -0
- package/dist/src/ledger/proxy-accounts.js +27 -0
- package/dist/src/ledger/proxy-accounts.js.map +1 -0
- package/dist/src/net/discovery.d.ts +62 -0
- package/dist/src/net/discovery.js +136 -0
- package/dist/src/net/discovery.js.map +1 -0
- package/dist/src/net/explorer.d.ts +57 -0
- package/dist/src/net/explorer.js +64 -0
- package/dist/src/net/explorer.js.map +1 -0
- package/dist/src/net/read-ledger.d.ts +7 -0
- package/dist/src/net/read-ledger.js +39 -0
- package/dist/src/net/read-ledger.js.map +1 -0
- package/dist/src/net/routes.d.ts +49 -0
- package/dist/src/net/routes.js +70 -0
- package/dist/src/net/routes.js.map +1 -0
- package/dist/src/net/transport.d.ts +55 -0
- package/dist/src/net/transport.js +168 -0
- package/dist/src/net/transport.js.map +1 -0
- package/dist/src/net/websocket.d.ts +49 -0
- package/dist/src/net/websocket.js +54 -0
- package/dist/src/net/websocket.js.map +1 -0
- package/dist/src/runtime/bindings.d.ts +9 -0
- package/dist/src/runtime/bindings.js +27 -0
- package/dist/src/runtime/bindings.js.map +1 -0
- package/dist/src/runtime/init.d.ts +13 -0
- package/dist/src/runtime/init.js +40 -0
- package/dist/src/runtime/init.js.map +1 -0
- package/dist/src/runtime/wasm-loader.browser.d.ts +14 -0
- package/dist/src/runtime/wasm-loader.browser.js +20 -0
- package/dist/src/runtime/wasm-loader.browser.js.map +1 -0
- package/dist/src/runtime/wasm-loader.node.d.ts +7 -0
- package/dist/src/runtime/wasm-loader.node.js +14 -0
- package/dist/src/runtime/wasm-loader.node.js.map +1 -0
- package/dist/src/socket/geeq-socket.d.ts +232 -0
- package/dist/src/socket/geeq-socket.js +634 -0
- package/dist/src/socket/geeq-socket.js.map +1 -0
- package/dist/src/socket/tracked-tx.d.ts +148 -0
- package/dist/src/socket/tracked-tx.js +212 -0
- package/dist/src/socket/tracked-tx.js.map +1 -0
- package/dist/src/socket/tx-status.d.ts +69 -0
- package/dist/src/socket/tx-status.js +72 -0
- package/dist/src/socket/tx-status.js.map +1 -0
- package/dist/src/tx/attestation.d.ts +60 -0
- package/dist/src/tx/attestation.js +163 -0
- package/dist/src/tx/attestation.js.map +1 -0
- package/dist/src/tx/content.d.ts +27 -0
- package/dist/src/tx/content.js +62 -0
- package/dist/src/tx/content.js.map +1 -0
- package/dist/src/tx/encode.d.ts +60 -0
- package/dist/src/tx/encode.js +82 -0
- package/dist/src/tx/encode.js.map +1 -0
- package/dist/src/tx/expiry.d.ts +11 -0
- package/dist/src/tx/expiry.js +12 -0
- package/dist/src/tx/expiry.js.map +1 -0
- package/dist/src/tx/fee.d.ts +16 -0
- package/dist/src/tx/fee.js +29 -0
- package/dist/src/tx/fee.js.map +1 -0
- package/dist/src/tx/metadata.d.ts +39 -0
- package/dist/src/tx/metadata.js +66 -0
- package/dist/src/tx/metadata.js.map +1 -0
- package/dist/src/tx/nft.d.ts +16 -0
- package/dist/src/tx/nft.js +98 -0
- package/dist/src/tx/nft.js.map +1 -0
- package/dist/src/tx/proxy.d.ts +37 -0
- package/dist/src/tx/proxy.js +134 -0
- package/dist/src/tx/proxy.js.map +1 -0
- package/dist/src/tx/transfer.d.ts +31 -0
- package/dist/src/tx/transfer.js +123 -0
- package/dist/src/tx/transfer.js.map +1 -0
- package/dist/src/types.d.ts +448 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/tests/account-id.test.d.ts +1 -0
- package/dist/tests/account-id.test.js +27 -0
- package/dist/tests/account-id.test.js.map +1 -0
- package/dist/tests/amount.test.d.ts +1 -0
- package/dist/tests/amount.test.js +113 -0
- package/dist/tests/amount.test.js.map +1 -0
- package/dist/tests/attestation.test.d.ts +1 -0
- package/dist/tests/attestation.test.js +182 -0
- package/dist/tests/attestation.test.js.map +1 -0
- package/dist/tests/chain.test.d.ts +1 -0
- package/dist/tests/chain.test.js +647 -0
- package/dist/tests/chain.test.js.map +1 -0
- package/dist/tests/content.test.d.ts +1 -0
- package/dist/tests/content.test.js +90 -0
- package/dist/tests/content.test.js.map +1 -0
- package/dist/tests/documented-api.test.d.ts +1 -0
- package/dist/tests/documented-api.test.js +229 -0
- package/dist/tests/documented-api.test.js.map +1 -0
- package/dist/tests/explorer.test.d.ts +1 -0
- package/dist/tests/explorer.test.js +95 -0
- package/dist/tests/explorer.test.js.map +1 -0
- package/dist/tests/fee.test.d.ts +1 -0
- package/dist/tests/fee.test.js +179 -0
- package/dist/tests/fee.test.js.map +1 -0
- package/dist/tests/fixtures/build-vll.d.ts +71 -0
- package/dist/tests/fixtures/build-vll.js +141 -0
- package/dist/tests/fixtures/build-vll.js.map +1 -0
- package/dist/tests/fixtures/fake-socket.d.ts +44 -0
- package/dist/tests/fixtures/fake-socket.js +93 -0
- package/dist/tests/fixtures/fake-socket.js.map +1 -0
- package/dist/tests/fixtures/fake-transport.d.ts +24 -0
- package/dist/tests/fixtures/fake-transport.js +30 -0
- package/dist/tests/fixtures/fake-transport.js.map +1 -0
- package/dist/tests/keypair.test.d.ts +1 -0
- package/dist/tests/keypair.test.js +163 -0
- package/dist/tests/keypair.test.js.map +1 -0
- package/dist/tests/ledger.test.d.ts +1 -0
- package/dist/tests/ledger.test.js +234 -0
- package/dist/tests/ledger.test.js.map +1 -0
- package/dist/tests/mnemonic.test.d.ts +1 -0
- package/dist/tests/mnemonic.test.js +97 -0
- package/dist/tests/mnemonic.test.js.map +1 -0
- package/dist/tests/nft-transfer.test.d.ts +1 -0
- package/dist/tests/nft-transfer.test.js +170 -0
- package/dist/tests/nft-transfer.test.js.map +1 -0
- package/dist/tests/nft.test.d.ts +1 -0
- package/dist/tests/nft.test.js +180 -0
- package/dist/tests/nft.test.js.map +1 -0
- package/dist/tests/offline.test.d.ts +1 -0
- package/dist/tests/offline.test.js +95 -0
- package/dist/tests/offline.test.js.map +1 -0
- package/dist/tests/proxy.test.d.ts +1 -0
- package/dist/tests/proxy.test.js +183 -0
- package/dist/tests/proxy.test.js.map +1 -0
- package/dist/tests/select.test.d.ts +1 -0
- package/dist/tests/select.test.js +200 -0
- package/dist/tests/select.test.js.map +1 -0
- package/dist/tests/socket.test.d.ts +1 -0
- package/dist/tests/socket.test.js +607 -0
- package/dist/tests/socket.test.js.map +1 -0
- package/dist/tests/transfer.test.d.ts +1 -0
- package/dist/tests/transfer.test.js +225 -0
- package/dist/tests/transfer.test.js.map +1 -0
- package/dist/tests/wallet-address.test.d.ts +1 -0
- package/dist/tests/wallet-address.test.js +101 -0
- package/dist/tests/wallet-address.test.js.map +1 -0
- package/dist/tests/wasm-loader.jest.d.ts +13 -0
- package/dist/tests/wasm-loader.jest.js +15 -0
- package/dist/tests/wasm-loader.jest.js.map +1 -0
- package/example/.env.example +4 -0
- package/example/README.md +304 -0
- package/example/USAGE.md +74 -0
- package/example/index.html +12 -0
- package/example/package-lock.json +1557 -0
- package/example/package.json +25 -0
- package/example/scripts/browser-check.mjs +1421 -0
- package/example/scripts/match-derivation.mjs +65 -0
- package/example/src/App.vue +138 -0
- package/example/src/components/AuthorityPanel.vue +277 -0
- package/example/src/components/ChainPanel.vue +267 -0
- package/example/src/components/ChainState.vue +59 -0
- package/example/src/components/CopyButton.vue +25 -0
- package/example/src/components/CreateAssetPanel.vue +313 -0
- package/example/src/components/DigitalAssetsPanel.vue +68 -0
- package/example/src/components/EvidencePanel.vue +396 -0
- package/example/src/components/ExplorerPanel.vue +119 -0
- package/example/src/components/KeypairPanel.vue +182 -0
- package/example/src/components/PhrasePanel.vue +105 -0
- package/example/src/components/SocketWarning.vue +18 -0
- package/example/src/components/StepGate.vue +24 -0
- package/example/src/components/TransferPanel.vue +416 -0
- package/example/src/components/TxDeadline.vue +19 -0
- package/example/src/components/TxFee.vue +31 -0
- package/example/src/components/TxStatus.vue +105 -0
- package/example/src/composables/useSocketConnection.ts +80 -0
- package/example/src/env.d.ts +12 -0
- package/example/src/main.ts +5 -0
- package/example/src/pennies.ts +7 -0
- package/example/src/style.css +149 -0
- package/example/tsconfig.json +19 -0
- package/example/vite.config.ts +26 -0
- package/jest.config.js +18 -0
- package/package.json +2 -6
- package/scripts/copy-wasm.mjs +21 -0
- package/scripts/smoke.mjs +382 -0
- package/src/address/record-type.ts +77 -0
- package/src/address/wallet-address.ts +105 -0
- package/src/amount.ts +143 -0
- package/src/assert.ts +30 -0
- package/src/capnp/README.md +15 -0
- package/src/capnp/adminNetTx.capnp.ts +66 -0
- package/src/capnp/appLayBlock.capnp.ts +26 -0
- package/src/capnp/appLayLedger.capnp.ts +35 -0
- package/src/capnp/appLayRec.capnp.ts +159 -0
- package/src/capnp/chainStateView.capnp.ts +49 -0
- package/src/capnp/coinAcctRec.capnp.ts +193 -0
- package/src/capnp/genesisBlock.capnp.ts +56 -0
- package/src/capnp/hubContentStmt.capnp.ts +59 -0
- package/src/capnp/misc.capnp.ts +19 -0
- package/src/capnp/netActorRec.capnp.ts +64 -0
- package/src/capnp/nodeContentStmt.capnp.ts +62 -0
- package/src/capnp/nodePayloadList.capnp.ts +28 -0
- package/src/capnp/nodeTxList.capnp.ts +37 -0
- package/src/capnp/paramAcctRec.capnp.ts +669 -0
- package/src/capnp/payload.capnp.ts +261 -0
- package/src/capnp/proxyAcctRec.capnp.ts +259 -0
- package/src/capnp/relayContentStmt.capnp.ts +85 -0
- package/src/capnp/sysAcctRec.capnp.ts +47 -0
- package/src/capnp/userAppTx.capnp.ts +269 -0
- package/src/capnp/userValTx.capnp.ts +1999 -0
- package/src/capnp/valLayBlock.capnp.ts +93 -0
- package/src/capnp/valLayLedger.capnp.ts +80 -0
- package/src/chain/geeq-chain.ts +1094 -0
- package/src/chain/geeq-node.ts +105 -0
- package/src/chain/nonce-guard.ts +73 -0
- package/src/chain/select.ts +149 -0
- package/src/crypto/account-id.ts +83 -0
- package/src/crypto/keypair.ts +221 -0
- package/src/crypto/mnemonic.ts +69 -0
- package/src/encoding/base64.ts +58 -0
- package/src/encoding/hex.ts +42 -0
- package/src/errors.ts +122 -0
- package/src/index.ts +195 -0
- package/src/ledger/coin-accounts.ts +73 -0
- package/src/ledger/decode.ts +147 -0
- package/src/ledger/geeq-ledger.ts +184 -0
- package/src/ledger/net-actors.ts +129 -0
- package/src/ledger/nft-records.ts +49 -0
- package/src/ledger/params.ts +82 -0
- package/src/ledger/proxy-accounts.ts +51 -0
- package/src/net/discovery.ts +231 -0
- package/src/net/explorer.ts +123 -0
- package/src/net/read-ledger.ts +58 -0
- package/src/net/routes.ts +79 -0
- package/src/net/transport.ts +221 -0
- package/src/net/websocket.ts +94 -0
- package/src/runtime/bindings.ts +38 -0
- package/src/runtime/init.ts +49 -0
- package/src/runtime/wasm-loader.browser.ts +22 -0
- package/src/runtime/wasm-loader.node.ts +16 -0
- package/src/socket/geeq-socket.ts +827 -0
- package/src/socket/tracked-tx.ts +319 -0
- package/src/socket/tx-status.ts +131 -0
- package/src/tx/attestation.ts +222 -0
- package/src/tx/content.ts +82 -0
- package/src/tx/encode.ts +107 -0
- package/src/tx/expiry.ts +11 -0
- package/src/tx/fee.ts +31 -0
- package/src/tx/metadata.ts +100 -0
- package/src/tx/nft.ts +108 -0
- package/src/tx/proxy.ts +156 -0
- package/src/tx/transfer.ts +162 -0
- package/src/types.ts +503 -0
- package/src/wasm/README.md +22 -0
- package/src/wasm/browser/geeq_core.d.ts +1224 -0
- package/src/wasm/browser/geeq_core.js +6014 -0
- package/src/wasm/browser/geeq_core_bg.wasm +0 -0
- package/src/wasm/browser/geeq_core_bg.wasm.d.ts +447 -0
- package/src/wasm/nodejs/geeq_core.d.ts +753 -0
- package/src/wasm/nodejs/geeq_core.js +6016 -0
- package/src/wasm/nodejs/geeq_core_bg.wasm +0 -0
- package/src/wasm/nodejs/geeq_core_bg.wasm.d.ts +447 -0
- package/src/wasm/nodejs/package.json +3 -0
- package/tsconfig.build.json +8 -0
- package/tsconfig.json +21 -0
- package/tsup.config.ts +60 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<module type="WEB_MODULE" version="4">
|
|
3
|
+
<component name="NewModuleRootManager">
|
|
4
|
+
<content url="file://$MODULE_DIR$">
|
|
5
|
+
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
|
6
|
+
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
|
7
|
+
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
|
8
|
+
</content>
|
|
9
|
+
<orderEntry type="inheritedJdk" />
|
|
10
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
|
11
|
+
</component>
|
|
12
|
+
</module>
|
package/.idea/vcs.xml
ADDED
package/.nvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
22
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Working on the SDK
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
npm install
|
|
5
|
+
npm test # unit tests, no network needed
|
|
6
|
+
npm run typecheck
|
|
7
|
+
npm run build # builds browser + Node bundles, types, and the engine
|
|
8
|
+
npm run smoke # tests the built package
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Everything installs from the public npm registry. The two parts that come from Geeq's
|
|
12
|
+
private repositories are vendored: the WASM engine in [`src/wasm`](./src/wasm/README.md)
|
|
13
|
+
and the Cap'n Proto schemas in [`src/capnp`](./src/capnp/README.md).
|
|
14
|
+
|
|
15
|
+
A full Vue 3 integration example lives in [`example/`](./example). It uses the SDK from
|
|
16
|
+
this folder (`file:..`), so run `npm run build` here before starting it.
|
|
17
|
+
|
|
18
|
+
**Update the README whenever the SDK changes.** It is the package's page on npm, and
|
|
19
|
+
`tests/documented-api.test.ts` checks that its Reference section and Quick start still
|
|
20
|
+
match the code.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GeeqCoinType, GeeqRecordType } from '../types';
|
|
2
|
+
/** Every record type this SDK understands, for validation and tooling. */
|
|
3
|
+
export declare const GEEQ_RECORD_TYPES: readonly GeeqRecordType[];
|
|
4
|
+
export declare const DEFAULT_RECORD_TYPE: GeeqRecordType;
|
|
5
|
+
/** @internal */
|
|
6
|
+
export declare function toWasmRecordType(recordType: GeeqRecordType): number;
|
|
7
|
+
/** @internal */
|
|
8
|
+
export declare function fromWasmRecordType(value: number): GeeqRecordType;
|
|
9
|
+
/** @internal */
|
|
10
|
+
export declare function toWasmCoinType(coinType: GeeqCoinType): number;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { invalidArgument } from '../errors';
|
|
2
|
+
import { WasmCoinType, WasmRecordType } from '../runtime/bindings';
|
|
3
|
+
/**
|
|
4
|
+
* Applications speak in readable record-type names; the protocol speaks in
|
|
5
|
+
* numbers. This is the only place the two vocabularies meet.
|
|
6
|
+
*/
|
|
7
|
+
const RECORD_TYPE_TO_WASM = {
|
|
8
|
+
'app-counterparty': WasmRecordType.AppCounterparty,
|
|
9
|
+
'app-dce': WasmRecordType.AppDce,
|
|
10
|
+
'app-nft': WasmRecordType.AppNft,
|
|
11
|
+
'app-stackable': WasmRecordType.AppStackable,
|
|
12
|
+
'coin-asset': WasmRecordType.CoinAsset,
|
|
13
|
+
'coin-hl': WasmRecordType.CoinHl,
|
|
14
|
+
'coin-micro': WasmRecordType.CoinMicro,
|
|
15
|
+
'gt-nwa': WasmRecordType.GtNwa,
|
|
16
|
+
'param-boolean': WasmRecordType.ParamBoolean,
|
|
17
|
+
'param-count-2': WasmRecordType.ParamCount2,
|
|
18
|
+
'param-count-8': WasmRecordType.ParamCount8,
|
|
19
|
+
'proxy-nft-mint': WasmRecordType.ProxyNftMint,
|
|
20
|
+
'proxy-funding': WasmRecordType.ProxyFunding,
|
|
21
|
+
'proxy-multisig': WasmRecordType.ProxyMultisig,
|
|
22
|
+
'proxy-dce': WasmRecordType.ProxyDce,
|
|
23
|
+
'proxy-token-mint': WasmRecordType.ProxyTokenMint,
|
|
24
|
+
sys: WasmRecordType.Sys,
|
|
25
|
+
};
|
|
26
|
+
const WASM_TO_RECORD_TYPE = new Map(Object.entries(RECORD_TYPE_TO_WASM).map(([name, value]) => [value, name]));
|
|
27
|
+
/** Every record type this SDK understands, for validation and tooling. */
|
|
28
|
+
export const GEEQ_RECORD_TYPES = Object.freeze(Object.keys(RECORD_TYPE_TO_WASM));
|
|
29
|
+
export const DEFAULT_RECORD_TYPE = 'coin-asset';
|
|
30
|
+
/** @internal */
|
|
31
|
+
export function toWasmRecordType(recordType) {
|
|
32
|
+
const value = RECORD_TYPE_TO_WASM[recordType];
|
|
33
|
+
if (value === undefined) {
|
|
34
|
+
throw invalidArgument(`Unknown record type "${String(recordType)}". Expected one of: ${GEEQ_RECORD_TYPES.join(', ')}.`);
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
/** @internal */
|
|
39
|
+
export function fromWasmRecordType(value) {
|
|
40
|
+
const name = WASM_TO_RECORD_TYPE.get(value);
|
|
41
|
+
if (name === undefined) {
|
|
42
|
+
throw invalidArgument(`The engine returned record type ${value}, which this SDK version does not know. ` +
|
|
43
|
+
'Your SDK is probably older than the chain you are talking to.');
|
|
44
|
+
}
|
|
45
|
+
return name;
|
|
46
|
+
}
|
|
47
|
+
const COIN_TYPE_TO_WASM = {
|
|
48
|
+
mainnet: WasmCoinType.Mainnet,
|
|
49
|
+
testnet: WasmCoinType.Testnet,
|
|
50
|
+
};
|
|
51
|
+
/** @internal */
|
|
52
|
+
export function toWasmCoinType(coinType) {
|
|
53
|
+
const value = COIN_TYPE_TO_WASM[coinType];
|
|
54
|
+
if (value === undefined) {
|
|
55
|
+
throw invalidArgument(`Unknown coin type "${String(coinType)}". Expected 'mainnet' or 'testnet'.`);
|
|
56
|
+
}
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=record-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-type.js","sourceRoot":"","sources":["../../../src/address/record-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGlE;;;GAGG;AACH,MAAM,mBAAmB,GAA6C;IACpE,kBAAkB,EAAE,cAAc,CAAC,eAAe;IAClD,SAAS,EAAE,cAAc,CAAC,MAAM;IAChC,SAAS,EAAE,cAAc,CAAC,MAAM;IAChC,eAAe,EAAE,cAAc,CAAC,YAAY;IAC5C,YAAY,EAAE,cAAc,CAAC,SAAS;IACtC,SAAS,EAAE,cAAc,CAAC,MAAM;IAChC,YAAY,EAAE,cAAc,CAAC,SAAS;IACtC,QAAQ,EAAE,cAAc,CAAC,KAAK;IAC9B,eAAe,EAAE,cAAc,CAAC,YAAY;IAC5C,eAAe,EAAE,cAAc,CAAC,WAAW;IAC3C,eAAe,EAAE,cAAc,CAAC,WAAW;IAC3C,gBAAgB,EAAE,cAAc,CAAC,YAAY;IAC7C,eAAe,EAAE,cAAc,CAAC,YAAY;IAC5C,gBAAgB,EAAE,cAAc,CAAC,aAAa;IAC9C,WAAW,EAAE,cAAc,CAAC,QAAQ;IACpC,kBAAkB,EAAE,cAAc,CAAC,cAAc;IACjD,GAAG,EAAE,cAAc,CAAC,GAAG;CACxB,CAAA;AAED,MAAM,mBAAmB,GAAwC,IAAI,GAAG,CACrE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAqC,CAAC,GAAG,CAC1E,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CACjC,CACF,CAAA;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAC5C,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAqB,CACrD,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAmB,YAAY,CAAA;AAE/D,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,UAA0B;IACzD,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,eAAe,CACnB,wBAAwB,MAAM,CAAC,UAAU,CAAC,uBAAuB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjG,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,eAAe,CACnB,mCAAmC,KAAK,0CAA0C;YAChF,+DAA+D,CAClE,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,iBAAiB,GAA2C;IAChE,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;CAC9B,CAAA;AAED,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,QAAsB;IACnD,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,eAAe,CAAC,sBAAsB,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAA;IACpG,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DecodedWalletAddress, WalletAddressOptions } from '../types';
|
|
2
|
+
/** Identify the account either by its public key or by its account id. */
|
|
3
|
+
export type AccountIdentifier = {
|
|
4
|
+
readonly publicKey: Uint8Array;
|
|
5
|
+
readonly accountId?: never;
|
|
6
|
+
} | {
|
|
7
|
+
readonly accountId: Uint8Array;
|
|
8
|
+
readonly publicKey?: never;
|
|
9
|
+
};
|
|
10
|
+
export type CreateWalletAddressInput = AccountIdentifier & WalletAddressOptions;
|
|
11
|
+
/**
|
|
12
|
+
* Build the base58 wallet address for an account. Synchronous; requires the engine
|
|
13
|
+
* to be loaded already. Most callers want {@link createWalletAddress} instead.
|
|
14
|
+
*/
|
|
15
|
+
export declare function createWalletAddressSync(input: CreateWalletAddressInput): string;
|
|
16
|
+
/**
|
|
17
|
+
* Build the base58 wallet address for an account, loading the engine if needed.
|
|
18
|
+
*
|
|
19
|
+
* ```ts
|
|
20
|
+
* const address = await createWalletAddress({ publicKey, chainNumber: 1 })
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function createWalletAddress(input: CreateWalletAddressInput): Promise<string>;
|
|
24
|
+
/** Decode a base58 wallet address. Synchronous; requires the engine to be loaded. */
|
|
25
|
+
export declare function decodeWalletAddressSync(address: string): DecodedWalletAddress;
|
|
26
|
+
/** Decode a base58 wallet address, loading the engine if needed. */
|
|
27
|
+
export declare function decodeWalletAddress(address: string): Promise<DecodedWalletAddress>;
|
|
28
|
+
/**
|
|
29
|
+
* True when `address` decodes as a Geeq wallet address. Requires a loaded engine.
|
|
30
|
+
*
|
|
31
|
+
* Throws `not-initialized` rather than answering before the engine has loaded: `false`
|
|
32
|
+
* would call every address invalid, including good ones.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isValidWalletAddress(address: string): boolean;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { GeeqError, invalidAddress, invalidArgument } from '../errors';
|
|
2
|
+
import { WasmWalletAddress } from '../runtime/bindings';
|
|
3
|
+
import { assertReady, initGeeq } from '../runtime/init';
|
|
4
|
+
import { resolveAccountId } from '../crypto/account-id';
|
|
5
|
+
import { DEFAULT_RECORD_TYPE, fromWasmRecordType, toWasmRecordType } from './record-type';
|
|
6
|
+
function assertChainNumber(chainNumber) {
|
|
7
|
+
if (!Number.isInteger(chainNumber) || chainNumber < 0 || chainNumber > 0xffffffff) {
|
|
8
|
+
throw invalidArgument(`chainNumber must be an integer between 0 and 4294967295, received ${String(chainNumber)}.`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Build the base58 wallet address for an account. Synchronous; requires the engine
|
|
13
|
+
* to be loaded already. Most callers want {@link createWalletAddress} instead.
|
|
14
|
+
*/
|
|
15
|
+
export function createWalletAddressSync(input) {
|
|
16
|
+
assertReady('createWalletAddressSync');
|
|
17
|
+
assertChainNumber(input.chainNumber);
|
|
18
|
+
const recordType = input.recordType ?? DEFAULT_RECORD_TYPE;
|
|
19
|
+
const accountId = resolveAccountId(input);
|
|
20
|
+
let address;
|
|
21
|
+
try {
|
|
22
|
+
address = WasmWalletAddress.new(input.chainNumber, toWasmRecordType(recordType), accountId);
|
|
23
|
+
return address.encode();
|
|
24
|
+
}
|
|
25
|
+
catch (cause) {
|
|
26
|
+
throw invalidAddress(`Could not build a wallet address for record type "${recordType}" on chain ${input.chainNumber}.`, cause);
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
address?.free();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Build the base58 wallet address for an account, loading the engine if needed.
|
|
34
|
+
*
|
|
35
|
+
* ```ts
|
|
36
|
+
* const address = await createWalletAddress({ publicKey, chainNumber: 1 })
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export async function createWalletAddress(input) {
|
|
40
|
+
await initGeeq();
|
|
41
|
+
return createWalletAddressSync(input);
|
|
42
|
+
}
|
|
43
|
+
/** Decode a base58 wallet address. Synchronous; requires the engine to be loaded. */
|
|
44
|
+
export function decodeWalletAddressSync(address) {
|
|
45
|
+
assertReady('decodeWalletAddressSync');
|
|
46
|
+
if (typeof address !== 'string' || address.length === 0) {
|
|
47
|
+
throw invalidAddress('A wallet address must be a non-empty base58 string.');
|
|
48
|
+
}
|
|
49
|
+
let decoded;
|
|
50
|
+
try {
|
|
51
|
+
decoded = WasmWalletAddress.decode(address);
|
|
52
|
+
return Object.freeze({
|
|
53
|
+
address,
|
|
54
|
+
chainNumber: decoded.exportChainNum(),
|
|
55
|
+
recordType: fromWasmRecordType(decoded.exportRecordType()),
|
|
56
|
+
accountId: decoded.exportAcctNum(),
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (cause) {
|
|
60
|
+
if (cause instanceof GeeqError)
|
|
61
|
+
throw cause;
|
|
62
|
+
throw invalidAddress(`"${address}" is not a valid Geeq wallet address.`, cause);
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
decoded?.free();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** Decode a base58 wallet address, loading the engine if needed. */
|
|
69
|
+
export async function decodeWalletAddress(address) {
|
|
70
|
+
await initGeeq();
|
|
71
|
+
return decodeWalletAddressSync(address);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* True when `address` decodes as a Geeq wallet address. Requires a loaded engine.
|
|
75
|
+
*
|
|
76
|
+
* Throws `not-initialized` rather than answering before the engine has loaded: `false`
|
|
77
|
+
* would call every address invalid, including good ones.
|
|
78
|
+
*/
|
|
79
|
+
export function isValidWalletAddress(address) {
|
|
80
|
+
try {
|
|
81
|
+
decodeWalletAddressSync(address);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
if (error instanceof GeeqError && error.code === 'not-initialized')
|
|
86
|
+
throw error;
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=wallet-address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-address.js","sourceRoot":"","sources":["../../../src/address/wallet-address.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Uint64 } from 'capnp-ts';
|
|
2
|
+
/**
|
|
3
|
+
* An amount of coin, with its unit stated.
|
|
4
|
+
*
|
|
5
|
+
* The protocol counts only **pennies**, as geeq_node_core calls them. A Geeq is a display
|
|
6
|
+
* unit, and how many pennies make one is not on the chain: the app says, as
|
|
7
|
+
* `penniesPerGeeq` when it connects, and every conversion takes it from there.
|
|
8
|
+
*
|
|
9
|
+
* Every amount crossing this SDK's surface names its unit, because the alternative is a
|
|
10
|
+
* bare number that means one thing to the caller and another to the chain. That mistake
|
|
11
|
+
* does not throw — it just moves the wrong amount.
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* { geeq: "12.34" } // human-facing: what someone typed
|
|
15
|
+
* { pennies: balance } // protocol-facing: as the chain counts it
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export type GeeqAmount = {
|
|
19
|
+
readonly geeq: string | number;
|
|
20
|
+
} | {
|
|
21
|
+
readonly pennies: bigint | number;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* @internal The decimal places in a Geeq: the zeros in `penniesPerGeeq`. It must be a
|
|
25
|
+
* power of ten, so that every amount of pennies has an exact decimal form.
|
|
26
|
+
*/
|
|
27
|
+
export declare function decimalsOf(penniesPerGeeq: bigint): number;
|
|
28
|
+
/**
|
|
29
|
+
* Resolve any {@link GeeqAmount} to pennies, the unit the protocol uses. A `{ geeq }`
|
|
30
|
+
* figure is read at `penniesPerGeeq` to the Geeq; `{ pennies }` is taken as it is.
|
|
31
|
+
*/
|
|
32
|
+
export declare function toPennies(amount: GeeqAmount, penniesPerGeeq: bigint): bigint;
|
|
33
|
+
/**
|
|
34
|
+
* Format pennies as a decimal Geeq string at `penniesPerGeeq` to the Geeq, the way the Geeq
|
|
35
|
+
* wallet shows amounts: every place the unit has, trailing zeros dropped.
|
|
36
|
+
*
|
|
37
|
+
* A negative figure — a shortfall, say — keeps its sign: `-1.5`, not `-1.-5`.
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatGeeq(pennies: bigint, penniesPerGeeq: bigint): string;
|
|
40
|
+
/** @internal Read a Cap'n Proto UInt64 as a bigint. Little-endian, as the protocol writes it. */
|
|
41
|
+
export declare function uint64ToPennies(value: Uint64): bigint;
|
|
42
|
+
/** @internal Write pennies as a Cap'n Proto UInt64. */
|
|
43
|
+
export declare function penniesToUint64(pennies: bigint): Uint64;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Uint64 } from 'capnp-ts';
|
|
2
|
+
import { invalidArgument } from './errors';
|
|
3
|
+
/**
|
|
4
|
+
* @internal The decimal places in a Geeq: the zeros in `penniesPerGeeq`. It must be a
|
|
5
|
+
* power of ten, so that every amount of pennies has an exact decimal form.
|
|
6
|
+
*/
|
|
7
|
+
export function decimalsOf(penniesPerGeeq) {
|
|
8
|
+
const text = typeof penniesPerGeeq === 'bigint' ? String(penniesPerGeeq) : '';
|
|
9
|
+
if (!/^10*$/u.test(text)) {
|
|
10
|
+
throw invalidArgument(`penniesPerGeeq must be a bigint power of ten (1n, 10n, 100n, …), received ${String(penniesPerGeeq)}.`);
|
|
11
|
+
}
|
|
12
|
+
return text.length - 1;
|
|
13
|
+
}
|
|
14
|
+
/** Parse a decimal Geeq string into pennies. Rejects more precision than exists. */
|
|
15
|
+
function geeqToPennies(value, penniesPerGeeq) {
|
|
16
|
+
const decimals = decimalsOf(penniesPerGeeq);
|
|
17
|
+
// Numbers go through their string form: 0.1 + 0.2 is not 0.3, and money written as a
|
|
18
|
+
// float has already lost whatever the float lost.
|
|
19
|
+
const text = typeof value === 'number' ? String(value) : value.trim();
|
|
20
|
+
if (typeof value === 'number' && !Number.isFinite(value)) {
|
|
21
|
+
throw invalidArgument(`An amount in geeq must be a finite number, received ${text}.`);
|
|
22
|
+
}
|
|
23
|
+
if (typeof value === 'number' && Number.isInteger(value) && !Number.isSafeInteger(value)) {
|
|
24
|
+
throw invalidArgument(`${text} is too large to be exact as a JavaScript number, so it may not be what was ` +
|
|
25
|
+
'typed. Pass it as a string: { geeq: "…" }.');
|
|
26
|
+
}
|
|
27
|
+
if (text.startsWith('-')) {
|
|
28
|
+
throw invalidArgument(`An amount cannot be negative, received ${text}.`);
|
|
29
|
+
}
|
|
30
|
+
const match = /^(\d+)(?:\.(\d+))?$/u.exec(text);
|
|
31
|
+
if (match === null) {
|
|
32
|
+
throw invalidArgument(`An amount in geeq must be a decimal number such as "12.34", received ${JSON.stringify(text)}.`);
|
|
33
|
+
}
|
|
34
|
+
const whole = match[1];
|
|
35
|
+
const fraction = match[2] ?? '';
|
|
36
|
+
if (fraction.length > decimals) {
|
|
37
|
+
throw invalidArgument(`${text} has ${fraction.length} decimal places, but at ${penniesPerGeeq} pennies to a ` +
|
|
38
|
+
`Geeq only ${decimals} are possible. Round it, or give the exact figure as { pennies }.`);
|
|
39
|
+
}
|
|
40
|
+
return BigInt(whole) * penniesPerGeeq + BigInt(fraction.padEnd(decimals, '0'));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Resolve any {@link GeeqAmount} to pennies, the unit the protocol uses. A `{ geeq }`
|
|
44
|
+
* figure is read at `penniesPerGeeq` to the Geeq; `{ pennies }` is taken as it is.
|
|
45
|
+
*/
|
|
46
|
+
export function toPennies(amount, penniesPerGeeq) {
|
|
47
|
+
if (amount !== null && typeof amount === 'object') {
|
|
48
|
+
if ('pennies' in amount) {
|
|
49
|
+
const { pennies } = amount;
|
|
50
|
+
if (typeof pennies === 'bigint') {
|
|
51
|
+
if (pennies < 0n)
|
|
52
|
+
throw invalidArgument(`An amount cannot be negative, received ${pennies}.`);
|
|
53
|
+
return pennies;
|
|
54
|
+
}
|
|
55
|
+
if (typeof pennies === 'number') {
|
|
56
|
+
if (!Number.isInteger(pennies)) {
|
|
57
|
+
throw invalidArgument(`An amount in pennies must be a whole number, received ${pennies}. Pennies are ` +
|
|
58
|
+
'already the smallest unit — there is nothing below them.');
|
|
59
|
+
}
|
|
60
|
+
// Above 2^53 a number has already been rounded to its nearest representable
|
|
61
|
+
// neighbour, so converting it would move a different amount from the one meant.
|
|
62
|
+
if (!Number.isSafeInteger(pennies)) {
|
|
63
|
+
throw invalidArgument(`${pennies} pennies is too large to be exact as a JavaScript number. Pass it as ` +
|
|
64
|
+
'a bigint: { pennies: 123n }.');
|
|
65
|
+
}
|
|
66
|
+
if (pennies < 0)
|
|
67
|
+
throw invalidArgument(`An amount cannot be negative, received ${pennies}.`);
|
|
68
|
+
return BigInt(pennies);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if ('geeq' in amount)
|
|
72
|
+
return geeqToPennies(amount.geeq, penniesPerGeeq);
|
|
73
|
+
}
|
|
74
|
+
throw invalidArgument('An amount must name its unit: { geeq: "12.34" } or { pennies } as the chain counts them.');
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Format pennies as a decimal Geeq string at `penniesPerGeeq` to the Geeq, the way the Geeq
|
|
78
|
+
* wallet shows amounts: every place the unit has, trailing zeros dropped.
|
|
79
|
+
*
|
|
80
|
+
* A negative figure — a shortfall, say — keeps its sign: `-1.5`, not `-1.-5`.
|
|
81
|
+
*/
|
|
82
|
+
export function formatGeeq(pennies, penniesPerGeeq) {
|
|
83
|
+
const decimals = decimalsOf(penniesPerGeeq);
|
|
84
|
+
// Split the magnitude, not the signed value: bigint division truncates toward zero, so
|
|
85
|
+
// both halves of a negative figure would carry the sign.
|
|
86
|
+
const sign = pennies < 0n ? '-' : '';
|
|
87
|
+
const magnitude = pennies < 0n ? -pennies : pennies;
|
|
88
|
+
const whole = magnitude / penniesPerGeeq;
|
|
89
|
+
const fraction = String(magnitude % penniesPerGeeq).padStart(decimals, '0').replace(/0+$/u, '');
|
|
90
|
+
return fraction === '' ? `${sign}${whole}` : `${sign}${whole}.${fraction}`;
|
|
91
|
+
}
|
|
92
|
+
/** @internal Read a Cap'n Proto UInt64 as a bigint. Little-endian, as the protocol writes it. */
|
|
93
|
+
export function uint64ToPennies(value) {
|
|
94
|
+
return value.toDataView().getBigUint64(0, true);
|
|
95
|
+
}
|
|
96
|
+
/** @internal Write pennies as a Cap'n Proto UInt64. */
|
|
97
|
+
export function penniesToUint64(pennies) {
|
|
98
|
+
if (pennies < 0n || pennies > 0xffffffffffffffffn) {
|
|
99
|
+
throw invalidArgument(`An amount must fit in a uint64, received ${pennies} pennies.`);
|
|
100
|
+
}
|
|
101
|
+
const view = new DataView(new ArrayBuffer(8));
|
|
102
|
+
view.setBigUint64(0, pennies, true);
|
|
103
|
+
return Uint64.fromDataView(view);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=amount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"amount.js","sourceRoot":"","sources":["../../src/amount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAoB1C;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,cAAsB;IAC/C,MAAM,IAAI,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,eAAe,CACnB,6EAA6E,MAAM,CAAC,cAAc,CAAC,GAAG,CACvG,CAAA;IACH,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,oFAAoF;AACpF,SAAS,aAAa,CAAC,KAAsB,EAAE,cAAsB;IACnE,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC3C,qFAAqF;IACrF,kDAAkD;IAClD,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAErE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,eAAe,CAAC,uDAAuD,IAAI,GAAG,CAAC,CAAA;IACvF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzF,MAAM,eAAe,CACnB,GAAG,IAAI,8EAA8E;YACnF,4CAA4C,CAC/C,CAAA;IACH,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,eAAe,CAAC,0CAA0C,IAAI,GAAG,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,eAAe,CACnB,wEAAwE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAChG,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAW,CAAA;IAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/B,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC/B,MAAM,eAAe,CACnB,GAAG,IAAI,QAAQ,QAAQ,CAAC,MAAM,2BAA2B,cAAc,gBAAgB;YACrF,aAAa,QAAQ,mEAAmE,CAC3F,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;AAChF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAkB,EAAE,cAAsB;IAClE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;YAC1B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,OAAO,GAAG,EAAE;oBAAE,MAAM,eAAe,CAAC,0CAA0C,OAAO,GAAG,CAAC,CAAA;gBAC7F,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/B,MAAM,eAAe,CACnB,yDAAyD,OAAO,gBAAgB;wBAC9E,0DAA0D,CAC7D,CAAA;gBACH,CAAC;gBACD,4EAA4E;gBAC5E,gFAAgF;gBAChF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,MAAM,eAAe,CACnB,GAAG,OAAO,uEAAuE;wBAC/E,8BAA8B,CACjC,CAAA;gBACH,CAAC;gBACD,IAAI,OAAO,GAAG,CAAC;oBAAE,MAAM,eAAe,CAAC,0CAA0C,OAAO,GAAG,CAAC,CAAA;gBAC5F,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QACD,IAAI,MAAM,IAAI,MAAM;YAAE,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACzE,CAAC;IACD,MAAM,eAAe,CACnB,0FAA0F,CAC3F,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,cAAsB;IAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC3C,uFAAuF;IACvF,yDAAyD;IACzD,MAAM,IAAI,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACpC,MAAM,SAAS,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;IACnD,MAAM,KAAK,GAAG,SAAS,GAAG,cAAc,CAAA;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC/F,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAA;AAC5E,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AACjD,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,mBAAmB,EAAE,CAAC;QAClD,MAAM,eAAe,CAAC,4CAA4C,OAAO,WAAW,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACnC,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Argument checks shared across layers. Each one names the argument and what it received,
|
|
3
|
+
* so the message points at the caller's data rather than at this file.
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
/** The largest value the protocol's 32-bit fields hold: chain, block, node, nonce, index. */
|
|
8
|
+
export declare const MAX_UINT32 = 4294967295;
|
|
9
|
+
/** @internal */
|
|
10
|
+
export declare function assertUint32(value: number, label: string): void;
|
|
11
|
+
/** @internal An optional option in milliseconds. Undefined means "use the default". */
|
|
12
|
+
export declare function assertDuration(value: number | undefined, label: string): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { invalidArgument } from './errors';
|
|
2
|
+
/**
|
|
3
|
+
* Argument checks shared across layers. Each one names the argument and what it received,
|
|
4
|
+
* so the message points at the caller's data rather than at this file.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
/** The largest value the protocol's 32-bit fields hold: chain, block, node, nonce, index. */
|
|
9
|
+
export const MAX_UINT32 = 0xffffffff;
|
|
10
|
+
/** @internal */
|
|
11
|
+
export function assertUint32(value, label) {
|
|
12
|
+
if (!Number.isInteger(value) || value < 0 || value > MAX_UINT32) {
|
|
13
|
+
throw invalidArgument(`${label} must be an integer between 0 and ${MAX_UINT32}, received ${String(value)}.`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** @internal An optional option in milliseconds. Undefined means "use the default". */
|
|
17
|
+
export function assertDuration(value, label) {
|
|
18
|
+
if (value === undefined)
|
|
19
|
+
return;
|
|
20
|
+
if (!Number.isFinite(value) || value < 0) {
|
|
21
|
+
throw invalidArgument(`${label} must be a non-negative number of milliseconds, received ${String(value)}.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=assert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C;;;;;GAKG;AAEH,6FAA6F;AAC7F,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAA;AAEpC,gBAAgB;AAChB,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,KAAa;IACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,UAAU,EAAE,CAAC;QAChE,MAAM,eAAe,CACnB,GAAG,KAAK,qCAAqC,UAAU,cAAc,MAAM,CAAC,KAAK,CAAC,GAAG,CACtF,CAAA;IACH,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,KAAyB,EAAE,KAAa;IACrE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAM;IAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,eAAe,CACnB,GAAG,KAAK,4DAA4D,MAAM,CAAC,KAAK,CAAC,GAAG,CACrF,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).
|
|
3
|
+
*/
|
|
4
|
+
import * as capnp from "capnp-ts";
|
|
5
|
+
import { Struct as __S } from 'capnp-ts';
|
|
6
|
+
export declare const _capnpFileId = "a0821f452231cb39";
|
|
7
|
+
export declare enum AuditCode {
|
|
8
|
+
AUDIT_CODE_EQUIVOCATION = 0,
|
|
9
|
+
AUDIT_CODE_HCS_CSV = 1,
|
|
10
|
+
AUDIT_CODE_HUB_DISHONEST = 2,
|
|
11
|
+
AUDIT_CODE_NCS_CSV = 3,
|
|
12
|
+
AUDIT_CODE_NODE_DISHONEST = 4,
|
|
13
|
+
AUDIT_CODE_RCS_CSV = 5,
|
|
14
|
+
AUDIT_CODE_RELAY_DISHONEST = 6
|
|
15
|
+
}
|
|
16
|
+
export declare class AuditAdminNetTx extends __S {
|
|
17
|
+
static readonly _capnp: {
|
|
18
|
+
displayName: string;
|
|
19
|
+
id: string;
|
|
20
|
+
size: capnp.ObjectSize;
|
|
21
|
+
};
|
|
22
|
+
getAmtCoin(): capnp.Uint64;
|
|
23
|
+
setAmtCoin(value: capnp.Uint64): void;
|
|
24
|
+
getNodeNum(): number;
|
|
25
|
+
setNodeNum(value: number): void;
|
|
26
|
+
getAuditCode(): AuditCode;
|
|
27
|
+
setAuditCode(value: AuditCode): void;
|
|
28
|
+
adoptAcctNumSend(value: capnp.Orphan<capnp.Data>): void;
|
|
29
|
+
disownAcctNumSend(): capnp.Orphan<capnp.Data>;
|
|
30
|
+
getAcctNumSend(): capnp.Data;
|
|
31
|
+
hasAcctNumSend(): boolean;
|
|
32
|
+
initAcctNumSend(length: number): capnp.Data;
|
|
33
|
+
setAcctNumSend(value: capnp.Data): void;
|
|
34
|
+
toString(): string;
|
|
35
|
+
}
|
|
36
|
+
export declare class FeeDistAdminNetTx extends __S {
|
|
37
|
+
static readonly _capnp: {
|
|
38
|
+
displayName: string;
|
|
39
|
+
id: string;
|
|
40
|
+
size: capnp.ObjectSize;
|
|
41
|
+
};
|
|
42
|
+
getAmtCoin(): capnp.Uint64;
|
|
43
|
+
setAmtCoin(value: capnp.Uint64): void;
|
|
44
|
+
getNodeNum(): number;
|
|
45
|
+
setNodeNum(value: number): void;
|
|
46
|
+
adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void;
|
|
47
|
+
disownAcctNumRcv(): capnp.Orphan<capnp.Data>;
|
|
48
|
+
getAcctNumRcv(): capnp.Data;
|
|
49
|
+
hasAcctNumRcv(): boolean;
|
|
50
|
+
initAcctNumRcv(length: number): capnp.Data;
|
|
51
|
+
setAcctNumRcv(value: capnp.Data): void;
|
|
52
|
+
toString(): string;
|
|
53
|
+
}
|
|
54
|
+
export declare class RfdAdminNetTx extends __S {
|
|
55
|
+
static readonly _capnp: {
|
|
56
|
+
displayName: string;
|
|
57
|
+
id: string;
|
|
58
|
+
size: capnp.ObjectSize;
|
|
59
|
+
};
|
|
60
|
+
getAmtCoin(): capnp.Uint64;
|
|
61
|
+
setAmtCoin(value: capnp.Uint64): void;
|
|
62
|
+
adoptAcctNumSend(value: capnp.Orphan<capnp.Data>): void;
|
|
63
|
+
disownAcctNumSend(): capnp.Orphan<capnp.Data>;
|
|
64
|
+
getAcctNumSend(): capnp.Data;
|
|
65
|
+
hasAcctNumSend(): boolean;
|
|
66
|
+
initAcctNumSend(length: number): capnp.Data;
|
|
67
|
+
setAcctNumSend(value: capnp.Data): void;
|
|
68
|
+
adoptAcctNumRcv(value: capnp.Orphan<capnp.Data>): void;
|
|
69
|
+
disownAcctNumRcv(): capnp.Orphan<capnp.Data>;
|
|
70
|
+
getAcctNumRcv(): capnp.Data;
|
|
71
|
+
hasAcctNumRcv(): boolean;
|
|
72
|
+
initAcctNumRcv(length: number): capnp.Data;
|
|
73
|
+
setAcctNumRcv(value: capnp.Data): void;
|
|
74
|
+
toString(): string;
|
|
75
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).
|
|
4
|
+
*/
|
|
5
|
+
import * as capnp from "capnp-ts";
|
|
6
|
+
import { ObjectSize as __O, Struct as __S } from 'capnp-ts';
|
|
7
|
+
export const _capnpFileId = "a0821f452231cb39";
|
|
8
|
+
export var AuditCode;
|
|
9
|
+
(function (AuditCode) {
|
|
10
|
+
AuditCode[AuditCode["AUDIT_CODE_EQUIVOCATION"] = 0] = "AUDIT_CODE_EQUIVOCATION";
|
|
11
|
+
AuditCode[AuditCode["AUDIT_CODE_HCS_CSV"] = 1] = "AUDIT_CODE_HCS_CSV";
|
|
12
|
+
AuditCode[AuditCode["AUDIT_CODE_HUB_DISHONEST"] = 2] = "AUDIT_CODE_HUB_DISHONEST";
|
|
13
|
+
AuditCode[AuditCode["AUDIT_CODE_NCS_CSV"] = 3] = "AUDIT_CODE_NCS_CSV";
|
|
14
|
+
AuditCode[AuditCode["AUDIT_CODE_NODE_DISHONEST"] = 4] = "AUDIT_CODE_NODE_DISHONEST";
|
|
15
|
+
AuditCode[AuditCode["AUDIT_CODE_RCS_CSV"] = 5] = "AUDIT_CODE_RCS_CSV";
|
|
16
|
+
AuditCode[AuditCode["AUDIT_CODE_RELAY_DISHONEST"] = 6] = "AUDIT_CODE_RELAY_DISHONEST";
|
|
17
|
+
})(AuditCode || (AuditCode = {}));
|
|
18
|
+
export class AuditAdminNetTx extends __S {
|
|
19
|
+
static { this._capnp = { displayName: "AuditAdminNetTx", id: "b7d1c71a0cf819b7", size: new __O(16, 1) }; }
|
|
20
|
+
getAmtCoin() { return __S.getUint64(0, this); }
|
|
21
|
+
setAmtCoin(value) { __S.setUint64(0, value, this); }
|
|
22
|
+
getNodeNum() { return __S.getUint32(8, this); }
|
|
23
|
+
setNodeNum(value) { __S.setUint32(8, value, this); }
|
|
24
|
+
getAuditCode() { return __S.getUint16(12, this); }
|
|
25
|
+
setAuditCode(value) { __S.setUint16(12, value, this); }
|
|
26
|
+
adoptAcctNumSend(value) { __S.adopt(value, __S.getPointer(0, this)); }
|
|
27
|
+
disownAcctNumSend() { return __S.disown(this.getAcctNumSend()); }
|
|
28
|
+
getAcctNumSend() { return __S.getData(0, this); }
|
|
29
|
+
hasAcctNumSend() { return !__S.isNull(__S.getPointer(0, this)); }
|
|
30
|
+
initAcctNumSend(length) { return __S.initData(0, length, this); }
|
|
31
|
+
setAcctNumSend(value) { __S.copyFrom(value, __S.getPointer(0, this)); }
|
|
32
|
+
toString() { return "AuditAdminNetTx_" + super.toString(); }
|
|
33
|
+
}
|
|
34
|
+
export class FeeDistAdminNetTx extends __S {
|
|
35
|
+
static { this._capnp = { displayName: "FeeDistAdminNetTx", id: "da1ade52d59dba3b", size: new __O(16, 1) }; }
|
|
36
|
+
getAmtCoin() { return __S.getUint64(0, this); }
|
|
37
|
+
setAmtCoin(value) { __S.setUint64(0, value, this); }
|
|
38
|
+
getNodeNum() { return __S.getUint32(8, this); }
|
|
39
|
+
setNodeNum(value) { __S.setUint32(8, value, this); }
|
|
40
|
+
adoptAcctNumRcv(value) { __S.adopt(value, __S.getPointer(0, this)); }
|
|
41
|
+
disownAcctNumRcv() { return __S.disown(this.getAcctNumRcv()); }
|
|
42
|
+
getAcctNumRcv() { return __S.getData(0, this); }
|
|
43
|
+
hasAcctNumRcv() { return !__S.isNull(__S.getPointer(0, this)); }
|
|
44
|
+
initAcctNumRcv(length) { return __S.initData(0, length, this); }
|
|
45
|
+
setAcctNumRcv(value) { __S.copyFrom(value, __S.getPointer(0, this)); }
|
|
46
|
+
toString() { return "FeeDistAdminNetTx_" + super.toString(); }
|
|
47
|
+
}
|
|
48
|
+
export class RfdAdminNetTx extends __S {
|
|
49
|
+
static { this._capnp = { displayName: "RfdAdminNetTx", id: "cab22a89a36ebee1", size: new __O(8, 2) }; }
|
|
50
|
+
getAmtCoin() { return __S.getUint64(0, this); }
|
|
51
|
+
setAmtCoin(value) { __S.setUint64(0, value, this); }
|
|
52
|
+
adoptAcctNumSend(value) { __S.adopt(value, __S.getPointer(0, this)); }
|
|
53
|
+
disownAcctNumSend() { return __S.disown(this.getAcctNumSend()); }
|
|
54
|
+
getAcctNumSend() { return __S.getData(0, this); }
|
|
55
|
+
hasAcctNumSend() { return !__S.isNull(__S.getPointer(0, this)); }
|
|
56
|
+
initAcctNumSend(length) { return __S.initData(0, length, this); }
|
|
57
|
+
setAcctNumSend(value) { __S.copyFrom(value, __S.getPointer(0, this)); }
|
|
58
|
+
adoptAcctNumRcv(value) { __S.adopt(value, __S.getPointer(1, this)); }
|
|
59
|
+
disownAcctNumRcv() { return __S.disown(this.getAcctNumRcv()); }
|
|
60
|
+
getAcctNumRcv() { return __S.getData(1, this); }
|
|
61
|
+
hasAcctNumRcv() { return !__S.isNull(__S.getPointer(1, this)); }
|
|
62
|
+
initAcctNumRcv(length) { return __S.initData(1, length, this); }
|
|
63
|
+
setAcctNumRcv(value) { __S.copyFrom(value, __S.getPointer(1, this)); }
|
|
64
|
+
toString() { return "RfdAdminNetTx_" + super.toString(); }
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=adminNetTx.capnp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminNetTx.capnp.js","sourceRoot":"","sources":["../../../src/capnp/adminNetTx.capnp.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,UAAU,CAAC;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAC/C,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACjB,+EAAuB,CAAA;IACvB,qEAAkB,CAAA;IAClB,iFAAwB,CAAA;IACxB,qEAAkB,CAAA;IAClB,mFAAyB,CAAA;IACzB,qEAAkB,CAAA;IAClB,qFAA0B,CAAA;AAC9B,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;AACD,MAAM,OAAO,eAAgB,SAAQ,GAAG;aACpB,WAAM,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAC1G,UAAU,KAAmB,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,UAAU,CAAC,KAAmB,IAAU,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACxE,UAAU,KAAa,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,UAAU,CAAC,KAAa,IAAU,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,YAAY,KAAgB,OAAO,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,YAAY,CAAC,KAAgB,IAAU,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACxE,gBAAgB,CAAC,KAA+B,IAAU,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,iBAAiB,KAA+B,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,cAAc,KAAiB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,cAAc,KAAc,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,eAAe,CAAC,MAAc,IAAgB,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACrF,cAAc,CAAC,KAAiB,IAAU,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,QAAQ,KAAa,OAAO,kBAAkB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;;AAExE,MAAM,OAAO,iBAAkB,SAAQ,GAAG;aACtB,WAAM,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAC5G,UAAU,KAAmB,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,UAAU,CAAC,KAAmB,IAAU,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACxE,UAAU,KAAa,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,UAAU,CAAC,KAAa,IAAU,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClE,eAAe,CAAC,KAA+B,IAAU,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,gBAAgB,KAA+B,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,aAAa,KAAiB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5D,aAAa,KAAc,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,cAAc,CAAC,MAAc,IAAgB,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,aAAa,CAAC,KAAiB,IAAU,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,QAAQ,KAAa,OAAO,oBAAoB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;;AAE1E,MAAM,OAAO,aAAc,SAAQ,GAAG;aAClB,WAAM,GAAG,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACvG,UAAU,KAAmB,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,UAAU,CAAC,KAAmB,IAAU,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACxE,gBAAgB,CAAC,KAA+B,IAAU,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,iBAAiB,KAA+B,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,cAAc,KAAiB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,cAAc,KAAc,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,eAAe,CAAC,MAAc,IAAgB,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACrF,cAAc,CAAC,KAAiB,IAAU,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,eAAe,CAAC,KAA+B,IAAU,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,gBAAgB,KAA+B,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,aAAa,KAAiB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5D,aAAa,KAAc,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,cAAc,CAAC,MAAc,IAAgB,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,aAAa,CAAC,KAAiB,IAAU,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,QAAQ,KAAa,OAAO,gBAAgB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).
|
|
3
|
+
*/
|
|
4
|
+
import * as capnp from "capnp-ts";
|
|
5
|
+
import { Struct as __S } from 'capnp-ts';
|
|
6
|
+
import { NodePayloadList } from "./nodePayloadList.capnp";
|
|
7
|
+
export declare const _capnpFileId = "c58bc266447b8f2d";
|
|
8
|
+
export declare class AppLayBlock extends __S {
|
|
9
|
+
static readonly _capnp: {
|
|
10
|
+
displayName: string;
|
|
11
|
+
id: string;
|
|
12
|
+
size: capnp.ObjectSize;
|
|
13
|
+
};
|
|
14
|
+
static _NodePayloadLists: capnp.ListCtor<NodePayloadList>;
|
|
15
|
+
getBlockNum(): number;
|
|
16
|
+
setBlockNum(value: number): void;
|
|
17
|
+
getChainNum(): number;
|
|
18
|
+
setChainNum(value: number): void;
|
|
19
|
+
adoptNodePayloadLists(value: capnp.Orphan<capnp.List<NodePayloadList>>): void;
|
|
20
|
+
disownNodePayloadLists(): capnp.Orphan<capnp.List<NodePayloadList>>;
|
|
21
|
+
getNodePayloadLists(): capnp.List<NodePayloadList>;
|
|
22
|
+
hasNodePayloadLists(): boolean;
|
|
23
|
+
initNodePayloadLists(length: number): capnp.List<NodePayloadList>;
|
|
24
|
+
setNodePayloadLists(value: capnp.List<NodePayloadList>): void;
|
|
25
|
+
toString(): string;
|
|
26
|
+
}
|