From 0de2498a92e33894ca78f61f025609a7291a1809 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 10:02:02 +0200 Subject: [PATCH 01/16] removes all packages/sdk/* packages/cli/ packages/metadata-crawler, packages/docs, as well as references to their existence. --- .gitattributes | 37 - .github/CODEOWNERS | 5 - .github/workflows/celo-monorepo.yml | 187 +- .github/workflows/cron-npm-install.yml | 38 - .gitignore | 11 +- .husky/pre-commit | 4 +- .husky/pre-push | 2 - README-dev.md | 124 - README.md | 8 +- RELEASE.md | 76 - SETUP.md | 2 +- codecov.yml | 9 - dependency-graph.json | 244 - dockerfiles/cli-standalone/Dockerfile | 29 - dockerfiles/cli/Dockerfile | 70 - lerna.json | 4 +- package.json | 19 +- packages/celotool/src/lib/oracle.ts | 2 +- packages/cli/.gitattributes | 1 - packages/cli/.gitignore | 12 - packages/cli/.npmignore | 2 - packages/cli/CHANGELOG.md | 342 -- packages/cli/README.md | 63 - packages/cli/bin/run | 5 - packages/cli/bin/run.cmd | 3 - packages/cli/cloudbuild.yaml | 18 - packages/cli/dev-guide.md | 12 - packages/cli/generate_docs.sh | 6 - packages/cli/jest.config.js | 7 - packages/cli/package.json | 171 - packages/cli/releasing.md | 17 - packages/cli/src/base.ts | 236 - .../src/commands/account/authorize.test.ts | 166 - .../cli/src/commands/account/authorize.ts | 96 - packages/cli/src/commands/account/balance.ts | 36 - .../cli/src/commands/account/claim-account.ts | 31 - .../cli/src/commands/account/claim-domain.ts | 34 - .../cli/src/commands/account/claim-keybase.ts | 134 - .../cli/src/commands/account/claim-name.ts | 25 - .../cli/src/commands/account/claim-storage.ts | 25 - .../cli/src/commands/account/claims.test.ts | 104 - .../src/commands/account/create-metadata.ts | 23 - .../src/commands/account/deauthorize.test.ts | 49 - .../cli/src/commands/account/deauthorize.ts | 50 - .../account/delete-payment-delegation.ts | 29 - .../cli/src/commands/account/get-metadata.ts | 43 - .../account/get-payment-delegation.ts | 35 - packages/cli/src/commands/account/list.ts | 41 - packages/cli/src/commands/account/lock.ts | 26 - packages/cli/src/commands/account/new.ts | 130 - .../cli/src/commands/account/offchain-read.ts | 41 - .../src/commands/account/offchain-write.ts | 50 - .../commands/account/proof-of-possession.ts | 31 - .../cli/src/commands/account/recover-old.ts | 58 - .../account/register-data-encryption-key.ts | 42 - .../src/commands/account/register-metadata.ts | 56 - .../cli/src/commands/account/register.test.ts | 20 - packages/cli/src/commands/account/register.ts | 35 - .../cli/src/commands/account/set-name.test.ts | 37 - packages/cli/src/commands/account/set-name.ts | 31 - .../account/set-payment-delegation.ts | 37 - .../cli/src/commands/account/set-wallet.ts | 56 - .../commands/account/show-claimed-accounts.ts | 64 - .../cli/src/commands/account/show-metadata.ts | 27 - packages/cli/src/commands/account/show.ts | 25 - packages/cli/src/commands/account/unlock.ts | 44 - .../account/verify-proof-of-possession.ts | 50 - packages/cli/src/commands/config/get.ts | 17 - packages/cli/src/commands/config/set.ts | 40 - packages/cli/src/commands/dkg/DKG.json | 320 -- packages/cli/src/commands/dkg/allowlist.ts | 33 - packages/cli/src/commands/dkg/deploy.ts | 31 - packages/cli/src/commands/dkg/get.ts | 71 - packages/cli/src/commands/dkg/publish.ts | 31 - packages/cli/src/commands/dkg/register.ts | 32 - packages/cli/src/commands/dkg/start.ts | 25 - .../cli/src/commands/election/activate.ts | 52 - packages/cli/src/commands/election/current.ts | 50 - packages/cli/src/commands/election/list.ts | 33 - packages/cli/src/commands/election/revoke.ts | 37 - packages/cli/src/commands/election/run.ts | 39 - packages/cli/src/commands/election/show.ts | 49 - packages/cli/src/commands/election/vote.ts | 38 - packages/cli/src/commands/exchange/celo.ts | 87 - packages/cli/src/commands/exchange/dollars.ts | 28 - packages/cli/src/commands/exchange/euros.ts | 28 - packages/cli/src/commands/exchange/gold.ts | 17 - packages/cli/src/commands/exchange/reals.ts | 28 - packages/cli/src/commands/exchange/show.ts | 42 - packages/cli/src/commands/exchange/stable.ts | 29 - .../src/commands/governance/approve.test.ts | 39 - .../cli/src/commands/governance/approve.ts | 96 - .../src/commands/governance/build-proposal.ts | 59 - .../cli/src/commands/governance/dequeue.ts | 23 - .../cli/src/commands/governance/execute.ts | 33 - .../src/commands/governance/executehotfix.ts | 59 - .../cli/src/commands/governance/hashhotfix.ts | 51 - packages/cli/src/commands/governance/list.ts | 70 - .../src/commands/governance/preparehotfix.ts | 45 - .../cli/src/commands/governance/propose.ts | 94 - .../src/commands/governance/revokeupvote.ts | 33 - packages/cli/src/commands/governance/show.ts | 177 - .../src/commands/governance/test-proposal.ts | 43 - .../src/commands/governance/upvote.test.ts | 90 - .../cli/src/commands/governance/upvote.ts | 82 - .../cli/src/commands/governance/vote.test.ts | 58 - packages/cli/src/commands/governance/vote.ts | 41 - .../commands/governance/votePartially.test.ts | 63 - .../src/commands/governance/votePartially.ts | 57 - .../commands/governance/whitelisthotfix.ts | 37 - .../src/commands/governance/withdraw.test.ts | 47 - .../cli/src/commands/governance/withdraw.ts | 24 - .../src/commands/grandamento/cancel.test.ts | 54 - .../cli/src/commands/grandamento/cancel.ts | 38 - .../src/commands/grandamento/execute.test.ts | 91 - .../cli/src/commands/grandamento/execute.ts | 40 - .../grandamento/get-buy-amount.test.ts | 32 - .../commands/grandamento/get-buy-amount.ts | 55 - .../cli/src/commands/grandamento/list.test.ts | 51 - packages/cli/src/commands/grandamento/list.ts | 31 - .../src/commands/grandamento/propose.test.ts | 116 - .../cli/src/commands/grandamento/propose.ts | 68 - .../cli/src/commands/grandamento/show.test.ts | 48 - packages/cli/src/commands/grandamento/show.ts | 29 - .../identity/get-attestations.test.ts | 37 - .../src/commands/identity/get-attestations.ts | 104 - .../cli/src/commands/identity/identifier.ts | 63 - .../identity/withdraw-attestation-rewards.ts | 47 - .../commands/lockedgold/delegate-info.test.ts | 24 - .../src/commands/lockedgold/delegate-info.ts | 28 - .../src/commands/lockedgold/delegate.test.ts | 32 - .../cli/src/commands/lockedgold/delegate.ts | 54 - .../cli/src/commands/lockedgold/lock.test.ts | 26 - packages/cli/src/commands/lockedgold/lock.ts | 53 - .../lockedgold/max-delegatees-count.ts | 22 - .../lockedgold/revoke-delegate.test.ts | 35 - .../commands/lockedgold/revoke-delegate.ts | 54 - packages/cli/src/commands/lockedgold/show.ts | 27 - .../src/commands/lockedgold/unlock.test.ts | 55 - .../cli/src/commands/lockedgold/unlock.ts | 37 - .../update-delegated-amount.test.ts | 23 - .../lockedgold/update-delegated-amount.ts | 38 - .../cli/src/commands/lockedgold/withdraw.ts | 53 - packages/cli/src/commands/multisig/approve.ts | 53 - packages/cli/src/commands/multisig/show.ts | 57 - .../cli/src/commands/multisig/transfer.ts | 53 - .../cli/src/commands/network/contracts.ts | 88 - packages/cli/src/commands/network/info.ts | 43 - .../cli/src/commands/network/parameters.ts | 23 - packages/cli/src/commands/node/accounts.ts | 19 - packages/cli/src/commands/node/synced.ts | 28 - packages/cli/src/commands/oracle/list.ts | 30 - .../commands/oracle/remove-expired-reports.ts | 38 - packages/cli/src/commands/oracle/report.ts | 45 - packages/cli/src/commands/oracle/reports.ts | 40 - packages/cli/src/commands/releasecelo | 1 - .../commands/releasegold/admin-revoke.test.ts | 183 - .../src/commands/releasegold/admin-revoke.ts | 143 - .../commands/releasegold/authorize.test.ts | 241 - .../cli/src/commands/releasegold/authorize.ts | 100 - .../commands/releasegold/create-account.ts | 25 - .../commands/releasegold/locked-gold.test.ts | 62 - .../src/commands/releasegold/locked-gold.ts | 118 - .../releasegold/refund-and-finalize.test.ts | 45 - .../releasegold/refund-and-finalize.ts | 29 - .../src/commands/releasegold/revoke-votes.ts | 74 - .../cli/src/commands/releasegold/revoke.ts | 48 - .../releasegold/set-account-wallet-address.ts | 66 - .../src/commands/releasegold/set-account.ts | 57 - .../releasegold/set-beneficiary.test.ts | 107 - .../commands/releasegold/set-beneficiary.ts | 76 - .../commands/releasegold/set-can-expire.ts | 58 - .../releasegold/set-liquidity-provision.ts | 49 - .../releasegold/set-max-distribution.ts | 62 - packages/cli/src/commands/releasegold/show.ts | 49 - .../releasegold/transfer-dollars.test.ts | 76 - .../commands/releasegold/transfer-dollars.ts | 33 - .../src/commands/releasegold/withdraw.test.ts | 91 - .../cli/src/commands/releasegold/withdraw.ts | 61 - packages/cli/src/commands/reserve/status.ts | 24 - .../src/commands/reserve/transfergold.test.ts | 57 - .../cli/src/commands/reserve/transfergold.ts | 58 - packages/cli/src/commands/rewards/show.ts | 313 -- packages/cli/src/commands/transfer/celo.ts | 45 - packages/cli/src/commands/transfer/dollars.ts | 19 - packages/cli/src/commands/transfer/erc20.ts | 57 - packages/cli/src/commands/transfer/euros.ts | 19 - packages/cli/src/commands/transfer/gold.ts | 14 - packages/cli/src/commands/transfer/reals.ts | 19 - packages/cli/src/commands/transfer/stable.ts | 28 - .../cli/src/commands/validator/affiliate.ts | 54 - .../cli/src/commands/validator/deaffiliate.ts | 30 - .../cli/src/commands/validator/deregister.ts | 33 - .../src/commands/validator/downtime-slash.ts | 89 - .../commands/validator/force-deaffiliate.ts | 36 - packages/cli/src/commands/validator/list.ts | 36 - .../src/commands/validator/register.test.ts | 77 - .../cli/src/commands/validator/register.ts | 71 - .../src/commands/validator/requirements.ts | 23 - .../cli/src/commands/validator/set-bitmaps.ts | 59 - packages/cli/src/commands/validator/show.ts | 28 - .../src/commands/validator/signed-blocks.ts | 205 - packages/cli/src/commands/validator/status.ts | 245 - .../validator/update-bls-public-key.ts | 38 - .../validatorgroup/commission.test.ts | 38 - .../src/commands/validatorgroup/commission.ts | 68 - .../src/commands/validatorgroup/deregister.ts | 32 - .../cli/src/commands/validatorgroup/list.ts | 34 - .../cli/src/commands/validatorgroup/member.ts | 81 - .../src/commands/validatorgroup/register.ts | 58 - .../reset-slashing-multiplier.ts | 34 - .../cli/src/commands/validatorgroup/show.ts | 27 - packages/cli/src/exchange-stable-base.ts | 78 - packages/cli/src/help.ts | 8 - .../cli/src/hooks/prerun/plugin-warning.ts | 28 - packages/cli/src/index.ts | 1 - packages/cli/src/test-utils/PromiEventStub.ts | 41 - packages/cli/src/test-utils/cliUtils.ts | 11 - packages/cli/src/test-utils/grandaMento.ts | 13 - packages/cli/src/test-utils/setup.global.ts | 16 - .../cli/src/test-utils/teardown.global.ts | 5 - packages/cli/src/transfer-stable-base.ts | 68 - packages/cli/src/utils/checks.ts | 521 -- packages/cli/src/utils/cli.ts | 104 - packages/cli/src/utils/command.ts | 209 - packages/cli/src/utils/config.ts | 49 - packages/cli/src/utils/election.ts | 63 - packages/cli/src/utils/exchange.ts | 57 - packages/cli/src/utils/exec.ts | 53 - packages/cli/src/utils/governance.ts | 90 - packages/cli/src/utils/helpers.ts | 55 - packages/cli/src/utils/identity.ts | 158 - packages/cli/src/utils/lockedgold.ts | 6 - packages/cli/src/utils/off-chain-data.ts | 61 - packages/cli/src/utils/release-gold-base.ts | 47 - packages/cli/src/utils/require.ts | 34 - packages/cli/start_geth.sh | 46 - packages/cli/tsconfig.json | 12 - packages/cli/tslint.json | 19 - packages/cli/types/hw-transport-node-hid.d.ts | 1 - packages/docs/README.md | 7 - .../docs/command-line-interface/account.md | 952 ---- .../command-line-interface/autocomplete.md | 32 - .../docs/command-line-interface/commands.md | 30 - .../docs/command-line-interface/config.md | 53 - packages/docs/command-line-interface/dkg.md | 132 - .../docs/command-line-interface/election.md | 182 - .../docs/command-line-interface/exchange.md | 224 - .../docs/command-line-interface/governance.md | 430 -- .../command-line-interface/grandamento.md | 129 - packages/docs/command-line-interface/help.md | 23 - .../docs/command-line-interface/identity.md | 99 - .../command-line-interface/introduction.md | 65 - .../docs/command-line-interface/lockedgold.md | 195 - .../docs/command-line-interface/multisig.md | 95 - .../docs/command-line-interface/network.md | 62 - packages/docs/command-line-interface/node.md | 37 - .../docs/command-line-interface/oracle.md | 126 - .../docs/command-line-interface/plugins.md | 170 - .../docs/command-line-interface/registry.md | 34 - .../command-line-interface/releasecelo.md | 473 -- .../command-line-interface/releasegold.md | 473 -- .../docs/command-line-interface/reserve.md | 53 - .../docs/command-line-interface/rewards.md | 61 - .../docs/command-line-interface/transfer.md | 196 - .../docs/command-line-interface/validator.md | 442 -- .../command-line-interface/validatorgroup.md | 201 - .../utils/reference/README.md | 154 - .../utils/reference/SUMMARY.md | 13 - .../classes/_countries_.countries.md | 111 - .../utils/reference/globals.md | 11 - .../_countries_.localizedcountry.md | 63 - .../utils/reference/modules/_countries_.md | 11 - .../modules/_data_countries_es_country_.md | 3 - .../reference/modules/_inputvalidation_.md | 42 - .../utils/reference/modules/_io_.md | 318 -- .../utils/reference/modules/_phonenumbers_.md | 296 -- packages/docs/sdk/docs/README.md | 36 - packages/docs/sdk/docs/base/README.md | 27 - .../sdk/docs/base/classes/_future_.future.md | 113 - .../docs/sdk/docs/base/classes/_lock_.lock.md | 59 - .../base/classes/_result_.jsonparseerror.md | 95 - .../docs/base/classes/_result_.rooterror.md | 99 - .../base/enums/_account_.mnemoniclanguages.md | 89 - .../base/enums/_account_.mnemonicstrength.md | 26 - .../enums/_attestations_.identifiertype.md | 17 - .../base/enums/_currencies_.currency_enum.md | 37 - .../enums/_currencies_.short_currencies.md | 37 - .../base/enums/_currencies_.stabletoken.md | 35 - .../sdk/docs/base/enums/_currencies_.token.md | 17 - .../enums/_inputvalidation_.validatorkind.md | 44 - .../docs/base/interfaces/_account_.bip39.md | 93 - .../_attestations_.attestationsstatus.md | 48 - .../_collections_.addresslistitem.md | 34 - .../_contacts_.contactphonenumber.md | 30 - .../interfaces/_contacts_.minimalcontact.md | 48 - .../interfaces/_inputvalidation_.baseprops.md | 48 - .../_phonenumbers_.parsedphonenumber.md | 57 - .../base/interfaces/_result_.baseerror.md | 30 - .../base/interfaces/_result_.errorresult.md | 34 - .../docs/base/interfaces/_result_.okresult.md | 34 - .../interfaces/_signatureutils_.signature.md | 39 - .../interfaces/_signatureutils_.signer.md | 31 - .../interfaces/_task_.repeattaskcontext.md | 39 - .../interfaces/_task_.retrytaskoptions.md | 81 - .../base/interfaces/_task_.runningtask.md | 44 - .../interfaces/_task_.runningtaskwithvalue.md | 59 - .../base/interfaces/_task_.taskoptions.md | 36 - .../docs/sdk/docs/base/modules/_account_.md | 57 - .../docs/sdk/docs/base/modules/_address_.md | 263 - .../docs/sdk/docs/base/modules/_async_.md | 254 - .../sdk/docs/base/modules/_attestations_.md | 212 - .../sdk/docs/base/modules/_collections_.md | 215 - .../docs/sdk/docs/base/modules/_contacts_.md | 47 - .../sdk/docs/base/modules/_currencies_.md | 117 - .../docs/base/modules/_displayformatting_.md | 27 - .../docs/sdk/docs/base/modules/_future_.md | 59 - .../docs/base/modules/_inputvalidation_.md | 51 - packages/docs/sdk/docs/base/modules/_io_.md | 41 - packages/docs/sdk/docs/base/modules/_lock_.md | 9 - .../docs/sdk/docs/base/modules/_logger_.md | 77 - .../docs/sdk/docs/base/modules/_parsing_.md | 45 - .../sdk/docs/base/modules/_phonenumbers_.md | 97 - .../docs/sdk/docs/base/modules/_result_.md | 244 - .../sdk/docs/base/modules/_signatureutils_.md | 92 - .../docs/sdk/docs/base/modules/_string_.md | 67 - packages/docs/sdk/docs/base/modules/_task_.md | 83 - packages/docs/sdk/docs/connect/README.md | 37 - .../classes/_celo_provider_.celoprovider.md | 178 - .../classes/_connection_.connection.md | 728 --- ...ansaction_object_.celotransactionobject.md | 97 - .../_utils_rpc_caller_.defaultrpccaller.md | 94 - ...x_params_normalizer_.txparamsnormalizer.md | 61 - .../_utils_tx_result_.transactionresult.md | 62 - packages/docs/sdk/docs/connect/globals.md | 20 - .../interfaces/_abi_types_.abicoder.md | 170 - .../interfaces/_abi_types_.abidefinition.md | 124 - .../interfaces/_abi_types_.abiinput.md | 59 - .../connect/interfaces/_abi_types_.abiitem.md | 97 - .../interfaces/_abi_types_.abioutput.md | 50 - .../_abi_types_.decodedparamsarray.md | 31 - .../_abi_types_.decodedparamsobject.md | 33 - .../_connection_.connectionoptions.md | 48 - .../connect/interfaces/_types_.celoparams.md | 39 - .../interfaces/_types_.celotxobject.md | 99 - .../interfaces/_types_.encodedtransaction.md | 58 - .../interfaces/_types_.jsonrpcpayload.md | 48 - .../interfaces/_types_.jsonrpcresponse.md | 48 - .../connect/interfaces/_types_.provider.md | 34 - .../interfaces/_types_.rlpencodedtx.md | 30 - .../_utils_rpc_caller_.rpccaller.md | 56 - .../interfaces/_wallet_.readonlywallet.md | 162 - .../connect/interfaces/_wallet_.signer.md | 127 - .../sdk/docs/connect/modules/_abi_types_.md | 29 - .../docs/connect/modules/_celo_provider_.md | 29 - .../sdk/docs/connect/modules/_connection_.md | 13 - .../docs/sdk/docs/connect/modules/_types_.md | 154 - .../docs/connect/modules/_utils_abi_utils_.md | 71 - .../_utils_celo_transaction_object_.md | 47 - .../docs/connect/modules/_utils_formatter_.md | 214 - .../connect/modules/_utils_provider_utils_.md | 51 - .../connect/modules/_utils_rpc_caller_.md | 54 - .../modules/_utils_tx_params_normalizer_.md | 9 - .../docs/connect/modules/_utils_tx_result_.md | 31 - .../docs/sdk/docs/connect/modules/_wallet_.md | 10 - packages/docs/sdk/docs/contractkit/README.md | 290 - .../_address_registry_.addressregistry.md | 80 - .../_address_registry_.unregisterederror.md | 76 - .../classes/_celo_tokens_.celotokens.md | 394 -- .../classes/_contract_cache_.wrappercache.md | 419 -- ...ntity_metadata_.identitymetadatawrapper.md | 252 - .../contractkit/classes/_kit_.contractkit.md | 483 -- ..._mini_contract_cache_.minicontractcache.md | 177 - .../classes/_mini_kit_.minicontractkit.md | 113 - .../classes/_versions_.contractversion.md | 132 - ..._web3_contract_cache_.web3contractcache.md | 431 -- .../_wrappers_accounts_.accountswrapper.md | 861 --- ...ppers_attestations_.attestationswrapper.md | 882 --- .../_wrappers_baseslasher_.baseslasher.md | 182 - .../_wrappers_basewrapper_.basewrapper.md | 163 - ...erforgoverning_.basewrapperforgoverning.md | 160 - ...parameters_.blockchainparameterswrapper.md | 396 -- ...pers_celotokenwrapper_.celotokenwrapper.md | 423 -- ...ingslasher_.doublesigningslasherwrapper.md | 241 - ...downtimeslasher_.downtimeslasherwrapper.md | 453 -- .../_wrappers_election_.electionwrapper.md | 836 --- ...ppers_epochrewards_.epochrewardswrapper.md | 263 - .../_wrappers_erc20wrapper_.erc20wrapper.md | 311 -- .../_wrappers_escrow_.escrowwrapper.md | 295 -- .../_wrappers_exchange_.exchangewrapper.md | 813 --- .../_wrappers_freezer_.freezerwrapper.md | 198 - ...gaspriceminimum_.gaspriceminimumwrapper.md | 260 - ...pers_goldtokenwrapper_.goldtokenwrapper.md | 476 -- ..._wrappers_governance_.governancewrapper.md | 1502 ------ ...rappers_grandamento_.grandamentowrapper.md | 570 -- ..._wrappers_lockedgold_.lockedgoldwrapper.md | 500 -- ...ionwallet_.metatransactionwalletwrapper.md | 446 -- ...r_.metatransactionwalletdeployerwrapper.md | 160 - .../_wrappers_multisig_.multisigwrapper.md | 355 -- ...rappers_releasegold_.releasegoldwrapper.md | 1250 ----- .../_wrappers_reserve_.reservewrapper.md | 542 -- ...ers_sortedoracles_.sortedoracleswrapper.md | 460 -- ..._stabletokenwrapper_.stabletokenwrapper.md | 665 --- ..._wrappers_validators_.validatorswrapper.md | 1173 ---- .../contractkit/enums/_base_.celocontract.md | 287 - .../_identity_claims_types_.claimtypes.md | 80 - ...stations_.attestationservicestatusstate.md | 107 - ...wrappers_attestations_.attestationstate.md | 37 - .../_wrappers_governance_.proposalstage.md | 62 - .../enums/_wrappers_governance_.votevalue.md | 44 - ...pers_grandamento_.exchangeproposalstate.md | 53 - ..._wrappers_sortedoracles_.medianrelation.md | 44 - packages/docs/sdk/docs/contractkit/globals.md | 60 - ..._contract_cache_type_.contractcachetype.md | 117 - .../interfaces/_celo_tokens_.celotokeninfo.md | 32 - .../_celo_tokens_.stabletokeninfo.md | 45 - .../interfaces/_kit_.networkconfig.md | 129 - ...ers_attestations_.actionableattestation.md | 57 - ...appers_attestations_.attestationsconfig.md | 30 - ...tions_.attestationservicestatusresponse.md | 219 - ..._wrappers_attestations_.attestationstat.md | 30 - ...attestations_.attestationstateforissuer.md | 21 - ...rappers_attestations_.attestationstoken.md | 30 - ...rappers_attestations_.unselectedrequest.md | 39 - ...nparameters_.blockchainparametersconfig.md | 29 - ...ers_blockchainparameters_.clientversion.md | 39 - ..._downtimeslasher_.downtimeslasherconfig.md | 36 - .../_wrappers_downtimeslasher_.interval.md | 30 - ..._wrappers_election_.electablevalidators.md | 30 - .../_wrappers_election_.electionconfig.md | 57 - .../_wrappers_election_.groupvote.md | 39 - .../_wrappers_election_.groupvoterreward.md | 39 - .../_wrappers_election_.validatorgroupvote.md | 57 - .../interfaces/_wrappers_election_.voter.md | 30 - .../_wrappers_election_.voterreward.md | 48 - .../_wrappers_exchange_.exchangeconfig.md | 57 - ..._gaspriceminimum_.gaspriceminimumconfig.md | 39 - .../_wrappers_governance_.governanceconfig.md | 66 - .../_wrappers_governance_.hotfixrecord.md | 39 - ...ers_governance_.participationparameters.md | 48 - .../_wrappers_governance_.proposalmetadata.md | 57 - .../_wrappers_governance_.proposalrecord.md | 84 - .../_wrappers_governance_.upvoterecord.md | 30 - .../interfaces/_wrappers_governance_.voter.md | 39 - .../_wrappers_governance_.voterecord.md | 39 - .../interfaces/_wrappers_governance_.votes.md | 39 - ..._wrappers_grandamento_.exchangeproposal.md | 93 - ...s_grandamento_.exchangeproposalreadable.md | 93 - ...wrappers_grandamento_.grandamentoconfig.md | 57 - ..._grandamento_.stabletokenexchangelimits.md | 30 - .../_wrappers_lockedgold_.accountslashed.md | 57 - .../_wrappers_lockedgold_.lockedgoldconfig.md | 30 - ..._wrappers_lockedgold_.pendingwithdrawal.md | 30 - .../_wrappers_lockedgold_.votingdetails.md | 41 - ...s_metatransactionwallet_.rawtransaction.md | 39 - ...ctionwallet_.transactionobjectwithvalue.md | 34 - .../_wrappers_multisig_.transactiondata.md | 57 - .../_wrappers_releasegold_.balancestate.md | 75 - .../_wrappers_releasegold_.releasegoldinfo.md | 120 - .../_wrappers_reserve_.reserveconfig.md | 57 - .../_wrappers_sortedoracles_.medianrate.md | 21 - .../_wrappers_sortedoracles_.oraclerate.md | 39 - .../_wrappers_sortedoracles_.oraclereport.md | 39 - ...wrappers_sortedoracles_.oracletimestamp.md | 39 - ...pers_sortedoracles_.sortedoraclesconfig.md | 21 - ...stabletokenwrapper_.inflationparameters.md | 48 - ...s_stabletokenwrapper_.stabletokenconfig.md | 48 - .../_wrappers_validators_.groupmembership.md | 30 - ...pers_validators_.lockedgoldrequirements.md | 30 - ..._validators_.membershiphistoryextradata.md | 30 - .../_wrappers_validators_.validator.md | 75 - .../_wrappers_validators_.validatorgroup.md | 102 - .../_wrappers_validators_.validatorreward.md | 57 - .../_wrappers_validators_.validatorsconfig.md | 75 - .../contractkit/modules/_address_registry_.md | 22 - .../sdk/docs/contractkit/modules/_base_.md | 123 - .../modules/_basic_contract_cache_type_.md | 9 - .../docs/contractkit/modules/_celo_tokens_.md | 144 - .../contractkit/modules/_contract_cache_.md | 21 - .../modules/_identity_claims_account_.md | 81 - ...dentity_claims_attestation_service_url_.md | 72 - .../modules/_identity_claims_claim_.md | 267 - .../modules/_identity_claims_keybase_.md | 97 - .../modules/_identity_claims_types_.md | 73 - .../modules/_identity_claims_verify_.md | 75 - .../modules/_identity_metadata_.md | 46 - .../sdk/docs/contractkit/modules/_kit_.md | 101 - .../modules/_mini_contract_cache_.md | 21 - .../docs/contractkit/modules/_mini_kit_.md | 92 - .../sdk/docs/contractkit/modules/_proxy_.md | 270 - .../contractkit/modules/_setupforkits_.md | 90 - .../modules/_test_utils_grandamento_.md | 28 - .../modules/_test_utils_promieventstub_.md | 23 - .../modules/_test_utils_setup_global_.md | 19 - .../modules/_test_utils_teardown_global_.md | 19 - .../modules/_test_utils_transferownership_.md | 26 - .../docs/contractkit/modules/_versions_.md | 34 - .../modules/_web3_contract_cache_.md | 219 - .../modules/_wrappers_accounts_.md | 21 - .../modules/_wrappers_attestations_.md | 65 - .../modules/_wrappers_baseslasher_.md | 9 - .../modules/_wrappers_basewrapper_.md | 607 --- .../_wrappers_basewrapperforgoverning_.md | 9 - .../_wrappers_blockchainparameters_.md | 26 - .../modules/_wrappers_celotokenwrapper_.md | 9 - .../_wrappers_doublesigningslasher_.md | 21 - .../modules/_wrappers_downtimeslasher_.md | 26 - .../modules/_wrappers_election_.md | 31 - .../modules/_wrappers_epochrewards_.md | 21 - .../modules/_wrappers_erc20wrapper_.md | 21 - .../contractkit/modules/_wrappers_escrow_.md | 21 - .../modules/_wrappers_exchange_.md | 25 - .../contractkit/modules/_wrappers_freezer_.md | 21 - .../modules/_wrappers_gaspriceminimum_.md | 25 - .../modules/_wrappers_goldtokenwrapper_.md | 21 - .../modules/_wrappers_governance_.md | 113 - .../modules/_wrappers_grandamento_.md | 32 - .../modules/_wrappers_lockedgold_.md | 28 - .../_wrappers_metatransactionwallet_.md | 117 - ...wrappers_metatransactionwalletdeployer_.md | 21 - .../modules/_wrappers_multisig_.md | 25 - .../modules/_wrappers_releasegold_.md | 14 - .../contractkit/modules/_wrappers_reserve_.md | 25 - .../modules/_wrappers_sortedoracles_.md | 42 - .../modules/_wrappers_stabletokenwrapper_.md | 26 - .../modules/_wrappers_validators_.md | 31 - .../sdk/docs/cryptographic-utils/README.md | 11 - .../_node_modules_bls12377js_src_f2_.f2.md | 225 - .../_node_modules_bls12377js_src_f_.f.md | 242 - .../_node_modules_bls12377js_src_g1_.g1.md | 182 - .../_node_modules_bls12377js_src_g2_.g2.md | 182 - ...ode_modules_bls12377js_src_group_.group.md | 226 - .../sdk/docs/cryptographic-utils/globals.md | 19 - ..._modules_bls12377js_src_defs_.fieldspec.md | 167 - ..._modules_bls12377js_src_defs_.groupspec.md | 146 - ...src_commentencryption_.encryptionstatus.md | 30 - .../_node_modules_bls12377js_src_bls_.md | 320 -- .../_node_modules_bls12377js_src_defs_.md | 106 - .../_node_modules_bls12377js_src_f2_.md | 9 - .../_node_modules_bls12377js_src_f_.md | 9 - .../_node_modules_bls12377js_src_g1_.md | 9 - .../_node_modules_bls12377js_src_g2_.md | 9 - .../_node_modules_bls12377js_src_group_.md | 9 - ...es_sdk_cryptographic_utils_src_account_.md | 403 -- ...ckages_sdk_cryptographic_utils_src_bls_.md | 81 - ...ptographic_utils_src_commentencryption_.md | 131 - ...ptographic_utils_src_dataencryptionkey_.md | 103 - packages/docs/sdk/docs/explorer/README.md | 11 - .../classes/_block_explorer_.blockexplorer.md | 189 - .../classes/_log_explorer_.logexplorer.md | 96 - .../interfaces/_base_.contractdetails.md | 39 - .../_block_explorer_.calldetails.md | 48 - .../_block_explorer_.parsedblock.md | 30 - .../interfaces/_block_explorer_.parsedtx.md | 30 - .../docs/sdk/docs/explorer/modules/_base_.md | 71 - .../docs/explorer/modules/_block_explorer_.md | 35 - .../docs/explorer/modules/_log_explorer_.md | 29 - packages/docs/sdk/docs/governance/README.md | 9 - .../_proposals_.interactiveproposalbuilder.md | 54 - .../classes/_proposals_.proposalbuilder.md | 229 - .../_proposals_.proposaltransactionjson.md | 69 - .../docs/governance/modules/_proposals_.md | 90 - packages/docs/sdk/docs/identity/README.md | 26 - ..._blinding_client_.wasmblsblindingclient.md | 71 - ...s_circuit_breaker_.circuitbreakerclient.md | 119 - ...uit_breaker_.circuitbreakerserviceerror.md | 103 - ...breaker_.circuitbreakerunavailableerror.md | 93 - .../_odis_circuit_breaker_.encryptionerror.md | 93 - .../_odis_circuit_breaker_.fetcherror.md | 93 - ...ircuit_breaker_mock_.mockcircuitbreaker.md | 163 - ...orized_signer_.authorizedsigneraccessor.md | 109 - ...accessors_binary_.privatebinaryaccessor.md | 137 - ..._accessors_binary_.publicbinaryaccessor.md | 117 - ...hain_accessors_errors_.invaliddataerror.md | 78 - .../_offchain_accessors_errors_.invalidkey.md | 78 - ...ffchain_accessors_errors_.offchainerror.md | 93 - ...fchain_accessors_errors_.unavailablekey.md | 93 - ...ain_accessors_errors_.unknownciphertext.md | 78 - ...ain_accessors_name_.privatenameaccessor.md | 159 - ...hain_accessors_name_.publicnameaccessor.md | 137 - ...essors_pictures_.privatepictureaccessor.md | 148 - ...cessors_pictures_.publicpictureaccessor.md | 126 - ...accessors_simple_.privatesimpleaccessor.md | 152 - ..._accessors_simple_.publicsimpleaccessor.md | 132 - ...offchain_data_wrapper_.basicdatawrapper.md | 139 - .../_offchain_data_wrapper_.fetcherror.md | 84 - ...offchain_data_wrapper_.invalidsignature.md | 78 - ...ffchain_data_wrapper_.nostorageprovider.md | 78 - ...data_wrapper_.nostoragerootprovideddata.md | 78 - ...chain_storage_writers_.awsstoragewriter.md | 80 - ...chain_storage_writers_.gitstoragewriter.md | 70 - ...in_storage_writers_.googlestoragewriter.md | 80 - ...ain_storage_writers_.localstoragewriter.md | 74 - ...hain_storage_writers_.mockstoragewriter.md | 90 - ...offchain_storage_writers_.storagewriter.md | 32 - ...ircuit_breaker_.circuitbreakerendpoints.md | 35 - ...rcuit_breaker_.circuitbreakererrortypes.md | 44 - ...ircuit_breaker_.circuitbreakerkeystatus.md | 44 - .../enums/_odis_query_.errormessages.md | 71 - ...hain_accessors_errors_.schemaerrortypes.md | 53 - ...fchain_data_wrapper_.offchainerrortypes.md | 44 - ..._bls_blinding_client_.blsblindingclient.md | 55 - ...t_breaker_.circuitbreakerservicecontext.md | 30 - ...t_breaker_.circuitbreakerstatusresponse.md | 23 - ...breaker_.circuitbreakerunwrapkeyrequest.md | 23 - ...reaker_.circuitbreakerunwrapkeyresponse.md | 45 - ...mber_identifier_.phonenumberhashdetails.md | 39 - ...odis_query_.combinersignmessageresponse.md | 30 - .../_odis_query_.encryptionkeysigner.md | 30 - .../interfaces/_odis_query_.servicecontext.md | 30 - .../_odis_query_.walletkeysigner.md | 30 - ...n_accessors_interfaces_.privateaccessor.md | 82 - ...in_accessors_interfaces_.publicaccessor.md | 80 - ...chain_data_wrapper_.offchaindatawrapper.md | 89 - .../modules/_odis_bls_blinding_client_.md | 13 - .../modules/_odis_circuit_breaker_.md | 115 - .../modules/_odis_circuit_breaker_mock_.md | 70 - .../identity/modules/_odis_matchmaking_.md | 50 - .../modules/_odis_phone_number_identifier_.md | 168 - .../sdk/docs/identity/modules/_odis_query_.md | 240 - .../_offchain_accessors_authorized_signer_.md | 9 - .../modules/_offchain_accessors_binary_.md | 10 - .../modules/_offchain_accessors_errors_.md | 29 - .../_offchain_accessors_interfaces_.md | 10 - .../modules/_offchain_accessors_name_.md | 22 - .../modules/_offchain_accessors_pictures_.md | 10 - .../modules/_offchain_accessors_simple_.md | 10 - .../modules/_offchain_data_wrapper_.md | 33 - .../modules/_offchain_storage_writers_.md | 14 - .../docs/identity/modules/_offchain_utils_.md | 162 - .../modules/_test_utils_setup_global_.md | 19 - .../modules/_test_utils_teardown_global_.md | 19 - packages/docs/sdk/docs/keystores/README.md | 13 - .../classes/_file_keystore_.filekeystore.md | 286 - .../_inmemory_keystore_.inmemorykeystore.md | 253 - .../classes/_keystore_base_.keystorebase.md | 239 - ...e_wallet_wrapper_.keystorewalletwrapper.md | 109 - .../enums/_keystore_base_.errormessages.md | 35 - .../docs/keystores/modules/_file_keystore_.md | 9 - .../keystores/modules/_inmemory_keystore_.md | 9 - .../docs/keystores/modules/_keystore_base_.md | 13 - .../modules/_keystore_wallet_wrapper_.md | 9 - .../keystores/modules/_test_constants_.md | 98 - .../docs/sdk/docs/network-utils/README.md | 12 - ..._genesis_block_utils_.genesisblockutils.md | 50 - ...oogle_storage_utils_.googlestorageutils.md | 30 - .../_static_node_utils_.staticnodeutils.md | 94 - .../_utils_timezone_.coordinates.md | 30 - .../interfaces/_utils_timezone_.timezone.md | 48 - .../modules/_genesis_block_utils_.md | 21 - .../modules/_google_storage_utils_.md | 9 - .../modules/_static_node_utils_.md | 9 - .../network-utils/modules/_utils_timezone_.md | 47 - packages/docs/sdk/docs/phone-utils/README.md | 9 - .../classes/_countries_.countries.md | 113 - packages/docs/sdk/docs/phone-utils/globals.md | 15 - .../_countries_.localizedcountry.md | 65 - .../docs/phone-utils/modules/_countries_.md | 13 - .../modules/_data_countries_es_country_.md | 5 - .../phone-utils/modules/_getcountryemoji_.md | 27 - .../phone-utils/modules/_getphonehash_.md | 5 - .../phone-utils/modules/_inputvalidation_.md | 44 - .../docs/sdk/docs/phone-utils/modules/_io_.md | 166 - .../phone-utils/modules/_phonenumbers_.md | 237 - .../docs/sdk/docs/transactions-uri/README.md | 11 - .../modules/_test_utils_setup_global_.md | 19 - .../modules/_test_utils_teardown_global_.md | 19 - .../docs/transactions-uri/modules/_tx_uri_.md | 62 - packages/docs/sdk/docs/utils/README.md | 34 - .../interfaces/_istanbul_.istanbulextra.md | 66 - .../docs/utils/interfaces/_istanbul_.seal.md | 39 - .../_sign_typed_data_utils_.eip712object.md | 11 - ..._sign_typed_data_utils_.eip712parameter.md | 30 - ..._sign_typed_data_utils_.eip712typeddata.md | 48 - .../_sign_typed_data_utils_.eip712types.md | 11 - ...yped_data_utils_.eip712typeswithprimary.md | 30 - .../docs/sdk/docs/utils/modules/_address_.md | 208 - .../docs/sdk/docs/utils/modules/_async_.md | 50 - .../sdk/docs/utils/modules/_attestations_.md | 243 - packages/docs/sdk/docs/utils/modules/_bn_.md | 26 - .../sdk/docs/utils/modules/_celohistory_.md | 26 - .../sdk/docs/utils/modules/_collections_.md | 106 - .../docs/sdk/docs/utils/modules/_contacts_.md | 58 - .../sdk/docs/utils/modules/_currencies_.md | 43 - .../docs/utils/modules/_displayformatting_.md | 15 - .../docs/sdk/docs/utils/modules/_ecdh_.md | 94 - .../docs/sdk/docs/utils/modules/_ecies_.md | 192 - .../docs/sdk/docs/utils/modules/_fixidity_.md | 133 - .../docs/sdk/docs/utils/modules/_future_.md | 29 - .../docs/utils/modules/_inputvalidation_.md | 36 - packages/docs/sdk/docs/utils/modules/_io_.md | 167 - .../docs/sdk/docs/utils/modules/_istanbul_.md | 84 - .../sdk/docs/utils/modules/_levenshtein_.md | 26 - .../docs/sdk/docs/utils/modules/_logger_.md | 36 - .../docs/sdk/docs/utils/modules/_parsing_.md | 43 - .../utils/modules/_sign_typed_data_utils_.md | 353 -- .../docs/utils/modules/_signatureutils_.md | 417 -- .../docs/sdk/docs/utils/modules/_solidity_.md | 29 - .../docs/sdk/docs/utils/modules/_string_.md | 46 - .../docs/sdk/docs/utils/modules/_task_.md | 64 - .../modules/_typed_data_constructors_.md | 48 - packages/docs/sdk/docs/wallet-base/README.md | 10 - .../classes/_wallet_base_.walletbase.md | 172 - .../_wallet_base_.unlockablewallet.md | 231 - .../interfaces/_wallet_base_.wallet.md | 191 - .../wallet-base/modules/_signing_utils_.md | 231 - .../docs/wallet-base/modules/_wallet_base_.md | 14 - .../docs/sdk/docs/wallet-hsm-aws/README.md | 10 - .../classes/_aws_hsm_signer_.awshsmsigner.md | 135 - .../classes/_aws_hsm_wallet_.awshsmwallet.md | 273 - .../modules/_aws_hsm_signer_.md | 9 - .../modules/_aws_hsm_wallet_.md | 9 - .../docs/sdk/docs/wallet-hsm-azure/README.md | 11 - .../_azure_hsm_signer_.azurehsmsigner.md | 136 - .../_azure_hsm_wallet_.azurehsmwallet.md | 268 - ...e_key_vault_client_.azurekeyvaultclient.md | 132 - .../modules/_azure_hsm_signer_.md | 9 - .../modules/_azure_hsm_wallet_.md | 9 - .../modules/_azure_key_vault_client_.md | 9 - packages/docs/sdk/docs/wallet-hsm/README.md | 10 - .../classes/_signature_utils_.signature.md | 61 - .../docs/wallet-hsm/modules/_ber_utils_.md | 85 - .../wallet-hsm/modules/_signature_utils_.md | 137 - .../docs/sdk/docs/wallet-ledger/README.md | 13 - .../classes/_ledger_signer_.ledgersigner.md | 147 - .../classes/_ledger_wallet_.ledgerwallet.md | 296 -- .../_ledger_wallet_.addressvalidation.md | 44 - .../wallet-ledger/interfaces/_tokens_.api.md | 44 - .../interfaces/_tokens_.tokeninfo.md | 66 - .../sdk/docs/wallet-ledger/modules/_data_.md | 5 - .../wallet-ledger/modules/_ledger_signer_.md | 9 - .../wallet-ledger/modules/_ledger_utils_.md | 25 - .../wallet-ledger/modules/_ledger_wallet_.md | 48 - .../docs/wallet-ledger/modules/_tokens_.md | 68 - packages/docs/sdk/docs/wallet-local/README.md | 10 - .../classes/_local_signer_.localsigner.md | 135 - .../classes/_local_wallet_.localwallet.md | 206 - .../wallet-local/modules/_local_signer_.md | 9 - .../wallet-local/modules/_local_wallet_.md | 9 - .../docs/sdk/docs/wallet-remote/README.md | 9 - .../classes/_remote_wallet_.remotewallet.md | 214 - .../wallet-remote/modules/_remote_wallet_.md | 9 - packages/docs/sdk/docs/wallet-rpc/README.md | 12 - .../classes/_rpc_signer_.rpcsigner.md | 198 - .../classes/_rpc_wallet_.rpcwallet.md | 315 -- .../enums/_rpc_wallet_.rpcwalleterrors.md | 26 - .../docs/wallet-rpc/modules/_rpc_signer_.md | 9 - .../docs/wallet-rpc/modules/_rpc_wallet_.md | 13 - .../modules/_test_utils_ganache_setup_.md | 19 - .../modules/_test_utils_ganache_teardown_.md | 5 - packages/docs/sdk/mkdocs.yml | 3 - packages/docs/sdk/requirements.txt | 1 - packages/env-tests/tsconfig.json | 3 +- packages/metadata-crawler/.gitignore | 3 - packages/metadata-crawler/CHANGELOG.md | 67 - packages/metadata-crawler/README.md | 36 - packages/metadata-crawler/index.d.ts | 1 - packages/metadata-crawler/package.json | 37 - packages/metadata-crawler/src/crawler.ts | 183 - packages/metadata-crawler/src/env.ts | 19 - packages/metadata-crawler/src/logger.ts | 30 - packages/metadata-crawler/tsconfig.json | 9 - packages/protocol/lib/test-utils.ts | 10 +- packages/sdk/CHANGELOG.md | 200 - packages/sdk/base/.gitignore | 3 - packages/sdk/base/.npmignore | 13 - packages/sdk/base/CHANGELOG.md | 25 - packages/sdk/base/README.MD | 24 - packages/sdk/base/jest.config.js | 4 - packages/sdk/base/package.json | 31 - packages/sdk/base/src/account.ts | 34 - packages/sdk/base/src/address.test.ts | 39 - packages/sdk/base/src/address.ts | 87 - packages/sdk/base/src/async.test.ts | 170 - packages/sdk/base/src/async.ts | 195 - packages/sdk/base/src/collections.test.ts | 211 - packages/sdk/base/src/collections.ts | 114 - packages/sdk/base/src/contacts.ts | 31 - packages/sdk/base/src/currencies.ts | 72 - packages/sdk/base/src/displayFormatting.ts | 11 - packages/sdk/base/src/future.test.ts | 20 - packages/sdk/base/src/future.ts | 54 - packages/sdk/base/src/index.ts | 17 - packages/sdk/base/src/inputValidation.ts | 30 - packages/sdk/base/src/io.ts | 6 - packages/sdk/base/src/lock.test.ts | 26 - packages/sdk/base/src/lock.ts | 60 - packages/sdk/base/src/logger.ts | 15 - packages/sdk/base/src/package.test.ts | 13 - packages/sdk/base/src/parsing.test.ts | 13 - packages/sdk/base/src/parsing.ts | 32 - packages/sdk/base/src/phoneNumbers.test.ts | 42 - packages/sdk/base/src/phoneNumbers.ts | 21 - packages/sdk/base/src/result.test.ts | 20 - packages/sdk/base/src/result.ts | 102 - packages/sdk/base/src/signatureUtils.ts | 36 - packages/sdk/base/src/string.ts | 17 - packages/sdk/base/src/task.test.ts | 236 - packages/sdk/base/src/task.ts | 151 - packages/sdk/base/src/types.d.ts | 0 packages/sdk/base/tsconfig.json | 9 - packages/sdk/base/tslint.json | 8 - packages/sdk/base/typedoc.json | 13 - packages/sdk/connect/.gitignore | 4 - packages/sdk/connect/.npmignore | 22 - packages/sdk/connect/CHANGELOG.md | 46 - packages/sdk/connect/LICENSE | 201 - packages/sdk/connect/jest.config.js | 5 - packages/sdk/connect/package.json | 50 - packages/sdk/connect/readme.md | 35 - packages/sdk/connect/src/abi-types.ts | 68 - .../sdk/connect/src/celo-provider.test.ts | 264 - packages/sdk/connect/src/celo-provider.ts | 287 - packages/sdk/connect/src/connection.test.ts | 59 - packages/sdk/connect/src/connection.ts | 536 -- packages/sdk/connect/src/index.ts | 8 - packages/sdk/connect/src/types.ts | 168 - packages/sdk/connect/src/utils/abi-utils.ts | 56 - .../src/utils/celo-transaction-object.ts | 30 - .../sdk/connect/src/utils/formatter.test.ts | 297 -- packages/sdk/connect/src/utils/formatter.ts | 375 -- .../sdk/connect/src/utils/provider-utils.ts | 27 - .../sdk/connect/src/utils/rpc-caller.test.ts | 137 - packages/sdk/connect/src/utils/rpc-caller.ts | 126 - .../src/utils/tx-params-normalizer.test.ts | 143 - .../connect/src/utils/tx-params-normalizer.ts | 122 - packages/sdk/connect/src/utils/tx-result.ts | 63 - packages/sdk/connect/src/wallet.ts | 30 - packages/sdk/connect/tsconfig.json | 9 - packages/sdk/connect/tslint.json | 8 - packages/sdk/connect/typedoc.json | 13 - packages/sdk/contractkit/.gitignore | 7 - packages/sdk/contractkit/.npmignore | 24 - packages/sdk/contractkit/CHANGELOG.md | 113 - packages/sdk/contractkit/DEVELOP.md | 26 - .../sdk/contractkit/MIGRATION-TO-ETHERS.md | 108 - packages/sdk/contractkit/MIGRATION-TO-VIEM.md | 232 - packages/sdk/contractkit/README.md | 290 - packages/sdk/contractkit/jest.config.js | 9 - packages/sdk/contractkit/jest_setup.ts | 5 - packages/sdk/contractkit/package.json | 66 - .../sdk/contractkit/src/address-registry.ts | 65 - packages/sdk/contractkit/src/base.ts | 72 - .../src/basic-contract-cache-type.ts | 25 - .../sdk/contractkit/src/celo-tokens.test.ts | 52 - packages/sdk/contractkit/src/celo-tokens.ts | 281 - .../contractkit/src/contract-cache.test.ts | 56 - .../sdk/contractkit/src/contract-cache.ts | 252 - packages/sdk/contractkit/src/globals.d.ts | 1 - .../src/identity/claims/account.test.ts | 117 - .../src/identity/claims/account.ts | 52 - .../contractkit/src/identity/claims/claim.ts | 98 - .../src/identity/claims/domain.test.ts | 93 - .../src/identity/claims/keybase.ts | 76 - .../contractkit/src/identity/claims/types.ts | 20 - .../contractkit/src/identity/claims/verify.ts | 107 - .../sdk/contractkit/src/identity/index.ts | 1 - .../contractkit/src/identity/metadata.test.ts | 91 - .../sdk/contractkit/src/identity/metadata.ts | 228 - packages/sdk/contractkit/src/index.ts | 13 - packages/sdk/contractkit/src/kit.test.ts | 152 - packages/sdk/contractkit/src/kit.ts | 289 - .../contractkit/src/mini-contract-cache.ts | 161 - packages/sdk/contractkit/src/mini-kit.ts | 82 - packages/sdk/contractkit/src/proxy.ts | 151 - packages/sdk/contractkit/src/setupForKits.ts | 40 - .../src/test-utils/AlphabeticSequencer.js | 10 - .../src/test-utils/PromiEventStub.ts | 41 - .../contractkit/src/test-utils/grandaMento.ts | 13 - .../src/test-utils/setup.global.ts | 19 - .../src/test-utils/teardown.global.ts | 5 - .../src/test-utils/transferownership.ts | 67 - .../sdk/contractkit/src/test-utils/utils.ts | 37 - .../src/utils/getParsedSignatureOfAddress.ts | 14 - .../sdk/contractkit/src/utils/signing.test.ts | 35 - packages/sdk/contractkit/src/versions.ts | 21 - .../src/web3-contract-cache.test.ts | 35 - .../contractkit/src/web3-contract-cache.ts | 228 - .../contractkit/src/wrappers/Accounts.test.ts | 229 - .../sdk/contractkit/src/wrappers/Accounts.ts | 508 -- .../src/wrappers/Attestations.test.ts | 61 - .../contractkit/src/wrappers/Attestations.ts | 324 -- .../contractkit/src/wrappers/BaseSlasher.ts | 78 - .../src/wrappers/BaseWrapper.test.ts | 108 - .../contractkit/src/wrappers/BaseWrapper.ts | 343 -- .../src/wrappers/BaseWrapperForGoverning.ts | 28 - .../src/wrappers/BlockChainParameters.test.ts | 64 - .../src/wrappers/BlockchainParameters.ts | 109 - .../src/wrappers/CeloTokenWrapper.ts | 39 - .../src/wrappers/DoubleSigningSlasher.ts | 51 - .../src/wrappers/DowntimeSlasher.ts | 223 - .../contractkit/src/wrappers/Election.test.ts | 341 -- .../sdk/contractkit/src/wrappers/Election.ts | 569 -- .../contractkit/src/wrappers/EpochRewards.ts | 65 - .../contractkit/src/wrappers/Erc20Wrapper.ts | 63 - .../contractkit/src/wrappers/Escrow.test.ts | 168 - .../sdk/contractkit/src/wrappers/Escrow.ts | 135 - .../contractkit/src/wrappers/Exchange.test.ts | 181 - .../sdk/contractkit/src/wrappers/Exchange.ts | 346 -- .../wrappers/FederatedAttestations.test.ts | 174 - .../src/wrappers/FederatedAttestations.ts | 175 - .../contractkit/src/wrappers/FeeHandler.ts | 76 - .../sdk/contractkit/src/wrappers/Freezer.ts | 10 - .../src/wrappers/GasPriceMinimum.ts | 66 - .../src/wrappers/GoldToken.test.ts | 52 - .../src/wrappers/GoldTokenWrapper.ts | 51 - .../src/wrappers/Governance.test.ts | 349 -- .../contractkit/src/wrappers/Governance.ts | 959 ---- .../src/wrappers/GrandaMento.test.ts | 189 - .../contractkit/src/wrappers/GrandaMento.ts | 233 - .../src/wrappers/LockedGold.test.ts | 79 - .../contractkit/src/wrappers/LockedGold.ts | 427 -- .../wrappers/MetaTransactionWallet.test.ts | 266 - .../src/wrappers/MetaTransactionWallet.ts | 313 -- .../MetaTransactionWalletDeployer.test.ts | 91 - .../wrappers/MetaTransactionWalletDeployer.ts | 14 - .../sdk/contractkit/src/wrappers/MultiSig.ts | 172 - .../src/wrappers/OdisPayments.test.ts | 54 - .../contractkit/src/wrappers/OdisPayments.ts | 29 - .../contractkit/src/wrappers/ReleaseGold.ts | 732 --- .../contractkit/src/wrappers/Reserve.test.ts | 84 - .../sdk/contractkit/src/wrappers/Reserve.ts | 149 - .../src/wrappers/SortedOracles.test.ts | 402 -- .../contractkit/src/wrappers/SortedOracles.ts | 318 -- .../src/wrappers/StableToken.test.ts | 102 - .../src/wrappers/StableTokenWrapper.ts | 139 - .../src/wrappers/Validators.test.ts | 200 - .../contractkit/src/wrappers/Validators.ts | 685 --- packages/sdk/contractkit/tsconfig.json | 12 - packages/sdk/contractkit/tslint.json | 9 - packages/sdk/contractkit/typedoc.json | 13 - packages/sdk/cryptographic-utils/.gitignore | 3 - packages/sdk/cryptographic-utils/.npmignore | 13 - packages/sdk/cryptographic-utils/CHANGELOG.md | 35 - packages/sdk/cryptographic-utils/README.md | 7 - .../sdk/cryptographic-utils/jest.config.js | 4 - packages/sdk/cryptographic-utils/package.json | 45 - .../cryptographic-utils/src/account.test.ts | 390 -- .../sdk/cryptographic-utils/src/account.ts | 475 -- packages/sdk/cryptographic-utils/src/bls.ts | 61 - .../src/commentEncryption.test.ts | 122 - .../src/commentEncryption.ts | 118 - .../src/dataEncryptionKey.test.ts | 40 - .../src/dataEncryptionKey.ts | 60 - packages/sdk/cryptographic-utils/src/index.ts | 4 - .../sdk/cryptographic-utils/src/types.d.ts | 1 - .../sdk/cryptographic-utils/tsconfig.json | 11 - packages/sdk/cryptographic-utils/tslint.json | 9 - packages/sdk/cryptographic-utils/typedoc.json | 13 - packages/sdk/explorer/.gitignore | 4 - packages/sdk/explorer/.npmignore | 17 - packages/sdk/explorer/CHANGELOG.md | 77 - packages/sdk/explorer/README.md | 5 - .../explorer/fixtures/contract.metadata.json | 2895 ---------- .../sdk/explorer/fixtures/proxy.metadata.json | 198 - packages/sdk/explorer/jest.config.js | 6 - packages/sdk/explorer/jestSetup.ts | 7 - packages/sdk/explorer/package.json | 42 - packages/sdk/explorer/scripts/driver.ts | 68 - packages/sdk/explorer/src/base.ts | 44 - packages/sdk/explorer/src/block-explorer.ts | 390 -- packages/sdk/explorer/src/globals.d.ts | 5 - packages/sdk/explorer/src/index.ts | 3 - packages/sdk/explorer/src/log-explorer.ts | 105 - packages/sdk/explorer/src/sourcify.test.ts | 254 - packages/sdk/explorer/src/sourcify.ts | 237 - packages/sdk/explorer/tsconfig.json | 8 - packages/sdk/explorer/tslint.json | 9 - packages/sdk/explorer/typedoc.json | 13 - packages/sdk/governance/.gitignore | 4 - packages/sdk/governance/.npmignore | 17 - packages/sdk/governance/CHANGELOG.md | 110 - packages/sdk/governance/README.md | 8 - packages/sdk/governance/package.json | 41 - packages/sdk/governance/src/index.ts | 1 - packages/sdk/governance/src/proposals.ts | 551 -- packages/sdk/governance/tsconfig.json | 9 - packages/sdk/governance/tslint.json | 9 - packages/sdk/governance/typedoc.json | 13 - packages/sdk/keystores/.gitignore | 2 - packages/sdk/keystores/.npmignore | 24 - packages/sdk/keystores/CHANGELOG.md | 35 - packages/sdk/keystores/README.md | 3 - packages/sdk/keystores/jest.config.js | 5 - packages/sdk/keystores/package.json | 36 - .../sdk/keystores/src/file-keystore.test.ts | 53 - packages/sdk/keystores/src/file-keystore.ts | 56 - packages/sdk/keystores/src/index.ts | 4 - .../sdk/keystores/src/inmemory-keystore.ts | 25 - .../sdk/keystores/src/keystore-base.test.ts | 97 - packages/sdk/keystores/src/keystore-base.ts | 148 - .../src/keystore-wallet-wrapper.test.ts | 41 - .../keystores/src/keystore-wallet-wrapper.ts | 39 - packages/sdk/keystores/src/test-constants.ts | 13 - packages/sdk/keystores/tsconfig.json | 8 - packages/sdk/keystores/tslint.json | 8 - packages/sdk/keystores/typedoc.json | 13 - packages/sdk/network-utils/.gitignore | 4 - packages/sdk/network-utils/.npmignore | 17 - packages/sdk/network-utils/CHANGELOG.md | 13 - packages/sdk/network-utils/README.md | 4 - packages/sdk/network-utils/jest.config.js | 6 - packages/sdk/network-utils/jestSetup.ts | 5 - packages/sdk/network-utils/package.json | 36 - .../network-utils/scripts/fetch_timezones.ts | 97 - .../src/genesis-block-utils.test.ts | 172 - .../network-utils/src/genesis-block-utils.ts | 29 - packages/sdk/network-utils/src/globals.d.ts | 1 - .../network-utils/src/google-storage-utils.ts | 43 - packages/sdk/network-utils/src/index.ts | 2 - .../src/static-node-utils.test.ts | 170 - .../network-utils/src/static-node-utils.ts | 126 - .../sdk/network-utils/src/utils/timezone.ts | 51 - .../network-utils/src/utils/timezones.json | 1 - packages/sdk/network-utils/tsconfig.json | 10 - packages/sdk/network-utils/tslint.json | 9 - packages/sdk/network-utils/typedoc.json | 13 - packages/sdk/phone-utils/.gitignore | 3 - packages/sdk/phone-utils/.npmignore | 7 - packages/sdk/phone-utils/CHANGELOG.md | 43 - packages/sdk/phone-utils/README.md | 6 - packages/sdk/phone-utils/jest.config.js | 4 - packages/sdk/phone-utils/package.json | 39 - packages/sdk/phone-utils/scripts/linkdocs.ts | 39 - .../sdk/phone-utils/src/countries.test.ts | 174 - packages/sdk/phone-utils/src/countries.ts | 116 - .../src/data/countries/es/country.json | 1 - .../sdk/phone-utils/src/getCountryEmoji.ts | 23 - packages/sdk/phone-utils/src/index.ts | 18 - .../phone-utils/src/inputValidation.test.ts | 48 - .../sdk/phone-utils/src/inputValidation.ts | 40 - packages/sdk/phone-utils/src/io.ts | 87 - .../sdk/phone-utils/src/phoneNumbers.test.ts | 315 -- packages/sdk/phone-utils/src/phoneNumbers.ts | 246 - packages/sdk/phone-utils/tsconfig.json | 11 - packages/sdk/phone-utils/tslint.json | 8 - packages/sdk/phone-utils/typedoc.json | 15 - packages/sdk/transactions-uri/.gitignore | 4 - packages/sdk/transactions-uri/.npmignore | 17 - packages/sdk/transactions-uri/CHANGELOG.md | 40 - packages/sdk/transactions-uri/README.md | 6 - packages/sdk/transactions-uri/jest.config.js | 8 - packages/sdk/transactions-uri/jestSetup.ts | 5 - packages/sdk/transactions-uri/package.json | 42 - packages/sdk/transactions-uri/src/index.ts | 1 - .../src/test-utils/setup.global.ts | 18 - .../src/test-utils/teardown.global.ts | 5 - .../sdk/transactions-uri/src/tx-uri.test.ts | 78 - packages/sdk/transactions-uri/src/tx-uri.ts | 120 - packages/sdk/transactions-uri/tsconfig.json | 9 - packages/sdk/transactions-uri/tslint.json | 9 - packages/sdk/transactions-uri/typedoc.json | 13 - packages/sdk/utils/.gitignore | 3 - packages/sdk/utils/.npmignore | 13 - packages/sdk/utils/CHANGELOG.md | 31 - packages/sdk/utils/README.md | 5 - packages/sdk/utils/jest.config.js | 4 - packages/sdk/utils/package.json | 50 - packages/sdk/utils/scripts/linkdocs.ts | 39 - packages/sdk/utils/src/address.test.ts | 58 - packages/sdk/utils/src/address.ts | 60 - packages/sdk/utils/src/async.test.ts | 99 - packages/sdk/utils/src/async.ts | 10 - packages/sdk/utils/src/bn.ts | 11 - packages/sdk/utils/src/celoHistory.ts | 7 - packages/sdk/utils/src/collections.test.ts | 201 - packages/sdk/utils/src/collections.ts | 24 - packages/sdk/utils/src/contacts.ts | 22 - packages/sdk/utils/src/currencies.ts | 9 - packages/sdk/utils/src/displayFormatting.ts | 3 - packages/sdk/utils/src/ecdh.ts | 54 - packages/sdk/utils/src/ecies.test.ts | 119 - packages/sdk/utils/src/ecies.ts | 189 - packages/sdk/utils/src/fixidity.ts | 30 - packages/sdk/utils/src/future.test.ts | 20 - packages/sdk/utils/src/future.ts | 3 - packages/sdk/utils/src/index.ts | 9 - packages/sdk/utils/src/inputValidation.ts | 8 - packages/sdk/utils/src/io.ts | 66 - packages/sdk/utils/src/istanbul.test.ts | 63 - packages/sdk/utils/src/istanbul.ts | 69 - packages/sdk/utils/src/levenshtein.test.ts | 92 - packages/sdk/utils/src/levenshtein.ts | 96 - packages/sdk/utils/src/logger.ts | 3 - packages/sdk/utils/src/parsing.test.ts | 25 - packages/sdk/utils/src/parsing.ts | 12 - .../utils/src/sign-typed-data-utils.test.ts | 487 -- .../sdk/utils/src/sign-typed-data-utils.ts | 311 -- packages/sdk/utils/src/signatureUtils.test.ts | 88 - packages/sdk/utils/src/signatureUtils.ts | 246 - packages/sdk/utils/src/solidity.ts | 1 - packages/sdk/utils/src/string.ts | 8 - packages/sdk/utils/src/task.test.ts | 236 - packages/sdk/utils/src/task.ts | 12 - .../sdk/utils/src/typed-data-constructors.ts | 82 - packages/sdk/utils/tsconfig.json | 11 - packages/sdk/utils/tslint.json | 8 - packages/sdk/utils/typedoc.json | 13 - packages/sdk/wallets/wallet-base/.gitignore | 1 - packages/sdk/wallets/wallet-base/.npmignore | 24 - packages/sdk/wallets/wallet-base/CHANGELOG.md | 52 - packages/sdk/wallets/wallet-base/Readme.md | 3 - .../sdk/wallets/wallet-base/jest.config.js | 5 - packages/sdk/wallets/wallet-base/package.json | 44 - packages/sdk/wallets/wallet-base/src/index.ts | 2 - .../wallet-base/src/signing-utils.test.ts | 617 --- .../wallets/wallet-base/src/signing-utils.ts | 706 --- .../wallets/wallet-base/src/wallet-base.ts | 145 - .../sdk/wallets/wallet-base/tsconfig.json | 10 - packages/sdk/wallets/wallet-base/tslint.json | 8 - packages/sdk/wallets/wallet-base/typedoc.json | 13 - .../sdk/wallets/wallet-hsm-aws/.gitignore | 2 - .../sdk/wallets/wallet-hsm-aws/.npmignore | 24 - .../sdk/wallets/wallet-hsm-aws/CHANGELOG.md | 43 - packages/sdk/wallets/wallet-hsm-aws/README.MD | 1 - .../sdk/wallets/wallet-hsm-aws/jest.config.js | 5 - .../sdk/wallets/wallet-hsm-aws/package.json | 50 - .../wallet-hsm-aws/src/aws-hsm-signer.ts | 119 - .../wallet-hsm-aws/src/aws-hsm-wallet.test.ts | 306 -- .../wallet-hsm-aws/src/aws-hsm-wallet.ts | 96 - .../sdk/wallets/wallet-hsm-aws/src/index.ts | 2 - .../sdk/wallets/wallet-hsm-aws/tsconfig.json | 9 - .../sdk/wallets/wallet-hsm-aws/tslint.json | 8 - .../sdk/wallets/wallet-hsm-aws/typedoc.json | 13 - .../sdk/wallets/wallet-hsm-azure/.gitignore | 2 - .../sdk/wallets/wallet-hsm-azure/.npmignore | 24 - .../sdk/wallets/wallet-hsm-azure/CHANGELOG.md | 56 - .../sdk/wallets/wallet-hsm-azure/README.md | 1 - .../wallets/wallet-hsm-azure/jest.config.js | 5 - .../sdk/wallets/wallet-hsm-azure/package.json | 49 - .../wallet-hsm-azure/src/azure-hsm-signer.ts | 85 - .../src/azure-hsm-wallet.test.ts | 307 -- .../wallet-hsm-azure/src/azure-hsm-wallet.ts | 57 - .../src/azure-key-vault-client.ts | 185 - .../sdk/wallets/wallet-hsm-azure/src/index.ts | 3 - .../wallets/wallet-hsm-azure/tsconfig.json | 9 - .../sdk/wallets/wallet-hsm-azure/tslint.json | 8 - .../sdk/wallets/wallet-hsm-azure/typedoc.json | 13 - .../sdk/wallets/wallet-hsm-gcp/.env.example | 2 - .../sdk/wallets/wallet-hsm-gcp/.gitignore | 3 - .../sdk/wallets/wallet-hsm-gcp/.npmignore | 17 - .../sdk/wallets/wallet-hsm-gcp/CHANGELOG.md | 43 - .../sdk/wallets/wallet-hsm-gcp/jest.config.js | 5 - .../sdk/wallets/wallet-hsm-gcp/package.json | 48 - .../wallet-hsm-gcp/src/gcp-hsm-signer.ts | 115 - .../wallet-hsm-gcp/src/gcp-hsm-wallet.test.ts | 293 - .../wallet-hsm-gcp/src/gcp-hsm-wallet.ts | 82 - .../sdk/wallets/wallet-hsm-gcp/src/index.ts | 2 - .../sdk/wallets/wallet-hsm-gcp/tsconfig.json | 9 - .../sdk/wallets/wallet-hsm-gcp/tslint.json | 8 - .../sdk/wallets/wallet-hsm-gcp/typedoc.json | 13 - packages/sdk/wallets/wallet-hsm/.gitignore | 1 - packages/sdk/wallets/wallet-hsm/.npmignore | 24 - packages/sdk/wallets/wallet-hsm/CHANGELOG.md | 31 - packages/sdk/wallets/wallet-hsm/README.md | 1 - packages/sdk/wallets/wallet-hsm/package.json | 42 - .../sdk/wallets/wallet-hsm/src/ber-utils.ts | 57 - packages/sdk/wallets/wallet-hsm/src/index.ts | 2 - .../wallets/wallet-hsm/src/signature-utils.ts | 85 - packages/sdk/wallets/wallet-hsm/tsconfig.json | 7 - packages/sdk/wallets/wallet-hsm/tslint.json | 8 - packages/sdk/wallets/wallet-hsm/typedoc.json | 13 - packages/sdk/wallets/wallet-ledger/.gitignore | 1 - packages/sdk/wallets/wallet-ledger/.npmignore | 24 - .../sdk/wallets/wallet-ledger/CHANGELOG.md | 52 - packages/sdk/wallets/wallet-ledger/README.MD | 1 - .../sdk/wallets/wallet-ledger/jest.config.js | 5 - .../sdk/wallets/wallet-ledger/package.json | 45 - .../sdk/wallets/wallet-ledger/src/data.ts | 1 - .../sdk/wallets/wallet-ledger/src/index.ts | 2 - .../wallet-ledger/src/ledger-signer.ts | 200 - .../wallets/wallet-ledger/src/ledger-utils.ts | 14 - .../wallet-ledger/src/ledger-wallet.test.ts | 526 -- .../wallet-ledger/src/ledger-wallet.ts | 139 - .../sdk/wallets/wallet-ledger/src/tokens.ts | 99 - .../wallet-ledger/tokens-all-networks.json | 46 - .../sdk/wallets/wallet-ledger/tsconfig.json | 9 - .../sdk/wallets/wallet-ledger/tslint.json | 8 - .../sdk/wallets/wallet-ledger/typedoc.json | 13 - .../wallet-ledger/types/hw-app-eth.d.ts | 4 - packages/sdk/wallets/wallet-local/.gitignore | 1 - packages/sdk/wallets/wallet-local/.npmignore | 25 - .../sdk/wallets/wallet-local/CHANGELOG.md | 50 - packages/sdk/wallets/wallet-local/Readme.MD | 1 - .../sdk/wallets/wallet-local/jest.config.js | 5 - .../sdk/wallets/wallet-local/package.json | 38 - .../sdk/wallets/wallet-local/src/index.ts | 2 - .../wallets/wallet-local/src/local-signer.ts | 74 - .../wallet-local/src/local-wallet.test.ts | 523 -- .../wallets/wallet-local/src/local-wallet.ts | 27 - .../wallets/wallet-local/src/signing.test.ts | 251 - .../sdk/wallets/wallet-local/tsconfig.json | 10 - packages/sdk/wallets/wallet-local/tslint.json | 8 - .../sdk/wallets/wallet-local/typedoc.json | 13 - packages/sdk/wallets/wallet-remote/.gitignore | 1 - packages/sdk/wallets/wallet-remote/.npmignore | 25 - .../sdk/wallets/wallet-remote/CHANGELOG.md | 42 - packages/sdk/wallets/wallet-remote/README.md | 1 - .../sdk/wallets/wallet-remote/jest.config.js | 5 - .../sdk/wallets/wallet-remote/package.json | 38 - .../sdk/wallets/wallet-remote/src/index.ts | 1 - .../wallet-remote/src/remote-wallet.test.ts | 114 - .../wallet-remote/src/remote-wallet.ts | 112 - .../sdk/wallets/wallet-remote/tsconfig.json | 7 - .../sdk/wallets/wallet-remote/tslint.json | 8 - .../sdk/wallets/wallet-remote/typedoc.json | 13 - packages/sdk/wallets/wallet-rpc/.gitignore | 1 - packages/sdk/wallets/wallet-rpc/.npmignore | 25 - packages/sdk/wallets/wallet-rpc/CHANGELOG.md | 52 - packages/sdk/wallets/wallet-rpc/README.md | 1 - .../sdk/wallets/wallet-rpc/jest.config.js | 7 - packages/sdk/wallets/wallet-rpc/package.json | 43 - packages/sdk/wallets/wallet-rpc/src/index.ts | 2 - .../sdk/wallets/wallet-rpc/src/rpc-signer.ts | 180 - .../wallets/wallet-rpc/src/rpc-wallet.test.ts | 261 - .../sdk/wallets/wallet-rpc/src/rpc-wallet.ts | 70 - .../src/test-utils/ganache.setup.ts | 11 - .../src/test-utils/ganache.teardown.ts | 2 - packages/sdk/wallets/wallet-rpc/tsconfig.json | 9 - packages/sdk/wallets/wallet-rpc/tslint.json | 8 - packages/sdk/wallets/wallet-rpc/typedoc.json | 13 - readthedocs.yml | 10 - scripts/beta-mode.sh | 31 - scripts/deprecate-sdks.ts | 81 - scripts/hooks/prereleasecheck.sh | 15 - yarn.lock | 4706 +---------------- 1226 files changed, 270 insertions(+), 114610 deletions(-) delete mode 100644 .gitattributes delete mode 100644 .github/workflows/cron-npm-install.yml delete mode 100644 RELEASE.md delete mode 100644 dependency-graph.json delete mode 100644 dockerfiles/cli-standalone/Dockerfile delete mode 100644 dockerfiles/cli/Dockerfile delete mode 100644 packages/cli/.gitattributes delete mode 100644 packages/cli/.gitignore delete mode 100644 packages/cli/.npmignore delete mode 100644 packages/cli/CHANGELOG.md delete mode 100644 packages/cli/README.md delete mode 100755 packages/cli/bin/run delete mode 100644 packages/cli/bin/run.cmd delete mode 100644 packages/cli/cloudbuild.yaml delete mode 100644 packages/cli/dev-guide.md delete mode 100755 packages/cli/generate_docs.sh delete mode 100644 packages/cli/jest.config.js delete mode 100644 packages/cli/package.json delete mode 100644 packages/cli/releasing.md delete mode 100644 packages/cli/src/base.ts delete mode 100644 packages/cli/src/commands/account/authorize.test.ts delete mode 100644 packages/cli/src/commands/account/authorize.ts delete mode 100644 packages/cli/src/commands/account/balance.ts delete mode 100644 packages/cli/src/commands/account/claim-account.ts delete mode 100644 packages/cli/src/commands/account/claim-domain.ts delete mode 100644 packages/cli/src/commands/account/claim-keybase.ts delete mode 100644 packages/cli/src/commands/account/claim-name.ts delete mode 100644 packages/cli/src/commands/account/claim-storage.ts delete mode 100644 packages/cli/src/commands/account/claims.test.ts delete mode 100644 packages/cli/src/commands/account/create-metadata.ts delete mode 100644 packages/cli/src/commands/account/deauthorize.test.ts delete mode 100644 packages/cli/src/commands/account/deauthorize.ts delete mode 100644 packages/cli/src/commands/account/delete-payment-delegation.ts delete mode 100644 packages/cli/src/commands/account/get-metadata.ts delete mode 100644 packages/cli/src/commands/account/get-payment-delegation.ts delete mode 100644 packages/cli/src/commands/account/list.ts delete mode 100644 packages/cli/src/commands/account/lock.ts delete mode 100644 packages/cli/src/commands/account/new.ts delete mode 100644 packages/cli/src/commands/account/offchain-read.ts delete mode 100644 packages/cli/src/commands/account/offchain-write.ts delete mode 100644 packages/cli/src/commands/account/proof-of-possession.ts delete mode 100644 packages/cli/src/commands/account/recover-old.ts delete mode 100644 packages/cli/src/commands/account/register-data-encryption-key.ts delete mode 100644 packages/cli/src/commands/account/register-metadata.ts delete mode 100644 packages/cli/src/commands/account/register.test.ts delete mode 100644 packages/cli/src/commands/account/register.ts delete mode 100644 packages/cli/src/commands/account/set-name.test.ts delete mode 100644 packages/cli/src/commands/account/set-name.ts delete mode 100644 packages/cli/src/commands/account/set-payment-delegation.ts delete mode 100644 packages/cli/src/commands/account/set-wallet.ts delete mode 100644 packages/cli/src/commands/account/show-claimed-accounts.ts delete mode 100644 packages/cli/src/commands/account/show-metadata.ts delete mode 100644 packages/cli/src/commands/account/show.ts delete mode 100644 packages/cli/src/commands/account/unlock.ts delete mode 100644 packages/cli/src/commands/account/verify-proof-of-possession.ts delete mode 100644 packages/cli/src/commands/config/get.ts delete mode 100644 packages/cli/src/commands/config/set.ts delete mode 100644 packages/cli/src/commands/dkg/DKG.json delete mode 100644 packages/cli/src/commands/dkg/allowlist.ts delete mode 100644 packages/cli/src/commands/dkg/deploy.ts delete mode 100644 packages/cli/src/commands/dkg/get.ts delete mode 100644 packages/cli/src/commands/dkg/publish.ts delete mode 100644 packages/cli/src/commands/dkg/register.ts delete mode 100644 packages/cli/src/commands/dkg/start.ts delete mode 100644 packages/cli/src/commands/election/activate.ts delete mode 100644 packages/cli/src/commands/election/current.ts delete mode 100644 packages/cli/src/commands/election/list.ts delete mode 100644 packages/cli/src/commands/election/revoke.ts delete mode 100644 packages/cli/src/commands/election/run.ts delete mode 100644 packages/cli/src/commands/election/show.ts delete mode 100644 packages/cli/src/commands/election/vote.ts delete mode 100644 packages/cli/src/commands/exchange/celo.ts delete mode 100644 packages/cli/src/commands/exchange/dollars.ts delete mode 100644 packages/cli/src/commands/exchange/euros.ts delete mode 100644 packages/cli/src/commands/exchange/gold.ts delete mode 100644 packages/cli/src/commands/exchange/reals.ts delete mode 100644 packages/cli/src/commands/exchange/show.ts delete mode 100644 packages/cli/src/commands/exchange/stable.ts delete mode 100644 packages/cli/src/commands/governance/approve.test.ts delete mode 100644 packages/cli/src/commands/governance/approve.ts delete mode 100644 packages/cli/src/commands/governance/build-proposal.ts delete mode 100644 packages/cli/src/commands/governance/dequeue.ts delete mode 100644 packages/cli/src/commands/governance/execute.ts delete mode 100644 packages/cli/src/commands/governance/executehotfix.ts delete mode 100644 packages/cli/src/commands/governance/hashhotfix.ts delete mode 100644 packages/cli/src/commands/governance/list.ts delete mode 100644 packages/cli/src/commands/governance/preparehotfix.ts delete mode 100644 packages/cli/src/commands/governance/propose.ts delete mode 100644 packages/cli/src/commands/governance/revokeupvote.ts delete mode 100644 packages/cli/src/commands/governance/show.ts delete mode 100644 packages/cli/src/commands/governance/test-proposal.ts delete mode 100644 packages/cli/src/commands/governance/upvote.test.ts delete mode 100644 packages/cli/src/commands/governance/upvote.ts delete mode 100644 packages/cli/src/commands/governance/vote.test.ts delete mode 100644 packages/cli/src/commands/governance/vote.ts delete mode 100644 packages/cli/src/commands/governance/votePartially.test.ts delete mode 100644 packages/cli/src/commands/governance/votePartially.ts delete mode 100644 packages/cli/src/commands/governance/whitelisthotfix.ts delete mode 100644 packages/cli/src/commands/governance/withdraw.test.ts delete mode 100644 packages/cli/src/commands/governance/withdraw.ts delete mode 100644 packages/cli/src/commands/grandamento/cancel.test.ts delete mode 100644 packages/cli/src/commands/grandamento/cancel.ts delete mode 100644 packages/cli/src/commands/grandamento/execute.test.ts delete mode 100644 packages/cli/src/commands/grandamento/execute.ts delete mode 100644 packages/cli/src/commands/grandamento/get-buy-amount.test.ts delete mode 100644 packages/cli/src/commands/grandamento/get-buy-amount.ts delete mode 100644 packages/cli/src/commands/grandamento/list.test.ts delete mode 100644 packages/cli/src/commands/grandamento/list.ts delete mode 100644 packages/cli/src/commands/grandamento/propose.test.ts delete mode 100644 packages/cli/src/commands/grandamento/propose.ts delete mode 100644 packages/cli/src/commands/grandamento/show.test.ts delete mode 100644 packages/cli/src/commands/grandamento/show.ts delete mode 100644 packages/cli/src/commands/identity/get-attestations.test.ts delete mode 100644 packages/cli/src/commands/identity/get-attestations.ts delete mode 100644 packages/cli/src/commands/identity/identifier.ts delete mode 100644 packages/cli/src/commands/identity/withdraw-attestation-rewards.ts delete mode 100644 packages/cli/src/commands/lockedgold/delegate-info.test.ts delete mode 100644 packages/cli/src/commands/lockedgold/delegate-info.ts delete mode 100644 packages/cli/src/commands/lockedgold/delegate.test.ts delete mode 100644 packages/cli/src/commands/lockedgold/delegate.ts delete mode 100644 packages/cli/src/commands/lockedgold/lock.test.ts delete mode 100644 packages/cli/src/commands/lockedgold/lock.ts delete mode 100644 packages/cli/src/commands/lockedgold/max-delegatees-count.ts delete mode 100644 packages/cli/src/commands/lockedgold/revoke-delegate.test.ts delete mode 100644 packages/cli/src/commands/lockedgold/revoke-delegate.ts delete mode 100644 packages/cli/src/commands/lockedgold/show.ts delete mode 100644 packages/cli/src/commands/lockedgold/unlock.test.ts delete mode 100644 packages/cli/src/commands/lockedgold/unlock.ts delete mode 100644 packages/cli/src/commands/lockedgold/update-delegated-amount.test.ts delete mode 100644 packages/cli/src/commands/lockedgold/update-delegated-amount.ts delete mode 100644 packages/cli/src/commands/lockedgold/withdraw.ts delete mode 100644 packages/cli/src/commands/multisig/approve.ts delete mode 100644 packages/cli/src/commands/multisig/show.ts delete mode 100644 packages/cli/src/commands/multisig/transfer.ts delete mode 100644 packages/cli/src/commands/network/contracts.ts delete mode 100644 packages/cli/src/commands/network/info.ts delete mode 100644 packages/cli/src/commands/network/parameters.ts delete mode 100644 packages/cli/src/commands/node/accounts.ts delete mode 100644 packages/cli/src/commands/node/synced.ts delete mode 100644 packages/cli/src/commands/oracle/list.ts delete mode 100644 packages/cli/src/commands/oracle/remove-expired-reports.ts delete mode 100644 packages/cli/src/commands/oracle/report.ts delete mode 100644 packages/cli/src/commands/oracle/reports.ts delete mode 120000 packages/cli/src/commands/releasecelo delete mode 100644 packages/cli/src/commands/releasegold/admin-revoke.test.ts delete mode 100644 packages/cli/src/commands/releasegold/admin-revoke.ts delete mode 100644 packages/cli/src/commands/releasegold/authorize.test.ts delete mode 100644 packages/cli/src/commands/releasegold/authorize.ts delete mode 100644 packages/cli/src/commands/releasegold/create-account.ts delete mode 100644 packages/cli/src/commands/releasegold/locked-gold.test.ts delete mode 100644 packages/cli/src/commands/releasegold/locked-gold.ts delete mode 100644 packages/cli/src/commands/releasegold/refund-and-finalize.test.ts delete mode 100644 packages/cli/src/commands/releasegold/refund-and-finalize.ts delete mode 100644 packages/cli/src/commands/releasegold/revoke-votes.ts delete mode 100644 packages/cli/src/commands/releasegold/revoke.ts delete mode 100644 packages/cli/src/commands/releasegold/set-account-wallet-address.ts delete mode 100644 packages/cli/src/commands/releasegold/set-account.ts delete mode 100644 packages/cli/src/commands/releasegold/set-beneficiary.test.ts delete mode 100644 packages/cli/src/commands/releasegold/set-beneficiary.ts delete mode 100644 packages/cli/src/commands/releasegold/set-can-expire.ts delete mode 100644 packages/cli/src/commands/releasegold/set-liquidity-provision.ts delete mode 100644 packages/cli/src/commands/releasegold/set-max-distribution.ts delete mode 100644 packages/cli/src/commands/releasegold/show.ts delete mode 100644 packages/cli/src/commands/releasegold/transfer-dollars.test.ts delete mode 100644 packages/cli/src/commands/releasegold/transfer-dollars.ts delete mode 100644 packages/cli/src/commands/releasegold/withdraw.test.ts delete mode 100644 packages/cli/src/commands/releasegold/withdraw.ts delete mode 100644 packages/cli/src/commands/reserve/status.ts delete mode 100644 packages/cli/src/commands/reserve/transfergold.test.ts delete mode 100644 packages/cli/src/commands/reserve/transfergold.ts delete mode 100644 packages/cli/src/commands/rewards/show.ts delete mode 100644 packages/cli/src/commands/transfer/celo.ts delete mode 100644 packages/cli/src/commands/transfer/dollars.ts delete mode 100644 packages/cli/src/commands/transfer/erc20.ts delete mode 100644 packages/cli/src/commands/transfer/euros.ts delete mode 100644 packages/cli/src/commands/transfer/gold.ts delete mode 100644 packages/cli/src/commands/transfer/reals.ts delete mode 100644 packages/cli/src/commands/transfer/stable.ts delete mode 100644 packages/cli/src/commands/validator/affiliate.ts delete mode 100644 packages/cli/src/commands/validator/deaffiliate.ts delete mode 100644 packages/cli/src/commands/validator/deregister.ts delete mode 100644 packages/cli/src/commands/validator/downtime-slash.ts delete mode 100644 packages/cli/src/commands/validator/force-deaffiliate.ts delete mode 100644 packages/cli/src/commands/validator/list.ts delete mode 100644 packages/cli/src/commands/validator/register.test.ts delete mode 100644 packages/cli/src/commands/validator/register.ts delete mode 100644 packages/cli/src/commands/validator/requirements.ts delete mode 100644 packages/cli/src/commands/validator/set-bitmaps.ts delete mode 100644 packages/cli/src/commands/validator/show.ts delete mode 100644 packages/cli/src/commands/validator/signed-blocks.ts delete mode 100644 packages/cli/src/commands/validator/status.ts delete mode 100644 packages/cli/src/commands/validator/update-bls-public-key.ts delete mode 100644 packages/cli/src/commands/validatorgroup/commission.test.ts delete mode 100644 packages/cli/src/commands/validatorgroup/commission.ts delete mode 100644 packages/cli/src/commands/validatorgroup/deregister.ts delete mode 100644 packages/cli/src/commands/validatorgroup/list.ts delete mode 100644 packages/cli/src/commands/validatorgroup/member.ts delete mode 100644 packages/cli/src/commands/validatorgroup/register.ts delete mode 100644 packages/cli/src/commands/validatorgroup/reset-slashing-multiplier.ts delete mode 100644 packages/cli/src/commands/validatorgroup/show.ts delete mode 100644 packages/cli/src/exchange-stable-base.ts delete mode 100644 packages/cli/src/help.ts delete mode 100644 packages/cli/src/hooks/prerun/plugin-warning.ts delete mode 100644 packages/cli/src/index.ts delete mode 100644 packages/cli/src/test-utils/PromiEventStub.ts delete mode 100644 packages/cli/src/test-utils/cliUtils.ts delete mode 100644 packages/cli/src/test-utils/grandaMento.ts delete mode 100644 packages/cli/src/test-utils/setup.global.ts delete mode 100644 packages/cli/src/test-utils/teardown.global.ts delete mode 100644 packages/cli/src/transfer-stable-base.ts delete mode 100644 packages/cli/src/utils/checks.ts delete mode 100644 packages/cli/src/utils/cli.ts delete mode 100644 packages/cli/src/utils/command.ts delete mode 100644 packages/cli/src/utils/config.ts delete mode 100644 packages/cli/src/utils/election.ts delete mode 100644 packages/cli/src/utils/exchange.ts delete mode 100644 packages/cli/src/utils/exec.ts delete mode 100644 packages/cli/src/utils/governance.ts delete mode 100644 packages/cli/src/utils/helpers.ts delete mode 100644 packages/cli/src/utils/identity.ts delete mode 100644 packages/cli/src/utils/lockedgold.ts delete mode 100644 packages/cli/src/utils/off-chain-data.ts delete mode 100644 packages/cli/src/utils/release-gold-base.ts delete mode 100644 packages/cli/src/utils/require.ts delete mode 100644 packages/cli/start_geth.sh delete mode 100644 packages/cli/tsconfig.json delete mode 100644 packages/cli/tslint.json delete mode 100644 packages/cli/types/hw-transport-node-hid.d.ts delete mode 100644 packages/docs/README.md delete mode 100644 packages/docs/command-line-interface/account.md delete mode 100644 packages/docs/command-line-interface/autocomplete.md delete mode 100644 packages/docs/command-line-interface/commands.md delete mode 100644 packages/docs/command-line-interface/config.md delete mode 100644 packages/docs/command-line-interface/dkg.md delete mode 100644 packages/docs/command-line-interface/election.md delete mode 100644 packages/docs/command-line-interface/exchange.md delete mode 100644 packages/docs/command-line-interface/governance.md delete mode 100644 packages/docs/command-line-interface/grandamento.md delete mode 100644 packages/docs/command-line-interface/help.md delete mode 100644 packages/docs/command-line-interface/identity.md delete mode 100644 packages/docs/command-line-interface/introduction.md delete mode 100644 packages/docs/command-line-interface/lockedgold.md delete mode 100644 packages/docs/command-line-interface/multisig.md delete mode 100644 packages/docs/command-line-interface/network.md delete mode 100644 packages/docs/command-line-interface/node.md delete mode 100644 packages/docs/command-line-interface/oracle.md delete mode 100644 packages/docs/command-line-interface/plugins.md delete mode 100644 packages/docs/command-line-interface/registry.md delete mode 100644 packages/docs/command-line-interface/releasecelo.md delete mode 100644 packages/docs/command-line-interface/releasegold.md delete mode 100644 packages/docs/command-line-interface/reserve.md delete mode 100644 packages/docs/command-line-interface/rewards.md delete mode 100644 packages/docs/command-line-interface/transfer.md delete mode 100644 packages/docs/command-line-interface/validator.md delete mode 100644 packages/docs/command-line-interface/validatorgroup.md delete mode 100644 packages/docs/developer-resources/utils/reference/README.md delete mode 100644 packages/docs/developer-resources/utils/reference/SUMMARY.md delete mode 100644 packages/docs/developer-resources/utils/reference/classes/_countries_.countries.md delete mode 100644 packages/docs/developer-resources/utils/reference/globals.md delete mode 100644 packages/docs/developer-resources/utils/reference/interfaces/_countries_.localizedcountry.md delete mode 100644 packages/docs/developer-resources/utils/reference/modules/_countries_.md delete mode 100644 packages/docs/developer-resources/utils/reference/modules/_data_countries_es_country_.md delete mode 100644 packages/docs/developer-resources/utils/reference/modules/_inputvalidation_.md delete mode 100644 packages/docs/developer-resources/utils/reference/modules/_io_.md delete mode 100644 packages/docs/developer-resources/utils/reference/modules/_phonenumbers_.md delete mode 100644 packages/docs/sdk/docs/README.md delete mode 100644 packages/docs/sdk/docs/base/README.md delete mode 100644 packages/docs/sdk/docs/base/classes/_future_.future.md delete mode 100644 packages/docs/sdk/docs/base/classes/_lock_.lock.md delete mode 100644 packages/docs/sdk/docs/base/classes/_result_.jsonparseerror.md delete mode 100644 packages/docs/sdk/docs/base/classes/_result_.rooterror.md delete mode 100644 packages/docs/sdk/docs/base/enums/_account_.mnemoniclanguages.md delete mode 100644 packages/docs/sdk/docs/base/enums/_account_.mnemonicstrength.md delete mode 100644 packages/docs/sdk/docs/base/enums/_attestations_.identifiertype.md delete mode 100644 packages/docs/sdk/docs/base/enums/_currencies_.currency_enum.md delete mode 100644 packages/docs/sdk/docs/base/enums/_currencies_.short_currencies.md delete mode 100644 packages/docs/sdk/docs/base/enums/_currencies_.stabletoken.md delete mode 100644 packages/docs/sdk/docs/base/enums/_currencies_.token.md delete mode 100644 packages/docs/sdk/docs/base/enums/_inputvalidation_.validatorkind.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_account_.bip39.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_attestations_.attestationsstatus.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_collections_.addresslistitem.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_contacts_.contactphonenumber.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_contacts_.minimalcontact.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_inputvalidation_.baseprops.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_phonenumbers_.parsedphonenumber.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_result_.baseerror.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_result_.errorresult.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_result_.okresult.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_signatureutils_.signature.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_signatureutils_.signer.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_task_.repeattaskcontext.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_task_.retrytaskoptions.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_task_.runningtask.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_task_.runningtaskwithvalue.md delete mode 100644 packages/docs/sdk/docs/base/interfaces/_task_.taskoptions.md delete mode 100644 packages/docs/sdk/docs/base/modules/_account_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_address_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_async_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_attestations_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_collections_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_contacts_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_currencies_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_displayformatting_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_future_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_inputvalidation_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_io_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_lock_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_logger_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_parsing_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_phonenumbers_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_result_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_signatureutils_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_string_.md delete mode 100644 packages/docs/sdk/docs/base/modules/_task_.md delete mode 100644 packages/docs/sdk/docs/connect/README.md delete mode 100644 packages/docs/sdk/docs/connect/classes/_celo_provider_.celoprovider.md delete mode 100644 packages/docs/sdk/docs/connect/classes/_connection_.connection.md delete mode 100644 packages/docs/sdk/docs/connect/classes/_utils_celo_transaction_object_.celotransactionobject.md delete mode 100644 packages/docs/sdk/docs/connect/classes/_utils_rpc_caller_.defaultrpccaller.md delete mode 100644 packages/docs/sdk/docs/connect/classes/_utils_tx_params_normalizer_.txparamsnormalizer.md delete mode 100644 packages/docs/sdk/docs/connect/classes/_utils_tx_result_.transactionresult.md delete mode 100644 packages/docs/sdk/docs/connect/globals.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_abi_types_.abicoder.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_abi_types_.abidefinition.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_abi_types_.abiinput.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_abi_types_.abiitem.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_abi_types_.abioutput.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_abi_types_.decodedparamsarray.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_abi_types_.decodedparamsobject.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_connection_.connectionoptions.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_types_.celoparams.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_types_.celotxobject.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_types_.encodedtransaction.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_types_.jsonrpcpayload.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_types_.jsonrpcresponse.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_types_.provider.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_types_.rlpencodedtx.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_utils_rpc_caller_.rpccaller.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_wallet_.readonlywallet.md delete mode 100644 packages/docs/sdk/docs/connect/interfaces/_wallet_.signer.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_abi_types_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_celo_provider_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_connection_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_types_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_utils_abi_utils_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_utils_celo_transaction_object_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_utils_formatter_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_utils_provider_utils_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_utils_rpc_caller_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_utils_tx_params_normalizer_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_utils_tx_result_.md delete mode 100644 packages/docs/sdk/docs/connect/modules/_wallet_.md delete mode 100644 packages/docs/sdk/docs/contractkit/README.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_address_registry_.addressregistry.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_address_registry_.unregisterederror.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_celo_tokens_.celotokens.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_contract_cache_.wrappercache.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_identity_metadata_.identitymetadatawrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_kit_.contractkit.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_mini_contract_cache_.minicontractcache.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_mini_kit_.minicontractkit.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_versions_.contractversion.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_web3_contract_cache_.web3contractcache.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_accounts_.accountswrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_attestations_.attestationswrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_baseslasher_.baseslasher.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_basewrapper_.basewrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_blockchainparameters_.blockchainparameterswrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_celotokenwrapper_.celotokenwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_downtimeslasher_.downtimeslasherwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_election_.electionwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_epochrewards_.epochrewardswrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_erc20wrapper_.erc20wrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_escrow_.escrowwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_exchange_.exchangewrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_freezer_.freezerwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_goldtokenwrapper_.goldtokenwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_governance_.governancewrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_grandamento_.grandamentowrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_lockedgold_.lockedgoldwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_multisig_.multisigwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_releasegold_.releasegoldwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_reserve_.reservewrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_sortedoracles_.sortedoracleswrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/classes/_wrappers_validators_.validatorswrapper.md delete mode 100644 packages/docs/sdk/docs/contractkit/enums/_base_.celocontract.md delete mode 100644 packages/docs/sdk/docs/contractkit/enums/_identity_claims_types_.claimtypes.md delete mode 100644 packages/docs/sdk/docs/contractkit/enums/_wrappers_attestations_.attestationservicestatusstate.md delete mode 100644 packages/docs/sdk/docs/contractkit/enums/_wrappers_attestations_.attestationstate.md delete mode 100644 packages/docs/sdk/docs/contractkit/enums/_wrappers_governance_.proposalstage.md delete mode 100644 packages/docs/sdk/docs/contractkit/enums/_wrappers_governance_.votevalue.md delete mode 100644 packages/docs/sdk/docs/contractkit/enums/_wrappers_grandamento_.exchangeproposalstate.md delete mode 100644 packages/docs/sdk/docs/contractkit/enums/_wrappers_sortedoracles_.medianrelation.md delete mode 100644 packages/docs/sdk/docs/contractkit/globals.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_basic_contract_cache_type_.contractcachetype.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_celo_tokens_.celotokeninfo.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_celo_tokens_.stabletokeninfo.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_kit_.networkconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.actionableattestation.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationsconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationservicestatusresponse.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstat.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstateforissuer.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstoken.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.unselectedrequest.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_blockchainparameters_.blockchainparametersconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_blockchainparameters_.clientversion.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_downtimeslasher_.downtimeslasherconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_downtimeslasher_.interval.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.electablevalidators.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.electionconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.groupvote.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.groupvoterreward.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.validatorgroupvote.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.voter.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.voterreward.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_exchange_.exchangeconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_gaspriceminimum_.gaspriceminimumconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.governanceconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.hotfixrecord.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.participationparameters.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.proposalmetadata.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.proposalrecord.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.upvoterecord.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.voter.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.voterecord.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.votes.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.exchangeproposal.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.exchangeproposalreadable.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.grandamentoconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.stabletokenexchangelimits.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.accountslashed.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.lockedgoldconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.pendingwithdrawal.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.votingdetails.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_metatransactionwallet_.rawtransaction.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_metatransactionwallet_.transactionobjectwithvalue.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_multisig_.transactiondata.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_releasegold_.balancestate.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_releasegold_.releasegoldinfo.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_reserve_.reserveconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.medianrate.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oraclerate.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oraclereport.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oracletimestamp.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.sortedoraclesconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_stabletokenwrapper_.inflationparameters.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_stabletokenwrapper_.stabletokenconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.groupmembership.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.lockedgoldrequirements.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.membershiphistoryextradata.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validator.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorgroup.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorreward.md delete mode 100644 packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorsconfig.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_address_registry_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_base_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_basic_contract_cache_type_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_celo_tokens_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_contract_cache_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_identity_claims_account_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_identity_claims_attestation_service_url_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_identity_claims_claim_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_identity_claims_keybase_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_identity_claims_types_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_identity_claims_verify_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_identity_metadata_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_kit_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_mini_contract_cache_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_mini_kit_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_proxy_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_setupforkits_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_test_utils_grandamento_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_test_utils_promieventstub_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_test_utils_setup_global_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_test_utils_teardown_global_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_test_utils_transferownership_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_versions_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_web3_contract_cache_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_accounts_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_attestations_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_baseslasher_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_basewrapper_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_basewrapperforgoverning_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_blockchainparameters_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_celotokenwrapper_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_doublesigningslasher_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_downtimeslasher_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_election_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_epochrewards_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_erc20wrapper_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_escrow_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_exchange_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_freezer_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_gaspriceminimum_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_goldtokenwrapper_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_governance_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_grandamento_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_lockedgold_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_metatransactionwallet_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_metatransactionwalletdeployer_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_multisig_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_releasegold_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_reserve_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_sortedoracles_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_stabletokenwrapper_.md delete mode 100644 packages/docs/sdk/docs/contractkit/modules/_wrappers_validators_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/README.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_f2_.f2.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_f_.f.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_g1_.g1.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_g2_.g2.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_group_.group.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/globals.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/interfaces/_node_modules_bls12377js_src_defs_.groupspec.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/interfaces/_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_bls_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_defs_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_f2_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_f_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_g1_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_g2_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_group_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_account_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_bls_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_commentencryption_.md delete mode 100644 packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md delete mode 100644 packages/docs/sdk/docs/explorer/README.md delete mode 100644 packages/docs/sdk/docs/explorer/classes/_block_explorer_.blockexplorer.md delete mode 100644 packages/docs/sdk/docs/explorer/classes/_log_explorer_.logexplorer.md delete mode 100644 packages/docs/sdk/docs/explorer/interfaces/_base_.contractdetails.md delete mode 100644 packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.calldetails.md delete mode 100644 packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.parsedblock.md delete mode 100644 packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.parsedtx.md delete mode 100644 packages/docs/sdk/docs/explorer/modules/_base_.md delete mode 100644 packages/docs/sdk/docs/explorer/modules/_block_explorer_.md delete mode 100644 packages/docs/sdk/docs/explorer/modules/_log_explorer_.md delete mode 100644 packages/docs/sdk/docs/governance/README.md delete mode 100644 packages/docs/sdk/docs/governance/classes/_proposals_.interactiveproposalbuilder.md delete mode 100644 packages/docs/sdk/docs/governance/classes/_proposals_.proposalbuilder.md delete mode 100644 packages/docs/sdk/docs/governance/interfaces/_proposals_.proposaltransactionjson.md delete mode 100644 packages/docs/sdk/docs/governance/modules/_proposals_.md delete mode 100644 packages/docs/sdk/docs/identity/README.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_odis_bls_blinding_client_.wasmblsblindingclient.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerclient.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerserviceerror.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerunavailableerror.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.encryptionerror.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.fetcherror.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_mock_.mockcircuitbreaker.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_binary_.privatebinaryaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_binary_.publicbinaryaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.invaliddataerror.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.invalidkey.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.offchainerror.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.unavailablekey.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.unknownciphertext.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_name_.privatenameaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_name_.publicnameaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_pictures_.privatepictureaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_pictures_.publicpictureaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_simple_.privatesimpleaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_accessors_simple_.publicsimpleaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.basicdatawrapper.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.fetcherror.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.invalidsignature.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.nostorageprovider.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.nostoragerootprovideddata.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.awsstoragewriter.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.gitstoragewriter.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.googlestoragewriter.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.localstoragewriter.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.mockstoragewriter.md delete mode 100644 packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.storagewriter.md delete mode 100644 packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakerendpoints.md delete mode 100644 packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakererrortypes.md delete mode 100644 packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md delete mode 100644 packages/docs/sdk/docs/identity/enums/_odis_query_.errormessages.md delete mode 100644 packages/docs/sdk/docs/identity/enums/_offchain_accessors_errors_.schemaerrortypes.md delete mode 100644 packages/docs/sdk/docs/identity/enums/_offchain_data_wrapper_.offchainerrortypes.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_bls_blinding_client_.blsblindingclient.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerservicecontext.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerstatusresponse.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyrequest.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_phone_number_identifier_.phonenumberhashdetails.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_query_.combinersignmessageresponse.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_query_.encryptionkeysigner.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_query_.servicecontext.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_odis_query_.walletkeysigner.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_offchain_accessors_interfaces_.privateaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_offchain_accessors_interfaces_.publicaccessor.md delete mode 100644 packages/docs/sdk/docs/identity/interfaces/_offchain_data_wrapper_.offchaindatawrapper.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_odis_bls_blinding_client_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_odis_circuit_breaker_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_odis_circuit_breaker_mock_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_odis_matchmaking_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_odis_phone_number_identifier_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_odis_query_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_accessors_authorized_signer_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_accessors_binary_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_accessors_errors_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_accessors_interfaces_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_accessors_name_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_accessors_pictures_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_accessors_simple_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_data_wrapper_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_storage_writers_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_offchain_utils_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_test_utils_setup_global_.md delete mode 100644 packages/docs/sdk/docs/identity/modules/_test_utils_teardown_global_.md delete mode 100644 packages/docs/sdk/docs/keystores/README.md delete mode 100644 packages/docs/sdk/docs/keystores/classes/_file_keystore_.filekeystore.md delete mode 100644 packages/docs/sdk/docs/keystores/classes/_inmemory_keystore_.inmemorykeystore.md delete mode 100644 packages/docs/sdk/docs/keystores/classes/_keystore_base_.keystorebase.md delete mode 100644 packages/docs/sdk/docs/keystores/classes/_keystore_wallet_wrapper_.keystorewalletwrapper.md delete mode 100644 packages/docs/sdk/docs/keystores/enums/_keystore_base_.errormessages.md delete mode 100644 packages/docs/sdk/docs/keystores/modules/_file_keystore_.md delete mode 100644 packages/docs/sdk/docs/keystores/modules/_inmemory_keystore_.md delete mode 100644 packages/docs/sdk/docs/keystores/modules/_keystore_base_.md delete mode 100644 packages/docs/sdk/docs/keystores/modules/_keystore_wallet_wrapper_.md delete mode 100644 packages/docs/sdk/docs/keystores/modules/_test_constants_.md delete mode 100644 packages/docs/sdk/docs/network-utils/README.md delete mode 100644 packages/docs/sdk/docs/network-utils/classes/_genesis_block_utils_.genesisblockutils.md delete mode 100644 packages/docs/sdk/docs/network-utils/classes/_google_storage_utils_.googlestorageutils.md delete mode 100644 packages/docs/sdk/docs/network-utils/classes/_static_node_utils_.staticnodeutils.md delete mode 100644 packages/docs/sdk/docs/network-utils/interfaces/_utils_timezone_.coordinates.md delete mode 100644 packages/docs/sdk/docs/network-utils/interfaces/_utils_timezone_.timezone.md delete mode 100644 packages/docs/sdk/docs/network-utils/modules/_genesis_block_utils_.md delete mode 100644 packages/docs/sdk/docs/network-utils/modules/_google_storage_utils_.md delete mode 100644 packages/docs/sdk/docs/network-utils/modules/_static_node_utils_.md delete mode 100644 packages/docs/sdk/docs/network-utils/modules/_utils_timezone_.md delete mode 100644 packages/docs/sdk/docs/phone-utils/README.md delete mode 100644 packages/docs/sdk/docs/phone-utils/classes/_countries_.countries.md delete mode 100644 packages/docs/sdk/docs/phone-utils/globals.md delete mode 100644 packages/docs/sdk/docs/phone-utils/interfaces/_countries_.localizedcountry.md delete mode 100644 packages/docs/sdk/docs/phone-utils/modules/_countries_.md delete mode 100644 packages/docs/sdk/docs/phone-utils/modules/_data_countries_es_country_.md delete mode 100644 packages/docs/sdk/docs/phone-utils/modules/_getcountryemoji_.md delete mode 100644 packages/docs/sdk/docs/phone-utils/modules/_getphonehash_.md delete mode 100644 packages/docs/sdk/docs/phone-utils/modules/_inputvalidation_.md delete mode 100644 packages/docs/sdk/docs/phone-utils/modules/_io_.md delete mode 100644 packages/docs/sdk/docs/phone-utils/modules/_phonenumbers_.md delete mode 100644 packages/docs/sdk/docs/transactions-uri/README.md delete mode 100644 packages/docs/sdk/docs/transactions-uri/modules/_test_utils_setup_global_.md delete mode 100644 packages/docs/sdk/docs/transactions-uri/modules/_test_utils_teardown_global_.md delete mode 100644 packages/docs/sdk/docs/transactions-uri/modules/_tx_uri_.md delete mode 100644 packages/docs/sdk/docs/utils/README.md delete mode 100644 packages/docs/sdk/docs/utils/interfaces/_istanbul_.istanbulextra.md delete mode 100644 packages/docs/sdk/docs/utils/interfaces/_istanbul_.seal.md delete mode 100644 packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712object.md delete mode 100644 packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712parameter.md delete mode 100644 packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712typeddata.md delete mode 100644 packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712types.md delete mode 100644 packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712typeswithprimary.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_address_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_async_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_attestations_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_bn_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_celohistory_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_collections_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_contacts_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_currencies_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_displayformatting_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_ecdh_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_ecies_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_fixidity_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_future_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_inputvalidation_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_io_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_istanbul_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_levenshtein_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_logger_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_parsing_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_sign_typed_data_utils_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_signatureutils_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_solidity_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_string_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_task_.md delete mode 100644 packages/docs/sdk/docs/utils/modules/_typed_data_constructors_.md delete mode 100644 packages/docs/sdk/docs/wallet-base/README.md delete mode 100644 packages/docs/sdk/docs/wallet-base/classes/_wallet_base_.walletbase.md delete mode 100644 packages/docs/sdk/docs/wallet-base/interfaces/_wallet_base_.unlockablewallet.md delete mode 100644 packages/docs/sdk/docs/wallet-base/interfaces/_wallet_base_.wallet.md delete mode 100644 packages/docs/sdk/docs/wallet-base/modules/_signing_utils_.md delete mode 100644 packages/docs/sdk/docs/wallet-base/modules/_wallet_base_.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-aws/README.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-aws/classes/_aws_hsm_signer_.awshsmsigner.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-aws/classes/_aws_hsm_wallet_.awshsmwallet.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-aws/modules/_aws_hsm_signer_.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-aws/modules/_aws_hsm_wallet_.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-azure/README.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_hsm_signer_.azurehsmsigner.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_hsm_wallet_.azurehsmwallet.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_key_vault_client_.azurekeyvaultclient.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_hsm_signer_.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_hsm_wallet_.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_key_vault_client_.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm/README.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm/classes/_signature_utils_.signature.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm/modules/_ber_utils_.md delete mode 100644 packages/docs/sdk/docs/wallet-hsm/modules/_signature_utils_.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/README.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/classes/_ledger_signer_.ledgersigner.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/classes/_ledger_wallet_.ledgerwallet.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/enums/_ledger_wallet_.addressvalidation.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/interfaces/_tokens_.api.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/interfaces/_tokens_.tokeninfo.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/modules/_data_.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/modules/_ledger_signer_.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/modules/_ledger_utils_.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/modules/_ledger_wallet_.md delete mode 100644 packages/docs/sdk/docs/wallet-ledger/modules/_tokens_.md delete mode 100644 packages/docs/sdk/docs/wallet-local/README.md delete mode 100644 packages/docs/sdk/docs/wallet-local/classes/_local_signer_.localsigner.md delete mode 100644 packages/docs/sdk/docs/wallet-local/classes/_local_wallet_.localwallet.md delete mode 100644 packages/docs/sdk/docs/wallet-local/modules/_local_signer_.md delete mode 100644 packages/docs/sdk/docs/wallet-local/modules/_local_wallet_.md delete mode 100644 packages/docs/sdk/docs/wallet-remote/README.md delete mode 100644 packages/docs/sdk/docs/wallet-remote/classes/_remote_wallet_.remotewallet.md delete mode 100644 packages/docs/sdk/docs/wallet-remote/modules/_remote_wallet_.md delete mode 100644 packages/docs/sdk/docs/wallet-rpc/README.md delete mode 100644 packages/docs/sdk/docs/wallet-rpc/classes/_rpc_signer_.rpcsigner.md delete mode 100644 packages/docs/sdk/docs/wallet-rpc/classes/_rpc_wallet_.rpcwallet.md delete mode 100644 packages/docs/sdk/docs/wallet-rpc/enums/_rpc_wallet_.rpcwalleterrors.md delete mode 100644 packages/docs/sdk/docs/wallet-rpc/modules/_rpc_signer_.md delete mode 100644 packages/docs/sdk/docs/wallet-rpc/modules/_rpc_wallet_.md delete mode 100644 packages/docs/sdk/docs/wallet-rpc/modules/_test_utils_ganache_setup_.md delete mode 100644 packages/docs/sdk/docs/wallet-rpc/modules/_test_utils_ganache_teardown_.md delete mode 100644 packages/docs/sdk/mkdocs.yml delete mode 100644 packages/docs/sdk/requirements.txt delete mode 100644 packages/metadata-crawler/.gitignore delete mode 100644 packages/metadata-crawler/CHANGELOG.md delete mode 100644 packages/metadata-crawler/README.md delete mode 100644 packages/metadata-crawler/index.d.ts delete mode 100644 packages/metadata-crawler/package.json delete mode 100644 packages/metadata-crawler/src/crawler.ts delete mode 100644 packages/metadata-crawler/src/env.ts delete mode 100644 packages/metadata-crawler/src/logger.ts delete mode 100644 packages/metadata-crawler/tsconfig.json delete mode 100644 packages/sdk/CHANGELOG.md delete mode 100644 packages/sdk/base/.gitignore delete mode 100644 packages/sdk/base/.npmignore delete mode 100644 packages/sdk/base/CHANGELOG.md delete mode 100644 packages/sdk/base/README.MD delete mode 100644 packages/sdk/base/jest.config.js delete mode 100644 packages/sdk/base/package.json delete mode 100644 packages/sdk/base/src/account.ts delete mode 100644 packages/sdk/base/src/address.test.ts delete mode 100644 packages/sdk/base/src/address.ts delete mode 100644 packages/sdk/base/src/async.test.ts delete mode 100644 packages/sdk/base/src/async.ts delete mode 100644 packages/sdk/base/src/collections.test.ts delete mode 100644 packages/sdk/base/src/collections.ts delete mode 100644 packages/sdk/base/src/contacts.ts delete mode 100644 packages/sdk/base/src/currencies.ts delete mode 100644 packages/sdk/base/src/displayFormatting.ts delete mode 100644 packages/sdk/base/src/future.test.ts delete mode 100644 packages/sdk/base/src/future.ts delete mode 100644 packages/sdk/base/src/index.ts delete mode 100644 packages/sdk/base/src/inputValidation.ts delete mode 100644 packages/sdk/base/src/io.ts delete mode 100644 packages/sdk/base/src/lock.test.ts delete mode 100644 packages/sdk/base/src/lock.ts delete mode 100644 packages/sdk/base/src/logger.ts delete mode 100644 packages/sdk/base/src/package.test.ts delete mode 100644 packages/sdk/base/src/parsing.test.ts delete mode 100644 packages/sdk/base/src/parsing.ts delete mode 100644 packages/sdk/base/src/phoneNumbers.test.ts delete mode 100644 packages/sdk/base/src/phoneNumbers.ts delete mode 100644 packages/sdk/base/src/result.test.ts delete mode 100644 packages/sdk/base/src/result.ts delete mode 100644 packages/sdk/base/src/signatureUtils.ts delete mode 100644 packages/sdk/base/src/string.ts delete mode 100644 packages/sdk/base/src/task.test.ts delete mode 100644 packages/sdk/base/src/task.ts delete mode 100644 packages/sdk/base/src/types.d.ts delete mode 100644 packages/sdk/base/tsconfig.json delete mode 100644 packages/sdk/base/tslint.json delete mode 100644 packages/sdk/base/typedoc.json delete mode 100644 packages/sdk/connect/.gitignore delete mode 100644 packages/sdk/connect/.npmignore delete mode 100644 packages/sdk/connect/CHANGELOG.md delete mode 100644 packages/sdk/connect/LICENSE delete mode 100644 packages/sdk/connect/jest.config.js delete mode 100644 packages/sdk/connect/package.json delete mode 100644 packages/sdk/connect/readme.md delete mode 100644 packages/sdk/connect/src/abi-types.ts delete mode 100644 packages/sdk/connect/src/celo-provider.test.ts delete mode 100644 packages/sdk/connect/src/celo-provider.ts delete mode 100644 packages/sdk/connect/src/connection.test.ts delete mode 100644 packages/sdk/connect/src/connection.ts delete mode 100644 packages/sdk/connect/src/index.ts delete mode 100644 packages/sdk/connect/src/types.ts delete mode 100644 packages/sdk/connect/src/utils/abi-utils.ts delete mode 100644 packages/sdk/connect/src/utils/celo-transaction-object.ts delete mode 100644 packages/sdk/connect/src/utils/formatter.test.ts delete mode 100644 packages/sdk/connect/src/utils/formatter.ts delete mode 100644 packages/sdk/connect/src/utils/provider-utils.ts delete mode 100644 packages/sdk/connect/src/utils/rpc-caller.test.ts delete mode 100644 packages/sdk/connect/src/utils/rpc-caller.ts delete mode 100644 packages/sdk/connect/src/utils/tx-params-normalizer.test.ts delete mode 100644 packages/sdk/connect/src/utils/tx-params-normalizer.ts delete mode 100644 packages/sdk/connect/src/utils/tx-result.ts delete mode 100644 packages/sdk/connect/src/wallet.ts delete mode 100644 packages/sdk/connect/tsconfig.json delete mode 100644 packages/sdk/connect/tslint.json delete mode 100644 packages/sdk/connect/typedoc.json delete mode 100644 packages/sdk/contractkit/.gitignore delete mode 100644 packages/sdk/contractkit/.npmignore delete mode 100644 packages/sdk/contractkit/CHANGELOG.md delete mode 100644 packages/sdk/contractkit/DEVELOP.md delete mode 100644 packages/sdk/contractkit/MIGRATION-TO-ETHERS.md delete mode 100644 packages/sdk/contractkit/MIGRATION-TO-VIEM.md delete mode 100644 packages/sdk/contractkit/README.md delete mode 100644 packages/sdk/contractkit/jest.config.js delete mode 100644 packages/sdk/contractkit/jest_setup.ts delete mode 100644 packages/sdk/contractkit/package.json delete mode 100644 packages/sdk/contractkit/src/address-registry.ts delete mode 100644 packages/sdk/contractkit/src/base.ts delete mode 100644 packages/sdk/contractkit/src/basic-contract-cache-type.ts delete mode 100644 packages/sdk/contractkit/src/celo-tokens.test.ts delete mode 100644 packages/sdk/contractkit/src/celo-tokens.ts delete mode 100644 packages/sdk/contractkit/src/contract-cache.test.ts delete mode 100644 packages/sdk/contractkit/src/contract-cache.ts delete mode 100644 packages/sdk/contractkit/src/globals.d.ts delete mode 100644 packages/sdk/contractkit/src/identity/claims/account.test.ts delete mode 100644 packages/sdk/contractkit/src/identity/claims/account.ts delete mode 100644 packages/sdk/contractkit/src/identity/claims/claim.ts delete mode 100644 packages/sdk/contractkit/src/identity/claims/domain.test.ts delete mode 100644 packages/sdk/contractkit/src/identity/claims/keybase.ts delete mode 100644 packages/sdk/contractkit/src/identity/claims/types.ts delete mode 100644 packages/sdk/contractkit/src/identity/claims/verify.ts delete mode 100644 packages/sdk/contractkit/src/identity/index.ts delete mode 100644 packages/sdk/contractkit/src/identity/metadata.test.ts delete mode 100644 packages/sdk/contractkit/src/identity/metadata.ts delete mode 100644 packages/sdk/contractkit/src/index.ts delete mode 100644 packages/sdk/contractkit/src/kit.test.ts delete mode 100644 packages/sdk/contractkit/src/kit.ts delete mode 100644 packages/sdk/contractkit/src/mini-contract-cache.ts delete mode 100644 packages/sdk/contractkit/src/mini-kit.ts delete mode 100644 packages/sdk/contractkit/src/proxy.ts delete mode 100644 packages/sdk/contractkit/src/setupForKits.ts delete mode 100644 packages/sdk/contractkit/src/test-utils/AlphabeticSequencer.js delete mode 100644 packages/sdk/contractkit/src/test-utils/PromiEventStub.ts delete mode 100644 packages/sdk/contractkit/src/test-utils/grandaMento.ts delete mode 100644 packages/sdk/contractkit/src/test-utils/setup.global.ts delete mode 100644 packages/sdk/contractkit/src/test-utils/teardown.global.ts delete mode 100644 packages/sdk/contractkit/src/test-utils/transferownership.ts delete mode 100644 packages/sdk/contractkit/src/test-utils/utils.ts delete mode 100644 packages/sdk/contractkit/src/utils/getParsedSignatureOfAddress.ts delete mode 100644 packages/sdk/contractkit/src/utils/signing.test.ts delete mode 100644 packages/sdk/contractkit/src/versions.ts delete mode 100644 packages/sdk/contractkit/src/web3-contract-cache.test.ts delete mode 100644 packages/sdk/contractkit/src/web3-contract-cache.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Accounts.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Accounts.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Attestations.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Attestations.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/BaseSlasher.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/BaseWrapper.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/BaseWrapper.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/BlockChainParameters.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Election.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Election.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/EpochRewards.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Escrow.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Escrow.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Exchange.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Exchange.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/FederatedAttestations.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/FederatedAttestations.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/FeeHandler.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Freezer.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/GoldToken.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Governance.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Governance.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/GrandaMento.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/GrandaMento.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/LockedGold.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/LockedGold.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/MultiSig.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/OdisPayments.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/OdisPayments.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/ReleaseGold.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Reserve.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Reserve.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/SortedOracles.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/SortedOracles.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/StableToken.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Validators.test.ts delete mode 100644 packages/sdk/contractkit/src/wrappers/Validators.ts delete mode 100644 packages/sdk/contractkit/tsconfig.json delete mode 100644 packages/sdk/contractkit/tslint.json delete mode 100644 packages/sdk/contractkit/typedoc.json delete mode 100644 packages/sdk/cryptographic-utils/.gitignore delete mode 100644 packages/sdk/cryptographic-utils/.npmignore delete mode 100644 packages/sdk/cryptographic-utils/CHANGELOG.md delete mode 100644 packages/sdk/cryptographic-utils/README.md delete mode 100644 packages/sdk/cryptographic-utils/jest.config.js delete mode 100644 packages/sdk/cryptographic-utils/package.json delete mode 100644 packages/sdk/cryptographic-utils/src/account.test.ts delete mode 100644 packages/sdk/cryptographic-utils/src/account.ts delete mode 100644 packages/sdk/cryptographic-utils/src/bls.ts delete mode 100644 packages/sdk/cryptographic-utils/src/commentEncryption.test.ts delete mode 100644 packages/sdk/cryptographic-utils/src/commentEncryption.ts delete mode 100644 packages/sdk/cryptographic-utils/src/dataEncryptionKey.test.ts delete mode 100644 packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts delete mode 100644 packages/sdk/cryptographic-utils/src/index.ts delete mode 100644 packages/sdk/cryptographic-utils/src/types.d.ts delete mode 100644 packages/sdk/cryptographic-utils/tsconfig.json delete mode 100644 packages/sdk/cryptographic-utils/tslint.json delete mode 100644 packages/sdk/cryptographic-utils/typedoc.json delete mode 100644 packages/sdk/explorer/.gitignore delete mode 100644 packages/sdk/explorer/.npmignore delete mode 100644 packages/sdk/explorer/CHANGELOG.md delete mode 100644 packages/sdk/explorer/README.md delete mode 100644 packages/sdk/explorer/fixtures/contract.metadata.json delete mode 100644 packages/sdk/explorer/fixtures/proxy.metadata.json delete mode 100644 packages/sdk/explorer/jest.config.js delete mode 100644 packages/sdk/explorer/jestSetup.ts delete mode 100644 packages/sdk/explorer/package.json delete mode 100644 packages/sdk/explorer/scripts/driver.ts delete mode 100644 packages/sdk/explorer/src/base.ts delete mode 100644 packages/sdk/explorer/src/block-explorer.ts delete mode 100644 packages/sdk/explorer/src/globals.d.ts delete mode 100644 packages/sdk/explorer/src/index.ts delete mode 100644 packages/sdk/explorer/src/log-explorer.ts delete mode 100644 packages/sdk/explorer/src/sourcify.test.ts delete mode 100644 packages/sdk/explorer/src/sourcify.ts delete mode 100644 packages/sdk/explorer/tsconfig.json delete mode 100644 packages/sdk/explorer/tslint.json delete mode 100644 packages/sdk/explorer/typedoc.json delete mode 100644 packages/sdk/governance/.gitignore delete mode 100644 packages/sdk/governance/.npmignore delete mode 100644 packages/sdk/governance/CHANGELOG.md delete mode 100644 packages/sdk/governance/README.md delete mode 100644 packages/sdk/governance/package.json delete mode 100644 packages/sdk/governance/src/index.ts delete mode 100644 packages/sdk/governance/src/proposals.ts delete mode 100644 packages/sdk/governance/tsconfig.json delete mode 100644 packages/sdk/governance/tslint.json delete mode 100644 packages/sdk/governance/typedoc.json delete mode 100644 packages/sdk/keystores/.gitignore delete mode 100644 packages/sdk/keystores/.npmignore delete mode 100644 packages/sdk/keystores/CHANGELOG.md delete mode 100644 packages/sdk/keystores/README.md delete mode 100644 packages/sdk/keystores/jest.config.js delete mode 100644 packages/sdk/keystores/package.json delete mode 100644 packages/sdk/keystores/src/file-keystore.test.ts delete mode 100644 packages/sdk/keystores/src/file-keystore.ts delete mode 100644 packages/sdk/keystores/src/index.ts delete mode 100644 packages/sdk/keystores/src/inmemory-keystore.ts delete mode 100644 packages/sdk/keystores/src/keystore-base.test.ts delete mode 100644 packages/sdk/keystores/src/keystore-base.ts delete mode 100644 packages/sdk/keystores/src/keystore-wallet-wrapper.test.ts delete mode 100644 packages/sdk/keystores/src/keystore-wallet-wrapper.ts delete mode 100644 packages/sdk/keystores/src/test-constants.ts delete mode 100644 packages/sdk/keystores/tsconfig.json delete mode 100644 packages/sdk/keystores/tslint.json delete mode 100644 packages/sdk/keystores/typedoc.json delete mode 100644 packages/sdk/network-utils/.gitignore delete mode 100644 packages/sdk/network-utils/.npmignore delete mode 100644 packages/sdk/network-utils/CHANGELOG.md delete mode 100644 packages/sdk/network-utils/README.md delete mode 100644 packages/sdk/network-utils/jest.config.js delete mode 100644 packages/sdk/network-utils/jestSetup.ts delete mode 100644 packages/sdk/network-utils/package.json delete mode 100644 packages/sdk/network-utils/scripts/fetch_timezones.ts delete mode 100644 packages/sdk/network-utils/src/genesis-block-utils.test.ts delete mode 100644 packages/sdk/network-utils/src/genesis-block-utils.ts delete mode 100644 packages/sdk/network-utils/src/globals.d.ts delete mode 100644 packages/sdk/network-utils/src/google-storage-utils.ts delete mode 100644 packages/sdk/network-utils/src/index.ts delete mode 100644 packages/sdk/network-utils/src/static-node-utils.test.ts delete mode 100644 packages/sdk/network-utils/src/static-node-utils.ts delete mode 100644 packages/sdk/network-utils/src/utils/timezone.ts delete mode 100644 packages/sdk/network-utils/src/utils/timezones.json delete mode 100644 packages/sdk/network-utils/tsconfig.json delete mode 100644 packages/sdk/network-utils/tslint.json delete mode 100644 packages/sdk/network-utils/typedoc.json delete mode 100644 packages/sdk/phone-utils/.gitignore delete mode 100644 packages/sdk/phone-utils/.npmignore delete mode 100644 packages/sdk/phone-utils/CHANGELOG.md delete mode 100644 packages/sdk/phone-utils/README.md delete mode 100644 packages/sdk/phone-utils/jest.config.js delete mode 100644 packages/sdk/phone-utils/package.json delete mode 100644 packages/sdk/phone-utils/scripts/linkdocs.ts delete mode 100644 packages/sdk/phone-utils/src/countries.test.ts delete mode 100644 packages/sdk/phone-utils/src/countries.ts delete mode 100644 packages/sdk/phone-utils/src/data/countries/es/country.json delete mode 100644 packages/sdk/phone-utils/src/getCountryEmoji.ts delete mode 100644 packages/sdk/phone-utils/src/index.ts delete mode 100644 packages/sdk/phone-utils/src/inputValidation.test.ts delete mode 100644 packages/sdk/phone-utils/src/inputValidation.ts delete mode 100644 packages/sdk/phone-utils/src/io.ts delete mode 100644 packages/sdk/phone-utils/src/phoneNumbers.test.ts delete mode 100644 packages/sdk/phone-utils/src/phoneNumbers.ts delete mode 100644 packages/sdk/phone-utils/tsconfig.json delete mode 100644 packages/sdk/phone-utils/tslint.json delete mode 100644 packages/sdk/phone-utils/typedoc.json delete mode 100644 packages/sdk/transactions-uri/.gitignore delete mode 100644 packages/sdk/transactions-uri/.npmignore delete mode 100644 packages/sdk/transactions-uri/CHANGELOG.md delete mode 100644 packages/sdk/transactions-uri/README.md delete mode 100644 packages/sdk/transactions-uri/jest.config.js delete mode 100644 packages/sdk/transactions-uri/jestSetup.ts delete mode 100644 packages/sdk/transactions-uri/package.json delete mode 100644 packages/sdk/transactions-uri/src/index.ts delete mode 100644 packages/sdk/transactions-uri/src/test-utils/setup.global.ts delete mode 100644 packages/sdk/transactions-uri/src/test-utils/teardown.global.ts delete mode 100644 packages/sdk/transactions-uri/src/tx-uri.test.ts delete mode 100644 packages/sdk/transactions-uri/src/tx-uri.ts delete mode 100644 packages/sdk/transactions-uri/tsconfig.json delete mode 100644 packages/sdk/transactions-uri/tslint.json delete mode 100644 packages/sdk/transactions-uri/typedoc.json delete mode 100644 packages/sdk/utils/.gitignore delete mode 100644 packages/sdk/utils/.npmignore delete mode 100644 packages/sdk/utils/CHANGELOG.md delete mode 100644 packages/sdk/utils/README.md delete mode 100644 packages/sdk/utils/jest.config.js delete mode 100644 packages/sdk/utils/package.json delete mode 100644 packages/sdk/utils/scripts/linkdocs.ts delete mode 100644 packages/sdk/utils/src/address.test.ts delete mode 100644 packages/sdk/utils/src/address.ts delete mode 100644 packages/sdk/utils/src/async.test.ts delete mode 100644 packages/sdk/utils/src/async.ts delete mode 100644 packages/sdk/utils/src/bn.ts delete mode 100644 packages/sdk/utils/src/celoHistory.ts delete mode 100644 packages/sdk/utils/src/collections.test.ts delete mode 100644 packages/sdk/utils/src/collections.ts delete mode 100644 packages/sdk/utils/src/contacts.ts delete mode 100644 packages/sdk/utils/src/currencies.ts delete mode 100644 packages/sdk/utils/src/displayFormatting.ts delete mode 100644 packages/sdk/utils/src/ecdh.ts delete mode 100644 packages/sdk/utils/src/ecies.test.ts delete mode 100644 packages/sdk/utils/src/ecies.ts delete mode 100644 packages/sdk/utils/src/fixidity.ts delete mode 100644 packages/sdk/utils/src/future.test.ts delete mode 100644 packages/sdk/utils/src/future.ts delete mode 100644 packages/sdk/utils/src/index.ts delete mode 100644 packages/sdk/utils/src/inputValidation.ts delete mode 100644 packages/sdk/utils/src/io.ts delete mode 100644 packages/sdk/utils/src/istanbul.test.ts delete mode 100644 packages/sdk/utils/src/istanbul.ts delete mode 100644 packages/sdk/utils/src/levenshtein.test.ts delete mode 100644 packages/sdk/utils/src/levenshtein.ts delete mode 100644 packages/sdk/utils/src/logger.ts delete mode 100644 packages/sdk/utils/src/parsing.test.ts delete mode 100644 packages/sdk/utils/src/parsing.ts delete mode 100644 packages/sdk/utils/src/sign-typed-data-utils.test.ts delete mode 100644 packages/sdk/utils/src/sign-typed-data-utils.ts delete mode 100644 packages/sdk/utils/src/signatureUtils.test.ts delete mode 100644 packages/sdk/utils/src/signatureUtils.ts delete mode 100644 packages/sdk/utils/src/solidity.ts delete mode 100644 packages/sdk/utils/src/string.ts delete mode 100644 packages/sdk/utils/src/task.test.ts delete mode 100644 packages/sdk/utils/src/task.ts delete mode 100644 packages/sdk/utils/src/typed-data-constructors.ts delete mode 100644 packages/sdk/utils/tsconfig.json delete mode 100644 packages/sdk/utils/tslint.json delete mode 100644 packages/sdk/utils/typedoc.json delete mode 100644 packages/sdk/wallets/wallet-base/.gitignore delete mode 100644 packages/sdk/wallets/wallet-base/.npmignore delete mode 100644 packages/sdk/wallets/wallet-base/CHANGELOG.md delete mode 100644 packages/sdk/wallets/wallet-base/Readme.md delete mode 100644 packages/sdk/wallets/wallet-base/jest.config.js delete mode 100644 packages/sdk/wallets/wallet-base/package.json delete mode 100644 packages/sdk/wallets/wallet-base/src/index.ts delete mode 100644 packages/sdk/wallets/wallet-base/src/signing-utils.test.ts delete mode 100644 packages/sdk/wallets/wallet-base/src/signing-utils.ts delete mode 100644 packages/sdk/wallets/wallet-base/src/wallet-base.ts delete mode 100644 packages/sdk/wallets/wallet-base/tsconfig.json delete mode 100644 packages/sdk/wallets/wallet-base/tslint.json delete mode 100644 packages/sdk/wallets/wallet-base/typedoc.json delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/.gitignore delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/.npmignore delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/CHANGELOG.md delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/README.MD delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/jest.config.js delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/package.json delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.test.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/src/index.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/tsconfig.json delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/tslint.json delete mode 100644 packages/sdk/wallets/wallet-hsm-aws/typedoc.json delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/.gitignore delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/.npmignore delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/CHANGELOG.md delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/README.md delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/jest.config.js delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/package.json delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.test.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/src/index.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/tsconfig.json delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/tslint.json delete mode 100644 packages/sdk/wallets/wallet-hsm-azure/typedoc.json delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/.env.example delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/.gitignore delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/.npmignore delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/CHANGELOG.md delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/jest.config.js delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/package.json delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-signer.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-wallet.test.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-wallet.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/src/index.ts delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/tsconfig.json delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/tslint.json delete mode 100644 packages/sdk/wallets/wallet-hsm-gcp/typedoc.json delete mode 100644 packages/sdk/wallets/wallet-hsm/.gitignore delete mode 100644 packages/sdk/wallets/wallet-hsm/.npmignore delete mode 100644 packages/sdk/wallets/wallet-hsm/CHANGELOG.md delete mode 100644 packages/sdk/wallets/wallet-hsm/README.md delete mode 100644 packages/sdk/wallets/wallet-hsm/package.json delete mode 100644 packages/sdk/wallets/wallet-hsm/src/ber-utils.ts delete mode 100644 packages/sdk/wallets/wallet-hsm/src/index.ts delete mode 100644 packages/sdk/wallets/wallet-hsm/src/signature-utils.ts delete mode 100644 packages/sdk/wallets/wallet-hsm/tsconfig.json delete mode 100644 packages/sdk/wallets/wallet-hsm/tslint.json delete mode 100644 packages/sdk/wallets/wallet-hsm/typedoc.json delete mode 100644 packages/sdk/wallets/wallet-ledger/.gitignore delete mode 100644 packages/sdk/wallets/wallet-ledger/.npmignore delete mode 100644 packages/sdk/wallets/wallet-ledger/CHANGELOG.md delete mode 100644 packages/sdk/wallets/wallet-ledger/README.MD delete mode 100644 packages/sdk/wallets/wallet-ledger/jest.config.js delete mode 100644 packages/sdk/wallets/wallet-ledger/package.json delete mode 100644 packages/sdk/wallets/wallet-ledger/src/data.ts delete mode 100644 packages/sdk/wallets/wallet-ledger/src/index.ts delete mode 100644 packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts delete mode 100644 packages/sdk/wallets/wallet-ledger/src/ledger-utils.ts delete mode 100644 packages/sdk/wallets/wallet-ledger/src/ledger-wallet.test.ts delete mode 100644 packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts delete mode 100644 packages/sdk/wallets/wallet-ledger/src/tokens.ts delete mode 100644 packages/sdk/wallets/wallet-ledger/tokens-all-networks.json delete mode 100644 packages/sdk/wallets/wallet-ledger/tsconfig.json delete mode 100644 packages/sdk/wallets/wallet-ledger/tslint.json delete mode 100644 packages/sdk/wallets/wallet-ledger/typedoc.json delete mode 100644 packages/sdk/wallets/wallet-ledger/types/hw-app-eth.d.ts delete mode 100644 packages/sdk/wallets/wallet-local/.gitignore delete mode 100644 packages/sdk/wallets/wallet-local/.npmignore delete mode 100644 packages/sdk/wallets/wallet-local/CHANGELOG.md delete mode 100644 packages/sdk/wallets/wallet-local/Readme.MD delete mode 100644 packages/sdk/wallets/wallet-local/jest.config.js delete mode 100644 packages/sdk/wallets/wallet-local/package.json delete mode 100644 packages/sdk/wallets/wallet-local/src/index.ts delete mode 100644 packages/sdk/wallets/wallet-local/src/local-signer.ts delete mode 100644 packages/sdk/wallets/wallet-local/src/local-wallet.test.ts delete mode 100644 packages/sdk/wallets/wallet-local/src/local-wallet.ts delete mode 100644 packages/sdk/wallets/wallet-local/src/signing.test.ts delete mode 100644 packages/sdk/wallets/wallet-local/tsconfig.json delete mode 100644 packages/sdk/wallets/wallet-local/tslint.json delete mode 100644 packages/sdk/wallets/wallet-local/typedoc.json delete mode 100644 packages/sdk/wallets/wallet-remote/.gitignore delete mode 100644 packages/sdk/wallets/wallet-remote/.npmignore delete mode 100644 packages/sdk/wallets/wallet-remote/CHANGELOG.md delete mode 100644 packages/sdk/wallets/wallet-remote/README.md delete mode 100644 packages/sdk/wallets/wallet-remote/jest.config.js delete mode 100644 packages/sdk/wallets/wallet-remote/package.json delete mode 100644 packages/sdk/wallets/wallet-remote/src/index.ts delete mode 100644 packages/sdk/wallets/wallet-remote/src/remote-wallet.test.ts delete mode 100644 packages/sdk/wallets/wallet-remote/src/remote-wallet.ts delete mode 100644 packages/sdk/wallets/wallet-remote/tsconfig.json delete mode 100644 packages/sdk/wallets/wallet-remote/tslint.json delete mode 100644 packages/sdk/wallets/wallet-remote/typedoc.json delete mode 100644 packages/sdk/wallets/wallet-rpc/.gitignore delete mode 100644 packages/sdk/wallets/wallet-rpc/.npmignore delete mode 100644 packages/sdk/wallets/wallet-rpc/CHANGELOG.md delete mode 100644 packages/sdk/wallets/wallet-rpc/README.md delete mode 100644 packages/sdk/wallets/wallet-rpc/jest.config.js delete mode 100644 packages/sdk/wallets/wallet-rpc/package.json delete mode 100644 packages/sdk/wallets/wallet-rpc/src/index.ts delete mode 100644 packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts delete mode 100644 packages/sdk/wallets/wallet-rpc/src/rpc-wallet.test.ts delete mode 100644 packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts delete mode 100644 packages/sdk/wallets/wallet-rpc/src/test-utils/ganache.setup.ts delete mode 100644 packages/sdk/wallets/wallet-rpc/src/test-utils/ganache.teardown.ts delete mode 100644 packages/sdk/wallets/wallet-rpc/tsconfig.json delete mode 100644 packages/sdk/wallets/wallet-rpc/tslint.json delete mode 100644 packages/sdk/wallets/wallet-rpc/typedoc.json delete mode 100644 readthedocs.yml delete mode 100644 scripts/beta-mode.sh delete mode 100644 scripts/deprecate-sdks.ts delete mode 100644 scripts/hooks/prereleasecheck.sh diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index fde10ead4e7..00000000000 --- a/.gitattributes +++ /dev/null @@ -1,37 +0,0 @@ -*.sol linguist-language=Solidity -packages/docs/developer-resources/base/reference/**/*.md -diff -merge -packages/docs/developer-resources/base/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/connect/reference/**/*.md -diff -merge -packages/docs/developer-resources/connect/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/contractkit/reference/**/*.md -diff -merge -packages/docs/developer-resources/contractkit/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/explorer/reference/**/*.md -diff -merge -packages/docs/developer-resources/explorer/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/governance/reference/**/*.md -diff -merge -packages/docs/developer-resources/governance/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/identity/reference/**/*.md -diff -merge -packages/docs/developer-resources/identity/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/network-utils/reference/**/*.md -diff -merge -packages/docs/developer-resources/network-utils/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/transactions-uri/reference/**/*.md -diff -merge -packages/docs/developer-resources/transactions-uri/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/utils/reference/**/*.md -diff -merge -packages/docs/developer-resources/utils/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/wallet-base/reference/**/*.md -diff -merge -packages/docs/developer-resources/wallet-base/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/wallet-hsm/reference/**/*.md -diff -merge -packages/docs/developer-resources/wallet-hsm/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/wallet-hsm-aws/reference/**/*.md -diff -merge -packages/docs/developer-resources/wallet-hsm-aws/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/wallet-hsm-azure/reference/**/*.md -diff -merge -packages/docs/developer-resources/wallet-hsm-azure/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/wallet-ledger/reference/**/*.md -diff -merge -packages/docs/developer-resources/wallet-ledger/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/wallet-local/reference/**/*.md -diff -merge -packages/docs/developer-resources/wallet-local/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/wallet-remote/reference/**/*.md -diff -merge -packages/docs/developer-resources/wallet-remote/reference/**/*.md linguist-generated=true -packages/docs/developer-resources/wallet-rpc/reference/**/*.md -diff -merge -packages/docs/developer-resources/wallet-rpc/reference/**/*.md linguist-generated=true -# packages/docs/command-line-interface/**/*.md -diff -merge -# packages/docs/command-line-interface/**/*.md linguist-generated=true diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c9b7671cf90..fa598458e59 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -13,16 +13,11 @@ /dockerfiles/ @celo-org/devopsre /packages/celotool/ @celo-org/devopsre -/packages/cli/ @celo-org/devtooling /packages/dev-utils/ @celo-org/devtooling -/packages/docs/ @celo-org/devtooling @celo-org/primitives @celo-org/devrel /packages/env-tests/ @celo-org/primitives -/packages/faucet/ @celo-org/devtooling /packages/helm-charts/ @celo-org/devopsre /packages/helm-charts/mock-oracle/ @celo-org/mento @celo-org/devopsre /packages/helm-charts/oracle-rbac/ @celo-org/mento @celo-org/devopsre /packages/helm-charts/oracle/ @celo-org/mento @celo-org/devopsre /packages/metadata-crawler/ @celo-org/devopsre /packages/protocol/ @celo-org/primitives -/packages/sdk/ @celo-org/devtooling -/packages/typescript/ @celo-org/devtooling diff --git a/.github/workflows/celo-monorepo.yml b/.github/workflows/celo-monorepo.yml index cfd3d176dfd..1ce75dad94f 100644 --- a/.github/workflows/celo-monorepo.yml +++ b/.github/workflows/celo-monorepo.yml @@ -170,34 +170,16 @@ jobs: mkdir -p test-results/jest # Skipping packages that are tested in a specific job below yarn run lerna \ - --ignore @celo/contractkit \ --ignore @celo/protocol \ --ignore @celo/celotool \ - --ignore @celo/celocli \ --ignore @celo/env-tests \ - --ignore '@celo/wallet-*' \ run test - name: Upload Jest Test Results uses: actions/upload-artifact@v3 with: name: Jest Test Results path: test-results/jest - wallet-test: - name: Wallet test - runs-on: ['self-hosted', 'monorepo-node18'] - timeout-minutes: 30 - needs: install-dependencies - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Sync workspace - uses: ./.github/actions/sync-workspace - with: - artifacts_to_cache: ${{ needs.install-dependencies.outputs.artifacts_to_cache }} - - name: Run Wallet tests - run: | - yarn run lerna --scope '@celo/wallet-*' run test + protocol-test-release: name: Protocol Test Release @@ -205,10 +187,8 @@ jobs: timeout-minutes: 500 needs: [install-dependencies, lint-checks] if: | - github.base_ref == 'master' || contains(github.base_ref, 'staging') || contains(github.base_ref, 'production') || + github.base_ref == 'master' || contains(github.base_ref, 'release') || contains(github.base_ref, 'production') || contains(needs.install-dependencies.outputs.all_modified_files, 'packages/protocol') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/sdk') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/typescript') || contains(needs.install-dependencies.outputs.all_modified_files, ',package.json') || contains(needs.install-dependencies.outputs.all_modified_files, ',yarn.lock') || false @@ -246,7 +226,6 @@ jobs: if: | github.base_ref == 'master' || contains(github.base_ref, 'staging') || contains(github.base_ref, 'production') || contains(needs.install-dependencies.outputs.all_modified_files, 'packages/protocol') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/sdk') || contains(needs.install-dependencies.outputs.all_modified_files, 'packages/typescript') || contains(needs.install-dependencies.outputs.all_modified_files, ',package.json') || contains(needs.install-dependencies.outputs.all_modified_files, ',yarn.lock') || @@ -299,172 +278,17 @@ jobs: command: | ${{ matrix.command }} - contractkit-tests: - name: ContractKit Tests - runs-on: ['self-hosted', 'monorepo-node18'] - timeout-minutes: 30 - needs: [install-dependencies] - if: | - github.base_ref == 'master' || contains(github.base_ref, 'staging') || contains(github.base_ref, 'production') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/protocol') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/dev-utils') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/sdk') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/typescript') || - contains(needs.install-dependencies.outputs.all_modified_files, ',package.json') || - contains(needs.install-dependencies.outputs.all_modified_files, ',yarn.lock') || - false - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Sync workspace - uses: ./.github/actions/sync-workspace - with: - artifacts_to_cache: ${{ needs.install-dependencies.outputs.artifacts_to_cache }} - - name: Run tests - run: | - yarn --cwd=packages/sdk/contractkit test - - cli-tests: - name: CeloCli Tests - runs-on: ['self-hosted', 'monorepo-node18'] - timeout-minutes: 30 - needs: [install-dependencies] - if: | - github.base_ref == 'master' || contains(github.base_ref, 'staging') || contains(github.base_ref, 'production') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/cli') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/protocol') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/dev-utils') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/sdk') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/typescript') || - contains(needs.install-dependencies.outputs.all_modified_files, ',package.json') || - contains(needs.install-dependencies.outputs.all_modified_files, ',yarn.lock') || - false - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Sync workspace - uses: ./.github/actions/sync-workspace - with: - artifacts_to_cache: ${{ needs.install-dependencies.outputs.artifacts_to_cache }} - - name: Run tests - run: | - yarn --cwd=packages/cli test - - name: Fail if someone forgot to commit CLI docs - run: | - yarn --cwd=packages/cli docs - if [[ $(git status packages/docs/command-line-interface --porcelain) ]]; then - git --no-pager diff packages/docs/command-line-interface - echo "There are git differences after generating CLI docs" - git status - git diff - exit 1 - fi - - name: Verify that a new account can be created - run: | - yarn --cwd=packages/cli run celocli account:new - - name: Test that releasecelo command topic is working - run: | - yarn --cwd=packages/cli run celocli releasecelo --help - typescript-tests: - name: Typescript package Tests - runs-on: ['self-hosted', 'monorepo-node18'] - timeout-minutes: 30 - needs: [install-dependencies] - if: | - github.base_ref == 'master' || contains(github.base_ref, 'staging') || contains(github.base_ref, 'production') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/typescript') || - contains(needs.install-dependencies.outputs.all_modified_files, ',package.json') || - contains(needs.install-dependencies.outputs.all_modified_files, ',yarn.lock') || - false - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Sync workspace - uses: ./.github/actions/sync-workspace - with: - artifacts_to_cache: ${{ needs.install-dependencies.outputs.artifacts_to_cache }} - - name: Install and test the npm package - run: | - set -euo pipefail - cd packages/typescript - yarn pack - cd $RUNNER_TEMP - npm install $RUNNER_WORKSPACE/celo-monorepo/packages/typescript/*.tgz - - base-test: - name: SDK Base package Tests - runs-on: ['self-hosted', 'monorepo-node18'] - timeout-minutes: 30 - needs: [install-dependencies] - if: | - github.base_ref == 'master' || contains(github.base_ref, 'staging') || contains(github.base_ref, 'production') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/sdk') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/typescript') || - contains(needs.install-dependencies.outputs.all_modified_files, ',package.json') || - contains(needs.install-dependencies.outputs.all_modified_files, ',yarn.lock') || - false - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Sync workspace - uses: ./.github/actions/sync-workspace - with: - artifacts_to_cache: ${{ needs.install-dependencies.outputs.artifacts_to_cache }} - - name: Install and test the npm package - run: | - set -euo pipefail - cd packages/sdk/base - yarn pack - cd $RUNNER_TEMP - npm install $RUNNER_WORKSPACE/celo-monorepo/packages/sdk/base/*.tgz - - utils-test: - name: SDK Utils package Tests - runs-on: ['self-hosted', 'monorepo-node18'] - timeout-minutes: 30 - needs: [install-dependencies] - if: | - github.base_ref == 'master' || contains(github.base_ref, 'staging') || contains(github.base_ref, 'production') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/sdk') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/typescript') || - contains(needs.install-dependencies.outputs.all_modified_files, ',package.json') || - contains(needs.install-dependencies.outputs.all_modified_files, ',yarn.lock') || - false - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - name: Sync workspace - uses: ./.github/actions/sync-workspace - with: - artifacts_to_cache: ${{ needs.install-dependencies.outputs.artifacts_to_cache }} - - name: Install and test the npm package - run: | - set -euo pipefail - cd packages/sdk/base - yarn pack - cd ../utils - yarn pack - cd $RUNNER_TEMP - npm install $RUNNER_WORKSPACE/celo-monorepo/packages/sdk/base/*.tgz - npm install $RUNNER_WORKSPACE/celo-monorepo/packages/sdk/utils/*.tgz - end-to-end-geth-matrix: # Keeping name short because GitHub UI does not handle long names well name: e2e ${{ matrix.name }} runs-on: ['self-hosted', 'monorepo-node18'] timeout-minutes: 60 - needs: [install-dependencies, lint-checks, contractkit-tests] + needs: [install-dependencies, lint-checks] if: | - github.base_ref == 'master' || contains(github.base_ref, 'staging') || contains(github.base_ref, 'production') || + github.base_ref == 'master' || contains(github.base_ref, 'release') || contains(github.base_ref, 'production') || contains(needs.install-dependencies.outputs.all_modified_files, 'packages/celotool') || contains(needs.install-dependencies.outputs.all_modified_files, 'packages/protocol') || contains(needs.install-dependencies.outputs.all_modified_files, 'packages/dev-utils') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/sdk') || contains(needs.install-dependencies.outputs.all_modified_files, 'packages/typescript') || contains(needs.install-dependencies.outputs.all_modified_files, ',package.json') || contains(needs.install-dependencies.outputs.all_modified_files, ',yarn.lock') || @@ -549,9 +373,8 @@ jobs: # Disable as certora license is not active if: | false && ( - github.base_ref == 'master' || contains(github.base_ref, 'staging') || contains(github.base_ref, 'production') || + github.base_ref == 'master' || contains(github.base_ref, 'release') || contains(github.base_ref, 'production') || contains(needs.install-dependencies.outputs.all_modified_files, 'packages/protocol') || - contains(needs.install-dependencies.outputs.all_modified_files, 'packages/sdk') || contains(needs.install-dependencies.outputs.all_modified_files, ',package.json') || contains(needs.install-dependencies.outputs.all_modified_files, ',yarn.lock') ) diff --git a/.github/workflows/cron-npm-install.yml b/.github/workflows/cron-npm-install.yml deleted file mode 100644 index 6ec1ba925ef..00000000000 --- a/.github/workflows/cron-npm-install.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: NPM install testing workflow -# By default the sha where it runs is latest commit on default branch -# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule -on: - schedule: - # daily at 19:00 UTC - - cron: 0 19 * * * - workflow_dispatch: - pull_request: - branches: - - master - -jobs: - install-npm-package: - name: ${{ matrix.package }} NPM package install - runs-on: ubuntu-latest - container: - image: node:18-bullseye - strategy: - fail-fast: false - matrix: - package: - - '@celo/utils@beta' - - '@celo/contractkit@beta' - - '@celo/celocli@beta' - steps: - - name: Install @celo/celocli dependencies - if: matrix.package == '@celo/celocli@beta' - run: | - apt update - apt install -y libusb-1.0-0-dev libudev-dev - yarn global add node-gyp - - name: Installing npm package - run: yarn add ${{ matrix.package }} - - name: Test celocli command - if: matrix.package == '@celo/celocli' - run: | - yarn --cwd=packages/cli run celocli account:new diff --git a/.gitignore b/.gitignore index c81a7bffab4..59ebcaba36d 100644 --- a/.gitignore +++ b/.gitignore @@ -94,16 +94,9 @@ packages/docs/_book/ .env.local # old packages -packages/reserve-site/* -packages/blockchain-api/* -packages/mobile/* -packages/faucet/* -packages/moonpay-auth/* -packages/notification-service/* -packages/react-components/* packages/phone-number-privacy/* -packages/sdk/identity/* -packages/sdk/encrypted-backup/* +packages/sdk/* +packages/cli/* # temp json file for deploy-sdks script scripts/failedSDKs.json diff --git a/.husky/pre-commit b/.husky/pre-commit index 0fb4d12ae66..468ba1be1e6 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,6 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -yarn pretty-quick --staged --pattern '**/*.+(ts|tsx|js|jsx|sol|java)' - -bash scripts/hooks/prereleasecheck.sh +yarn pretty-quick --staged --pattern '**/*.+(ts|js|sol)' diff --git a/.husky/pre-push b/.husky/pre-push index 9645bf67c8e..7471d042570 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -9,5 +9,3 @@ do done HUSKY_GIT_STDIN=$HUSKY_GIT_STD node ./scripts/hooks/pre-push.js - -bash scripts/hooks/prereleasecheck.sh diff --git a/README-dev.md b/README-dev.md index fede718068d..2ad0e1a9602 100644 --- a/README-dev.md +++ b/README-dev.md @@ -10,132 +10,8 @@ This command will create a local testnet with a single validator node and deploy Once the network is initialized a NodeJS REPL is provided to help interact with the running nodes. For more options, consult `yarn celotool local-testnet --help`, which provides an overview of the tool and its options. -## Monorepo inter-package dependencies - -Many packages depend on other packages within the monorepo. When this happens, follow these rules: - -1. All packages must use **master version** of sibling packages. -2. Exception to (1) are packages that represent a GAE/firebase app which must use the last published version. -3. To differentiate published vs unpublished version. Master version (in package.json) must end with suffix `-dev` and should not be published. -4. If a developer wants to publish a version; then after publishing it needs to set master version to next `-dev` version and change all package.json that require on it. - -To check which packages need amending, you can run (in the root pkg): - - yarn check:packages - -A practical example: - -- In any given moment, `contractkit/package.json#version` field **must** of the form `x.y.z-dev` -- If current version of contractkit is: `0.1.6-dev` and we want to publish a new version, we should: - - publish version `0.1.6` - - change `package.json#version` to `0.1.7-dev` - - change in other packages within monorepo that were using `0.1.6-dev` to `0.1.7-dev` - -## How to publish a new npm package - -> Note: Packages with mainline versions (i.e. without a `-foo` suffix) should be published from the `master` branch. - -> Note: All packages are prefixed with "@celo/" and only members of the [Celo NPM organization](https://www.npmjs.com/settings/celo/members) can publish new packages or update the existing ones. - -### Update the version numbers to an unpublished version - -It is important to ensure that the `master` branch is ahead of the published package on NPM, otherwise `yarn` may use the published version of the package rather than the local development version. - -In order to maintain this, create and merge a PR to the `master` branch bumping the package version to the next number that will be published. (i.e. If you are about to publish `x.y.z`, set the package version to `x.y.z+1`) -Update all references to that package in the monorepo to the new version (i.e. `x.y.z+1`) -Prefer appending a `-dev` suffix to the version number to ensure an internal dependency will never be mistaken for a published one. - -> Note: Publishing breaking changes requires an increment to the minor version number for `0.` releases. Once `1.0.0` is pusblished breaking changes are generally prohibited outside the rare major version release. Read the [semver specification](https://semver.org/) for more information. - -> Note: Services deployed to App Engine must only depend on published NPM packages. These packages are `blockchain-api` and `notification-service`. - -### Checkout the commit to be published and verify version numbers - -Checkout the commit that will become the new published version (i.e. `git checkout HEAD~1` assuming that the commit for bumping the version number is `HEAD`) - -Check the `package.json` file and remove the `-dev` suffix if present. Additionally remove the `-dev` suffix from any internal dependencies and use ensure they are published (e.g. `@celo/utils`) ### Verify installation in Docker Test installation in isolation using Docker. This confirms that it is locally installable and does not have implicit dependency on rest of the `celo-monorepo` or have an implicit dependency which is an explicit dependency of another `celo-monorepo` package. - -``` -# Specify the package to test. e.g. celocli, contractkit, utils -celo-monorepo $ PACKAGE=cli -celo-monorepo $ docker run --rm -v $PWD/packages/${PACKAGE}:/tmp/npm_package -it --entrypoint bash gcr.io/celo-testnet/circleci-node18:1.0.0 -circleci@e0d56700584f:/# mkdir /tmp/tmp1 && cd /tmp/tmp1 -circleci@e0d56700584f:/tmp/tmp1# npm install /tmp/npm_package/ -``` - -### Publish the package - -``` -# Publish the package publicly -celo-monorepo/packages/cli $ yarn publish --access=public -``` - -Let's say the published package version number 0.0.20, verify that it is installable - -``` -/tmp/tmp1 $ npm install @celo/cli@0.0.20 -``` - -Add a tag with the most recent git commit of the published branch. Note that this commit comes before package.json is updated with the new package version. - -``` -$ npm dist-tag add @ -``` - -Additionally, if this version is intended to be used on a deployed network (e.g. `baklava` or `alfajores`), tag the version with all appropriate network names. - -``` -$ npm dist-tag add @ -``` - -Once you publish do some manual tests, for example, after publishing `celocli` - -``` -# Docker for an isolated environment again -celo-monorepo $ docker run --rm -it --entrypoint bash gcr.io/celo-testnet/circleci-node18:1.0.0 -circleci@7040a7660754:/$ mkdir /tmp/tmp1 && cd /tmp/tmp1 -circleci@7040a7660754:/tmp/tmp1$ npm install @celo/celocli@0.0.48 -... -circleci@7040a7660754:/tmp/tmp1$ ./node_modules/.bin/celocli -CLI Tool for transacting with the Celo protocol - -VERSION - @celo/celocli/1.6.3 linux-x64 node-v18.14.2 - -USAGE - $ celocli [COMMAND] - -COMMANDS - account Manage your account, keys, and metadata - config Configure CLI options which persist across commands - election Participate in and view the state of Validator Elections - exchange Exchange Celo Dollars and Celo Gold via the stability mechanism - governance Interact with on-chain governance proposals and hotfixes - help display help for celocli - identity Outputs the set of validators currently participating in BFT and which ones are participating in Celo's lightweight identity protocol - lockedgold View and manage locked Celo Gold - multisig Shows information about multi-sig contract - network Prints Celo contract addesses. - node Manage your Celo node - oracle Remove expired oracle reports for a specified token (currently just Celo Dollar, aka: "StableToken") - releasegold View and manage Release Gold contracts - reserve Shows information about reserve - rewards Show rewards information about a voter, registered Validator, or Validator Group - transfer Transfer Celo Gold and Celo Dollars - validator View and manage Validators - validatorgroup View and manage Validator Groups - -circleci@7040a7660754:/tmp/tmp1$ ./node_modules/.bin/celocli account:new -Failed to initialize libusb. -This is not being stored anywhere. Save the mnemonic somewhere to use this account at a later point. - -mnemonic: fury puzzle field laptop evidence stuff rescue display home museum ritual message million cave stadium carbon clinic dutch robust vehicle control lizard brass dinosaur -accountAddress: 0x328e0394Dbb468FE4eD1fF73bD508442fBD305CF -privateKey: 7adb0c1a98b00b98a180cbfcc44666f1aab7d315669190fbac30bbdc4989a2ec -publicKey: 039f938bb038962080c9269b195b63999cf90b149921250c2b8a8db92f711d5c81 -``` diff --git a/README.md b/README.md index ea5e9a098e4..32dc372f8ae 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ **Celo Monorepo - Official repository for core projects comprising the Celo platform** -This repository contains the source code for the Celo core projects including the [smart contracts](https://github.com/celo-org/celo-monorepo/tree/master/packages/protocol), [contractKit](https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/contractkit), +This repository contains the source code for the Celo core projects including the [smart contracts](https://github.com/celo-org/celo-monorepo/tree/master/packages/protocol) and other packages. The source code for the Celo Blockchain which operates a node on the Celo Network is kept in a separate repo [here](https://github.com/celo-org/celo-blockchain). @@ -105,14 +105,10 @@ See the [issue backlog](https://github.com/celo-org/celo-monorepo/issues) for a The repository has the following packages (sub projects): - [celotool](packages/celotool) - scripts for deploying and managing testnets -- [cli](packages/cli) - tool that uses ContractKit to interact with the Celo protocol ([docs](https://docs.celo.org/command-line-interface/introduction)) - [dev-utils](packages/dev-utils) - a utils package for use as a dev dependency -- [docs](packages/docs) - technical documentation for the Celo project ([live](https://docs.celo.org/)) +- - [helm-charts](packages/helm-charts) - (DEPRECATED) templatized deployments of entire environments to Kubernetes clusters. Check [celo-org/charts](https://github.com/celo-org/charts) instead. - [protocol](packages/protocol) - identity, stability and other smart contracts for the Celo protocol ([docs](https://docs.celo.org/protocol)) -- [sdk](packages/sdk) - Typescript packages for interacting with Celo, including Contracts, Wallets, Crypto++ -- [contractkit](packages/sdk/contractkit) - library to help developers and validators interact with the protocol and its smart contracts ([docs](https://docs.celo.org/developer/contractkit)) -- [typescript](packages/typescript) - no README available (improve?) Code owners for each package can be found in [.github/CODEOWNERS](.github/CODEOWNERS). diff --git a/RELEASE.md b/RELEASE.md deleted file mode 100644 index c29a4f97418..00000000000 --- a/RELEASE.md +++ /dev/null @@ -1,76 +0,0 @@ -# Release Process - -This repo uses changesets to determine what packages need a version bump. - -Each PR MUST be accompanied by a changeset unless it has zero affect on package consumers (ie changing github action workflows). - -To create a changeset run `changeset add` (or `yarn cs`) - -This will bring up an interactive console which asks which packages are affect and if they require minor or major update. - -## Auto Releasing - -The Release.yaml workflow will create a PR called "Version Packages", each time a PR is merged to master with changeset files this PR will be rebased and updated to show what the versions would be of published then. Merging this PR in will lead to packages being built and published to npm and github release notes being published. - -## Manual Releasing (discouraged) - -when time to release new versions of npm package run `changeset version` this will look thru the changeset files that have been generated since last release to bump the versions for package automatically to major if any changesets specify major change minor if only minor and patch if a the package had no changesets of its own but depends on one which will be updated. - -finally `changeset publish` will go thru and publish to npm the packages that need publishing. - -after go ahead and run `git push --follow-tags` to push git tags up to github. - -## Auto Pre-releasing (Recommended) - -For Detailed Steps read (scripts/beta-mode.sh)[] - -1. Run `yarn beta-enter` -This will enter into the pre mode of changesets and create a prerelease/beta branch and push it up to origin(github) - -Any time a commit is pushed to prerelease/** github will go and open a specially Version Packages (Beta) PR. You can merge this and packages will be published as specified in the branch (should be beta) - -2. If you need to release another beta make a changeset and commit it up. - -3. When done run `yarn beta-exit` -This will exit changeset pre mode. Push up. - -4. Now you can Open a Pr with your prerelease/? branch against main. - - -## Manual Pre Releasing (discouraged) - -changesets has 2 strategies for pre release versions. - -The first is to enter `pre` mode on changesets. [docs here](https://github.com/changesets/changesets/blob/main/docs/prereleases.md) - -``` -yarn changeset pre enter beta -yarn changeset version -git add . -git commit -m "Enter prerelease mode and version packages" -yarn changeset publish -git push --follow-tags -``` - -The other is to append --snapshot. which is great for daily releases. - -``` -yarn changeset version --snapshot canary - -yarn changeset publish --no-git-tag --snapshot - -``` - - - -## Package Versioning - -Based on semantic versioning best practices [semver.org](semver.org) - -Given a version number MAJOR.MINOR.PATCH, increment the: - -- MAJOR version when you make incompatible API changes -- MINOR version when you add functionality in a backward compatible manner -- PATCH version when you make backward compatible bug fixes - -Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format. diff --git a/SETUP.md b/SETUP.md index 0bab97eea6e..03df2cbf70e 100644 --- a/SETUP.md +++ b/SETUP.md @@ -29,7 +29,7 @@ Follow these steps to get everything that you need installed to build the celo-m ### Common stuff -#### Install Go +#### (Optional) Install Go We need Go for [celo-blockchain](https://github.com/celo-org/celo-blockchain), the Go Celo implementation, and `gobind` to build Java language bindings to Go code for the Android Geth client. diff --git a/codecov.yml b/codecov.yml index fce14024b46..de950099141 100644 --- a/codecov.yml +++ b/codecov.yml @@ -8,16 +8,7 @@ coverage: celotool: paths: - packages/celotool - celocli: - paths: - - packages/cli - odis: - paths: - - packages/phone-number-privacy protocol: paths: - packages/protocol - sdk: - paths: - - packages/sdk patch: off diff --git a/dependency-graph.json b/dependency-graph.json deleted file mode 100644 index 77db1a52d1e..00000000000 --- a/dependency-graph.json +++ /dev/null @@ -1,244 +0,0 @@ -{ - "@celo/celotool": { - "location": "packages/celotool", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/contractkit", - "@celo/cryptographic-utils", - "@celo/dev-utils", - "@celo/env-tests", - "@celo/explorer", - "@celo/governance", - "@celo/network-utils", - "@celo/protocol", - "@celo/utils" - ] - }, - "@celo/celocli": { - "location": "packages/cli", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/contractkit", - "@celo/cryptographic-utils", - "@celo/dev-utils", - "@celo/explorer", - "@celo/governance", - "@celo/phone-utils", - "@celo/utils", - "@celo/wallet-hsm-azure", - "@celo/wallet-ledger", - "@celo/wallet-local" - ] - }, - "@celo/dev-utils": { - "location": "packages/dev-utils", - "dependencies": [] - }, - "@celo/env-tests": { - "location": "packages/env-tests", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/contractkit", - "@celo/cryptographic-utils", - "@celo/phone-utils", - "@celo/utils" - ] - }, - "@celo/metadata-crawler": { - "location": "packages/metadata-crawler", - "dependencies": [ - "@celo/connect", - "@celo/contractkit", - "@celo/utils" - ] - }, - "@celo/protocol": { - "location": "packages/protocol", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/cryptographic-utils", - "@celo/typescript", - "@celo/utils", - "@celo/wallet-local" - ] - }, - "@celo/typescript": { - "location": "packages/typescript", - "dependencies": [] - }, - "@celo/base": { - "location": "packages/sdk/base", - "dependencies": [ - "@celo/typescript" - ] - }, - "@celo/connect": { - "location": "packages/sdk/connect", - "dependencies": [ - "@celo/base", - "@celo/utils" - ] - }, - "@celo/contractkit": { - "location": "packages/sdk/contractkit", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/dev-utils", - "@celo/protocol", - "@celo/utils", - "@celo/wallet-local" - ] - }, - "@celo/cryptographic-utils": { - "location": "packages/sdk/cryptographic-utils", - "dependencies": [ - "@celo/base", - "@celo/typescript", - "@celo/utils" - ] - }, - "@celo/explorer": { - "location": "packages/sdk/explorer", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/contractkit", - "@celo/utils" - ] - }, - "@celo/governance": { - "location": "packages/sdk/governance", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/contractkit", - "@celo/explorer", - "@celo/utils" - ] - }, - "@celo/keystores": { - "location": "packages/sdk/keystores", - "dependencies": [ - "@celo/utils", - "@celo/wallet-local" - ] - }, - "@celo/network-utils": { - "location": "packages/sdk/network-utils", - "dependencies": [ - "@celo/dev-utils" - ] - }, - "@celo/phone-utils": { - "location": "packages/sdk/phone-utils", - "dependencies": [ - "@celo/base", - "@celo/typescript", - "@celo/utils" - ] - }, - "@celo/transactions-uri": { - "location": "packages/sdk/transactions-uri", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/contractkit", - "@celo/dev-utils" - ] - }, - "@celo/utils": { - "location": "packages/sdk/utils", - "dependencies": [ - "@celo/base", - "@celo/typescript" - ] - }, - "@celo/wallet-base": { - "location": "packages/sdk/wallets/wallet-base", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/utils" - ] - }, - "@celo/wallet-hsm-aws": { - "location": "packages/sdk/wallets/wallet-hsm-aws", - "dependencies": [ - "@celo/connect", - "@celo/utils", - "@celo/wallet-base", - "@celo/wallet-hsm", - "@celo/wallet-remote" - ] - }, - "@celo/wallet-hsm-azure": { - "location": "packages/sdk/wallets/wallet-hsm-azure", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/utils", - "@celo/wallet-base", - "@celo/wallet-hsm", - "@celo/wallet-remote" - ] - }, - "@celo/wallet-hsm-gcp": { - "location": "packages/sdk/wallets/wallet-hsm-gcp", - "dependencies": [ - "@celo/connect", - "@celo/utils", - "@celo/wallet-base", - "@celo/wallet-hsm", - "@celo/wallet-remote" - ] - }, - "@celo/wallet-hsm": { - "location": "packages/sdk/wallets/wallet-hsm", - "dependencies": [ - "@celo/base" - ] - }, - "@celo/wallet-ledger": { - "location": "packages/sdk/wallets/wallet-ledger", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/utils", - "@celo/wallet-base", - "@celo/wallet-remote" - ] - }, - "@celo/wallet-local": { - "location": "packages/sdk/wallets/wallet-local", - "dependencies": [ - "@celo/connect", - "@celo/utils", - "@celo/wallet-base" - ] - }, - "@celo/wallet-remote": { - "location": "packages/sdk/wallets/wallet-remote", - "dependencies": [ - "@celo/connect", - "@celo/utils", - "@celo/wallet-base" - ] - }, - "@celo/wallet-rpc": { - "location": "packages/sdk/wallets/wallet-rpc", - "dependencies": [ - "@celo/base", - "@celo/connect", - "@celo/contractkit", - "@celo/dev-utils", - "@celo/utils", - "@celo/wallet-base", - "@celo/wallet-remote" - ] - } -} \ No newline at end of file diff --git a/dockerfiles/cli-standalone/Dockerfile b/dockerfiles/cli-standalone/Dockerfile deleted file mode 100644 index 89a3759f06e..00000000000 --- a/dockerfiles/cli-standalone/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -# Docker image containing the celocli, built from NPM. -# -# Example build command: -# -# VERSION=x.y.z; docker build . --build-arg VERSION=$VERSION -t gcr.io/celo-testnet/celocli-standalone:$VERSION -FROM node:12-alpine -LABEL org.opencontainers.image.authors="devops@clabs.co" - -# Install cli install dependencies. -RUN apk add --no-cache python3 git make gcc g++ bash libusb-dev linux-headers eudev-dev - -# Add an set as default a non-privileged user named celo. -RUN adduser -D -S celo -USER celo - -# Make folders for npm packages. -RUN mkdir /home/celo/.npm-global -ENV PATH=/home/celo/.npm-global/bin:$PATH -ENV NPM_CONFIG_PREFIX=/home/celo/.npm-global - -WORKDIR /home/celo/ - -# Install @celo/celocli from NPM. -ARG VERSION -RUN npm install -g @celo/celocli@$VERSION -RUN celocli config:set --node https://forno.celo.org - -ENTRYPOINT ["celocli"] -CMD ["--help"] diff --git a/dockerfiles/cli/Dockerfile b/dockerfiles/cli/Dockerfile deleted file mode 100644 index 1f713913177..00000000000 --- a/dockerfiles/cli/Dockerfile +++ /dev/null @@ -1,70 +0,0 @@ -# Docker image for this file is hosted at -# us.gcr.io/celo-testnet/celocli:master -# -# How to test changes to this file -# docker build -f dockerfiles/cli/Dockerfile -t gcr.io/celo-testnet/celocli:$USER . --build-arg celo_env=alfajores -# To run this image locally -# docker rm cli_container; docker run --name cli_container -p 127.0.0.1:8545:8545 gcr.io/celo-testnet/celocli:$USER -v / -# To run this image locally in ultralight mode -# docker rm cli_container; docker run --name cli_container -p 127.0.0.1:8545:8545 -it --entrypoint=/celo/start_geth.sh gcr.io/celo-testnet/celocli:$USER "/usr/local/bin/geth" "alfajores" "full" -# and connect to it with -# docker exec -t -i cli_container /bin/sh -# -# Run commands against it using -# docker exec -it cli_container celocli -# For example, -# docker exec -it cli_container celocli account:balance 0x456f41406B32c45D59E539e4BBA3D7898c3584dA -# docker exec -it cli_container celocli account:balance 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B -# -# To restart -# docker start -ai cli_container -# -# To kill -# docker kill cli_container - -ARG geth_tag=1.7.4 -ARG geth_project=celo-org - -# Get geth and related files -FROM us.gcr.io/$geth_project/geth:$geth_tag as geth - -ARG celo_env -RUN echo "Env is ${celo_env}" && apk add curl && mkdir /celo -ADD https://www.googleapis.com/storage/v1/b/genesis_blocks/o/${celo_env}?alt=media /celo/genesis.json -ADD https://www.googleapis.com/storage/v1/b/static_nodes/o/${celo_env}?alt=media /celo/static-nodes.json - -# Build Celocli -FROM node:12-alpine as node - -ARG celo_env - -RUN echo "geth_tag is ${geth_tag}" && echo "Env is ${celo_env}" -# Required for celocli -RUN apk add --no-cache python git make gcc g++ pkgconfig libusb libusb-dev linux-headers eudev-dev - -WORKDIR /celo-monorepo/ -RUN npm install @celo/celocli - -# Build the combined image -FROM node:12-alpine as final_image -LABEL org.opencontainers.image.authors="devops@clabs.co" - -ARG network_name="alfajores" -ARG network_id="44787" - -# Without musl-dev, geth will fail with a confusing "No such file or directory" error. -# bash is required for start_geth.sh -RUN apk add --no-cache musl-dev bash - -WORKDIR /celo-monorepo/ - -RUN echo "Dir is ${PWD}" && echo "env is ${celo_env}" && mkdir /celo -COPY packages/cli/start_geth.sh /celo/start_geth.sh -COPY --from=geth /usr/local/bin/geth /usr/local/bin/geth -COPY --from=geth /celo/genesis.json /celo -COPY --from=geth /celo/static-nodes.json /celo -COPY --from=node /celo-monorepo/node_modules /celo-monorepo/node_modules -RUN chmod ugo+x /celo/start_geth.sh && ln -s /celo-monorepo/node_modules/.bin/celocli /usr/local/bin/celocli - -EXPOSE 8545 8546 30303 30303/udp -ENTRYPOINT ["/celo/start_geth.sh", "/usr/local/bin/geth", "alfajores", "full", "44787", "/root/.celo", "/celo/genesis.json", "/celo/static-nodes.json"] diff --git a/lerna.json b/lerna.json index 6186a6723fa..3b7d83df23d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,9 +1,7 @@ { "lerna": "2.10.1", "packages": [ - "packages/*", - "packages/sdk/*", - "packages/sdk/wallets/*" + "packages/*" ], "npmClient": "yarn", "useWorkspaces": true, diff --git a/package.json b/package.json index 8d661be539c..0d224f7dc11 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,10 @@ "private": true, "scripts": { "preinstall": "git config --global url.\"https://\".insteadOf ssh://", - "install-pkg": "yarn install --link-duplicates", "lint": "yarn lerna run lint && yarn run --silent lint:do-not-merge", "lint:do-not-merge": "! git grep -E 'DO[ _]*NOT[ _]*MERGE'", - "prettify": "yarn run prettier --config .prettierrc.js --write '**/*.+(ts|tsx|js|jsx|sol|java)'", - "prettify:diff": "yarn run prettier --config .prettierrc.js --list-different '**/*.+(ts|tsx|js|jsx|sol|java)'", + "prettify": "yarn run prettier --config .prettierrc.js --write '**/*.+(ts|js|sol)'", + "prettify:diff": "yarn run prettier --config .prettierrc.js --list-different '**/*.+(ts|js|sol)'", "reset": "yarn reset-modules && yarn reset-cache", "reset-cache": "yarn reset-yarn && yarn reset-rn", "reset-modules": "rm -rf node_modules/ packages/*/node_modules", @@ -28,21 +27,12 @@ "keys:decrypt": "bash scripts/key_placer.sh decrypt", "keys:encrypt": "bash scripts/key_placer.sh encrypt", "check:packages": "node ./scripts/check-packages.js", - "release": "yarn clean && yarn build && yarn --cwd packages/cli run prepack && yarn cs publish", - "beta-enter": "bash scripts/beta-mode.sh", - "beta-exit": "yarn changeset pre exit && git commit -am 'Complete beta mode'", - "version-and-reinstall": "yarn changeset version && yarn install", "celotool": "yarn --cwd packages/celotool run --silent cli", - "celocli": "yarn --cwd packages/cli run --silent celocli", - "update-dependency-graph": "ts-node ./scripts/update_dependency_graph.ts", - "deprecate-sdks": "ts-node ./scripts/unpublish-sdks.ts", "prepare": "husky install" }, "workspaces": { "packages": [ - "packages/*", - "packages/sdk/*", - "packages/sdk/wallets/*" + "packages/*" ], "nohoist": [ "**/openzeppelin-solidity", @@ -79,8 +69,5 @@ "blind-threshold-bls": "npm:@celo/blind-threshold-bls@1.0.0-beta", "@types/bn.js": "4.11.6", "bignumber.js": "9.0.0" - }, - "dependencies": { - "@changesets/cli": "^2.26.2" } } \ No newline at end of file diff --git a/packages/celotool/src/lib/oracle.ts b/packages/celotool/src/lib/oracle.ts index 1b8d20e9abd..9f90949921c 100644 --- a/packages/celotool/src/lib/oracle.ts +++ b/packages/celotool/src/lib/oracle.ts @@ -1,4 +1,4 @@ -import { ensureLeading0x } from '@celo/utils/src/address' +import { ensureLeading0x } from '@celo/utils/lib/address' import { DynamicEnvVar, envVar, fetchEnv } from 'src/lib/env-utils' import yargs from 'yargs' import { getCloudProviderFromContext, getDynamicEnvVarValues } from './context-utils' diff --git a/packages/cli/.gitattributes b/packages/cli/.gitattributes deleted file mode 100644 index 888ec564f4e..00000000000 --- a/packages/cli/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -README.md linguist-generated=true \ No newline at end of file diff --git a/packages/cli/.gitignore b/packages/cli/.gitignore deleted file mode 100644 index d9e7a338998..00000000000 --- a/packages/cli/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*-debug.log -*-error.log -/.nyc_output -/dist -/lib -/tmp -.tmp/ -node_modules -oclif.manifest.json -src/generated -.devchain/ -.devchain.tar.gz diff --git a/packages/cli/.npmignore b/packages/cli/.npmignore deleted file mode 100644 index 4c9170c6257..00000000000 --- a/packages/cli/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ - -# use the files array in package.json to include files \ No newline at end of file diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md deleted file mode 100644 index 60d792f4006..00000000000 --- a/packages/cli/CHANGELOG.md +++ /dev/null @@ -1,342 +0,0 @@ -# Changelog - -## 3.1.3 - -### Patch Changes - -- 041fc926f: Add textual feedback about parsing proposal -- Updated dependencies [041fc926f] -- Updated dependencies [041fc926f] -- Updated dependencies [041fc926f] - - @celo/governance@5.0.8 - -## 3.1.2-beta.2 - -### Patch Changes - -- ba27783ae: Revert removal of Contracts -- Updated dependencies [ba27783ae] - - @celo/contractkit@6.0.0-beta.2 - -### Patch Changes - -- Updated dependencies [9ab9d00eb] -- Updated dependencies [444db6de9] -- Updated dependencies [9ab9d00eb] - - @celo/contractkit@6.0.0-beta.1 - - @celo/governance@5.0.7-beta.2 - -## 3.1.2-beta.1 - -### Patch Changes - -- e4da5a7a8: Add textual feedback about parsing proposal -- Updated dependencies [e4da5a7a8] - - @celo/governance@5.0.7-beta.1 - -## 3.1.2-beta.0 - -### Patch Changes - -- bb3cf9f2e: update terminology: refer to celo not gold. -- bb3cf9f2e: Alias releasecelo to releasegold -- Updated dependencies [1c9c844cf] -- Updated dependencies [86bbfddf1] - - @celo/contractkit@6.0.0-beta.0 - - @celo/governance@5.0.7-beta.0 - - @celo/explorer@5.0.7-beta.0 -- bb3cf9f2e: update terminology: refer to celo not gold. -- bb3cf9f2e: Alias releasecelo to releasegold -- Updated dependencies [9ab9d00eb] -- Updated dependencies [1c9c844cf] -- Updated dependencies [9ab9d00eb] - - @celo/contractkit@6.0.0 - - @celo/explorer@5.0.7 - - @celo/governance@5.0.7 - -## 3.1.1 - -### Patch Changes - -- 6ff7f4a1e: network:contracts command fix added StableTokens to unversioned contracts list -- Updated dependencies [88e3788b8] -- Updated dependencies [70f600bb0] -- Updated dependencies [2985f9eb2] - - @celo/contractkit@5.2.1 - -## 3.1.0 - -### Minor Changes - -- 06700f3ad: Update of Governance Upvote function -- 32face3d8: Delegation of Governance votes -- 1e8d07ba6: add FeeHandler contract info to `celocli network:contracts` command -- 87647b46b: Add multisig:approve command to CLI, expose MultiSig.confirmTransaction in ContractKit. - -### Patch Changes - -- 22ea7f691: Remove moment.js dependency -- Updated dependencies -- Updated dependencies [679ef0c60] -- Updated dependencies [97d5ccf43] -- Updated dependencies [32face3d8] -- Updated dependencies [97d5ccf43] -- Updated dependencies [87647b46b] - - @celo/contractkit@5.2.0 - - @celo/connect@5.1.1 - - @celo/phone-utils@6.0.0 - - @celo/base@6.0.0 - - @celo/cryptographic-utils@5.0.6 - - @celo/explorer@5.0.6 - - @celo/governance@5.0.6 - - @celo/utils@5.0.6 - - @celo/wallet-hsm-azure@5.1.1 - - @celo/wallet-ledger@5.1.1 - - @celo/wallet-local@5.1.1 - -## 3.1.0-beta.0 - -### Minor Changes - -- 06700f3ad: Update of Governance Upvote function -- 32face3d8: Delegation of Governance votes -- 1e8d07ba6: add FeeHandler contract info to `celocli network:contracts` command -- 87647b46b: Add multisig:approve command to CLI, expose MultiSig.confirmTransaction in ContractKit. - -### Patch Changes - -- 22ea7f691: Remove moment.js dependency -- Updated dependencies -- Updated dependencies [97d5ccf43] -- Updated dependencies [32face3d8] -- Updated dependencies [97d5ccf43] -- Updated dependencies [87647b46b] - - @celo/contractkit@5.2.0-beta.0 - - @celo/phone-utils@6.0.0-beta.0 - - @celo/base@6.0.0-beta.0 - - @celo/explorer@5.0.6-beta.0 - - @celo/governance@5.0.6-beta.0 - - @celo/connect@5.1.1-beta.0 - - @celo/cryptographic-utils@5.0.6-beta.0 - - @celo/utils@5.0.6-beta.0 - - @celo/wallet-hsm-azure@5.1.1-beta.0 - - @celo/wallet-ledger@5.1.1-beta.0 - - @celo/wallet-local@5.1.1-beta.0 - -## 3.0.2 - -### Patch Changes - -- d48c68afc: Speeds up governance:show command by parallelize async calls, and reducing data fetched -- cb7b4c538: Fixes type warnings -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] - - @celo/contractkit@5.1.0 - - @celo/connect@5.1.0 - - @celo/wallet-hsm-azure@5.1.0 - - @celo/wallet-ledger@5.1.0 - - @celo/wallet-local@5.1.0 - - @celo/cryptographic-utils@5.0.5 - - @celo/phone-utils@5.0.5 - - @celo/governance@5.0.5 - - @celo/explorer@5.0.5 - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 3.0.2-beta.1 - -### Patch Changes - -- cb7b4c538: Fixes type warnings - -## 3.0.2-beta.0 - -### Patch Changes - -- d48c68afc: Speeds up governance:show command by parallelize async calls, and reducing data fetched -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] - - @celo/contractkit@5.1.0-beta.0 - - @celo/connect@5.1.0-beta.0 - - @celo/wallet-hsm-azure@5.1.0-beta.0 - - @celo/wallet-ledger@5.1.0-beta.0 - - @celo/wallet-local@5.1.0-beta.0 - - @celo/cryptographic-utils@5.0.5-beta.0 - - @celo/phone-utils@5.0.5-beta.0 - - @celo/governance@5.0.5-beta.0 - - @celo/explorer@5.0.5-beta.0 - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 - All notable changes to the [celo cli package](https://www.npmjs.com/package/@celo/celocli) will be documented in this file. - -This package will follow the release process outlined [here](https://docs.celo.org/community/release-process). - -## Development (not published yet) - -### **[1.2.1--dev]** - -Features - -- [one-line summary] - [link PR] - -Bug Fixes - -- [one-line summary] - [link PR] - -Other Changes - -- [one-line summary] - [link PR] - -## Published - -### **[1.2.0]** -- 2021-04-22 - -Features - -- cEUR support - [#7524](https://github.com/celo-org/celo-monorepo/pull/7524) -- Add more info to network:contracts - [#7379](https://github.com/celo-org/celo-monorepo/pull/7379) -- Approvehotfix to support multisigs - [#7671](https://github.com/celo-org/celo-monorepo/pull/7671) - -Other Changes - -- Add --globalHelp option to BaseCommand - [#7669](https://github.com/celo-org/celo-monorepo/pull/7669) - -### **[1.1.1--beta]** -- 2021-03-22 - -Features - -- Support Portuguese mnemonics - [#7220](https://github.com/celo-org/celo-monorepo/pull/7220) -- Improve granularity of governance tooling information - [#6475](https://github.com/celo-org/celo-monorepo/pull/6475) -- Small fixes in the proposal process for cEUR/Release 3 - [#7184](https://github.com/celo-org/celo-monorepo/pull/7184) -- CIP8 name access via the CLI - [#6855](https://github.com/celo-org/celo-monorepo/pull/6855) - -Other Changes - -- Upload/Download Profile Data with CIP8 - [#6604](https://github.com/celo-org/celo-monorepo/pull/6604) -- Improve naming in the DKG - [#4062](https://github.com/celo-org/celo-monorepo/pull/4062) -- Fix packages vulnerabilities - [#7476](https://github.com/celo-org/celo-monorepo/pull/7476) - -### **[1.1.0]** -- 2021-02-16 - -Features - -- Add plugins to CLI - [#5973](https://github.com/celo-org/celo-monorepo/pull/5973) -- New CLI command `identity:get-attestations` to query attestations - [#5974](https://github.com/celo-org/celo-monorepo/pull/5974) - -Bug Fixes - -- `releasegold:show` should succeed w/o account registration - [#7092](https://github.com/celo-org/celo-monorepo/pull/7092) -- Add check for signer or registered account in `releasegold:show` - [#7098](https://github.com/celo-org/celo-monorepo/pull/7098) - -Other Changes - -- Clarify Docs for `multisig:transfer` - [#6982](https://github.com/celo-org/celo-monorepo/pull/6982) - -### **[1.0.3]** -- 2021-01-25 - -Bug Fixes - -- Add missing lib in the `shrinkwrap.json` that avoids the usage of the package - [#6671](https://github.com/celo-org/celo-monorepo/pull/6671) - -### **[1.0.2]** -- 2021-01-22 - -Bug Fixes - -- Fixed Global Flag Parsing in CLI - [#6619](https://github.com/celo-org/celo-monorepo/pull/6619) - -Other Changes - -- Fix libraries versions (`shrinkwrap`) to avoid supply chain attacks - [#6575](https://github.com/celo-org/celo-monorepo/pull/6575) - -### **[1.0.1]** -- 2021-01-20 - -Features - -- Pass through [oclif table flags](https://github.com/oclif/cli-ux#clitable) to commands which output tables - [#5618](https://github.com/celo-org/celo-monorepo/pull/5618) -- CIP 8 Encryption - [#5091](https://github.com/celo-org/celo-monorepo/pull/5091) -- Add authorized signers to release gold show - [#5596](https://github.com/celo-org/celo-monorepo/pull/5596) -- Extract governance:build-proposal command - [#5847](https://github.com/celo-org/celo-monorepo/pull/5847) -- Add downtime slashing commands - [#5632](https://github.com/celo-org/celo-monorepo/pull/5632) -- Add ability to withdraw attestation rewards via CLI [#6176](https://github.com/celo-org/celo-monorepo/pull/6176) -- Mnemonic validation flexibility within Valora - [#6372](https://github.com/celo-org/celo-monorepo/pull/6372) -- Write transfer and transferFrom commands for MultiSig contract - [#6425](https://github.com/celo-org/celo-monorepo/pull/6425) - -Bug Fixes - -- Fix param order on account:new internal call - [#6319](https://github.com/celo-org/celo-monorepo/pull/6319) -- Remove broken header links in generated CLI docs - [#6415](https://github.com/celo-org/celo-monorepo/pull/6415) -- Fix @ledgerhq package version in CK and CLI - [#6496](https://github.com/celo-org/celo-monorepo/pull/6496) -- Fix call to set gas currency in CLI base - [#6505](https://github.com/celo-org/celo-monorepo/pull/6505) - -Other Changes - -- KomenciKit - [#5436](https://github.com/celo-org/celo-monorepo/pull/5436) -- Update base and utils package versions [#5655](https://github.com/celo-org/celo-monorepo/pull/5655) -- Parallelize and simplify fetching of comprensive registry address map - [#5568](https://github.com/celo-org/celo-monorepo/pull/5568) -- Add readability to (big) number and timestamp/duration outputs in CK and CLI - [#5584](https://github.com/celo-org/celo-monorepo/pull/5584) -- Rename build-proposal flag - [#5885](https://github.com/celo-org/celo-monorepo/pull/5885) -- Compatibility with Sdk Modularization - [#4790](https://github.com/celo-org/celo-monorepo/pull/4790) -- Adjust how CLI docs are generated - [#5882](https://github.com/celo-org/celo-monorepo/pull/5882) -- Add install instructions for CLI readme - [#6466](https://github.com/celo-org/celo-monorepo/pull/6466) - -### **[0.0.60]** -- 2020-10-27 - -Bug Fixes - -- Uses the most up-to-date version of @celo/contractkit (0.4.17) & fixes backward compatibility issues from the last release -- Actually call toString in oracle report CLI - [#5594](https://github.com/celo-org/celo-monorepo/pull/5594) - -Other Changes - -- Support the use of scientific notation for the deposit of a governance proposal - [#5326](https://github.com/celo-org/celo-monorepo/pull/5326) -- Require `--force` with `account:claim-attestation-service-url` for non-TLS urls [#5599](https://github.com/celo-org/celo-monorepo/pull/5599) - -### **[0.0.59]** -- 2020-10-23 - -Features - -- Add `jsonTransactions` flag to `governance:show` for use in the (contract release process)[https://docs.celo.org/community/release-process/smart-contracts] - [#5111](https://github.com/celo-org/celo-monorepo/pull/5111) - -Bug Fixes - -- Fix attestation service test delivering false negatives - [#5336](https://github.com/celo-org/celo-monorepo/pull/5336) -- Fix error when listing contract addresses and include some missing new contracts - [#5301](https://github.com/celo-org/celo-monorepo/pull/5301) - -Other Changes - -- Convert default log output color from red to yellow - [#5517](https://github.com/celo-org/celo-monorepo/pull/5517) - -### **[0.0.58]** -- 2020-10-08 - -Features - -- CLI compatability with [Attestation Service 1.0.5](https://github.com/celo-org/celo-monorepo/releases/tag/attestation-service-1-0-5) - [#5011](https://github.com/celo-org/celo-monorepo/pull/5011) -- Adds an interactive prompt for forming proposals from Celo registry contracts and functions - [#3008](https://github.com/celo-org/celo-monorepo/pull/3008) - -Other Changes - -- Correct documentation on the validator and validator group deregister - [#5197](https://github.com/celo-org/celo-monorepo/pull/5197) - -### **[0.0.57]** -- 2020-09-23 - -Features - -- Adds ODIS identifier query to celocli - [#4976](https://github.com/celo-org/celo-monorepo/pull/4976) - -Bug Fixes - -- Fixes backward compatibility issues in cli - [#5124](https://github.com/celo-org/celo-monorepo/pull/5124) - -_Note: Changes before 0.0.57 are not documented_ diff --git a/packages/cli/README.md b/packages/cli/README.md deleted file mode 100644 index 6446afddbf6..00000000000 --- a/packages/cli/README.md +++ /dev/null @@ -1,63 +0,0 @@ -# celocli - -Tool for interacting with the Celo Protocol. - -## Installation - -We are currently deploying the CLI with only Node.js v18.14.2 support. - -To install globally, run: - -``` -npm install -g @celo/celocli -``` - -If you have trouble installing globally (i.e. with the `-g` flag), try installing to a local directory instead with `npm install @celo/celocli` and run with `npx celocli`. - -### Plugins - -Additional plugins can be installed which make the CLI experience smoother. Currently, `celocli` only supports installing plugins published on NPM within the `@celo/*` and `@clabs/*` scopes. - -> ⚠️ **Warning** -> -> Installing a 3rd party plugin can be dangerous! Please always be sure that you trust the plugin provider. - -## Development - -### Build - -Use `yarn build:sdk ` to build the sdk for the target environment (CLI dependency). - -Use `yarn build` to compile the CLI. - -### Generate docs - -Use `yarn docs` to populate `packages/docs` with generated documentation. Generated files should be checked in, and CI will fail if CLI modifications cause changes in the docs which were not checked in. - -### Known build issues on Linux - -> I'm getting the follow error: `Cannot find module '@celo/contractkit'`. - -A possible solution is to build the monorepo manually. -Go to the `celo-monorepo` root directory and - -```bash -> yarn build -``` - -If all works well, navigate to `packages/cli`. - -> I've got the cli built successfully but the running the `cli` yields: `Error: Returned values aren't valid, did it run Out of Gas?`. - -When running the `cli` against a full node, this can mean that the contract artifacts are out of date. -Solution: switch to the `alfajores` branch and build the `celo-monorepo`. - -Go to the `celo-monorepo` root directory and - -```bash -> git checkout alfajores -> yarn -> yarn build -> cd packages/cli -> ./bin/run account:balance $CELO_ACCOUNT_ADDRESS -``` diff --git a/packages/cli/bin/run b/packages/cli/bin/run deleted file mode 100755 index 30b14e17733..00000000000 --- a/packages/cli/bin/run +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -require('@oclif/command').run() -.then(require('@oclif/command/flush')) -.catch(require('@oclif/errors/handle')) diff --git a/packages/cli/bin/run.cmd b/packages/cli/bin/run.cmd deleted file mode 100644 index 968fc30758e..00000000000 --- a/packages/cli/bin/run.cmd +++ /dev/null @@ -1,3 +0,0 @@ -@echo off - -node "%~dp0\run" %* diff --git a/packages/cli/cloudbuild.yaml b/packages/cli/cloudbuild.yaml deleted file mode 100644 index 8e9824d7003..00000000000 --- a/packages/cli/cloudbuild.yaml +++ /dev/null @@ -1,18 +0,0 @@ -steps: - -# Unshallow clone -- name: gcr.io/cloud-builders/git - args: ['fetch', '--unshallow'] - -# build docker image for google container registry -- name: gcr.io/kaniko-project/executor:latest - args: [ - "--dockerfile=dockerfiles/cli/Dockerfile.cli", - "--cache=true", - "--destination=gcr.io/$PROJECT_ID/celocli:$COMMIT_SHA", - "--build-arg", - "celo_env=alfajores" - ] - id: Build CLI docker image - waitFor: ['-'] -timeout: 1000s \ No newline at end of file diff --git a/packages/cli/dev-guide.md b/packages/cli/dev-guide.md deleted file mode 100644 index 59aa3f9fc21..00000000000 --- a/packages/cli/dev-guide.md +++ /dev/null @@ -1,12 +0,0 @@ - -# Developer Guide for CLI - -* Things to note * - -## Terminology - -``` -# bin topic command flag - ^ ^ ^ ^ - celocli governance:show --help -``` diff --git a/packages/cli/generate_docs.sh b/packages/cli/generate_docs.sh deleted file mode 100755 index f6161dd07bf..00000000000 --- a/packages/cli/generate_docs.sh +++ /dev/null @@ -1,6 +0,0 @@ -set -e -export COLUMNS=88 -yarn oclif-dev readme --multi --dir=../docs/command-line-interface -yarn prettier --write ../docs/command-line-interface/* -sed -i.bak '/^- \[/d' ../docs/command-line-interface/* -rm -rf ../docs/command-line-interface/*.bak diff --git a/packages/cli/jest.config.js b/packages/cli/jest.config.js deleted file mode 100644 index b985c7f3d5a..00000000000 --- a/packages/cli/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], - setupFilesAfterEnv: ['@celo/dev-utils/lib/matchers'], - globalSetup: '/src/test-utils/setup.global.ts', - globalTeardown: '/src/test-utils/teardown.global.ts', -} diff --git a/packages/cli/package.json b/packages/cli/package.json deleted file mode 100644 index 79f08314766..00000000000 --- a/packages/cli/package.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "name": "@celo/celocli", - "description": "CLI Tool for transacting with the Celo protocol", - "version": "3.1.3", - "author": "Celo", - "license": "Apache-2.0", - "repository": "celo-org/celo-monorepo", - "homepage": "https://github.com/celo-org/celo-monorepo", - "bugs": "https://github.com/celo-org/celo-monorepo/issues?utf8=%E2%9C%93&q=label%3Acli+", - "types": "lib/index.d.ts", - "main": "lib/index.js", - "bin": { - "celocli": "./bin/run" - }, - "keywords": [ - "celo", - "celocli", - "celo-cli" - ], - "engines": { - "node": ">=16" - }, - "scripts": { - "clean": "tsc -b . --clean", - "build": "tsc -b .", - "docs": "./generate_docs.sh", - "lint": "tslint -c tslint.json --project tsconfig.json", - "prepublish": "", - "prepack": "yarn run build && oclif-dev manifest && oclif-dev readme", - "test": "TZ=UTC jest --runInBand" - }, - "dependencies": { - "@celo/abis": "10.0.0", - "@celo/base": "^6.0.0", - "@celo/connect": "^5.1.1", - "@celo/contractkit": "^6.0.0", - "@celo/explorer": "^5.0.7", - "@celo/governance": "^5.0.8", - "@celo/identity": "^5.1.1", - "@celo/phone-utils": "^6.0.0", - "@celo/utils": "^5.0.6", - "@celo/cryptographic-utils": "^5.0.6", - "@celo/wallet-hsm-azure": "^5.1.1", - "@celo/wallet-ledger": "^5.1.1", - "@celo/wallet-local": "^5.1.1", - "@ledgerhq/hw-transport-node-hid": "^6.27.4", - "@oclif/parser": "^3.8.16", - "@oclif/errors": "^1.3.6", - "@oclif/command": "^1.6.0", - "@oclif/config": "^1.6.0", - "@oclif/plugin-autocomplete": "^0.1.5", - "@oclif/plugin-commands": "^1.3.0", - "@oclif/plugin-help": "^1.2.4", - "@oclif/plugin-not-found": "^1.2.4", - "@oclif/plugin-plugins": "^1.9.4", - "@oclif/plugin-warn-if-update-available": "^1.7.0", - "@ethereumjs/util": "8.0.5", - "@types/command-exists": "^1.2.0", - "bip32": "3.1.0", - "bignumber.js": "9.0.0", - "chalk": "^2.4.2", - "cli-table": "^0.3.1", - "cli-ux": "^5.4.9", - "command-exists": "^1.2.9", - "debug": "^4.1.1", - "events": "^3.0.0", - "fs-extra": "^8.1.0", - "humanize-duration": "^3.29.0", - "path": "^0.12.7", - "prompts": "^2.0.1", - "randombytes": "^2.0.1", - "tslib": "^1", - "web3": "1.10.0" - }, - "devDependencies": { - "@celo/celo-devchain": "^6.0.3", - "@celo/dev-utils": "0.0.1", - "@oclif/dev-cli": "^1.23.0", - "@types/cli-table": "^0.3.0", - "@types/debug": "^4.1.4", - "@types/fs-extra": "^8.0.0", - "@types/humanize-duration": "^3.27.0", - "@types/inquirer": "^6.5.0", - "@types/ledgerhq__hw-transport-node-hid": "^4.22.2", - "@types/mocha": "^7.0.2", - "@types/node": "^18.7.16", - "@types/web3": "^1.0.18", - "globby": "^8", - "prettier": "1.19.1", - "typescript": "4.7.4" - }, - "files": [ - "README.md", - "CHANGELOG.md", - "/bin", - "/lib", - "!lib/**/*.map", - "!lib/test-utils", - "!lib/**/*.test.**", - "!lib/**/*.d.ts", - "/oclif.manifest.json" - ], - "oclif": { - "bin": "celocli", - "commands": "./lib/commands", - "helpClass": "./lib/help", - "plugins": [ - "@oclif/plugin-help", - "@oclif/plugin-autocomplete", - "@oclif/plugin-not-found", - "@oclif/plugin-commands", - "@oclif/plugin-warn-if-update-available", - "@oclif/plugin-plugins" - ], - "topics": { - "account": { - "description": "Manage your account, keys, and metadata" - }, - "config": { - "description": "Configure CLI options which persist across commands" - }, - "dkg": { - "description": "Publish your locally computed DKG results to the blockchain" - }, - "election": { - "description": "Participate in and view the state of Validator Elections" - }, - "exchange": { - "description": "Exchange Celo Dollars and CELO via the stability mechanism" - }, - "governance": { - "description": "Interact with on-chain governance proposals and hotfixes" - }, - "identity": { - "description": "Interact with ODIS and the attestations service" - }, - "lockedgold": { - "description": "View and manage locked CELO" - }, - "network": { - "description": "View details about the network, like contracts and parameters" - }, - "node": { - "description": "Manage your Celo node" - }, - "releasecelo": { - "description": "View and manage ReleaseGold contracts" - }, - "releasegold": { - "description": "Alias for releasecelo" - }, - "transfer": { - "description": "Transfer CELO and Celo Dollars" - }, - "validator": { - "description": "View and manage Validators" - }, - "validatorgroup": { - "description": "View and manage Validator Groups" - } - }, - "warn-if-update-available": { - "timeoutInDays": 1, - "message": "<%= config.name %> update available from <%= chalk.greenBright(config.version) %> to <%= chalk.greenBright(latest) %>." - }, - "repositoryPrefix": "https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/<%- commandPath %>", - "hooks": { - "prerun": "./lib/hooks/prerun/plugin-warning" - } - } -} \ No newline at end of file diff --git a/packages/cli/releasing.md b/packages/cli/releasing.md deleted file mode 100644 index 7ce7b4b07ba..00000000000 --- a/packages/cli/releasing.md +++ /dev/null @@ -1,17 +0,0 @@ -# how to release new versions - -- change all @celo/** dependencies which are pointing to the unpublished -dev version to published versions - -- update cli version in cli/package.json to next version with a pre-release (eg -beta.x) suffix - -- run `yarn prepack` - -- *IMPORTANT* double check version in package.json is correct! - -- run `npm publish --otp XXXXXX --tag TAG` *you MUST run with --tag and provide alpha | beta for pre release* - -- add back -dev suffics to @celo/** deps it was removed from in cli package (otherwise ci build will fail) - -- run yarn - -- commit diff --git a/packages/cli/src/base.ts b/packages/cli/src/base.ts deleted file mode 100644 index 65035b16df3..00000000000 --- a/packages/cli/src/base.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { ReadOnlyWallet } from '@celo/connect' -import { ContractKit, newKitFromWeb3, StableToken, Token } from '@celo/contractkit' -import { stableTokenInfos } from '@celo/contractkit/lib/celo-tokens' -import { AzureHSMWallet } from '@celo/wallet-hsm-azure' -import { AddressValidation, newLedgerWalletWithSetup } from '@celo/wallet-ledger' -import { LocalWallet } from '@celo/wallet-local' -import { Command, flags } from '@oclif/command' -import { ParserOutput } from '@oclif/parser/lib/parse' -import chalk from 'chalk' -import net from 'net' -import Web3 from 'web3' -import { getGasCurrency, getNodeUrl } from './utils/config' -import { enumEntriesDupWithLowercase, requireNodeIsSynced } from './utils/helpers' - -export const gasOptions = { - auto: 'auto', - Auto: 'auto', - ...enumEntriesDupWithLowercase(Object.entries(Token)), - ...enumEntriesDupWithLowercase(Object.entries(StableToken)), -} - -// tslint:disable-next-line:max-classes-per-file -export abstract class BaseCommand extends Command { - static flags = { - privateKey: flags.string({ - char: 'k', - description: 'Use a private key to sign local transactions with', - hidden: true, - }), - node: flags.string({ - char: 'n', - description: "URL of the node to run commands against (defaults to 'http://localhost:8545')", - hidden: true, - parse: (nodeUrl) => { - switch (nodeUrl) { - case 'local': - case 'localhost': - return 'http://localhost:8545' - case 'baklava': - return 'https://baklava-forno.celo-testnet.org' - case 'alfajores': - return 'https://alfajores-forno.celo-testnet.org' - case 'mainnet': - case 'forno': - return 'https://forno.celo.org' - default: - return nodeUrl - } - }, - }), - gasCurrency: flags.enum({ - options: Object.keys(gasOptions), - description: - "Use a specific gas currency for transaction fees (defaults to 'auto' which uses whatever feeCurrency is available)", - hidden: true, - }), - useLedger: flags.boolean({ - default: false, - hidden: true, - description: 'Set it to use a ledger wallet', - }), - ledgerAddresses: flags.integer({ - default: 1, - hidden: true, - exclusive: ['ledgerCustomAddresses'], - description: 'If --useLedger is set, this will get the first N addresses for local signing', - }), - ledgerCustomAddresses: flags.string({ - default: '[0]', - hidden: true, - exclusive: ['ledgerAddresses'], - description: - 'If --useLedger is set, this will get the array of index addresses for local signing. Example --ledgerCustomAddresses "[4,99]"', - }), - useAKV: flags.boolean({ - default: false, - hidden: true, - description: 'Set it to use an Azure KeyVault HSM', - }), - azureVaultName: flags.string({ - hidden: true, - description: 'If --useAKV is set, this is used to connect to the Azure KeyVault', - }), - ledgerConfirmAddress: flags.boolean({ - default: false, - hidden: true, - description: 'Set it to ask confirmation for the address of the transaction from the ledger', - }), - globalHelp: flags.boolean({ - default: false, - hidden: false, - description: 'View all available global flags', - }), - } - // This specifies whether the node needs to be synced before the command - // can be run. In most cases, this should be `true`, so that's the default. - // For commands that don't require the node is synced, add the following line - // to its definition: - // requireSynced = false - public requireSynced = true - - private _web3: Web3 | null = null - private _kit: ContractKit | null = null - private _wallet?: ReadOnlyWallet - - get web3() { - if (!this._web3) { - const res: ParserOutput = this.parse() - const nodeUrl = (res.flags && res.flags.node) || getNodeUrl(this.config.configDir) - this._web3 = - nodeUrl && nodeUrl.endsWith('.ipc') - ? new Web3(new Web3.providers.IpcProvider(nodeUrl, net)) - : new Web3(nodeUrl) - } - return this._web3 - } - - async newWeb3() { - const res: ParserOutput = this.parse() - const nodeUrl = (res.flags && res.flags.node) || getNodeUrl(this.config.configDir) - return nodeUrl && nodeUrl.endsWith('.ipc') - ? new Web3(new Web3.providers.IpcProvider(nodeUrl, net)) - : new Web3(nodeUrl) - } - - get kit() { - if (!this._kit) { - this._kit = newKitFromWeb3(this.web3) - this._kit.connection.wallet = this._wallet - } - - const res: ParserOutput = this.parse() - if (res.flags && res.flags.privateKey && !res.flags.useLedger && !res.flags.useAKV) { - this._kit.connection.addAccount(res.flags.privateKey) - } - return this._kit - } - - async init() { - if (this.requireSynced) { - await requireNodeIsSynced(this.web3) - } - - const res: ParserOutput = this.parse() - if (res.flags.globalHelp) { - console.log(chalk.red.bold('GLOBAL OPTIONS')) - Object.entries(BaseCommand.flags).forEach(([name, flag]) => { - console.log(chalk.black(` --${name}`).padEnd(40) + chalk.gray(`${flag.description}`)) - }) - process.exit(0) - } - - if (res.flags.useLedger) { - let transport - try { - // Importing for ledger uses only fixes running jest tests - const _TransportNodeHid = (await import('@ledgerhq/hw-transport-node-hid')).default - // types seem to be suggesting 2 defaults but js is otherwise for TransportNodeHid - const TransportNodeHid: typeof _TransportNodeHid.default = - _TransportNodeHid.default || _TransportNodeHid - transport = await TransportNodeHid.open('') - const derivationPathIndexes = res.raw.some( - (value) => (value as any).flag === 'ledgerCustomAddresses' - ) - ? JSON.parse(res.flags.ledgerCustomAddresses) - : Array.from(Array(res.flags.ledgerAddresses).keys()) - - console.log('Retrieving derivation Paths', derivationPathIndexes) - let ledgerConfirmation = AddressValidation.never - if (res.flags.ledgerConfirmAddress) { - ledgerConfirmation = AddressValidation.everyTransaction - } - this._wallet = await newLedgerWalletWithSetup( - transport, - derivationPathIndexes, - undefined, - ledgerConfirmation - ) - } catch (err) { - console.log('Check if the ledger is connected and logged.') - throw err - } - } else if (res.flags.useAKV) { - try { - const akvWallet = new AzureHSMWallet(res.flags.azureVaultName) - await akvWallet.init() - console.log(`Found addresses: ${akvWallet.getAccounts()}`) - this._wallet = akvWallet - } catch (err) { - console.log(`Failed to connect to AKV ${err}`) - throw err - } - } else { - this._wallet = new LocalWallet() - } - - if (res.flags.from) { - this.kit.defaultAccount = res.flags.from - } - - const gasCurrencyConfig = res.flags.gasCurrency - ? (gasOptions as any)[res.flags.gasCurrency] - : getGasCurrency(this.config.configDir) - - const setStableTokenGas = async (stable: StableToken) => { - await this.kit.setFeeCurrency(stableTokenInfos[stable].contract) - } - if (Object.keys(StableToken).includes(gasCurrencyConfig)) { - await setStableTokenGas(StableToken[gasCurrencyConfig as keyof typeof StableToken]) - } else if (gasCurrencyConfig === gasOptions.auto && this.kit.defaultAccount) { - const balances = await this.kit.getTotalBalance(this.kit.defaultAccount) - if (balances.CELO!.isZero()) { - const stables = Object.entries(StableToken) - for (const stable of stables) { - const stableName = stable[0] - const stableToken = stable[1] - // has balance - if ((balances as any)[stableName] && !(balances as any)[stableName].isZero()) { - await setStableTokenGas(stableToken) - break - } - } - } - } - } - - finally(arg: Error | undefined): Promise { - try { - this.kit.connection.stop() - } catch (error) { - this.log(`Failed to close the connection: ${error}`) - } - - return super.finally(arg) - } -} diff --git a/packages/cli/src/commands/account/authorize.test.ts b/packages/cli/src/commands/account/authorize.test.ts deleted file mode 100644 index d7a419f0655..00000000000 --- a/packages/cli/src/commands/account/authorize.test.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { addressToPublicKey } from '@celo/utils/lib/signatureUtils' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Lock from '../lockedgold/lock' -import ValidatorRegister from '../validator/register' -import Authorize from './authorize' -import Register from './register' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('account:authorize cmd', (web3: Web3) => { - test('can authorize vote signer', async () => { - const accounts = await web3.eth.getAccounts() - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Authorize, [ - '--from', - accounts[0], - '--role', - 'vote', - '--signer', - accounts[1], - '--signature', - '0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - ]) - }) - - test('can authorize attestation signer', async () => { - const accounts = await web3.eth.getAccounts() - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Authorize, [ - '--from', - accounts[0], - '--role', - 'attestation', - '--signer', - accounts[1], - '--signature', - '0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - ]) - }) - - test('can authorize validator signer before validator is registered', async () => { - const accounts = await web3.eth.getAccounts() - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Authorize, [ - '--from', - accounts[0], - '--role', - 'validator', - '--signer', - accounts[1], - '--signature', - '0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - ]) - }) - - test('can authorize validator signer after validator is registered', async () => { - const accounts = await web3.eth.getAccounts() - const newBlsPublicKey = web3.utils.randomHex(96) - const newBlsPoP = web3.utils.randomHex(48) - const ecdsaPublicKey = await addressToPublicKey(accounts[0], web3.eth.sign) - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Lock, ['--from', accounts[0], '--value', '10000000000000000000000']) - await testLocally(ValidatorRegister, [ - '--from', - accounts[0], - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - await testLocally(Authorize, [ - '--from', - accounts[0], - '--role', - 'validator', - '--signer', - accounts[1], - '--signature', - '0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - '--blsKey', - newBlsPublicKey, - '--blsPop', - newBlsPoP, - ]) - }) - - test('cannot authorize validator signer without BLS after validator is registered', async () => { - const accounts = await web3.eth.getAccounts() - const ecdsaPublicKey = await addressToPublicKey(accounts[0], web3.eth.sign) - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Lock, ['--from', accounts[0], '--value', '10000000000000000000000']) - await testLocally(ValidatorRegister, [ - '--from', - accounts[0], - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - await expect( - testLocally(Authorize, [ - '--from', - accounts[0], - '--role', - 'validator', - '--signer', - accounts[1], - '--signature', - '0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - ]) - ).rejects.toThrow() - }) - - test('can force authorize validator signer without BLS after validator is registered', async () => { - const accounts = await web3.eth.getAccounts() - const ecdsaPublicKey = await addressToPublicKey(accounts[0], web3.eth.sign) - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Lock, ['--from', accounts[0], '--value', '10000000000000000000000']) - await testLocally(ValidatorRegister, [ - '--from', - accounts[0], - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - await testLocally(Authorize, [ - '--from', - accounts[0], - '--role', - 'validator', - '--signer', - accounts[1], - '--signature', - '0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - '--force', - ]) - }) - - test('fails if from is not an account', async () => { - const accounts = await web3.eth.getAccounts() - await expect( - testLocally(Authorize, [ - '--from', - accounts[0], - '--role', - 'validator', - '--signer', - accounts[1], - '--signature', - '0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - ]) - ).rejects.toThrow() - }) -}) diff --git a/packages/cli/src/commands/account/authorize.ts b/packages/cli/src/commands/account/authorize.ts deleted file mode 100644 index fe6278ee472..00000000000 --- a/packages/cli/src/commands/account/authorize.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Authorize extends BaseCommand { - static description = - 'Keep your locked Gold more secure by authorizing alternative keys to be used for signing attestations, voting, or validating. By doing so, you can continue to participate in the protocol while keeping the key with access to your locked Gold in cold storage. You must include a "proof-of-possession" of the key being authorized, which can be generated with the "account:proof-of-possession" command.' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true }), - role: flags.string({ - char: 'r', - options: ['vote', 'validator', 'attestation'], - description: 'Role to delegate', - required: true, - }), - signature: Flags.proofOfPossession({ - description: 'Signature (a.k.a proof-of-possession) of the signer key', - required: true, - }), - signer: Flags.address({ required: true }), - blsKey: Flags.blsPublicKey({ - description: - 'The BLS public key that the validator is using for consensus, should pass proof of possession. 96 bytes.', - dependsOn: ['blsPop'], - }), - blsPop: Flags.blsProofOfPossession({ - description: - 'The BLS public key proof-of-possession, which consists of a signature on the account address. 48 bytes.', - dependsOn: ['blsKey'], - }), - force: flags.boolean({ - description: - 'Allow rotation of validator ECDSA key without rotating the BLS key. Only intended for validators with a special reason to do so.', - default: false, - hidden: true, - }), - } - - static args = [] - - static examples = [ - 'authorize --from 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role vote --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - 'authorize --from 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role validator --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb --blsKey 0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00 --blsPop 0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - ] - - async run() { - const res = this.parse(Authorize) - - const accounts = await this.kit.contracts.getAccounts() - const sig = accounts.parseSignatureOfAddress( - res.flags.from, - res.flags.signer, - res.flags.signature - ) - - // Check that the account is registered on-chain. - // Additionally, if the authorization is for a validator, the BLS key must be provided when the - // validator is already registered, and cannot be provided if the validator is not registered. - // (Because the BLS key is stored on the validator entry, which would not exist yet) - // Using the --force flag allows setting the ECDSA key on the validator without the BLS key. - const checker = newCheckBuilder(this).isAccount(res.flags.from) - if (res.flags.role === 'validator' && !res.flags.force) { - if (res.flags.blsKey && res.flags.blsPop) { - checker.isValidator(res.flags.from) - } else { - checker.isNotValidator(res.flags.from) - } - } - await checker.runChecks() - - let tx: any - if (res.flags.role === 'vote') { - tx = await accounts.authorizeVoteSigner(res.flags.signer, sig) - } else if (res.flags.role === 'validator' && res.flags.blsKey && res.flags.blsPop) { - tx = await accounts.authorizeValidatorSignerAndBls( - res.flags.signer, - sig, - res.flags.blsKey, - res.flags.blsPop - ) - } else if (res.flags.role === 'validator') { - const validatorsWrapper = await this.kit.contracts.getValidators() - tx = await accounts.authorizeValidatorSigner(res.flags.signer, sig, validatorsWrapper) - } else if (res.flags.role === 'attestation') { - tx = await accounts.authorizeAttestationSigner(res.flags.signer, sig) - } else { - this.error(`Invalid role provided`) - return - } - await displaySendTx('authorizeTx', tx) - } -} diff --git a/packages/cli/src/commands/account/balance.ts b/packages/cli/src/commands/account/balance.ts deleted file mode 100644 index 9ab49cf94e3..00000000000 --- a/packages/cli/src/commands/account/balance.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { BaseCommand } from '../../base' -import { failWith, printValueMap } from '../../utils/cli' -import { Args, Flags } from '../../utils/command' - -export default class Balance extends BaseCommand { - static description = 'View Celo Stables and CELO balances for an address' - - static flags = { - ...BaseCommand.flags, - erc20Address: Flags.address({ - description: 'Address of generic ERC-20 token to also check balance for', - }), - } - - static args = [Args.address('address')] - - static examples = [ - 'balance 0x5409ed021d9299bf6814279a6a1411a7e866a631', - 'balance 0x5409ed021d9299bf6814279a6a1411a7e866a631 --erc20Address 0x765DE816845861e75A25fCA122bb6898B8B1282a', - ] - - async run() { - const { args, flags } = this.parse(Balance) - - console.log('All balances expressed in units of 10^-18.') - printValueMap(await this.kit.getTotalBalance(args.address)) - if (flags.erc20Address) { - try { - const erc20 = await this.kit.contracts.getErc20(flags.erc20Address) - printValueMap({ erc20: await erc20.balanceOf(args.address) }) - } catch { - failWith('Invalid erc20 address') - } - } - } -} diff --git a/packages/cli/src/commands/account/claim-account.ts b/packages/cli/src/commands/account/claim-account.ts deleted file mode 100644 index db5e1d8190f..00000000000 --- a/packages/cli/src/commands/account/claim-account.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { createAccountClaim } from '@celo/contractkit/lib/identity/claims/account' -import { flags } from '@oclif/command' -import { ClaimCommand } from '../../utils/identity' - -export default class ClaimAccount extends ClaimCommand { - static description = - 'Claim another account, and optionally its public key, and add the claim to a local metadata file' - static flags = { - ...ClaimCommand.flags, - address: flags.string({ - required: true, - description: 'The address of the account you want to claim', - }), - publicKey: flags.string({ - default: undefined, - description: - 'The public key of the account that others may use to send you encrypted messages', - }), - } - static args = ClaimCommand.args - static examples = [ - 'claim-account ~/metadata.json --address 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95', - ] - self = ClaimAccount - async run() { - const res = this.parse(ClaimAccount) - const metadata = await this.readMetadata() - await this.addClaim(metadata, createAccountClaim(res.flags.address, res.flags.publicKey)) - this.writeMetadata(metadata) - } -} diff --git a/packages/cli/src/commands/account/claim-domain.ts b/packages/cli/src/commands/account/claim-domain.ts deleted file mode 100644 index cd8e2b4362a..00000000000 --- a/packages/cli/src/commands/account/claim-domain.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { createDomainClaim, serializeClaim } from '@celo/contractkit/lib/identity/claims/claim' -import { flags } from '@oclif/command' -import { ClaimCommand } from '../../utils/identity' - -export default class ClaimDomain extends ClaimCommand { - static description = 'Claim a domain and add the claim to a local metadata file' - static flags = { - ...ClaimCommand.flags, - domain: flags.string({ - required: true, - description: 'The domain you want to claim', - }), - } - static args = ClaimCommand.args - static examples = [ - 'claim-domain ~/metadata.json --domain test.com --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95', - ] - self = ClaimDomain - async run() { - const res = this.parse(ClaimDomain) - const metadata = await this.readMetadata() - - // If the domain claim already exists we return the existing one allowing to generate always the same - // signature for the same domain name - const addedClaim = await this.addClaim(metadata, createDomainClaim(res.flags.domain)) - this.writeMetadata(metadata) - - const signature = await this.signer.sign(serializeClaim(addedClaim)) - const signatureBase64 = Buffer.from(signature.toString(), 'binary').toString('base64') - - console.info('Please add the following TXT record to your domain:') - console.info('celo-site-verification=' + signatureBase64 + '\n') - } -} diff --git a/packages/cli/src/commands/account/claim-keybase.ts b/packages/cli/src/commands/account/claim-keybase.ts deleted file mode 100644 index 21ca7dafb57..00000000000 --- a/packages/cli/src/commands/account/claim-keybase.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { hashOfClaim, KeybaseClaim } from '@celo/contractkit/lib/identity/claims/claim' -import { - createKeybaseClaim, - keybaseFilePathToProof, - proofFileName, - targetURL, - verifyKeybaseClaim, -} from '@celo/contractkit/lib/identity/claims/keybase' -import { sleep } from '@celo/utils/lib/async' -import { toChecksumAddress } from '@ethereumjs/util' -import { flags } from '@oclif/command' -import { cli } from 'cli-ux' -import { writeFileSync } from 'fs' -import { tmpdir } from 'os' -import { binaryPrompt } from '../../utils/cli' -import { commandExists, execCmdWithError, execWith0Exit } from '../../utils/exec' -import { ClaimCommand } from '../../utils/identity' - -export default class ClaimKeybase extends ClaimCommand { - static description = 'Claim a keybase username and add the claim to a local metadata file' - static flags = { - ...ClaimCommand.flags, - username: flags.string({ - required: true, - description: 'The keybase username you want to claim', - }), - } - static args = ClaimCommand.args - static examples = [ - 'claim-keybase ~/metadata.json --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --username myusername', - ] - self = ClaimKeybase - - async run() { - const res = this.parse(ClaimKeybase) - const username = res.flags.username - const metadata = await this.readMetadata() - const accountAddress = toChecksumAddress(metadata.data.meta.address) - const claim = createKeybaseClaim(username) - const signature = await this.signer.sign(hashOfClaim(claim)) - await this.addClaim(metadata, claim) - this.writeMetadata(metadata) - - try { - await this.uploadProof(claim, signature, username, accountAddress) - } catch (error) { - this.printManualInstruction(claim, signature, username, accountAddress) - } - } - - async attemptAutomaticProofUpload( - claim: KeybaseClaim, - signature: string, - username: string, - address: string - ) { - const signedClaim = { claim, signature } - try { - cli.action.start(`Attempting to automate keybase proof`) - const publicFolderPrefix = `/keybase/public/${username}/` - await this.ensureKeybaseFilePathToProof(publicFolderPrefix) - const fileName = proofFileName(address) - const tmpPath = `${tmpdir()}/${fileName}` - writeFileSync(tmpPath, JSON.stringify(signedClaim)) - await execCmdWithError( - 'keybase', - ['fs', 'cp', tmpPath, publicFolderPrefix + keybaseFilePathToProof + '/' + fileName], - { silent: true } - ) - cli.action.stop() - - cli.action.start(`Claim successfully copied to the keybase file system, verifying proof`) - // Wait for changes to propagate - await sleep(3000) - const verificationError = await verifyKeybaseClaim(this.kit, claim, address) - if (verificationError) { - throw new Error(`Claim is not verifiable: ${verificationError}`) - } - cli.action.stop() - console.info('Claim is verifiable!') - } catch (error) { - cli.action.stop(`Error: ${error}`) - throw error - } - } - async uploadProof(claim: KeybaseClaim, signature: string, username: string, address: string) { - try { - if ( - (await commandExists('keybase')) && - (await binaryPrompt( - `Found keybase CLI. Do you want me to attempt to publish the claim onto the keybase fs?` - )) - ) { - await this.attemptAutomaticProofUpload(claim, signature, username, address) - } else { - this.printManualInstruction(claim, signature, username, address) - } - } catch (error) { - cli.action.stop('Error') - console.error( - 'Could not automatically finish the proving, please complete this step manually.\n\n ' + - error - ) - this.printManualInstruction(claim, signature, username, address) - } - } - - printManualInstruction( - claim: KeybaseClaim, - signature: string, - username: string, - address: string - ) { - const fileName = proofFileName(address) - writeFileSync(fileName, JSON.stringify({ claim, signature })) - console.info( - `\nProving a keybase claim requires you to publish the signed claim on your Keybase file system to prove ownership. We saved it for you under ${fileName}. It should be hosted in your public folder at ${keybaseFilePathToProof}/${fileName}, so that it is available under ${targetURL( - username, - address - )}\n` - ) - } - - async ensureKeybaseFilePathToProof(base: string) { - const segments = keybaseFilePathToProof.split('/') - let currentPath = base - for (let i = 0; i < segments.length - 1; i++) { - currentPath += segments[i] + '/' - if (!(await execWith0Exit('keybase', ['fs', 'ls', currentPath], { silent: true }))) { - await execCmdWithError('keybase', ['fs', 'mkdir', currentPath], { silent: true }) - } - } - } -} diff --git a/packages/cli/src/commands/account/claim-name.ts b/packages/cli/src/commands/account/claim-name.ts deleted file mode 100644 index e9701e50c28..00000000000 --- a/packages/cli/src/commands/account/claim-name.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { createNameClaim } from '@celo/contractkit/lib/identity/claims/claim' -import { flags } from '@oclif/command' -import { ClaimCommand } from '../../utils/identity' - -export default class ClaimName extends ClaimCommand { - static description = 'Claim a name and add the claim to a local metadata file' - static flags = { - ...ClaimCommand.flags, - name: flags.string({ - required: true, - description: 'The name you want to claim', - }), - } - static args = ClaimCommand.args - static examples = [ - 'claim-name ~/metadata.json --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --name myname', - ] - self = ClaimName - async run() { - const res = this.parse(ClaimName) - const metadata = await this.readMetadata() - await this.addClaim(metadata, createNameClaim(res.flags.name)) - this.writeMetadata(metadata) - } -} diff --git a/packages/cli/src/commands/account/claim-storage.ts b/packages/cli/src/commands/account/claim-storage.ts deleted file mode 100644 index 999ef2e311e..00000000000 --- a/packages/cli/src/commands/account/claim-storage.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { createStorageClaim } from '@celo/contractkit/lib/identity/claims/claim' -import { Flags } from '../../utils/command' -import { ClaimCommand } from '../../utils/identity' -export default class ClaimStorage extends ClaimCommand { - static description = 'Claim a storage root and add the claim to a local metadata file' - static flags = { - ...ClaimCommand.flags, - url: Flags.url({ - required: true, - description: 'The URL of the storage root you want to claim', - }), - } - static args = ClaimCommand.args - static examples = [ - 'claim-storage ~/metadata.json --url http://test.com/myurl --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95', - ] - self = ClaimStorage - - async run() { - const res = this.parse(ClaimStorage) - const metadata = await this.readMetadata() - await this.addClaim(metadata, createStorageClaim(res.flags.url)) - this.writeMetadata(metadata) - } -} diff --git a/packages/cli/src/commands/account/claims.test.ts b/packages/cli/src/commands/account/claims.test.ts deleted file mode 100644 index 721b8c7eeb5..00000000000 --- a/packages/cli/src/commands/account/claims.test.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { ContractKit, IdentityMetadataWrapper, newKitFromWeb3 } from '@celo/contractkit' -import { ClaimTypes } from '@celo/contractkit/lib/identity' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { readFileSync, writeFileSync } from 'fs' -import { tmpdir } from 'os' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import ClaimAccount from './claim-account' -import ClaimDomain from './claim-domain' -import ClaimName from './claim-name' -import CreateMetadata from './create-metadata' -import RegisterMetadata from './register-metadata' -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('account metadata cmds', (web3: Web3) => { - let account: string - let accounts: string[] - let kit: ContractKit - - beforeEach(async () => { - accounts = await web3.eth.getAccounts() - kit = newKitFromWeb3(web3) - account = accounts[0] - }) - - describe('Modifying the metadata file', () => { - const emptyFilePath = `${tmpdir()}/metadata.json` - const generateEmptyMetadataFile = () => { - writeFileSync(emptyFilePath, IdentityMetadataWrapper.fromEmpty(account).toString()) - } - - const readFile = async () => { - return IdentityMetadataWrapper.fromFile(await kit.contracts.getAccounts(), emptyFilePath) - } - - test('account:create-metadata cmd', async () => { - const newFilePath = `${tmpdir()}/newfile.json` - await testLocally(CreateMetadata, ['--from', account, newFilePath]) - const res = JSON.parse(readFileSync(newFilePath).toString()) - expect(res.meta.address).toEqual(account) - }) - - test('account:claim-name cmd', async () => { - generateEmptyMetadataFile() - const name = 'myname' - await testLocally(ClaimName, ['--from', account, '--name', name, emptyFilePath]) - const metadata = await readFile() - const claim = metadata.findClaim(ClaimTypes.NAME) - expect(claim).toBeDefined() - expect(claim!.name).toEqual(name) - }) - - test('account:claim-domain cmd', async () => { - generateEmptyMetadataFile() - const domain = 'test.com' - await testLocally(ClaimDomain, ['--from', account, '--domain', domain, emptyFilePath]) - const metadata = await readFile() - const claim = metadata.findClaim(ClaimTypes.DOMAIN) - expect(claim).toBeDefined() - expect(claim!.domain).toEqual(domain) - }) - - test('account:claim-account cmd', async () => { - generateEmptyMetadataFile() - const otherAccount = accounts[1] - await testLocally(ClaimAccount, ['--from', account, '--address', otherAccount, emptyFilePath]) - const metadata = await readFile() - const claim = metadata.findClaim(ClaimTypes.ACCOUNT) - expect(claim).toBeDefined() - expect(claim!.address).toEqual(otherAccount) - }) - }) - - describe('account:register-metadata cmd', () => { - describe('when the account is registered', () => { - beforeEach(async () => { - const accountsInstance = await kit.contracts.getAccounts() - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - }) - - test('can register metadata', async () => { - await testLocally(RegisterMetadata, [ - '--force', - '--from', - account, - '--url', - 'https://test.com', - ]) - }) - - test('fails if url is missing', async () => { - await expect(testLocally(RegisterMetadata, ['--force', '--from', account])).rejects.toThrow( - 'Missing required flag' - ) - }) - }) - - it('cannot register metadata', async () => { - await expect( - testLocally(RegisterMetadata, ['--force', '--from', account, '--url', 'https://test.com']) - ).rejects.toThrow("Some checks didn't pass!") - }) - }) -}) diff --git a/packages/cli/src/commands/account/create-metadata.ts b/packages/cli/src/commands/account/create-metadata.ts deleted file mode 100644 index 4f7c2522675..00000000000 --- a/packages/cli/src/commands/account/create-metadata.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { IdentityMetadataWrapper } from '@celo/contractkit' -import { IArg } from '@oclif/parser/lib/args' -import { writeFileSync } from 'fs' -import { Args } from '../../utils/command' -import { ClaimCommand } from '../../utils/identity' - -export default class CreateMetadata extends ClaimCommand { - static description = - 'Create an empty identity metadata file. Use this metadata file to store claims attesting to ownership of off-chain resources. Claims can be generated with the account:claim-* commands.' - static flags = ClaimCommand.flags - static args: IArg[] = [ - Args.newFile('file', { description: 'Path where the metadata should be saved' }), - ] - static examples = [ - 'create-metadata ~/metadata.json --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95', - ] - - async run() { - const res = this.parse(CreateMetadata) - const metadata = IdentityMetadataWrapper.fromEmpty(res.flags.from) - writeFileSync(res.args.file, metadata.toString()) - } -} diff --git a/packages/cli/src/commands/account/deauthorize.test.ts b/packages/cli/src/commands/account/deauthorize.test.ts deleted file mode 100644 index d3969ecb64a..00000000000 --- a/packages/cli/src/commands/account/deauthorize.test.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Authorize from './authorize' -import Deauthorize from './deauthorize' -import Register from './register' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('account:deauthorize cmd', (web3: Web3) => { - test('can deauthorize attestation signer', async () => { - const accounts = await web3.eth.getAccounts() - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Authorize, [ - '--from', - accounts[0], - '--role', - 'attestation', - '--signer', - accounts[1], - '--signature', - '0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - ]) - await testLocally(Deauthorize, [ - '--from', - accounts[0], - '--role', - 'attestation', - '--signer', - accounts[1], - ]) - }) - - test('cannot deauthorize a non-authorized signer', async () => { - const accounts = await web3.eth.getAccounts() - await testLocally(Register, ['--from', accounts[0]]) - - await expect( - testLocally(Deauthorize, [ - '--from', - accounts[0], - '--role', - 'attestation', - '--signer', - accounts[1], - ]) - ).rejects.toThrow() - }) -}) diff --git a/packages/cli/src/commands/account/deauthorize.ts b/packages/cli/src/commands/account/deauthorize.ts deleted file mode 100644 index d8afb7da2ee..00000000000 --- a/packages/cli/src/commands/account/deauthorize.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Deauthorize extends BaseCommand { - static description = "Remove an account's authorized attestation signer role." - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true }), - role: flags.string({ - char: 'r', - options: ['attestation'], - description: 'Role to remove', - required: true, - }), - signer: Flags.address({ required: true }), - } - - static args = [] - - static examples = [ - 'deauthorize --from 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role attestation --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb', - ] - - async run() { - const res = this.parse(Deauthorize) - - const accounts = await this.kit.contracts.getAccounts() - - if (res.flags.role !== 'attestation') { - this.error(`Invalid role provided`) - return - } - - const attestationSigner = await accounts.getAttestationSigner(res.flags.from) - - if (res.flags.signer !== attestationSigner) { - this.error( - `Invalid signer argument: ${res.flags.signer}. The current signer for this role is: ${attestationSigner}` - ) - return - } - - const tx = await accounts.removeAttestationSigner() - - await displaySendTx('deauthorizeTx', tx) - } -} diff --git a/packages/cli/src/commands/account/delete-payment-delegation.ts b/packages/cli/src/commands/account/delete-payment-delegation.ts deleted file mode 100644 index df2e4a502f8..00000000000 --- a/packages/cli/src/commands/account/delete-payment-delegation.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { BaseCommand } from '../../base' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class DeletePaymentDelegation extends BaseCommand { - static description = - "Removes a validator's payment delegation by setting benficiary and fraction to 0." - - static flags = { - ...BaseCommand.flags, - account: Flags.address({ required: true }), - } - - static args = [] - - static examples = [ - 'delete-payment-delegation --account 0x5409ED021D9299bf6814279A6A1411A7e866A631', - ] - - async run() { - const res = this.parse(DeletePaymentDelegation) - this.kit.defaultAccount = res.flags.account - const accounts = await this.kit.contracts.getAccounts() - - await displaySendTx('deletePaymentDelegation', accounts.deletePaymentDelegation()) - - console.log('Deleted payment delegation.') - } -} diff --git a/packages/cli/src/commands/account/get-metadata.ts b/packages/cli/src/commands/account/get-metadata.ts deleted file mode 100644 index 38b881ed146..00000000000 --- a/packages/cli/src/commands/account/get-metadata.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { IdentityMetadataWrapper } from '@celo/contractkit' -import { IArg } from '@oclif/parser/lib/args' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { Args } from '../../utils/command' -import { displayMetadata } from '../../utils/identity' - -export default class GetMetadata extends BaseCommand { - static description = - 'Show information about an address. Retreives the metadata URL for an account from the on-chain, then fetches the metadata file off-chain and verifies proofs as able.' - - static flags = { - ...BaseCommand.flags, - ...(cli.table.flags() as object), - } - - static args: IArg[] = [Args.address('address', { description: 'Address to get metadata for' })] - - static examples = ['get-metadata 0x97f7333c51897469E8D98E7af8653aAb468050a3'] - - async run() { - const { args, flags } = this.parse(GetMetadata) - const address = args.address - const accounts = await this.kit.contracts.getAccounts() - const metadataURL = await accounts.getMetadataURL(address) - - if (!metadataURL) { - console.info('No metadata set for address') - return - } - - try { - const metadata = await IdentityMetadataWrapper.fetchFromURL( - await this.kit.contracts.getAccounts(), - metadataURL - ) - console.info('Metadata contains the following claims: \n') - await displayMetadata(metadata, this.kit, flags) - } catch (error: any) { - console.error(`Metadata could not be retrieved from ${metadataURL}: ${error.toString()}`) - } - } -} diff --git a/packages/cli/src/commands/account/get-payment-delegation.ts b/packages/cli/src/commands/account/get-payment-delegation.ts deleted file mode 100644 index 3d10f08550e..00000000000 --- a/packages/cli/src/commands/account/get-payment-delegation.ts +++ /dev/null @@ -1,35 +0,0 @@ -import BigNumber from 'bignumber.js' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { Flags } from '../../utils/command' - -export default class GetPaymentDelegation extends BaseCommand { - static description = - "Get the payment delegation account beneficiary and fraction allocated from a validator's payment each epoch. The fraction cannot be greater than 1." - - static flags = { - ...BaseCommand.flags, - account: Flags.address({ required: true }), - ...(cli.table.flags() as object), - } - - static args = [] - - static examples = ['get-payment-delegation --account 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const res = this.parse(GetPaymentDelegation) - this.kit.defaultAccount = res.flags.account - const accounts = await this.kit.contracts.getAccounts() - - console.log('Payment delegation beneficiary and fraction are: \n') - const retval = await accounts.getPaymentDelegation(res.flags.account) - - const beneficiary = retval[0] - - // translate fixidity value to human readable fraction - const fraction = new BigNumber(retval[1]).shiftedBy(-24).toNumber() - - console.log(beneficiary, fraction) - } -} diff --git a/packages/cli/src/commands/account/list.ts b/packages/cli/src/commands/account/list.ts deleted file mode 100644 index 2339c15823c..00000000000 --- a/packages/cli/src/commands/account/list.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' - -export default class AccountList extends BaseCommand { - static description = 'List the addresses from the node and the local instance' - - static flags = { - ...BaseCommand.flags, - local: flags.boolean({ - allowNo: true, - description: - 'If set, only show local and hardware wallet accounts. Use no-local to only show keystore addresses.', - }), - } - - requireSynced = false - - async run() { - const res = this.parse(AccountList) - - // Retreive accounts from the connected Celo node. - const allAddresses = !res.flags.local ? await this.kit.connection.getAccounts() : [] - - // Get addresses from the local wallet. - const localAddresses = - res.flags.local ?? true ? await this.kit.connection.getLocalAccounts() : [] - - // Display the addresses. - const localName = res.flags.useLedger ? 'Ledger' : 'Local' - if (res.flags.local === undefined) { - console.log('All Addresses: ', allAddresses) - } - if (!res.flags.local) { - const nodeAddresses = allAddresses.filter((address) => !localAddresses.includes(address)) - console.log('Keystore Addresses: ', nodeAddresses) - } - if (res.flags.local ?? true) { - console.log(`${localName} Addresses: `, localAddresses) - } - } -} diff --git a/packages/cli/src/commands/account/lock.ts b/packages/cli/src/commands/account/lock.ts deleted file mode 100644 index 20d237d4101..00000000000 --- a/packages/cli/src/commands/account/lock.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { IArg } from '@oclif/parser/lib/args' -import { BaseCommand } from '../../base' -import { Args } from '../../utils/command' - -export default class Lock extends BaseCommand { - static description = 'Lock an account which was previously unlocked' - - static flags = { - ...BaseCommand.flags, - } - - static args: IArg[] = [Args.address('account', { description: 'Account address' })] - - static examples = ['lock 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - requireSynced = false - - async run() { - const res = this.parse(Lock) - if (res.flags.useLedger) { - console.warn('Warning: account:lock not implemented for Ledger') - } - - await this.web3.eth.personal.lockAccount(res.args.account) - } -} diff --git a/packages/cli/src/commands/account/new.ts b/packages/cli/src/commands/account/new.ts deleted file mode 100644 index 5fceae05def..00000000000 --- a/packages/cli/src/commands/account/new.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { - generateKeys, - generateMnemonic, - MnemonicLanguages, - MnemonicStrength, - normalizeMnemonic, - validateMnemonic, -} from '@celo/cryptographic-utils/lib/account' -import { privateKeyToAddress } from '@celo/utils/lib/address' -import { toChecksumAddress } from '@ethereumjs/util' -import { flags } from '@oclif/command' -import * as fs from 'fs-extra' -import { BaseCommand } from '../../base' -import { printValueMap } from '../../utils/cli' - -const ETHEREUM_DERIVATION_PATH = "m/44'/60'/0'" - -export default class NewAccount extends BaseCommand { - static description = - "Creates a new account locally using the Celo Derivation Path (m/44'/52752'/0/changeIndex/addressIndex) and print out the key information. Save this information for local transaction signing or import into a Celo node. Ledger: this command has been tested swapping mnemonics with the Ledger successfully (only supports english)" - - static flags = { - ...BaseCommand.flags, - passphrasePath: flags.string({ - description: - 'Path to a file that contains the BIP39 passphrase to combine with the mnemonic specified using the mnemonicPath flag and the index specified using the addressIndex flag. Every passphrase generates a different private key and wallet address.', - }), - changeIndex: flags.integer({ - default: 0, - description: 'Choose the change index for the derivation path', - }), - addressIndex: flags.integer({ - default: 0, - description: 'Choose the address index for the derivation path', - }), - language: flags.string({ - options: [ - 'chinese_simplified', - 'chinese_traditional', - 'english', - 'french', - 'italian', - 'japanese', - 'korean', - 'spanish', - ], - default: 'english', - description: - "Language for the mnemonic words. **WARNING**, some hardware wallets don't support other languages", - }), - mnemonicPath: flags.string({ - description: - 'Instead of generating a new mnemonic (seed phrase), use the user-supplied mnemonic instead. Path to a file that contains all the mnemonic words separated by a space (example: "word1 word2 word3 ... word24"). If the words are a language other than English, the --language flag must be used. Only BIP39 mnemonics are supported', - }), - derivationPath: flags.string({ - description: - "Choose a different derivation Path (Celo's default is \"m/44'/52752'/0'\"). Use \"eth\" as an alias of the Ethereum derivation path (\"m/44'/60'/0'\"). Recreating the same account requires knowledge of the mnemonic, passphrase (if any), and the derivation path", - }), - } - - static examples = [ - 'new', - 'new --passphrasePath myFolder/my_passphrase_file', - 'new --language spanish', - 'new --passphrasePath some_folder/my_passphrase_file --language japanese --addressIndex 5', - 'new --passphrasePath some_folder/my_passphrase_file --mnemonicPath some_folder/my_mnemonic_file --addressIndex 5', - ] - - static languageOptions(language: string): MnemonicLanguages | undefined { - if (language) { - // @ts-ignore - const enumLanguage = MnemonicLanguages[language] - return enumLanguage as MnemonicLanguages - } - return undefined - } - - static sanitizeDerivationPath(derivationPath?: string) { - if (derivationPath) { - derivationPath = derivationPath.endsWith('/') ? derivationPath.slice(0, -1) : derivationPath - } - return derivationPath !== 'eth' ? derivationPath : ETHEREUM_DERIVATION_PATH - } - - static readFile(file?: string): string | undefined { - if (!file) { - return undefined - } - if (fs.pathExistsSync(file)) { - return fs - .readFileSync(file) - .toString() - .replace(/(\r\n|\n|\r)/gm, '') - } - throw new Error(`Invalid path: ${file}`) - } - - requireSynced = false - - async run() { - const res = this.parse(NewAccount) - let mnemonic = NewAccount.readFile(res.flags.mnemonicPath) - if (mnemonic) { - mnemonic = normalizeMnemonic(mnemonic) - if (!validateMnemonic(mnemonic)) { - throw Error('Invalid mnemonic. Should be a bip39 mnemonic') - } - } else { - mnemonic = await generateMnemonic( - MnemonicStrength.s256_24words, - NewAccount.languageOptions(res.flags.language!) - ) - } - const derivationPath = NewAccount.sanitizeDerivationPath(res.flags.derivationPath) - const passphrase = NewAccount.readFile(res.flags.passphrasePath) - const keys = await generateKeys( - mnemonic, - passphrase, - res.flags.changeIndex, - res.flags.addressIndex, - undefined, - derivationPath - ) - const accountAddress = toChecksumAddress(privateKeyToAddress(keys.privateKey)) - this.log( - 'This is not being stored anywhere. Save the mnemonic somewhere to use this account at a later point.\n' - ) - printValueMap({ mnemonic, accountAddress, ...keys }) - } -} diff --git a/packages/cli/src/commands/account/offchain-read.ts b/packages/cli/src/commands/account/offchain-read.ts deleted file mode 100644 index 96a5392b81e..00000000000 --- a/packages/cli/src/commands/account/offchain-read.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { BasicDataWrapper } from '@celo/identity/lib/offchain-data-wrapper' -import { PrivateNameAccessor, PublicNameAccessor } from '@celo/identity/lib/offchain/accessors/name' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { Args, Flags } from '../../utils/command' -import { OffchainDataCommand } from '../../utils/off-chain-data' - -export default class OffchainRead extends BaseCommand { - static description = 'DEV: Reads the name from offchain storage' - - static flags = { - ...OffchainDataCommand.flags, - - // private accessor parameters - from: Flags.address({ required: false }), - privateDEK: flags.string({ required: false }), - } - - static args = [Args.address('address')] - - static examples = ['offchain-read 0x...', 'offchain-read 0x... --from 0x... --privateKey 0x...'] - - async run() { - const { - args: { address }, - flags: { from, privateDEK }, - } = this.parse(OffchainRead) - // @ts-ignore - const provider = new BasicDataWrapper(from!, this.kit) - - if (privateDEK) { - this.kit.addAccount(privateDEK) - } - - const nameApplication = privateDEK - ? new PrivateNameAccessor(provider) - : new PublicNameAccessor(provider) - const data = await nameApplication.read(address) - console.log(data) - } -} diff --git a/packages/cli/src/commands/account/offchain-write.ts b/packages/cli/src/commands/account/offchain-write.ts deleted file mode 100644 index e60d3db8f22..00000000000 --- a/packages/cli/src/commands/account/offchain-write.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { PrivateNameAccessor, PublicNameAccessor } from '@celo/identity/lib/offchain/accessors/name' -import { privateKeyToAddress } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import { binaryPrompt } from '../../utils/cli' -import { OffchainDataCommand } from '../../utils/off-chain-data' - -export default class OffchainWrite extends OffchainDataCommand { - static description = 'DEV: Writes a name to offchain storage' - - static flags = { - ...OffchainDataCommand.flags, - name: flags.string({ required: true }), - privateKey: flags.string({ required: true }), - - // private accessor parameters - privateDEK: flags.string({ dependsOn: ['privateKey', 'encryptTo'] }), - encryptTo: flags.string({ dependsOn: ['privateKey', 'privateDEK'] }), - } - - static args = [] - - static examples = [ - 'offchain-write --name test-account --privateKey 0x...', - 'offchain-write --name test-account --privateKey 0x... privateDEK 0x... --encryptTo 0x...', - ] - - async run() { - const { - flags: { encryptTo, name, privateDEK, privateKey }, - } = this.parse(OffchainWrite) - - if (encryptTo && privateDEK && privateKey) { - this.kit.defaultAccount = privateKeyToAddress(privateKey) - this.kit.addAccount(privateDEK) - const nameSchema = new PrivateNameAccessor(this.offchainDataWrapper) - await nameSchema.write({ name }, [encryptTo]) - } else { - if ( - !(await binaryPrompt( - 'This operation will make your name public. Are you sure you want to do that?', - true - )) - ) { - return - } - const nameSchema = new PublicNameAccessor(this.offchainDataWrapper) - await nameSchema.write({ name }) - } - } -} diff --git a/packages/cli/src/commands/account/proof-of-possession.ts b/packages/cli/src/commands/account/proof-of-possession.ts deleted file mode 100644 index 017d216bc38..00000000000 --- a/packages/cli/src/commands/account/proof-of-possession.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { serializeSignature } from '@celo/utils/lib/signatureUtils' -import { BaseCommand } from '../../base' -import { printValueMap } from '../../utils/cli' -import { Flags } from '../../utils/command' -export default class ProofOfPossession extends BaseCommand { - static description = - 'Generate proof-of-possession to be used to authorize a signer. See the "account:authorize" command for more details.' - - static flags = { - ...BaseCommand.flags, - signer: Flags.address({ - required: true, - description: 'Address of the signer key to prove possession of.', - }), - account: Flags.address({ - required: true, - description: 'Address of the account that needs to prove possession of the signer key.', - }), - } - - static examples = [ - 'proof-of-possession --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb', - ] - - async run() { - const res = this.parse(ProofOfPossession) - const accounts = await this.kit.contracts.getAccounts() - const pop = await accounts.generateProofOfKeyPossession(res.flags.account, res.flags.signer) - printValueMap({ signature: serializeSignature(pop) }) - } -} diff --git a/packages/cli/src/commands/account/recover-old.ts b/packages/cli/src/commands/account/recover-old.ts deleted file mode 100644 index d43ccf2df26..00000000000 --- a/packages/cli/src/commands/account/recover-old.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { - generateKeysFromSeed, - generateSeed, - normalizeMnemonic, - validateMnemonic, -} from '@celo/cryptographic-utils/lib/account' -import { privateKeyToAddress } from '@celo/utils/lib/address' -import { toChecksumAddress } from '@ethereumjs/util' -import { flags } from '@oclif/command' -import { printValueMap } from '../../utils/cli' -import NewAccount from './new' - -// TODO: This command should be prune in the future after all accounts had been migrated -export default class RecoverOld extends NewAccount { - static description = - 'Recovers the Valora old account and print out the key information. The old Valora app (in a beta state) generated the user address using a seed of 32 bytes, instead of 64 bytes. As the app fixed that, some old accounts were left with some funds. This command allows the user to recover those funds.' - - static flags = { - ...NewAccount.flags, - mnemonicPath: flags.string({ - required: true, - description: - 'Path to a file that contains all the mnemonic words separated by a space (example: "word1 word2 word3 ... word24"). If the words are a language other than English, the --language flag must be used. Only BIP39 mnemonics are supported', - }), - } - - static examples = [ - 'recover-old --mnemonicPath some_folder/my_mnemonic_file', - 'recover-old --mnemonicPath some_folder/my_mnemonic_file --passphrasePath myFolder/my_passphrase_file', - 'recover-old --mnemonicPath some_folder/my_mnemonic_file --language spanish', - 'recover-old --mnemonicPath some_folder/my_mnemonic_file --passphrasePath some_folder/my_passphrase_file --language japanese --addressIndex 5', - 'recover-old --mnemonicPath some_folder/my_mnemonic_file --passphrasePath some_folder/my_passphrase_file --addressIndex 5', - ] - - async run() { - const res = this.parse(RecoverOld) - let mnemonic = NewAccount.readFile(res.flags.mnemonicPath) - if (mnemonic) { - mnemonic = normalizeMnemonic(mnemonic) - if (!validateMnemonic(mnemonic)) { - throw Error('Invalid mnemonic. Should be a bip39 mnemonic') - } - } else { - throw Error('Must provide a valid bip39 mnemonic') - } - const derivationPath = NewAccount.sanitizeDerivationPath(res.flags.derivationPath) - const passphrase = NewAccount.readFile(res.flags.passphrasePath) - const seed32 = await generateSeed(mnemonic, passphrase, undefined, 32) - const keys = generateKeysFromSeed( - seed32, - res.flags.addressIndex, - res.flags.changeIndex, - derivationPath - ) - const accountAddress = toChecksumAddress(privateKeyToAddress(keys.privateKey)) - printValueMap({ accountAddress, ...keys }) - } -} diff --git a/packages/cli/src/commands/account/register-data-encryption-key.ts b/packages/cli/src/commands/account/register-data-encryption-key.ts deleted file mode 100644 index d4d3dadbdd8..00000000000 --- a/packages/cli/src/commands/account/register-data-encryption-key.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { ensureLeading0x } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class RegisterDataEncryptionKey extends BaseCommand { - static description = - 'Register a data encryption key for an account on chain. This key can be used to encrypt data to you such as offchain metadata or transaction comments' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'Addess of the account to set the data encryption key for', - }), - publicKey: flags.string({ - required: true, - description: 'The public key you want to register', - }), - } - - static examples = [ - 'register-data-encryption-key --publicKey 0x... --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95', - ] - - async run() { - const res = this.parse(RegisterDataEncryptionKey) - this.kit.defaultAccount = res.flags.from - - await newCheckBuilder(this).isAccount(res.flags.from).runChecks() - - const publicKey = res.flags.publicKey - - const accounts = await this.kit.contracts.getAccounts() - await displaySendTx( - 'RegisterDataEncryptionKey', - accounts.setAccountDataEncryptionKey(ensureLeading0x(publicKey)) - ) - } -} diff --git a/packages/cli/src/commands/account/register-metadata.ts b/packages/cli/src/commands/account/register-metadata.ts deleted file mode 100644 index 1ca49406036..00000000000 --- a/packages/cli/src/commands/account/register-metadata.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { IdentityMetadataWrapper } from '@celo/contractkit' -import { flags } from '@oclif/command' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { displayMetadata } from '../../utils/identity' - -export default class RegisterMetadata extends BaseCommand { - static description = - 'Register metadata URL for an account where users will be able to retieve the metadata file and verify your claims' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'Addess of the account to set metadata for', - }), - url: Flags.url({ - required: true, - description: 'The url to the metadata you want to register', - }), - force: flags.boolean({ description: 'Ignore metadata validity checks' }), - - ...(cli.table.flags() as object), - } - - static examples = [ - 'register-metadata --url https://www.mywebsite.com/celo-metadata --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95', - ] - - async run() { - const res = this.parse(RegisterMetadata) - - await newCheckBuilder(this).isAccount(res.flags.from).runChecks() - - const metadataURL = res.flags.url - const accounts = await this.kit.contracts.getAccounts() - - if (!res.flags.force) { - try { - const metadata = await IdentityMetadataWrapper.fetchFromURL(accounts, metadataURL) - console.info('Metadata contains the following claims: \n') - await displayMetadata(metadata, this.kit, res.flags) - console.info() // Print a newline. - } catch (error: any) { - console.error(`Metadata could not be retrieved from ${metadataURL}: ${error.toString()}`) - console.info('Exiting without performing changes...') - process.exit(-1) - } - } - - await displaySendTx('registerMetadata', accounts.setMetadataURL(metadataURL)) - } -} diff --git a/packages/cli/src/commands/account/register.test.ts b/packages/cli/src/commands/account/register.test.ts deleted file mode 100644 index 06010198d8f..00000000000 --- a/packages/cli/src/commands/account/register.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from './register' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('account:register cmd', (web3: Web3) => { - test('can register account', async () => { - const accounts = await web3.eth.getAccounts() - - await testLocally(Register, ['--from', accounts[0], '--name', 'Chapulin Colorado']) - }) - - test('fails if from is missing', async () => { - // const accounts = await web3.eth.getAccounts() - - await expect(testLocally(Register, [])).rejects.toThrow('Missing required flag') - }) -}) diff --git a/packages/cli/src/commands/account/register.ts b/packages/cli/src/commands/account/register.ts deleted file mode 100644 index 917f7da34f2..00000000000 --- a/packages/cli/src/commands/account/register.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Register extends BaseCommand { - static description = - 'Register an account on-chain. This allows you to lock Gold, which is a pre-requisite for registering a Validator or Group, participating in Validator elections and on-chain Governance, and earning epoch rewards.' - - static flags = { - ...BaseCommand.flags, - name: flags.string(), - from: Flags.address({ required: true }), - } - - static args = [] - - static examples = [ - 'register --from 0x5409ed021d9299bf6814279a6a1411a7e866a631', - 'register --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 --name test-account', - ] - - async run() { - const res = this.parse(Register) - - const accounts = await this.kit.contracts.getAccounts() - - await newCheckBuilder(this).isNotAccount(res.flags.from).runChecks() - await displaySendTx('register', accounts.createAccount()) - if (res.flags.name) { - await displaySendTx('setName', accounts.setName(res.flags.name)) - } - } -} diff --git a/packages/cli/src/commands/account/set-name.test.ts b/packages/cli/src/commands/account/set-name.test.ts deleted file mode 100644 index 258e02f3a09..00000000000 --- a/packages/cli/src/commands/account/set-name.test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import SetName from './set-name' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('account:set-name cmd', (web3: Web3) => { - test('can set the name of an account', async () => { - const accounts = await web3.eth.getAccounts() - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(SetName, ['--account', accounts[0], '--name', 'TestName']) - }) - - test('fails if account is not registered', async () => { - const accounts = await web3.eth.getAccounts() - - await expect( - testLocally(SetName, ['--account', accounts[0], '--name', 'TestName']) - ).rejects.toThrow("Some checks didn't pass!") - }) - - test('fails if account is not provided', async () => { - await expect(testLocally(SetName, ['--name', 'TestName'])).rejects.toThrow( - 'Missing required flag' - ) - }) - - test('fails if name is not provided', async () => { - const accounts = await web3.eth.getAccounts() - - await expect(testLocally(SetName, ['--account', accounts[0]])).rejects.toThrow( - 'Missing required flag' - ) - }) -}) diff --git a/packages/cli/src/commands/account/set-name.ts b/packages/cli/src/commands/account/set-name.ts deleted file mode 100644 index d577544b93a..00000000000 --- a/packages/cli/src/commands/account/set-name.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class SetName extends BaseCommand { - static description = - "Sets the name of a registered account on-chain. An account's name is an optional human readable identifier" - - static flags = { - ...BaseCommand.flags, - account: Flags.address({ required: true }), - name: flags.string({ required: true }), - } - - static args = [] - - static examples = [ - 'set-name --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 --name test-account', - ] - - async run() { - const res = this.parse(SetName) - this.kit.defaultAccount = res.flags.account - const accounts = await this.kit.contracts.getAccounts() - - await newCheckBuilder(this).isAccount(res.flags.account).runChecks() - await displaySendTx('setName', accounts.setName(res.flags.name)) - } -} diff --git a/packages/cli/src/commands/account/set-payment-delegation.ts b/packages/cli/src/commands/account/set-payment-delegation.ts deleted file mode 100644 index ba3bc27675c..00000000000 --- a/packages/cli/src/commands/account/set-payment-delegation.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { valueToFixidityString } from '@celo/contractkit/lib/wrappers/BaseWrapper' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class SetPaymentDelegation extends BaseCommand { - static description = - "Sets a payment delegation beneficiary, an account address to receive a fraction of the validator's payment every epoch. The fraction must not be greater than 1." - - static flags = { - ...BaseCommand.flags, - account: Flags.address({ required: true }), - beneficiary: Flags.address({ required: true }), - fraction: flags.string({ required: true }), - } - - static args = [] - - static examples = [ - 'set-payment-delegation --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 --beneficiary 0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb --fraction 0.1', - ] - - async run() { - const res = this.parse(SetPaymentDelegation) - this.kit.defaultAccount = res.flags.account - const accounts = await this.kit.contracts.getAccounts() - - await displaySendTx( - 'setPaymentDelegation', - accounts.setPaymentDelegation( - res.flags.beneficiary, - valueToFixidityString(res.flags.fraction) - ) - ) - } -} diff --git a/packages/cli/src/commands/account/set-wallet.ts b/packages/cli/src/commands/account/set-wallet.ts deleted file mode 100644 index c8375352f10..00000000000 --- a/packages/cli/src/commands/account/set-wallet.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class SetWallet extends BaseCommand { - static description = - "Sets the wallet of a registered account on-chain. An account's wallet is an optional wallet associated with an account. Can be set by the account or an account's signer." - - static flags = { - ...BaseCommand.flags, - account: Flags.address({ required: true }), - wallet: Flags.address({ required: true }), - signature: Flags.proofOfPossession({ - required: false, - description: 'Signature (a.k.a. proof-of-possession) of the signer key', - }), - signer: Flags.address({ - required: false, - default: '', - description: 'Address of the signer key to verify proof of possession.', - }), - } - - static args = [] - - static examples = [ - 'set-wallet --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 --wallet 0x5409ed021d9299bf6814279a6a1411a7e866a631', - 'set-wallet --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 --wallet 0x5409ed021d9299bf6814279a6a1411a7e866a631 --signer 0x0EdeDF7B1287f07db348997663EeEb283D70aBE7 --signature 0x1c5efaa1f7ca6484d49ccce76217e2fba0552c0b23462cff7ba646473bc2717ffc4ce45be89bd5be9b5d23305e87fc2896808467c4081d9524a84c01b89ec91ca3', - ] - - async run() { - const res = this.parse(SetWallet) - this.kit.defaultAccount = res.flags.account - const accounts = await this.kit.contracts.getAccounts() - - await newCheckBuilder(this).isAccount(res.flags.account).runChecks() - - if (res.flags.signature !== undefined) { - try { - accounts.parseSignatureOfAddress(res.flags.account, res.flags.signer, res.flags.signature) - } catch (error) { - console.error('Error: Failed to parse signature') - } - await displaySendTx( - 'setWalletAddress', - accounts.setWalletAddress( - res.flags.wallet, - accounts.parseSignatureOfAddress(res.flags.account, res.flags.signer, res.flags.signature) - ) - ) - } else { - await displaySendTx('setWalletAddress', accounts.setWalletAddress(res.flags.wallet)) - } - } -} diff --git a/packages/cli/src/commands/account/show-claimed-accounts.ts b/packages/cli/src/commands/account/show-claimed-accounts.ts deleted file mode 100644 index 554a6634c8e..00000000000 --- a/packages/cli/src/commands/account/show-claimed-accounts.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { ContractKit, IdentityMetadataWrapper } from '@celo/contractkit' -import { ClaimTypes } from '@celo/contractkit/lib/identity' -import { AccountClaim } from '@celo/contractkit/lib/identity/claims/account' -import { verifyAccountClaim } from '@celo/contractkit/lib/identity/claims/verify' -import { ensureLeading0x } from '@celo/utils/lib/address' -import { notEmpty } from '@celo/utils/lib/collections' -import { BaseCommand } from '../../base' -import { printValueMap } from '../../utils/cli' -import { Args } from '../../utils/command' - -async function getMetadata(kit: ContractKit, address: string) { - const accounts = await kit.contracts.getAccounts() - const url = await accounts.getMetadataURL(address) - console.log(address, 'has url', url) - if (url === '') return IdentityMetadataWrapper.fromEmpty(address) - else return IdentityMetadataWrapper.fetchFromURL(accounts, url) -} - -function dedup(lst: string[]): string[] { - return [...new Set(lst)] -} - -async function getClaims( - kit: ContractKit, - address: string, - data: IdentityMetadataWrapper -): Promise { - const getClaim = async (claim: AccountClaim) => { - const error = await verifyAccountClaim(kit, claim, ensureLeading0x(address)) - return error ? null : claim.address.toLowerCase() - } - const res = (await Promise.all(data.filterClaims(ClaimTypes.ACCOUNT).map(getClaim))).filter( - notEmpty - ) - res.push(address) - return dedup(res) -} - -export default class ShowClaimedAccounts extends BaseCommand { - static description = 'Show information about claimed accounts' - - static flags = { - ...BaseCommand.flags, - } - - static args = [Args.address('address')] - - static examples = ['show-claimed-accounts 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const { args } = this.parse(ShowClaimedAccounts) - - const metadata = await getMetadata(this.kit, args.address) - - const claimedAccounts = await getClaims(this.kit, args.address, metadata) - - console.log('All balances expressed in units of 10^-18.') - for (const address of claimedAccounts) { - console.log('\nShowing balances for', address) - const balance = await this.kit.getTotalBalance(address) - printValueMap(balance) - } - } -} diff --git a/packages/cli/src/commands/account/show-metadata.ts b/packages/cli/src/commands/account/show-metadata.ts deleted file mode 100644 index 1c053c8e898..00000000000 --- a/packages/cli/src/commands/account/show-metadata.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { IdentityMetadataWrapper } from '@celo/contractkit' -import { IArg } from '@oclif/parser/lib/args' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { Args } from '../../utils/command' -import { displayMetadata } from '../../utils/identity' - -export default class ShowMetadata extends BaseCommand { - static description = 'Show the data in a local metadata file' - static flags = { - ...BaseCommand.flags, - ...(cli.table.flags() as object), - } - static args: IArg[] = [Args.file('file', { description: 'Path of the metadata file' })] - static examples = ['show-metadata ~/metadata.json'] - public requireSynced: boolean = false - - async run() { - const res = this.parse(ShowMetadata) - const metadata = await IdentityMetadataWrapper.fromFile( - await this.kit.contracts.getAccounts(), - res.args.file - ) - console.info(`Metadata at ${res.args.file} contains the following claims: \n`) - await displayMetadata(metadata, this.kit, res.flags) - } -} diff --git a/packages/cli/src/commands/account/show.ts b/packages/cli/src/commands/account/show.ts deleted file mode 100644 index 4d8a6581318..00000000000 --- a/packages/cli/src/commands/account/show.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { printValueMapRecursive } from '../../utils/cli' -import { Args } from '../../utils/command' - -export default class Show extends BaseCommand { - static description = - 'Show information for an account, including name, authorized vote, validator, and attestation signers, the URL at which account metadata is hosted, the address the account is using with the mobile wallet, and a public key that can be used to encrypt information for the account.' - - static flags = { - ...BaseCommand.flags, - } - - static args = [Args.address('address')] - - static examples = ['show 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const { args } = this.parse(Show) - await newCheckBuilder(this, args.address).isSignerOrAccount().runChecks() - const accounts = await this.kit.contracts.getAccounts() - const address = await accounts.signerToAccount(args.address) - printValueMapRecursive(await accounts.getAccountSummary(address)) - } -} diff --git a/packages/cli/src/commands/account/unlock.ts b/packages/cli/src/commands/account/unlock.ts deleted file mode 100644 index bfb126b8627..00000000000 --- a/packages/cli/src/commands/account/unlock.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { flags } from '@oclif/command' -import { IArg } from '@oclif/parser/lib/args' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { Args } from '../../utils/command' - -export default class Unlock extends BaseCommand { - static description = 'Unlock an account address to send transactions or validate blocks' - - static flags = { - ...BaseCommand.flags, - password: flags.string({ - required: false, - description: - 'Password used to unlock the account. If not specified, you will be prompted for a password.', - }), - duration: flags.integer({ - required: false, - default: 0, - description: - 'Duration in seconds to leave the account unlocked. Unlocks until the node exits by default.', - }), - } - - static args: IArg[] = [Args.address('account', { description: 'Account address' })] - - static examples = [ - 'unlock 0x5409ed021d9299bf6814279a6a1411a7e866a631', - 'unlock 0x5409ed021d9299bf6814279a6a1411a7e866a631 --duration 600', - ] - - requireSynced = false - - async run() { - const res = this.parse(Unlock) - if (res.flags.useLedger) { - console.warn('Warning: account:unlock not implemented for Ledger') - } - - const password = - res.flags.password || (await cli.prompt('Password', { type: 'hide', required: false })) - await this.web3.eth.personal.unlockAccount(res.args.account, password, res.flags.duration) - } -} diff --git a/packages/cli/src/commands/account/verify-proof-of-possession.ts b/packages/cli/src/commands/account/verify-proof-of-possession.ts deleted file mode 100644 index 0b0a4aadcff..00000000000 --- a/packages/cli/src/commands/account/verify-proof-of-possession.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { serializeSignature } from '@celo/utils/lib/signatureUtils' -import { BaseCommand } from '../../base' -import { printValueMap } from '../../utils/cli' -import { Flags } from '../../utils/command' -export default class VerifyProofOfPossession extends BaseCommand { - static description = - 'Verify a proof-of-possession. See the "account:proof-of-possession" command for more details.' - - static flags = { - ...BaseCommand.flags, - signer: Flags.address({ - required: true, - description: 'Address of the signer key to verify proof of possession.', - }), - account: Flags.address({ - required: true, - description: 'Address of the account that needs to prove possession of the signer key.', - }), - signature: Flags.proofOfPossession({ - required: true, - description: 'Signature (a.k.a. proof-of-possession) of the signer key', - }), - } - - static examples = [ - 'verify-proof-of-possession --account 0x199eDF79ABCa29A2Fa4014882d3C13dC191A5B58 --signer 0x0EdeDF7B1287f07db348997663EeEb283D70aBE7 --signature 0x1c5efaa1f7ca6484d49ccce76217e2fba0552c0b23462cff7ba646473bc2717ffc4ce45be89bd5be9b5d23305e87fc2896808467c4081d9524a84c01b89ec91ca3', - ] - - async run() { - const res = this.parse(VerifyProofOfPossession) - const accounts = await this.kit.contracts.getAccounts() - let valid = false - let signature = res.flags.signature - try { - const { v, r, s } = accounts.parseSignatureOfAddress( - res.flags.account, - res.flags.signer, - res.flags.signature - ) - signature = serializeSignature({ v, r, s }) - valid = true - } catch (error) { - console.error('Error: Failed to parse signature') - } - printValueMap({ - valid: valid, - signature: signature, - }) - } -} diff --git a/packages/cli/src/commands/config/get.ts b/packages/cli/src/commands/config/get.ts deleted file mode 100644 index 18a4c7ba3d4..00000000000 --- a/packages/cli/src/commands/config/get.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { BaseCommand } from '../../base' -import { printValueMap } from '../../utils/cli' -import { readConfig } from '../../utils/config' - -export default class Get extends BaseCommand { - static description = 'Output network node configuration' - - static flags = { - ...BaseCommand.flags, - } - - requireSynced = false - - async run() { - printValueMap(readConfig(this.config.configDir)) - } -} diff --git a/packages/cli/src/commands/config/set.ts b/packages/cli/src/commands/config/set.ts deleted file mode 100644 index fb5461b8af7..00000000000 --- a/packages/cli/src/commands/config/set.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { BaseCommand, gasOptions } from '../../base' -import { readConfig, writeConfig } from '../../utils/config' - -export default class Set extends BaseCommand { - static description = 'Configure running node information for propogating transactions to network' - - static flags = { - ...BaseCommand.flags, - node: { - ...BaseCommand.flags.node, - hidden: false, - }, - gasCurrency: { - ...BaseCommand.flags.gasCurrency, - hidden: false, - }, - } - - static examples = [ - 'set --node ws://localhost:2500', - 'set --node /geth.ipc', - 'set --gasCurrency cUSD', - 'set --gasCurrency CELO', - ] - - requireSynced = false - - async run() { - const res = this.parse(Set) - const curr = readConfig(this.config.configDir) - const node = res.flags.node ?? curr.node - const gasCurrency = res.flags.gasCurrency - ? (gasOptions as any)[res.flags.gasCurrency] - : curr.gasCurrency - writeConfig(this.config.configDir, { - node, - gasCurrency, - }) - } -} diff --git a/packages/cli/src/commands/dkg/DKG.json b/packages/cli/src/commands/dkg/DKG.json deleted file mode 100644 index 7e05a0d26bf..00000000000 --- a/packages/cli/src/commands/dkg/DKG.json +++ /dev/null @@ -1,320 +0,0 @@ -{ - "contractName": "DKG", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "threshold", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "duration", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "PHASE_DURATION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "THRESHOLD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "allowlist", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getBlsKeys", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes[]", - "name": "", - "type": "bytes[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getJustifications", - "outputs": [ - { - "internalType": "bytes[]", - "name": "", - "type": "bytes[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getParticipants", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getResponses", - "outputs": [ - { - "internalType": "bytes[]", - "name": "", - "type": "bytes[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getShares", - "outputs": [ - { - "internalType": "bytes[]", - "name": "", - "type": "bytes[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "inPhase", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "justifications", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "keys", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "participants", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "value", - "type": "bytes" - } - ], - "name": "publish", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "blsPublicKey", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "responses", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "shares", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "start", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "startBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "userState", - "outputs": [ - { - "internalType": "enum DKG.UserState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60c0604052600060065534801561001557600080fd5b5060405161156338038061156383398101604081905261003491610051565b60805260a052600780546001600160a01b03191633179055610074565b60008060408385031215610063578182fd5b505080516020909101519092909150565b60805160a0516114a96100ba6000398061053e5280610a2c525080610367528061039852806103cc528061045152806105a4528061062a52806106ae52506114a96000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806382fbdc9c116100ad578063be9a655511610071578063be9a65551461025d578063cc5ef00914610265578063cd5e38371461026d578063ce7c2ac214610280578063d73fe0aa146102935761012c565b806382fbdc9c146102045780638da5cb5b14610217578063a7cd52cb1461021f578063a819459614610232578063b0ef8179146102485761012c565b80634ae2b849116100f45780634ae2b849146101b75780635aa68ac0146101bf578063670d14b2146101d4578063785ffb37146101e75780637fd28346146101ef5761012c565b80630c8f81b5146101315780630ea656481461015a578063221f95111461017a57806335c1d3491461018f57806348cd4cb1146101af575b600080fd5b61014461013f366004610fd2565b61029b565b60405161015191906111aa565b60405180910390f35b61016d610168366004610fd2565b6102b0565b6040516101519190611197565b61018261034b565b6040516101519190611449565b6101a261019d36600461106a565b610422565b6040516101519190611123565b610182610449565b61018261044f565b6101c7610473565b6040516101519190611137565b61016d6101e2366004610fd2565b6104d5565b61018261053c565b6102026101fd366004611000565b610560565b005b610202610212366004611000565b61074d565b6101a2610824565b61020261022d366004610fd2565b610833565b61023a6108e5565b604051610151929190611452565b610250610a53565b6040516101519190611184565b610202610b9a565b610250610bea565b61016d61027b366004610fd2565b610d2b565b61016d61028e366004610fd2565b610d93565b610250610df9565b60006020819052908152604090205460ff1681565b60036020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156103435780601f1061031857610100808354040283529160200191610343565b820191906000526020600020905b81548152906001019060200180831161032657829003601f168201915b505050505081565b6000600654600014156103605750600061041f565b60065443037f0000000000000000000000000000000000000000000000000000000000000000811161039657600191505061041f565b7f000000000000000000000000000000000000000000000000000000000000000060020281116103ca57600291505061041f565b7f000000000000000000000000000000000000000000000000000000000000000060030281116103fe57600391505061041f565b60405162461bcd60e51b8152600401610416906113a6565b60405180910390fd5b90565b6005818154811061042f57fe5b6000918252602090912001546001600160a01b0316905081565b60065481565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060058054806020026020016040519081016040528092919081815260200182805480156104cb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104ad575b5050505050905090565b60016020818152600092835260409283902080548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529192908301828280156103435780601f1061031857610100808354040283529160200191610343565b7f000000000000000000000000000000000000000000000000000000000000000081565b60023360009081526020819052604090205460ff16600281111561058057fe5b1461059d5760405162461bcd60e51b81526004016104169061136f565b60065443037f000000000000000000000000000000000000000000000000000000000000000081116106285733600090815260026020819052604090912054600019610100600183161502011604156106085760405162461bcd60e51b815260040161041690611246565b336000908152600260205260409020610622908484610f3a565b50610748565b7f000000000000000000000000000000000000000000000000000000000000000060020281116106ac573360009081526003602052604090205460026000196101006001841615020190911604156106925760405162461bcd60e51b8152600401610416906113c9565b336000908152600360205260409020610622908484610f3a565b7f00000000000000000000000000000000000000000000000000000000000000006003028111610730573360009081526004602052604090205460026000196101006001841615020190911604156107165760405162461bcd60e51b81526004016104169061128c565b336000908152600460205260409020610622908484610f3a565b60405162461bcd60e51b8152600401610416906112da565b505050565b6006541561076d5760405162461bcd60e51b815260040161041690611301565b60013360009081526020819052604090205460ff16600281111561078d57fe5b146107aa5760405162461bcd60e51b8152600401610416906111be565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b03191633908117909155600090815260209190915260409020610805908383610f3a565b5050336000908152602081905260409020805460ff1916600217905550565b6007546001600160a01b031681565b600654156108535760405162461bcd60e51b815260040161041690611301565b6007546001600160a01b0316331461087d5760405162461bcd60e51b815260040161041690611338565b6001600160a01b03811660009081526020819052604081205460ff1660028111156108a457fe5b146108c15760405162461bcd60e51b81526004016104169061120f565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b600060608060058054905067ffffffffffffffff8111801561090657600080fd5b5060405190808252806020026020018201604052801561093a57816020015b60608152602001906001900390816109255790505b50905060005b600554811015610a2957600160006005838154811061095b57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208054825160026101006001841615026000190190921691909104601f810185900485028201850190935282815292909190830182828015610a055780601f106109da57610100808354040283529160200191610a05565b820191906000526020600020905b8154815290600101906020018083116109e857829003601f168201915b5050505050828281518110610a1657fe5b6020908102919091010152600101610940565b507f0000000000000000000000000000000000000000000000000000000000000000925090509091565b600554606090819067ffffffffffffffff81118015610a7157600080fd5b50604051908082528060200260200182016040528015610aa557816020015b6060815260200190600190039081610a905790505b50905060005b600554811015610b94576004600060058381548110610ac657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208054825160026101006001841615026000190190921691909104601f810185900485028201850190935282815292909190830182828015610b705780601f10610b4557610100808354040283529160200191610b70565b820191906000526020600020905b815481529060010190602001808311610b5357829003601f168201915b5050505050828281518110610b8157fe5b6020908102919091010152600101610aab565b50905090565b60065415610bba5760405162461bcd60e51b815260040161041690611301565b6007546001600160a01b03163314610be45760405162461bcd60e51b815260040161041690611412565b43600655565b600554606090819067ffffffffffffffff81118015610c0857600080fd5b50604051908082528060200260200182016040528015610c3c57816020015b6060815260200190600190039081610c275790505b50905060005b600554811015610b94576003600060058381548110610c5d57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208054825160026101006001841615026000190190921691909104601f810185900485028201850190935282815292909190830182828015610d075780601f10610cdc57610100808354040283529160200191610d07565b820191906000526020600020905b815481529060010190602001808311610cea57829003601f168201915b5050505050828281518110610d1857fe5b6020908102919091010152600101610c42565b60046020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156103435780601f1061031857610100808354040283529160200191610343565b600260208181526000928352604092839020805484516001821615610100026000190190911693909304601f81018390048302840183019094528383529192908301828280156103435780601f1061031857610100808354040283529160200191610343565b600554606090819067ffffffffffffffff81118015610e1757600080fd5b50604051908082528060200260200182016040528015610e4b57816020015b6060815260200190600190039081610e365790505b50905060005b600554811015610b94576002600060058381548110610e6c57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208054825160026101006001841615026000190190921691909104601f810185900485028201850190935282815292909190830182828015610f165780601f10610eeb57610100808354040283529160200191610f16565b820191906000526020600020905b815481529060010190602001808311610ef957829003601f168201915b5050505050828281518110610f2757fe5b6020908102919091010152600101610e51565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610f7b5782800160ff19823516178555610fa8565b82800160010185558215610fa8579182015b82811115610fa8578235825591602001919060010190610f8d565b50610fb4929150610fb8565b5090565b61041f91905b80821115610fb45760008155600101610fbe565b600060208284031215610fe3578081fd5b81356001600160a01b0381168114610ff9578182fd5b9392505050565b60008060208385031215611012578081fd5b823567ffffffffffffffff80821115611029578283fd5b81850186601f82011261103a578384fd5b803592508183111561104a578384fd5b86602084830101111561105b578384fd5b60200196919550909350505050565b60006020828403121561107b578081fd5b5035919050565b60008282518085526020808601955080818302840101818601855b848110156110cb57601f198684030189526110b98383516110d8565b9884019892509083019060010161109d565b5090979650505050505050565b60008151808452815b818110156110fd576020818501810151868301820152016110e1565b8181111561110e5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b818110156111785783516001600160a01b031683529284019291840191600101611153565b50909695505050505050565b600060208252610ff96020830184611082565b600060208252610ff960208301846110d8565b60208101600383106111b857fe5b91905290565b60208082526031908201527f75736572206973206e6f7420616c6c6f776c6973746564206f722068617320616040820152701b1c9958591e481c9959da5cdd195c9959607a1b606082015260800190565b6020808252601b908201527f7573657220697320616c726561647920616c6c6f776c69737465640000000000604082015260600190565b60208082526026908201527f796f75206861766520616c7265616479207075626c697368656420796f75722060408201526573686172657360d01b606082015260800190565b6020808252602e908201527f796f75206861766520616c7265616479207075626c697368656420796f75722060408201526d6a757374696669636174696f6e7360901b606082015260800190565b6020808252600d908201526c1112d1c81a185cc8195b991959609a1b604082015260600190565b60208082526017908201527f444b472068617320616c72656164792073746172746564000000000000000000604082015260600190565b6020808252601e908201527f6f6e6c79206f776e6572206d617920616c6c6f776c6973742075736572730000604082015260600190565b60208082526017908201527f796f7520617265206e6f74207265676973746572656421000000000000000000604082015260600190565b6020808252600990820152681112d1c8115b99195960ba1b604082015260600190565b60208082526029908201527f796f75206861766520616c7265616479207075626c697368656420796f757220604082015268726573706f6e73657360b81b606082015260800190565b6020808252601c908201527f6f6e6c79206f776e6572206d61792073746172742074686520444b4700000000604082015260600190565b90815260200190565b60008382526040602083015261146b6040830184611082565b94935050505056fea26469706673582212203f1f0ce9965c785e8b305e512d767bf02e61e58d5c371fadfac3804ce1e2e59364736f6c63430006060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806382fbdc9c116100ad578063be9a655511610071578063be9a65551461025d578063cc5ef00914610265578063cd5e38371461026d578063ce7c2ac214610280578063d73fe0aa146102935761012c565b806382fbdc9c146102045780638da5cb5b14610217578063a7cd52cb1461021f578063a819459614610232578063b0ef8179146102485761012c565b80634ae2b849116100f45780634ae2b849146101b75780635aa68ac0146101bf578063670d14b2146101d4578063785ffb37146101e75780637fd28346146101ef5761012c565b80630c8f81b5146101315780630ea656481461015a578063221f95111461017a57806335c1d3491461018f57806348cd4cb1146101af575b600080fd5b61014461013f366004610fd2565b61029b565b60405161015191906111aa565b60405180910390f35b61016d610168366004610fd2565b6102b0565b6040516101519190611197565b61018261034b565b6040516101519190611449565b6101a261019d36600461106a565b610422565b6040516101519190611123565b610182610449565b61018261044f565b6101c7610473565b6040516101519190611137565b61016d6101e2366004610fd2565b6104d5565b61018261053c565b6102026101fd366004611000565b610560565b005b610202610212366004611000565b61074d565b6101a2610824565b61020261022d366004610fd2565b610833565b61023a6108e5565b604051610151929190611452565b610250610a53565b6040516101519190611184565b610202610b9a565b610250610bea565b61016d61027b366004610fd2565b610d2b565b61016d61028e366004610fd2565b610d93565b610250610df9565b60006020819052908152604090205460ff1681565b60036020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156103435780601f1061031857610100808354040283529160200191610343565b820191906000526020600020905b81548152906001019060200180831161032657829003601f168201915b505050505081565b6000600654600014156103605750600061041f565b60065443037f0000000000000000000000000000000000000000000000000000000000000000811161039657600191505061041f565b7f000000000000000000000000000000000000000000000000000000000000000060020281116103ca57600291505061041f565b7f000000000000000000000000000000000000000000000000000000000000000060030281116103fe57600391505061041f565b60405162461bcd60e51b8152600401610416906113a6565b60405180910390fd5b90565b6005818154811061042f57fe5b6000918252602090912001546001600160a01b0316905081565b60065481565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060058054806020026020016040519081016040528092919081815260200182805480156104cb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104ad575b5050505050905090565b60016020818152600092835260409283902080548451600294821615610100026000190190911693909304601f81018390048302840183019094528383529192908301828280156103435780601f1061031857610100808354040283529160200191610343565b7f000000000000000000000000000000000000000000000000000000000000000081565b60023360009081526020819052604090205460ff16600281111561058057fe5b1461059d5760405162461bcd60e51b81526004016104169061136f565b60065443037f000000000000000000000000000000000000000000000000000000000000000081116106285733600090815260026020819052604090912054600019610100600183161502011604156106085760405162461bcd60e51b815260040161041690611246565b336000908152600260205260409020610622908484610f3a565b50610748565b7f000000000000000000000000000000000000000000000000000000000000000060020281116106ac573360009081526003602052604090205460026000196101006001841615020190911604156106925760405162461bcd60e51b8152600401610416906113c9565b336000908152600360205260409020610622908484610f3a565b7f00000000000000000000000000000000000000000000000000000000000000006003028111610730573360009081526004602052604090205460026000196101006001841615020190911604156107165760405162461bcd60e51b81526004016104169061128c565b336000908152600460205260409020610622908484610f3a565b60405162461bcd60e51b8152600401610416906112da565b505050565b6006541561076d5760405162461bcd60e51b815260040161041690611301565b60013360009081526020819052604090205460ff16600281111561078d57fe5b146107aa5760405162461bcd60e51b8152600401610416906111be565b6005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b03191633908117909155600090815260209190915260409020610805908383610f3a565b5050336000908152602081905260409020805460ff1916600217905550565b6007546001600160a01b031681565b600654156108535760405162461bcd60e51b815260040161041690611301565b6007546001600160a01b0316331461087d5760405162461bcd60e51b815260040161041690611338565b6001600160a01b03811660009081526020819052604081205460ff1660028111156108a457fe5b146108c15760405162461bcd60e51b81526004016104169061120f565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b600060608060058054905067ffffffffffffffff8111801561090657600080fd5b5060405190808252806020026020018201604052801561093a57816020015b60608152602001906001900390816109255790505b50905060005b600554811015610a2957600160006005838154811061095b57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208054825160026101006001841615026000190190921691909104601f810185900485028201850190935282815292909190830182828015610a055780601f106109da57610100808354040283529160200191610a05565b820191906000526020600020905b8154815290600101906020018083116109e857829003601f168201915b5050505050828281518110610a1657fe5b6020908102919091010152600101610940565b507f0000000000000000000000000000000000000000000000000000000000000000925090509091565b600554606090819067ffffffffffffffff81118015610a7157600080fd5b50604051908082528060200260200182016040528015610aa557816020015b6060815260200190600190039081610a905790505b50905060005b600554811015610b94576004600060058381548110610ac657fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208054825160026101006001841615026000190190921691909104601f810185900485028201850190935282815292909190830182828015610b705780601f10610b4557610100808354040283529160200191610b70565b820191906000526020600020905b815481529060010190602001808311610b5357829003601f168201915b5050505050828281518110610b8157fe5b6020908102919091010152600101610aab565b50905090565b60065415610bba5760405162461bcd60e51b815260040161041690611301565b6007546001600160a01b03163314610be45760405162461bcd60e51b815260040161041690611412565b43600655565b600554606090819067ffffffffffffffff81118015610c0857600080fd5b50604051908082528060200260200182016040528015610c3c57816020015b6060815260200190600190039081610c275790505b50905060005b600554811015610b94576003600060058381548110610c5d57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208054825160026101006001841615026000190190921691909104601f810185900485028201850190935282815292909190830182828015610d075780601f10610cdc57610100808354040283529160200191610d07565b820191906000526020600020905b815481529060010190602001808311610cea57829003601f168201915b5050505050828281518110610d1857fe5b6020908102919091010152600101610c42565b60046020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156103435780601f1061031857610100808354040283529160200191610343565b600260208181526000928352604092839020805484516001821615610100026000190190911693909304601f81018390048302840183019094528383529192908301828280156103435780601f1061031857610100808354040283529160200191610343565b600554606090819067ffffffffffffffff81118015610e1757600080fd5b50604051908082528060200260200182016040528015610e4b57816020015b6060815260200190600190039081610e365790505b50905060005b600554811015610b94576002600060058381548110610e6c57fe5b6000918252602080832091909101546001600160a01b0316835282810193909352604091820190208054825160026101006001841615026000190190921691909104601f810185900485028201850190935282815292909190830182828015610f165780601f10610eeb57610100808354040283529160200191610f16565b820191906000526020600020905b815481529060010190602001808311610ef957829003601f168201915b5050505050828281518110610f2757fe5b6020908102919091010152600101610e51565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610f7b5782800160ff19823516178555610fa8565b82800160010185558215610fa8579182015b82811115610fa8578235825591602001919060010190610f8d565b50610fb4929150610fb8565b5090565b61041f91905b80821115610fb45760008155600101610fbe565b600060208284031215610fe3578081fd5b81356001600160a01b0381168114610ff9578182fd5b9392505050565b60008060208385031215611012578081fd5b823567ffffffffffffffff80821115611029578283fd5b81850186601f82011261103a578384fd5b803592508183111561104a578384fd5b86602084830101111561105b578384fd5b60200196919550909350505050565b60006020828403121561107b578081fd5b5035919050565b60008282518085526020808601955080818302840101818601855b848110156110cb57601f198684030189526110b98383516110d8565b9884019892509083019060010161109d565b5090979650505050505050565b60008151808452815b818110156110fd576020818501810151868301820152016110e1565b8181111561110e5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6020808252825182820181905260009190848201906040850190845b818110156111785783516001600160a01b031683529284019291840191600101611153565b50909695505050505050565b600060208252610ff96020830184611082565b600060208252610ff960208301846110d8565b60208101600383106111b857fe5b91905290565b60208082526031908201527f75736572206973206e6f7420616c6c6f776c6973746564206f722068617320616040820152701b1c9958591e481c9959da5cdd195c9959607a1b606082015260800190565b6020808252601b908201527f7573657220697320616c726561647920616c6c6f776c69737465640000000000604082015260600190565b60208082526026908201527f796f75206861766520616c7265616479207075626c697368656420796f75722060408201526573686172657360d01b606082015260800190565b6020808252602e908201527f796f75206861766520616c7265616479207075626c697368656420796f75722060408201526d6a757374696669636174696f6e7360901b606082015260800190565b6020808252600d908201526c1112d1c81a185cc8195b991959609a1b604082015260600190565b60208082526017908201527f444b472068617320616c72656164792073746172746564000000000000000000604082015260600190565b6020808252601e908201527f6f6e6c79206f776e6572206d617920616c6c6f776c6973742075736572730000604082015260600190565b60208082526017908201527f796f7520617265206e6f74207265676973746572656421000000000000000000604082015260600190565b6020808252600990820152681112d1c8115b99195960ba1b604082015260600190565b60208082526029908201527f796f75206861766520616c7265616479207075626c697368656420796f757220604082015268726573706f6e73657360b81b606082015260800190565b6020808252601c908201527f6f6e6c79206f776e6572206d61792073746172742074686520444b4700000000604082015260600190565b90815260200190565b60008382526040602083015261146b6040830184611082565b94935050505056fea26469706673582212203f1f0ce9965c785e8b305e512d767bf02e61e58d5c371fadfac3804ce1e2e59364736f6c63430006060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/packages/cli/src/commands/dkg/allowlist.ts b/packages/cli/src/commands/dkg/allowlist.ts deleted file mode 100644 index 2a5534b6e6f..00000000000 --- a/packages/cli/src/commands/dkg/allowlist.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { ensureLeading0x } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { displayWeb3Tx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -const DKG = require('./DKG.json') - -export default class DKGRegister extends BaseCommand { - static description = 'Allowlist an address in the DKG' - - static flags = { - ...BaseCommand.flags, - participantAddress: flags.string({ - required: true, - description: 'Address of the participant to allowlist', - }), - address: Flags.address({ required: true, description: 'DKG Contract Address' }), - from: Flags.address({ required: true, description: 'Address of the sender' }), - } - - async run() { - const res = this.parse(DKGRegister) - const web3 = this.kit.connection.web3 - - const dkg = new web3.eth.Contract(DKG.abi, res.flags.address) - - const participantAddress = res.flags.participantAddress - await displayWeb3Tx('allowlist', dkg.methods.allowlist(ensureLeading0x(participantAddress)), { - from: res.flags.from, - }) - } -} diff --git a/packages/cli/src/commands/dkg/deploy.ts b/packages/cli/src/commands/dkg/deploy.ts deleted file mode 100644 index c622daedfd6..00000000000 --- a/packages/cli/src/commands/dkg/deploy.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { displayWeb3Tx } from '../../utils/cli' -import { Flags } from '../../utils/command' -const DKG = require('./DKG.json') - -export default class DKGDeploy extends BaseCommand { - static description = 'Deploys the DKG smart contract' - - static flags = { - ...BaseCommand.flags, - phaseDuration: flags.integer({ - required: true, - description: 'Duration of each DKG phase in blocks', - }), - threshold: flags.integer({ required: true, description: 'The threshold to use for the DKG' }), - from: Flags.address({ required: true, description: 'Address of the sender' }), - } - - async run() { - const res = this.parse(DKGDeploy) - const web3 = this.kit.connection.web3 - const dkg = new web3.eth.Contract(DKG.abi) - - await displayWeb3Tx( - 'deployDKG', - dkg.deploy({ data: DKG.bytecode, arguments: [res.flags.threshold, res.flags.phaseDuration] }), - { from: res.flags.from } - ) - } -} diff --git a/packages/cli/src/commands/dkg/get.ts b/packages/cli/src/commands/dkg/get.ts deleted file mode 100644 index cfe8c421e57..00000000000 --- a/packages/cli/src/commands/dkg/get.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { Flags } from '../../utils/command' -const DKG = require('./DKG.json') - -export enum Method { - shares = 'shares', - responses = 'responses', - justifications = 'justifications', - participants = 'participants', - phase = 'phase', - group = 'group', -} - -export default class DKGGet extends BaseCommand { - static description = 'Gets data from the contract to run the next phase' - - static options = ['shares', 'responses', 'justifications', 'participants', 'phase', 'group'] - - static flags = { - ...BaseCommand.flags, - method: flags.enum({ - options: DKGGet.options, - required: true, - description: 'Getter method to call', - }), - address: Flags.address({ required: true, description: 'DKG Contract Address' }), - } - - async run() { - const res = this.parse(DKGGet) - const web3 = this.kit.connection.web3 - - const dkg = new web3.eth.Contract(DKG.abi, res.flags.address) - - const methodType = res.flags.method as keyof typeof Method - switch (methodType) { - case Method.shares: { - const data = await dkg.methods.getShares().call() - this.log(JSON.stringify(data)) - break - } - case Method.responses: { - const data = await dkg.methods.getResponses().call() - this.log(JSON.stringify(data)) - break - } - case Method.justifications: { - const data = await dkg.methods.getJustifications().call() - this.log(JSON.stringify(data)) - break - } - case Method.participants: { - const data = await dkg.methods.getParticipants().call() - this.log(JSON.stringify(data)) - break - } - case Method.phase: { - const phase = await dkg.methods.inPhase().call() - this.log(`In phase: ${phase}`) - break - } - case Method.group: { - const data = await dkg.methods.getBlsKeys().call() - const group = { threshold: data[0], blsKeys: data[1] } - this.log(JSON.stringify(group)) - break - } - } - } -} diff --git a/packages/cli/src/commands/dkg/publish.ts b/packages/cli/src/commands/dkg/publish.ts deleted file mode 100644 index 7dbf2894016..00000000000 --- a/packages/cli/src/commands/dkg/publish.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { ensureLeading0x } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import fs from 'fs' -import { BaseCommand } from '../../base' -import { displayWeb3Tx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -const DKG = require('./DKG.json') - -export default class DKGPublish extends BaseCommand { - static description = 'Publishes data for each phase of the DKG' - - static flags = { - ...BaseCommand.flags, - data: flags.string({ required: true, description: 'Path to the data being published' }), - address: Flags.address({ required: true, description: 'DKG Contract Address' }), - from: Flags.address({ required: true, description: 'Address of the sender' }), - } - - async run() { - const res = this.parse(DKGPublish) - const web3 = this.kit.connection.web3 - - const dkg = new web3.eth.Contract(DKG.abi, res.flags.address) - - const data = fs.readFileSync(res.flags.data).toString('hex') - await displayWeb3Tx('publishData', dkg.methods.publish(ensureLeading0x(data)), { - from: res.flags.from, - }) - } -} diff --git a/packages/cli/src/commands/dkg/register.ts b/packages/cli/src/commands/dkg/register.ts deleted file mode 100644 index eda1ff1217f..00000000000 --- a/packages/cli/src/commands/dkg/register.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { ensureLeading0x } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import fs from 'fs' -import { BaseCommand } from '../../base' -import { displayWeb3Tx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -const DKG = require('./DKG.json') - -export default class DKGRegister extends BaseCommand { - static description = 'Register a public key in the DKG' - - static flags = { - ...BaseCommand.flags, - blsKey: flags.string({ required: true }), - address: Flags.address({ required: true, description: 'DKG Contract Address' }), - from: Flags.address({ required: true, description: 'Address of the sender' }), - } - - async run() { - const res = this.parse(DKGRegister) - const web3 = this.kit.connection.web3 - - const dkg = new web3.eth.Contract(DKG.abi, res.flags.address) - - // read the pubkey and publish it - const blsKey = fs.readFileSync(res.flags.blsKey).toString('hex') - await displayWeb3Tx('registerBlsKey', dkg.methods.register(ensureLeading0x(blsKey)), { - from: res.flags.from, - }) - } -} diff --git a/packages/cli/src/commands/dkg/start.ts b/packages/cli/src/commands/dkg/start.ts deleted file mode 100644 index d49bbc5f1ef..00000000000 --- a/packages/cli/src/commands/dkg/start.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { BaseCommand } from '../../base' -import { displayWeb3Tx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -const DKG = require('./DKG.json') - -export default class DKGStart extends BaseCommand { - static description = 'Starts the DKG' - - static flags = { - ...BaseCommand.flags, - address: Flags.address({ required: true, description: 'DKG Contract Address' }), - from: Flags.address({ required: true, description: 'Address of the sender' }), - } - - async run() { - const res = this.parse(DKGStart) - const web3 = this.kit.connection.web3 - - const dkg = new web3.eth.Contract(DKG.abi, res.flags.address) - - await displayWeb3Tx('start', dkg.methods.start(), { from: res.flags.from }) - this.log('DKG Started!') - } -} diff --git a/packages/cli/src/commands/election/activate.ts b/packages/cli/src/commands/election/activate.ts deleted file mode 100644 index 3194748d681..00000000000 --- a/packages/cli/src/commands/election/activate.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { sleep } from '@celo/utils/lib/async' -import { flags } from '@oclif/command' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ElectionVote extends BaseCommand { - static description = - 'Activate pending votes in validator elections to begin earning rewards. To earn rewards as a voter, it is required to activate your pending votes at some point after the end of the epoch in which they were made.' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Voter's address" }), - wait: flags.boolean({ description: 'Wait until all pending votes can be activated' }), - } - - static examples = [ - 'activate --from 0x4443d0349e8b3075cba511a0a87796597602a0f1', - 'activate --from 0x4443d0349e8b3075cba511a0a87796597602a0f1 --wait', - ] - async run() { - const res = this.parse(ElectionVote) - - await newCheckBuilder(this, res.flags.from).isSignerOrAccount().runChecks() - - const election = await this.kit.contracts.getElection() - const accounts = await this.kit.contracts.getAccounts() - const account = await accounts.voteSignerToAccount(res.flags.from) - const hasPendingVotes = await election.hasPendingVotes(account) - if (hasPendingVotes) { - if (res.flags.wait) { - // Spin until pending votes become activatable. - cli.action.start(`Waiting until pending votes can be activated`) - while (!(await election.hasActivatablePendingVotes(account))) { - await sleep(1000) - } - cli.action.stop() - } - const txos = await election.activate(account) - for (const txo of txos) { - await displaySendTx('activate', txo, { from: res.flags.from }) - } - if (txos.length === 0) { - this.log(`Pending votes not yet activatable. Consider using the --wait flag.`) - } - } else { - this.log(`No pending votes to activate`) - } - } -} diff --git a/packages/cli/src/commands/election/current.ts b/packages/cli/src/commands/election/current.ts deleted file mode 100644 index 6f39726cbea..00000000000 --- a/packages/cli/src/commands/election/current.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { eqAddress } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { validatorTable } from '../validator/list' - -export const otherValidatorTable = { - address: {}, - name: {}, - currentSigner: {}, - signer: {}, - changed: {}, -} -export default class ElectionCurrent extends BaseCommand { - static description = - 'Outputs the set of validators currently participating in BFT to create blocks. An election is run to select the validator set at the end of every epoch.' - - static flags = { - ...BaseCommand.flags, - valset: flags.boolean({ - description: - 'Show currently used signers from valset (by default the authorized validator signers are shown). Useful for checking if keys have been rotated.', - }), - ...(cli.table.flags() as object), - } - - async run() { - const res = this.parse(ElectionCurrent) - cli.action.start('Fetching currently elected Validators') - const election = await this.kit.contracts.getElection() - const validators = await this.kit.contracts.getValidators() - const signers = await election.getCurrentValidatorSigners() - if (res.flags.valset) { - const validatorList = await Promise.all( - signers.map(async (addr) => { - const v = await validators.getValidatorFromSigner(addr) - return { ...v, currentSigner: addr, changed: eqAddress(addr, v.signer) ? '' : 'CHANGING' } - }) - ) - cli.action.stop() - cli.table(validatorList, otherValidatorTable, res.flags) - } else { - const validatorList = await Promise.all( - signers.map((addr) => validators.getValidatorFromSigner(addr)) - ) - cli.action.stop() - cli.table(validatorList, validatorTable, res.flags) - } - } -} diff --git a/packages/cli/src/commands/election/list.ts b/packages/cli/src/commands/election/list.ts deleted file mode 100644 index a144b811fb6..00000000000 --- a/packages/cli/src/commands/election/list.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' - -export default class List extends BaseCommand { - static description = - 'Prints the list of validator groups, the number of votes they have received, the number of additional votes they are able to receive, and whether or not they are eligible to elect validators.' - - static flags = { - ...BaseCommand.flags, - ...(cli.table.flags() as object), - } - - static examples = ['list'] - - async run() { - const res = this.parse(List) - cli.action.start('Fetching validator group vote totals') - const election = await this.kit.contracts.getElection() - const groupVotes = await election.getValidatorGroupsVotes() - cli.action.stop() - cli.table( - groupVotes, - { - address: {}, - name: {}, - votes: { get: (g) => g.votes.toFixed() }, - capacity: { get: (g) => g.capacity.toFixed() }, - eligible: {}, - }, - res.flags - ) - } -} diff --git a/packages/cli/src/commands/election/revoke.ts b/packages/cli/src/commands/election/revoke.ts deleted file mode 100644 index ada18f3c72d..00000000000 --- a/packages/cli/src/commands/election/revoke.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ElectionRevoke extends BaseCommand { - static description = 'Revoke votes for a Validator Group in validator elections.' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Voter's address" }), - for: Flags.address({ - description: "ValidatorGroup's address", - required: true, - }), - value: flags.string({ description: 'Value of votes to revoke', required: true }), - } - - static examples = [ - 'revoke --from 0x4443d0349e8b3075cba511a0a87796597602a0f1 --for 0x932fee04521f5fcb21949041bf161917da3f588b, --value 1000000', - ] - async run() { - const res = this.parse(ElectionRevoke) - - await newCheckBuilder(this, res.flags.from).isSignerOrAccount().runChecks() - - const election = await this.kit.contracts.getElection() - const accounts = await this.kit.contracts.getAccounts() - const account = await accounts.voteSignerToAccount(res.flags.from) - const txos = await election.revoke(account, res.flags.for, new BigNumber(res.flags.value)) - for (const txo of txos) { - await displaySendTx('revoke', txo, { from: res.flags.from }) - } - } -} diff --git a/packages/cli/src/commands/election/run.ts b/packages/cli/src/commands/election/run.ts deleted file mode 100644 index 23d429a75d4..00000000000 --- a/packages/cli/src/commands/election/run.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { ContractKit } from '@celo/contractkit/lib' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { validatorTable } from '../validator/list' - -async function performElections(kit: ContractKit) { - const election = await kit.contracts.getElection() - try { - const signers = await election.electValidatorSigners() - return signers - } catch (err) { - console.warn('Warning: error running actual elections, retrying with minimum validators at 0') - return election.electValidatorSigners(0) - } -} - -export default class ElectionRun extends BaseCommand { - static description = - 'Runs a "mock" election and prints out the validators that would be elected if the epoch ended right now.' - - static flags = { - ...BaseCommand.flags, - ...(cli.table.flags() as object), - } - - async run() { - const res = this.parse(ElectionRun) - cli.action.start('Running mock election') - const validators = await this.kit.contracts.getValidators() - - const signers = await performElections(this.kit) - - const validatorList = await Promise.all( - signers.map((addr) => validators.getValidatorFromSigner(addr)) - ) - cli.action.stop() - cli.table(validatorList, validatorTable, res.flags) - } -} diff --git a/packages/cli/src/commands/election/show.ts b/packages/cli/src/commands/election/show.ts deleted file mode 100644 index 685ce459c94..00000000000 --- a/packages/cli/src/commands/election/show.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { flags } from '@oclif/command' -import { IArg } from '@oclif/parser/lib/args' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { printValueMapRecursive } from '../../utils/cli' -import { Args } from '../../utils/command' - -export default class ElectionShow extends BaseCommand { - static description = 'Show election information about a voter or registered Validator Group' - - static flags = { - ...BaseCommand.flags, - voter: flags.boolean({ - exclusive: ['group'], - description: 'Show information about an account voting in Validator elections', - }), - group: flags.boolean({ - exclusive: ['voter'], - description: 'Show information about a group running in Validator elections', - }), - } - - static args: IArg[] = [ - Args.address('address', { description: "Voter or Validator Groups's address" }), - ] - - static examples = [ - 'show 0x97f7333c51897469E8D98E7af8653aAb468050a3 --voter', - 'show 0x97f7333c51897469E8D98E7af8653aAb468050a3 --group', - ] - - async run() { - const res = this.parse(ElectionShow) - const address = res.args.address - const election = await this.kit.contracts.getElection() - - if (res.flags.group) { - await newCheckBuilder(this).isValidatorGroup(address).runChecks() - const groupVotes = await election.getValidatorGroupVotes(address) - printValueMapRecursive(groupVotes) - } else if (res.flags.voter) { - await newCheckBuilder(this).isAccount(address).runChecks() - const voter = await election.getVoter(address) - printValueMapRecursive(voter) - } else { - throw Error('Must select --voter or --group') - } - } -} diff --git a/packages/cli/src/commands/election/vote.ts b/packages/cli/src/commands/election/vote.ts deleted file mode 100644 index 3b10736a020..00000000000 --- a/packages/cli/src/commands/election/vote.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ElectionVote extends BaseCommand { - static description = 'Vote for a Validator Group in validator elections.' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Voter's address" }), - for: Flags.address({ - description: "ValidatorGroup's address", - required: true, - }), - value: flags.string({ description: 'Amount of Gold used to vote for group', required: true }), - } - - static examples = [ - 'vote --from 0x4443d0349e8b3075cba511a0a87796597602a0f1 --for 0x932fee04521f5fcb21949041bf161917da3f588b, --value 1000000', - ] - async run() { - const res = this.parse(ElectionVote) - const value = new BigNumber(res.flags.value) - - await newCheckBuilder(this, res.flags.from) - .isSignerOrAccount() - .isValidatorGroup(res.flags.for) - .hasEnoughNonvotingLockedGold(value) - .runChecks() - - const election = await this.kit.contracts.getElection() - const tx = await election.vote(res.flags.for, value) - await displaySendTx('vote', tx) - } -} diff --git a/packages/cli/src/commands/exchange/celo.ts b/packages/cli/src/commands/exchange/celo.ts deleted file mode 100644 index c3ea2fab2f5..00000000000 --- a/packages/cli/src/commands/exchange/celo.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { stableTokenInfos } from '@celo/contractkit/lib/celo-tokens' -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx, failWith } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { checkNotDangerousExchange } from '../../utils/exchange' -import { enumEntriesDupWithLowercase } from '../../utils/helpers' - -const largeOrderPercentage = 1 -const deppegedPricePercentage = 20 - -const stableTokenOptions = enumEntriesDupWithLowercase(Object.entries(StableToken)) -export default class ExchangeCelo extends BaseCommand { - static description = - 'Exchange CELO for StableTokens via the stability mechanism. (Note: this is the equivalent of the old exchange:gold)' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: 'The address with CELO to exchange' }), - value: Flags.wei({ - required: true, - description: 'The value of CELO to exchange for a StableToken', - }), - forAtLeast: Flags.wei({ - description: 'Optional, the minimum value of StableTokens to receive in return', - default: new BigNumber(0), - }), - stableToken: flags.enum({ - options: Object.keys(stableTokenOptions), - description: 'Name of the stable to receive', - default: 'cUSD', - }), - } - - static args = [] - - static examples = [ - 'celo --value 5000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d', - 'celo --value 5000000000000 --forAtLeast 100000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d --stableToken cStableTokenSymbol', - ] - - async run() { - const res = this.parse(ExchangeCelo) - const sellAmount = res.flags.value - const minBuyAmount = res.flags.forAtLeast - const stableToken = stableTokenOptions[res.flags.stableToken] - - let exchange - try { - exchange = await this.kit.contracts.getExchange(stableToken) - } catch { - failWith(`The ${stableToken} token was not deployed yet`) - } - - await newCheckBuilder(this).hasEnoughCelo(res.flags.from, sellAmount).runChecks() - - if (minBuyAmount.toNumber() === 0) { - const check = await checkNotDangerousExchange( - this.kit, - sellAmount, - largeOrderPercentage, - deppegedPricePercentage, - true, - stableTokenInfos[stableToken] - ) - - if (!check) { - console.log('Cancelled') - return - } - } - - const celoToken = await this.kit.contracts.getGoldToken() - - await displaySendTx( - 'increaseAllowance', - celoToken.increaseAllowance(exchange.address, sellAmount.toFixed()) - ) - - const exchangeTx = exchange.exchange(sellAmount.toFixed(), minBuyAmount!.toFixed(), true) - // Set explicit gas based on github.com/celo-org/celo-monorepo/issues/2541 - await displaySendTx('exchange', exchangeTx, { gas: 300000 }) - } -} diff --git a/packages/cli/src/commands/exchange/dollars.ts b/packages/cli/src/commands/exchange/dollars.ts deleted file mode 100644 index ed606f926fe..00000000000 --- a/packages/cli/src/commands/exchange/dollars.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import ExchangeStableBase from '../../exchange-stable-base' -import { Flags } from '../../utils/command' -export default class ExchangeDollars extends ExchangeStableBase { - static description = 'Exchange Celo Dollars for CELO via the stability mechanism' - - static flags = { - ...ExchangeStableBase.flags, - from: Flags.address({ - required: true, - description: 'The address with Celo Dollars to exchange', - }), - value: Flags.wei({ - required: true, - description: 'The value of Celo Dollars to exchange for CELO', - }), - } - - static examples = [ - 'dollars --value 10000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d', - 'dollars --value 10000000000000 --forAtLeast 50000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d', - ] - - async init() { - this._stableCurrency = StableToken.cUSD - await super.init() - } -} diff --git a/packages/cli/src/commands/exchange/euros.ts b/packages/cli/src/commands/exchange/euros.ts deleted file mode 100644 index 3e46573107c..00000000000 --- a/packages/cli/src/commands/exchange/euros.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import ExchangeStableBase from '../../exchange-stable-base' -import { Flags } from '../../utils/command' -export default class ExchangeEuros extends ExchangeStableBase { - static description = 'Exchange Celo Euros for CELO via the stability mechanism' - - static flags = { - ...ExchangeStableBase.flags, - from: Flags.address({ - required: true, - description: 'The address with Celo Euros to exchange', - }), - value: Flags.wei({ - required: true, - description: 'The value of Celo Euros to exchange for CELO', - }), - } - - static examples = [ - 'euros --value 10000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d', - 'euros --value 10000000000000 --forAtLeast 50000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d', - ] - - async init() { - this._stableCurrency = StableToken.cEUR - await super.init() - } -} diff --git a/packages/cli/src/commands/exchange/gold.ts b/packages/cli/src/commands/exchange/gold.ts deleted file mode 100644 index 5a214816116..00000000000 --- a/packages/cli/src/commands/exchange/gold.ts +++ /dev/null @@ -1,17 +0,0 @@ -import ExchangeCelo from './celo' - -export default class ExchangeGold extends ExchangeCelo { - static description = - 'Exchange CELO for StableTokens via the stability mechanism. *DEPRECATION WARNING* Use the "exchange:celo" command instead' - - static flags = { - ...ExchangeCelo.flags, - } - - static args = [] - - static examples = [ - 'gold --value 5000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d', - 'gold --value 5000000000000 --forAtLeast 100000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d --stableToken cUSD', - ] -} diff --git a/packages/cli/src/commands/exchange/reals.ts b/packages/cli/src/commands/exchange/reals.ts deleted file mode 100644 index 4e4a4af5252..00000000000 --- a/packages/cli/src/commands/exchange/reals.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import ExchangeStableBase from '../../exchange-stable-base' -import { Flags } from '../../utils/command' -export default class ExchangeEuros extends ExchangeStableBase { - static description = 'Exchange Celo Brazilian Real (cREAL) for CELO via the stability mechanism' - - static flags = { - ...ExchangeStableBase.flags, - from: Flags.address({ - required: true, - description: 'The address with Celo Brazilian Real to exchange', - }), - value: Flags.wei({ - required: true, - description: 'The value of Celo Brazilian Real to exchange for CELO', - }), - } - - static examples = [ - 'reals --value 10000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d', - 'reals --value 10000000000000 --forAtLeast 50000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d', - ] - - async init() { - this._stableCurrency = StableToken.cREAL - await super.init() - } -} diff --git a/packages/cli/src/commands/exchange/show.ts b/packages/cli/src/commands/exchange/show.ts deleted file mode 100644 index e6bc69dbd2e..00000000000 --- a/packages/cli/src/commands/exchange/show.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { StableTokenInfo } from '@celo/contractkit/lib/celo-tokens' -import { flags } from '@oclif/command' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' - -export default class ExchangeShow extends BaseCommand { - static description = 'Show the current exchange rates offered by the Exchange' - - static flags = { - ...BaseCommand.flags, - amount: flags.string({ - description: 'Amount of the token being exchanged to report rates for', - default: '1000000000000000000', - }), - } - - static args = [] - - static examples = ['list'] - - async run() { - const { flags: parsedFlags } = this.parse(ExchangeShow) - - cli.action.start('Fetching exchange rates...') - const exchangeAmounts = await this.kit.celoTokens.forStableCeloToken( - async (info: StableTokenInfo) => { - const exchange = await this.kit.contracts.getContract(info.exchangeContract) - return { - buy: await exchange.getBuyTokenAmount(parsedFlags.amount as string, true), - sell: await exchange.getBuyTokenAmount(parsedFlags.amount as string, false), - } - } - ) - cli.action.stop() - - Object.entries(exchangeAmounts).forEach((element) => { - this.log(`CELO/${element[0]}:`) - this.log(`${parsedFlags.amount} CELO => ${element[1]!.buy} ${element[0]}`) - this.log(`${parsedFlags.amount} ${element[0]} => ${element[1]!.sell} CELO`) - }) - } -} diff --git a/packages/cli/src/commands/exchange/stable.ts b/packages/cli/src/commands/exchange/stable.ts deleted file mode 100644 index 818c5027b95..00000000000 --- a/packages/cli/src/commands/exchange/stable.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { flags } from '@oclif/command' -import ExchangeStableBase from '../../exchange-stable-base' -import { enumEntriesDupWithLowercase } from '../../utils/helpers' - -const stableTokenOptions = enumEntriesDupWithLowercase(Object.entries(StableToken)) -export default class ExchangeStable extends ExchangeStableBase { - static description = 'Exchange Stable Token for CELO via the stability mechanism' - - static flags = { - ...ExchangeStableBase.flags, - stableToken: flags.enum({ - options: Object.keys(stableTokenOptions), - description: 'Name of the stable token to be transfered', - }), - } - - static examples = [ - 'stable --value 10000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d --stableToken cStableTokenSymbol', - 'stable --value 10000000000000 --forAtLeast 50000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d --stableToken cStableTokenSymbol', - ] - - async init() { - const res = this.parse(ExchangeStable) - const stableName = res.flags.stableToken - this._stableCurrency = stableTokenOptions[stableName] - await super.init() - } -} diff --git a/packages/cli/src/commands/governance/approve.test.ts b/packages/cli/src/commands/governance/approve.test.ts deleted file mode 100644 index 18bc7e9a7ad..00000000000 --- a/packages/cli/src/commands/governance/approve.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Address } from '@celo/connect' -import { newKitFromWeb3 } from '@celo/contractkit' -import { GovernanceWrapper } from '@celo/contractkit/lib/wrappers/Governance' -import { NetworkConfig, testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Approve from './approve' - -process.env.NO_SYNCCHECK = 'true' - -const expConfig = NetworkConfig.governance - -testWithGanache('governance:approve cmd', (web3: Web3) => { - const minDeposit = web3.utils.toWei(expConfig.minDeposit.toString(), 'ether') - const kit = newKitFromWeb3(web3) - const proposalID = '1' - - let accounts: Address[] = [] - let governance: GovernanceWrapper - - beforeEach(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - governance = await kit.contracts.getGovernance() - await governance - .propose([], 'URL') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await timeTravel(expConfig.dequeueFrequency, web3) - }) - test('approve fails if approver not passed in', async () => { - await expect( - testLocally(Approve, ['--from', accounts[0], '--proposalID', proposalID]) - ).rejects.toThrow("Some checks didn't pass!") - }) - test('can approve with multisig option', async () => { - await testLocally(Approve, ['--from', accounts[0], '--proposalID', proposalID, '--useMultiSig']) - expect(await governance.isApproved(proposalID)).toBeTruthy() - }) -}) diff --git a/packages/cli/src/commands/governance/approve.ts b/packages/cli/src/commands/governance/approve.ts deleted file mode 100644 index 5affb43a02a..00000000000 --- a/packages/cli/src/commands/governance/approve.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { CeloTransactionObject } from '@celo/connect' -import { toBuffer } from '@ethereumjs/util' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx, failWith } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Approve extends BaseCommand { - static description = 'Approve a dequeued governance proposal (or hotfix)' - - static aliases = ['governance:approve', 'governance:approvehotfix'] - - // Only authorized approvers need to know about this command. - static hidden = true - - static flags = { - ...BaseCommand.flags, - proposalID: flags.string({ - description: 'UUID of proposal to approve', - exclusive: ['hotfix'], - }), - from: Flags.address({ required: true, description: "Approver's address" }), - useMultiSig: flags.boolean({ - description: 'True means the request will be sent through multisig.', - }), - hotfix: flags.string({ - exclusive: ['proposalID'], - description: 'Hash of hotfix proposal', - }), - } - - static examples = [ - 'approve --proposalID 99 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631', - 'approve --proposalID 99 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 --useMultiSig', - 'approve --hotfix 0xfcfc98ec3db7c56f0866a7149e811bf7f9e30c9d40008b0def497fcc6fe90649 --from 0xCc50EaC48bA71343dC76852FAE1892c6Bd2971DA --useMultiSig', - ] - - async run() { - const res = this.parse(Approve) - const account = res.flags.from - const useMultiSig = res.flags.useMultiSig - const id = res.flags.proposalID - const hotfix = res.flags.hotfix - this.kit.defaultAccount = account - const governance = await this.kit.contracts.getGovernance() - const governanceApproverMultiSig = useMultiSig - ? await governance.getApproverMultisig() - : undefined - const approver = useMultiSig ? governanceApproverMultiSig!.address : account - - const checkBuilder = newCheckBuilder(this) - .isApprover(approver) - .addConditionalCheck(`${account} is multisig signatory`, useMultiSig, () => - governanceApproverMultiSig!.isowner(account) - ) - - let governanceTx: CeloTransactionObject - let logEvent: string - if (id) { - if (await governance.isQueued(id)) { - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - } - - const governanceVersion = await governance.version() - - await checkBuilder - .proposalExists(id) - .proposalInStage( - id, - governanceVersion.storage === '1' && governanceVersion.major < 3 - ? 'Approval' - : 'Referendum' - ) - .addCheck(`${id} not already approved`, async () => !(await governance.isApproved(id))) - .runChecks() - governanceTx = await governance.approve(id) - logEvent = 'ProposalApproved' - } else if (hotfix) { - const hotfixBuf = toBuffer(hotfix) as Buffer - await checkBuilder.hotfixNotExecuted(hotfixBuf).hotfixNotApproved(hotfixBuf).runChecks() - governanceTx = governance.approveHotfix(hotfixBuf) - logEvent = 'HotfixApproved' - } else { - failWith('Proposal ID or hotfix must be provided') - } - - const tx = useMultiSig - ? await governanceApproverMultiSig!.submitOrConfirmTransaction( - governance.address, - governanceTx.txo - ) - : governanceTx - await displaySendTx('approveTx', tx, {}, logEvent) - } -} diff --git a/packages/cli/src/commands/governance/build-proposal.ts b/packages/cli/src/commands/governance/build-proposal.ts deleted file mode 100644 index 5a32e0ec0bf..00000000000 --- a/packages/cli/src/commands/governance/build-proposal.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { InteractiveProposalBuilder, ProposalBuilder } from '@celo/governance/lib/proposals' -import { flags } from '@oclif/command' -import { writeFileSync } from 'fs-extra' -import { BaseCommand } from '../../base' -import { - addExistingProposalIDToBuilder, - addExistingProposalJSONFileToBuilder, - checkProposal, -} from '../../utils/governance' - -export default class BuildProposal extends BaseCommand { - static description = 'Interactively build a governance proposal' - - static flags = { - ...BaseCommand.flags, - output: flags.string({ - required: false, - description: 'Path to output', - default: 'proposalTransactions.json', - }), - afterExecutingProposal: flags.string({ - required: false, - description: 'Path to proposal which will be executed prior to proposal being built', - exclusive: ['afterExecutingID'], - }), - afterExecutingID: flags.string({ - required: false, - description: - 'Governance proposal identifier which will be executed prior to proposal being built', - exclusive: ['afterExecutingProposal'], - }), - } - - static examples = ['build-proposal --output ./transactions.json'] - - async run() { - const res = this.parse(BuildProposal) - - const builder = new ProposalBuilder(this.kit) - - if (res.flags.afterExecutingID) { - await addExistingProposalIDToBuilder(this.kit, builder, res.flags.afterExecutingID) - } else if (res.flags.afterExecutingProposal) { - await addExistingProposalJSONFileToBuilder(builder, res.flags.afterExecutingProposal) - } - - // TODO: optimize builder redundancies - - const promptBuilder = new InteractiveProposalBuilder(builder) - const output = await promptBuilder.promptTransactions() - console.info(`Outputting proposal to ${res.flags.output}`) - writeFileSync(res.flags.output!, JSON.stringify(output)) - - output.forEach((tx) => builder.addJsonTx(tx)) - const proposal = await builder.build() - - await checkProposal(proposal, this.kit) - } -} diff --git a/packages/cli/src/commands/governance/dequeue.ts b/packages/cli/src/commands/governance/dequeue.ts deleted file mode 100644 index c70641a7175..00000000000 --- a/packages/cli/src/commands/governance/dequeue.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { BaseCommand } from '../../base' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Dequeue extends BaseCommand { - static description = 'Try to dequeue governance proposal' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: 'From address' }), - } - - static examples = ['dequeue --from 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const res = this.parse(Dequeue) - const account = res.flags.from - this.kit.defaultAccount = account - const governance = await this.kit.contracts.getGovernance() - - await displaySendTx('dequeue', governance.dequeueProposalsIfReady(), {}, 'ProposalsDequeued') - } -} diff --git a/packages/cli/src/commands/governance/execute.ts b/packages/cli/src/commands/governance/execute.ts deleted file mode 100644 index 29c2b24b4cf..00000000000 --- a/packages/cli/src/commands/governance/execute.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Execute extends BaseCommand { - static description = 'Execute a passing governance proposal' - - static flags = { - ...BaseCommand.flags, - proposalID: flags.string({ required: true, description: 'UUID of proposal to execute' }), - from: Flags.address({ required: true, description: "Executor's address" }), - } - - static examples = ['execute --proposalID 99 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const res = this.parse(Execute) - const id = res.flags.proposalID - const account = res.flags.from - - this.kit.defaultAccount = account - await newCheckBuilder(this, account) - .proposalExists(id) - .proposalInStage(id, 'Execution') - .proposalIsPassing(id) - .runChecks() - - const governance = await this.kit.contracts.getGovernance() - await displaySendTx('executeTx', await governance.execute(id), {}, 'ProposalExecuted') - } -} diff --git a/packages/cli/src/commands/governance/executehotfix.ts b/packages/cli/src/commands/governance/executehotfix.ts deleted file mode 100644 index edd97bd4c0c..00000000000 --- a/packages/cli/src/commands/governance/executehotfix.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { hotfixToHash, ProposalBuilder, ProposalTransactionJSON } from '@celo/governance' -import { hexToBuffer } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import { readFileSync } from 'fs-extra' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ExecuteHotfix extends BaseCommand { - static description = 'Execute a governance hotfix prepared for the current epoch' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Executors's address" }), - jsonTransactions: flags.string({ required: true, description: 'Path to json transactions' }), - salt: flags.string({ required: true, description: 'Secret salt associated with hotfix' }), - } - - static examples = [ - 'executehotfix --jsonTransactions ./transactions.json --salt 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631', - ] - - async run() { - const res = this.parse(ExecuteHotfix) - const account = res.flags.from - this.kit.defaultAccount = account - - const jsonString = readFileSync(res.flags.jsonTransactions).toString() - const jsonTransactions: ProposalTransactionJSON[] = JSON.parse(jsonString) - - const builder = new ProposalBuilder(this.kit) - jsonTransactions.forEach((tx) => builder.addJsonTx(tx)) - const hotfix = await builder.build() - const saltBuff = hexToBuffer(res.flags.salt) - const hash = hotfixToHash(this.kit, hotfix, saltBuff) - - const governance = await this.kit.contracts.getGovernance() - const record = await governance.getHotfixRecord(hash) - - await newCheckBuilder(this, account) - .hotfixIsPassing(hash) - .hotfixNotExecuted(hash) - .addCheck(`Hotfix 0x${hash.toString('hex')} is prepared for current epoch`, async () => { - const validators = await this.kit.contracts.getValidators() - const currentEpoch = await validators.getEpochNumber() - return record.preparedEpoch.eq(currentEpoch) - }) - .addCheck(`Hotfix 0x${hash.toString('hex')} is approved`, () => record.approved) - .runChecks() - - await displaySendTx( - 'executeHotfixTx', - governance.executeHotfix(hotfix, saltBuff), - {}, - 'HotfixExecuted' - ) - } -} diff --git a/packages/cli/src/commands/governance/hashhotfix.ts b/packages/cli/src/commands/governance/hashhotfix.ts deleted file mode 100644 index 673583b1037..00000000000 --- a/packages/cli/src/commands/governance/hashhotfix.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { hotfixToHash, ProposalBuilder, ProposalTransactionJSON } from '@celo/governance' -import { trimLeading0x } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import { readFileSync } from 'fs-extra' -import { BaseCommand } from '../../base' -import { printValueMap } from '../../utils/cli' -import { checkProposal } from '../../utils/governance' - -export default class HashHotfix extends BaseCommand { - static description = 'Hash a governance hotfix specified by JSON and a salt' - - static flags = { - ...BaseCommand.flags, - jsonTransactions: flags.string({ - required: true, - description: 'Path to json transactions of the hotfix', - }), - force: flags.boolean({ description: 'Skip execution check', default: false }), - salt: flags.string({ required: true, description: 'Secret salt associated with hotfix' }), - } - - static examples = [ - 'hashhotfix --jsonTransactions ./transactions.json --salt 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658', - ] - - async run() { - const res = this.parse(HashHotfix) - - // Parse the transactions JSON file. - const jsonString = readFileSync(res.flags.jsonTransactions).toString() - const jsonTransactions: ProposalTransactionJSON[] = JSON.parse(jsonString) - const builder = new ProposalBuilder(this.kit) - jsonTransactions.forEach((tx) => builder.addJsonTx(tx)) - const hotfix = await builder.build() - - if (!res.flags.force) { - const ok = await checkProposal(hotfix, this.kit) - if (!ok) { - return - } - } - - // Combine with the salt and hash the proposal. - const saltBuff = Buffer.from(trimLeading0x(res.flags.salt), 'hex') - console.log(`salt: ${res.flags.salt}, buf: ${saltBuff.toString('hex')}`) - const hash = hotfixToHash(this.kit, hotfix, saltBuff) - - // Print the hash to the console. - printValueMap({ hash: '0x' + hash.toString('hex') }) - } -} diff --git a/packages/cli/src/commands/governance/list.ts b/packages/cli/src/commands/governance/list.ts deleted file mode 100644 index 9453d2af802..00000000000 --- a/packages/cli/src/commands/governance/list.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { valueToString } from '@celo/contractkit/lib/wrappers/BaseWrapper' -import { concurrentMap } from '@celo/utils/lib/async' -import { zip } from '@celo/utils/lib/collections' -import chalk from 'chalk' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' - -export default class List extends BaseCommand { - static description = 'List live governance proposals (queued and ongoing)' - - static flags = { - ...BaseCommand.flags, - ...(cli.table.flags() as object), - } - - static examples = ['list'] - - async run() { - const res = this.parse(List) - - const governance = await this.kit.contracts.getGovernance() - const queue = await governance.getQueue() - const expiredQueueMap = await concurrentMap(5, queue, (upvoteRecord) => - governance.isQueuedProposalExpired(upvoteRecord.proposalID) - ) - const unexpiredQueue = queue.filter((_, idx) => !expiredQueueMap[idx]) - const sortedQueue = governance.sortedQueue(unexpiredQueue) - - console.log(chalk.magenta.bold('Queued Proposals:')) - cli.table( - sortedQueue, - { - ID: { get: (p) => valueToString(p.proposalID) }, - upvotes: { get: (p) => valueToString(p.upvotes) }, - }, - res.flags - ) - - const dequeue = await governance.getDequeue(true) - const expiredDequeueMap = await concurrentMap(5, dequeue, governance.isDequeuedProposalExpired) - const unexpiredDequeue = dequeue.filter((_, idx) => !expiredDequeueMap[idx]) - const stages = await concurrentMap(5, unexpiredDequeue, governance.getProposalStage) - const proposals = zip((proposalID, stage) => ({ proposalID, stage }), unexpiredDequeue, stages) - - console.log(chalk.blue.bold('Dequeued Proposals:')) - cli.table( - proposals, - { - ID: { get: (p) => valueToString(p.proposalID) }, - stage: {}, - }, - res.flags - ) - - console.log(chalk.red.bold('Expired Proposals:')) - const expiredQueue = queue - .filter((_, idx) => expiredQueueMap[idx]) - .map((_, idx) => queue[idx].proposalID) - const expiredDequeue = dequeue - .filter((_, idx) => expiredDequeueMap[idx]) - .map((_, idx) => dequeue[idx]) - cli.table( - expiredQueue.concat(expiredDequeue), - { - ID: { get: (id) => valueToString(id) }, - }, - res.flags - ) - } -} diff --git a/packages/cli/src/commands/governance/preparehotfix.ts b/packages/cli/src/commands/governance/preparehotfix.ts deleted file mode 100644 index 3bc9c02b106..00000000000 --- a/packages/cli/src/commands/governance/preparehotfix.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { toBuffer } from '@ethereumjs/util' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class PrepareHotfix extends BaseCommand { - static description = 'Prepare a governance hotfix for execution in the current epoch' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Preparer's address" }), - hash: flags.string({ required: true, description: 'Hash of hotfix transactions' }), - } - - static examples = [ - 'preparehotfix --hash 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631', - ] - - async run() { - const res = this.parse(PrepareHotfix) - const account = res.flags.from - this.kit.defaultAccount = account - - const governance = await this.kit.contracts.getGovernance() - const hash = toBuffer(res.flags.hash) as Buffer - - await newCheckBuilder(this, account) - .hotfixIsPassing(hash) - .hotfixNotExecuted(hash) - .addCheck( - `Hotfix 0x${hash.toString('hex')} not already prepared for current epoch`, - async () => { - const { preparedEpoch } = await governance.getHotfixRecord(hash) - const validators = await this.kit.contracts.getValidators() - const currentEpoch = await validators.getEpochNumber() - return preparedEpoch.lt(currentEpoch) - } - ) - .runChecks() - - await displaySendTx('prepareHotfixTx', governance.prepareHotfix(hash), {}, 'HotfixPrepared') - } -} diff --git a/packages/cli/src/commands/governance/propose.ts b/packages/cli/src/commands/governance/propose.ts deleted file mode 100644 index 4ae11fc4df9..00000000000 --- a/packages/cli/src/commands/governance/propose.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { ProposalBuilder, proposalToJSON, ProposalTransactionJSON } from '@celo/governance' -import { flags } from '@oclif/command' -import { BigNumber } from 'bignumber.js' -import { readFileSync } from 'fs' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx, printValueMapRecursive } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { - addExistingProposalIDToBuilder, - addExistingProposalJSONFileToBuilder, - checkProposal, -} from '../../utils/governance' -export default class Propose extends BaseCommand { - static description = 'Submit a governance proposal' - - static flags = { - ...BaseCommand.flags, - jsonTransactions: flags.string({ - required: true, - description: 'Path to json transactions', - }), - deposit: flags.string({ required: true, description: 'Amount of Gold to attach to proposal' }), - from: Flags.address({ required: true, description: "Proposer's address" }), - force: flags.boolean({ description: 'Skip execution check', default: false }), - descriptionURL: flags.string({ - required: true, - description: 'A URL where further information about the proposal can be viewed', - }), - afterExecutingProposal: flags.string({ - required: false, - description: 'Path to proposal which will be executed prior to proposal', - exclusive: ['afterExecutingID'], - }), - afterExecutingID: flags.string({ - required: false, - description: 'Governance proposal identifier which will be executed prior to proposal', - exclusive: ['afterExecutingProposal'], - }), - } - - static examples = [ - 'propose --jsonTransactions ./transactions.json --deposit 10000 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 --descriptionURL https://gist.github.com/yorhodes/46430eacb8ed2f73f7bf79bef9d58a33', - ] - - async run() { - const res = this.parse(Propose) - const account = res.flags.from - const deposit = new BigNumber(res.flags.deposit) - this.kit.defaultAccount = account - - await newCheckBuilder(this, account) - .hasEnoughCelo(account, deposit) - .exceedsProposalMinDeposit(deposit) - .runChecks() - - const builder = new ProposalBuilder(this.kit) - - if (res.flags.afterExecutingID) { - await addExistingProposalIDToBuilder(this.kit, builder, res.flags.afterExecutingID) - } else if (res.flags.afterExecutingProposal) { - await addExistingProposalJSONFileToBuilder(builder, res.flags.afterExecutingProposal) - } - - // BUILD FROM JSON - const jsonString = readFileSync(res.flags.jsonTransactions).toString() - const jsonTransactions: ProposalTransactionJSON[] = JSON.parse(jsonString) - jsonTransactions.forEach((tx) => builder.addJsonTx(tx)) - - // BUILD FROM CONTRACTKIT FUNCTIONS - // const params = await this.kit.contracts.getBlockchainParameters() - // builder.addTx(params.setMinimumClientVersion(1, 8, 24), { to: params.address }) - // builder.addWeb3Tx() - // builder.addProxyRepointingTx - const proposal = await builder.build() - printValueMapRecursive(await proposalToJSON(this.kit, proposal, builder.registryAdditions)) - - const governance = await this.kit.contracts.getGovernance() - - if (!res.flags.force) { - const ok = await checkProposal(proposal, this.kit) - if (!ok) { - return - } - } - - await displaySendTx( - 'proposeTx', - governance.propose(proposal, res.flags.descriptionURL), - { value: deposit.toString() }, - 'ProposalQueued' - ) - } -} diff --git a/packages/cli/src/commands/governance/revokeupvote.ts b/packages/cli/src/commands/governance/revokeupvote.ts deleted file mode 100644 index 270c670a7da..00000000000 --- a/packages/cli/src/commands/governance/revokeupvote.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class RevokeUpvote extends BaseCommand { - static description = 'Revoke upvotes for queued governance proposals' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Upvoter's address" }), - } - - static examples = ['revokeupvote --from 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const res = this.parse(RevokeUpvote) - const signer = res.flags.from - this.kit.defaultAccount = signer - - await newCheckBuilder(this, signer).isVoteSignerOrAccount().runChecks() - - // TODO(nategraf): Check whether there are upvotes to revoke before sending transaction. - const governance = await this.kit.contracts.getGovernance() - const account = await (await this.kit.contracts.getAccounts()).voteSignerToAccount(signer) - await displaySendTx( - 'revokeUpvoteTx', - await governance.revokeUpvote(account), - {}, - 'ProposalUpvoteRevoked' - ) - } -} diff --git a/packages/cli/src/commands/governance/show.ts b/packages/cli/src/commands/governance/show.ts deleted file mode 100644 index df4ba66a773..00000000000 --- a/packages/cli/src/commands/governance/show.ts +++ /dev/null @@ -1,177 +0,0 @@ -import { ProposalBuilder, proposalToJSON } from '@celo/governance' -import { concurrentMap } from '@celo/utils/lib/async' -import { toBuffer } from '@ethereumjs/util' -import { flags } from '@oclif/command' -import chalk from 'chalk' -import { writeFileSync } from 'fs' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { printValueMap, printValueMapRecursive } from '../../utils/cli' -import { - addExistingProposalIDToBuilder, - addExistingProposalJSONFileToBuilder, -} from '../../utils/governance' - -export default class Show extends BaseCommand { - static aliases = [ - 'governance:show', - 'governance:showhotfix', - 'governance:showaccount', - 'governance:view', - 'governance:viewhotfix', - 'governance:viewaccount', - ] - - static description = 'Show information about a governance proposal, hotfix, or account.' - - static flags = { - ...BaseCommand.flags, - raw: flags.boolean({ required: false, description: 'Display proposal in raw bytes format' }), - jsonTransactions: flags.string({ - required: false, - description: 'Output proposal JSON to provided file', - }), - proposalID: flags.string({ - exclusive: ['account', 'hotfix'], - description: 'UUID of proposal to view', - }), - account: flags.string({ - exclusive: ['proposalID', 'hotfix'], - description: 'Address of account or voter', - }), - hotfix: flags.string({ - exclusive: ['account', 'proposalID'], - description: 'Hash of hotfix proposal', - }), - notwhitelisted: flags.boolean({ - description: 'List validators who have not whitelisted the specified hotfix', - }), - whitelisters: flags.boolean({ - description: 'If set, displays validators that have whitelisted the hotfix.', - exclusive: ['nonwhitelisters', 'account', 'proposalID'], - }), - nonwhitelisters: flags.boolean({ - description: 'If set, displays validators that have not whitelisted the hotfix.', - exclusive: ['whitelisters', 'account', 'proposalID'], - }), - afterExecutingProposal: flags.string({ - required: false, - description: 'Path to proposal which will be executed prior to proposal', - exclusive: ['afterExecutingID'], - }), - afterExecutingID: flags.string({ - required: false, - description: 'Governance proposal identifier which will be executed prior to proposal', - exclusive: ['afterExecutingProposal'], - }), - } - - static examples = [ - 'show --proposalID 99', - 'show --proposalID 99 --raw', - 'show --hotfix 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658', - 'show --hotfix 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 --whitelisters', - 'show --hotfix 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 --nonwhitelisters', - 'show --account 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95', - ] - - async run() { - const res = this.parse(Show) - const id = res.flags.proposalID - const raw = res.flags.raw - const account = res.flags.account - const hotfix = res.flags.hotfix - - const governance = await this.kit.contracts.getGovernance() - if (id) { - await newCheckBuilder(this).proposalExists(id).runChecks() - - const record = await governance.getProposalRecord(id) - const proposal = record.proposal - - if (!raw) { - const builder = new ProposalBuilder(this.kit) - if (res.flags.afterExecutingID) { - await addExistingProposalIDToBuilder(this.kit, builder, res.flags.afterExecutingID) - } else if (res.flags.afterExecutingProposal) { - await addExistingProposalJSONFileToBuilder(builder, res.flags.afterExecutingProposal) - } - try { - console.log(chalk.cyanBright(`Parsing ${proposal.length} proposal transactions...`)) - const jsonproposal = await proposalToJSON(this.kit, proposal, builder.registryAdditions) - record.proposal = jsonproposal as any - - if (res.flags.jsonTransactions) { - console.log( - chalk.yellowBright(`Outputting proposal JSON to ${res.flags.jsonTransactions}`) - ) - writeFileSync(res.flags.jsonTransactions, JSON.stringify(jsonproposal, null, 2)) - } - } catch (error) { - console.warn(`Could not decode proposal, displaying raw data: ${error}`) - } - } - - let requirements = {} - if (record.stage === 'Referendum' || record.stage === 'Execution') { - // Identify the transaction with the highest constitutional requirement. - const constitutionThreshold = await governance.getConstitution(proposal) - const support = await governance.getSupportWithConstitutionThreshold( - id, - constitutionThreshold - ) - requirements = { - constitutionThreshold, - ...support, - } - } - - const schedule = await governance.humanReadableProposalSchedule(id) - printValueMapRecursive({ - ...record, - schedule, - }) - - if (Object.keys(requirements).length !== 0) { - console.log( - 'Note: required is the minimal amount of yes + abstain votes needed to pass the proposal' - ) - printValueMapRecursive({ - requirements, - }) - } - } else if (hotfix) { - const hotfixBuf = toBuffer(hotfix) as Buffer - const record = await governance.getHotfixRecord(hotfixBuf) - printValueMap(record) - - const passing = await governance.isHotfixPassing(hotfixBuf) - printValueMap({ passing }) - const tally = await governance.hotfixWhitelistValidatorTally(hotfixBuf) - const quorum = await governance.minQuorumSize() - printValueMap({ - tally, - quorum, - }) - - if (res.flags.whitelisters || res.flags.nonwhitelisters) { - const validators = await this.kit.contracts.getValidators() - const accounts = await validators.currentValidatorAccountsSet() - const whitelist = await concurrentMap( - 5, - accounts, - async (validator) => - (await governance.isHotfixWhitelistedBy(hotfixBuf, validator.signer)) || - /* tslint:disable-next-line no-return-await */ - (await governance.isHotfixWhitelistedBy(hotfixBuf, validator.account)) - ) - printValueMapRecursive({ - Validators: accounts.filter((_, idx) => !!res.flags.whitelisters === whitelist[idx]), - }) - } - } else if (account) { - const accounts = await this.kit.contracts.getAccounts() - printValueMapRecursive(await governance.getVoter(await accounts.signerToAccount(account))) - } - } -} diff --git a/packages/cli/src/commands/governance/test-proposal.ts b/packages/cli/src/commands/governance/test-proposal.ts deleted file mode 100644 index 069181b922d..00000000000 --- a/packages/cli/src/commands/governance/test-proposal.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { ProposalBuilder, proposalToJSON, ProposalTransactionJSON } from '@celo/governance' -import { flags } from '@oclif/command' -import { readFileSync } from 'fs' -import { BaseCommand } from '../../base' -import { printValueMapRecursive } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { executeProposal } from '../../utils/governance' -export default class TestProposal extends BaseCommand { - static description = 'Test a governance proposal' - - static hidden = true - - static flags = { - ...BaseCommand.flags, - jsonTransactions: flags.string({ - required: true, - description: 'Path to json transactions', - }), - from: Flags.address({ required: true, description: "Proposer's address" }), - } - - static examples = [ - 'test-proposal --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --jsonTransactions proposal.json', - ] - - async run() { - const res = this.parse(TestProposal) - const account = res.flags.from - this.kit.defaultAccount = account - - const builder = new ProposalBuilder(this.kit) - - // BUILD FROM JSON - const jsonString = readFileSync(res.flags.jsonTransactions).toString() - const jsonTransactions: ProposalTransactionJSON[] = JSON.parse(jsonString) - jsonTransactions.forEach((tx) => builder.addJsonTx(tx)) - - const proposal = await builder.build() - printValueMapRecursive(await proposalToJSON(this.kit, proposal)) - - await executeProposal(proposal, this.kit, account) - } -} diff --git a/packages/cli/src/commands/governance/upvote.test.ts b/packages/cli/src/commands/governance/upvote.test.ts deleted file mode 100644 index 758a05ed7b2..00000000000 --- a/packages/cli/src/commands/governance/upvote.test.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { Address } from '@celo/connect' -import { newKitFromWeb3 } from '@celo/contractkit' -import { GovernanceWrapper } from '@celo/contractkit/lib/wrappers/Governance' -import { NetworkConfig, testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Lock from '../lockedgold/lock' -import Dequeue from './dequeue' -import Upvote from './upvote' - -process.env.NO_SYNCCHECK = 'true' - -const expConfig = NetworkConfig.governance - -testWithGanache('governance:upvote cmd', (web3: Web3) => { - const minDeposit = web3.utils.toWei(expConfig.minDeposit.toString(), 'ether') - const kit = newKitFromWeb3(web3) - const proposalID = new BigNumber(1) - const proposalID2 = new BigNumber(2) - const proposalID3 = new BigNumber(3) - const proposalID4 = new BigNumber(4) - const proposalID5 = new BigNumber(5) - const proposalID6 = new BigNumber(6) - const proposalID7 = new BigNumber(7) - - let accounts: Address[] = [] - let governance: GovernanceWrapper - - beforeEach(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - governance = await kit.contracts.getGovernance() - const dequeueFrequency = (await governance.dequeueFrequency()).toNumber() - - await governance - .propose([], 'URL') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - // this will reset lastDequeue to now - // there is 5 concurrent proposals possible to be dequeued - await testLocally(Dequeue, ['--from', accounts[0]]) - await governance - .propose([], 'URL2') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await governance - .propose([], 'URL3') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await governance - .propose([], 'URL4') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await governance - .propose([], 'URL5') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await governance - .propose([], 'URL6') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await governance - .propose([], 'URL7') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - - await timeTravel(dequeueFrequency, web3) - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Lock, ['--from', accounts[0], '--value', '100']) - }) - - test('will dequeue proposal if ready', async () => { - await testLocally(Upvote, ['--proposalID', proposalID2.toString(10), '--from', accounts[0]]) - - const queue = await governance.getQueue() - expect(queue.map((k) => k.proposalID)).toEqual([proposalID7]) - - const dequeue = await governance.getDequeue() - expect(dequeue).toEqual([ - proposalID, - proposalID2, - proposalID3, - proposalID4, - proposalID5, - proposalID6, - ]) - }) - - test('can upvote proposal which cannot be dequeued', async () => { - await testLocally(Upvote, ['--proposalID', proposalID7.toString(10), '--from', accounts[0]]) - - const queue = await governance.getQueue() - expect(queue).toEqual([{ proposalID: proposalID7, upvotes: new BigNumber(100) }]) - }) -}) diff --git a/packages/cli/src/commands/governance/upvote.ts b/packages/cli/src/commands/governance/upvote.ts deleted file mode 100644 index 86c3202b0f8..00000000000 --- a/packages/cli/src/commands/governance/upvote.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { GovernanceWrapper } from '@celo/contractkit/src/wrappers/Governance' -import { flags } from '@oclif/command' -import chalk from 'chalk' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Upvote extends BaseCommand { - static description = 'Upvote a queued governance proposal' - - static flags = { - ...BaseCommand.flags, - proposalID: flags.string({ required: true, description: 'UUID of proposal to upvote' }), - from: Flags.address({ required: true, description: "Upvoter's address" }), - } - - static examples = ['upvote --proposalID 99 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const res = this.parse(Upvote) - const signer = res.flags.from - const id = res.flags.proposalID - this.kit.defaultAccount = signer - const governance = await this.kit.contracts.getGovernance() - - await newCheckBuilder(this, signer) - .isVoteSignerOrAccount() - .proposalExists(id) - .proposalInStage(id, 'Queued') - .runChecks() - - const account = await (await this.kit.contracts.getAccounts()).voteSignerToAccount(signer) - - const consideredProposals = await this.dequeueAllPossibleProposals(governance as any) - - if (!consideredProposals.some((k) => k.id === id)) { - await displaySendTx('upvoteTx', await governance.upvote(id, account), {}, 'ProposalUpvoted') - } else { - console.info(chalk.green('Proposal was dequeued, no need to upvote it.')) - } - } - - /** - * Dequeues all possible proposals, returns the ones that were considered to be dequeued. - * This cycle is there only for safety purposes (in 99.9% of times it will not be run more than once). - * The reason behind this cycle is as follows: - * 1. Someone will DDoS our proposals (eg 100+) - * 2. All these proposals will expire - * 3. DequeueProposalsIfReady will always try to dequeue first n proposals but if all of them will be expired it will just remove them from queue. - * 4. Since none of the proposals were actually dequeued, next call will allow to dequeue again - * 5. Upvote function will try to dequeue again and possibly it will hit the proposal and bug that we have - */ - async dequeueAllPossibleProposals(governance: GovernanceWrapper) { - const concurrentProposalCount = (await governance.concurrentProposals()).toNumber() - const queue = await governance.getQueue() - const originalLastDequeue = await governance.lastDequeue() - - let consideredProposals - - for (let index = 0; index < queue.length / concurrentProposalCount + 1; index++) { - consideredProposals = ( - await Promise.all( - queue - .slice(0, concurrentProposalCount) - .map((p) => p.proposalID) - .map(async (id) => { - const expired = await governance.isQueuedProposalExpired(id) - return { id: id.toString(), expired } - }) - ) - ).filter((k) => k.expired === false) - - await displaySendTx('dequeue', governance.dequeueProposalsIfReady(), {}) - if (originalLastDequeue !== (await governance.lastDequeue())) { - break - } - } - - return consideredProposals ?? [] - } -} diff --git a/packages/cli/src/commands/governance/vote.test.ts b/packages/cli/src/commands/governance/vote.test.ts deleted file mode 100644 index 7451a05f458..00000000000 --- a/packages/cli/src/commands/governance/vote.test.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Address } from '@celo/connect' -import { newKitFromWeb3 } from '@celo/contractkit' -import { GovernanceWrapper } from '@celo/contractkit/lib/wrappers/Governance' -import { NetworkConfig, testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Lock from '../lockedgold/lock' -import Approve from './approve' -import Dequeue from './dequeue' -import Vote from './vote' - -process.env.NO_SYNCCHECK = 'true' - -const expConfig = NetworkConfig.governance - -testWithGanache('governance:vote cmd', (web3: Web3) => { - const minDeposit = web3.utils.toWei(expConfig.minDeposit.toString(), 'ether') - const kit = newKitFromWeb3(web3) - const proposalID = new BigNumber(1) - - let accounts: Address[] = [] - let governance: GovernanceWrapper - - beforeEach(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - governance = await kit.contracts.getGovernance() - await governance - .propose([], 'URL') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await timeTravel(expConfig.dequeueFrequency, web3) - await testLocally(Dequeue, ['--from', accounts[0]]) - await testLocally(Approve, [ - '--from', - accounts[0], - '--proposalID', - proposalID.toString(10), - '--useMultiSig', - ]) - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Lock, ['--from', accounts[0], '--value', '100']) - }) - - test('can vote yes', async () => { - await testLocally(Vote, [ - '--from', - accounts[0], - '--proposalID', - proposalID.toString(10), - '--value', - 'Yes', - ]) - const votes = await governance.getVotes(proposalID) - expect(votes.Yes.toNumber()).toEqual(100) - }) -}) diff --git a/packages/cli/src/commands/governance/vote.ts b/packages/cli/src/commands/governance/vote.ts deleted file mode 100644 index 937d742ba4e..00000000000 --- a/packages/cli/src/commands/governance/vote.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { VoteValue } from '@celo/contractkit/lib/wrappers/Governance' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Vote extends BaseCommand { - static description = 'Vote on an approved governance proposal' - - static voteOptions = ['Abstain', 'No', 'Yes'] - - static flags = { - ...BaseCommand.flags, - proposalID: flags.string({ required: true, description: 'UUID of proposal to vote on' }), - value: flags.enum({ options: Vote.voteOptions, required: true, description: 'Vote' }), - from: Flags.address({ required: true, description: "Voter's address" }), - } - - static examples = [ - 'vote --proposalID 99 --value Yes --from 0x5409ed021d9299bf6814279a6a1411a7e866a631', - ] - - async run() { - const res = this.parse(Vote) - const signer = res.flags.from - const id = res.flags.proposalID - const voteValue = res.flags.value as keyof typeof VoteValue - - this.kit.defaultAccount = signer - const governance = await this.kit.contracts.getGovernance() - - await newCheckBuilder(this, signer) - .isVoteSignerOrAccount() - .proposalExists(id) - .proposalInStage(id, 'Referendum') - .runChecks() - - await displaySendTx('voteTx', await governance.vote(id, voteValue), {}, 'ProposalVoted') - } -} diff --git a/packages/cli/src/commands/governance/votePartially.test.ts b/packages/cli/src/commands/governance/votePartially.test.ts deleted file mode 100644 index ea5eda62e03..00000000000 --- a/packages/cli/src/commands/governance/votePartially.test.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Address } from '@celo/connect' -import { newKitFromWeb3 } from '@celo/contractkit' -import { GovernanceWrapper } from '@celo/contractkit/lib/wrappers/Governance' -import { NetworkConfig, testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Lock from '../lockedgold/lock' -import Approve from './approve' -import Dequeue from './dequeue' -import VotePartially from './votePartially' - -process.env.NO_SYNCCHECK = 'true' - -const expConfig = NetworkConfig.governance - -testWithGanache('governance:vote-partially cmd', (web3: Web3) => { - const minDeposit = web3.utils.toWei(expConfig.minDeposit.toString(), 'ether') - const kit = newKitFromWeb3(web3) - const proposalID = new BigNumber(1) - - let accounts: Address[] = [] - let governance: GovernanceWrapper - - beforeEach(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - governance = await kit.contracts.getGovernance() - await governance - .propose([], 'URL') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await timeTravel(expConfig.dequeueFrequency, web3) - await testLocally(Dequeue, ['--from', accounts[0]]) - await testLocally(Approve, [ - '--from', - accounts[0], - '--proposalID', - proposalID.toString(10), - '--useMultiSig', - ]) - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(Lock, ['--from', accounts[0], '--value', '100']) - }) - - test('can vote partially yes and no', async () => { - await testLocally(VotePartially, [ - '--from', - accounts[0], - '--proposalID', - proposalID.toString(10), - '--yes', - '10', - '--no', - '20', - '--abstain', - '0', - ]) - const votes = await governance.getVotes(proposalID) - expect(votes.Yes.toNumber()).toEqual(10) - expect(votes.No.toNumber()).toEqual(20) - }) -}) diff --git a/packages/cli/src/commands/governance/votePartially.ts b/packages/cli/src/commands/governance/votePartially.ts deleted file mode 100644 index 155d11dba8b..00000000000 --- a/packages/cli/src/commands/governance/votePartially.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { flags } from '@oclif/command' -import chalk from 'chalk' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class VotePartially extends BaseCommand { - static description = 'Vote partially on an approved governance proposal' - - static voteOptions = ['Abstain', 'No', 'Yes'] - - static flags = { - ...BaseCommand.flags, - proposalID: flags.string({ required: true, description: 'UUID of proposal to vote on' }), - yes: flags.string({ description: 'Yes votes' }), - no: flags.string({ description: 'No votes' }), - abstain: flags.string({ description: 'Abstain votes' }), - from: Flags.address({ required: true, description: "Voter's address" }), - } - - static examples = [ - 'vote-partially --proposalID 99 --yes 10 --no 20 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631', - ] - - async run() { - const res = this.parse(VotePartially) - const signer = res.flags.from - const id = res.flags.proposalID - - this.kit.defaultAccount = signer - const governance = await this.kit.contracts.getGovernance() - - await newCheckBuilder(this, signer) - .isVoteSignerOrAccount() - .proposalExists(id) - .proposalInStage(id, 'Referendum') - .runChecks() - - if (res.flags.yes == null && res.flags.no == null && res.flags.abstain == null) { - console.log(chalk.red.bold('At least one vote choice needs to be > 0.')) - return - } - - await displaySendTx( - 'voteTx', - await governance.votePartially( - id, - res.flags.yes ?? 0, - res.flags.no ?? 0, - res.flags.abstain ?? 0 - ), - {}, - 'ProposalPartiallyVoted' - ) - } -} diff --git a/packages/cli/src/commands/governance/whitelisthotfix.ts b/packages/cli/src/commands/governance/whitelisthotfix.ts deleted file mode 100644 index ac56dd0f76f..00000000000 --- a/packages/cli/src/commands/governance/whitelisthotfix.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { toBuffer } from '@ethereumjs/util' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class WhitelistHotfix extends BaseCommand { - static description = 'Whitelist a governance hotfix' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Whitelister's address" }), - hash: flags.string({ required: true, description: 'Hash of hotfix transactions' }), - } - - static examples = [ - 'whitelisthotfix --hash 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631', - ] - - async run() { - const res = this.parse(WhitelistHotfix) - const hash = toBuffer(res.flags.hash) as Buffer - const account = res.flags.from - this.kit.defaultAccount = account - - await newCheckBuilder(this).hotfixNotExecuted(hash).runChecks() - - const governance = await this.kit.contracts.getGovernance() - await displaySendTx( - 'whitelistHotfixTx', - governance.whitelistHotfix(hash), - {}, - 'HotfixWhitelisted' - ) - } -} diff --git a/packages/cli/src/commands/governance/withdraw.test.ts b/packages/cli/src/commands/governance/withdraw.test.ts deleted file mode 100644 index 059c2cdf00d..00000000000 --- a/packages/cli/src/commands/governance/withdraw.test.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Address } from '@celo/connect' -import { newKitFromWeb3 } from '@celo/contractkit' -import { GovernanceWrapper, Proposal } from '@celo/contractkit/lib/wrappers/Governance' -import { NetworkConfig, testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import { ProposalBuilder } from '@celo/governance' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Withdraw from './withdraw' - -process.env.NO_SYNCCHECK = 'true' - -const expConfig = NetworkConfig.governance - -testWithGanache('governance:withdraw', (web3: Web3) => { - const minDeposit = web3.utils.toWei(expConfig.minDeposit.toString(), 'ether') - const kit = newKitFromWeb3(web3) - - let accounts: Address[] = [] - let governance: GovernanceWrapper - - beforeEach(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - governance = await kit.contracts.getGovernance() - let proposal: Proposal - console.log((await governance.lastDequeue()).toNumber()) - proposal = await new ProposalBuilder(kit).build() - await governance - .propose(proposal, 'URL') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - console.log(await governance.getProposalMetadata(1)) - await timeTravel(expConfig.dequeueFrequency + 1, web3) - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - }) - - test('can withdraw', async () => { - console.log(await governance.getProposalMetadata(1)) - console.log(await governance.getProposalStage(1)) - const balanceBefore = await kit.connection.getBalance(accounts[0]) - console.log(accounts[0], await governance.getRefundedDeposits(accounts[0])) - console.log(await testLocally(Withdraw, ['--from', accounts[0]])) - const balanceAfter = await kit.connection.getBalance(accounts[0]) - const difference = new BigNumber(balanceAfter).minus(balanceBefore) - expect(difference.toFixed()).toEqual(minDeposit) - }) -}) diff --git a/packages/cli/src/commands/governance/withdraw.ts b/packages/cli/src/commands/governance/withdraw.ts deleted file mode 100644 index 255086aac1a..00000000000 --- a/packages/cli/src/commands/governance/withdraw.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Withdraw extends BaseCommand { - static description = 'Withdraw refunded governance proposal deposits.' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Proposer's address" }), - } - - static examples = ['withdraw --from 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const res = this.parse(Withdraw) - - await newCheckBuilder(this, res.flags.from).hasRefundedDeposits(res.flags.from).runChecks() - - const governance = await this.kit.contracts.getGovernance() - await displaySendTx('withdraw', governance.withdraw(), {}, 'DepositWithdrawn') - } -} diff --git a/packages/cli/src/commands/grandamento/cancel.test.ts b/packages/cli/src/commands/grandamento/cancel.test.ts deleted file mode 100644 index 3d5b9cb2175..00000000000 --- a/packages/cli/src/commands/grandamento/cancel.test.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import { newKitFromWeb3 } from '@celo/contractkit' -import { assumeOwnership } from '@celo/contractkit/lib/test-utils/transferownership' -import { GrandaMentoWrapper } from '@celo/contractkit/lib/wrappers/GrandaMento' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Cancel from './cancel' -import Propose from './propose' - -testWithGanache('grandamento:cancel cmd', (web3: Web3) => { - const kit = newKitFromWeb3(web3) - let grandaMento: GrandaMentoWrapper - const newLimitMin = new BigNumber('1000') - const newLimitMax = new BigNumber('1000000000000') - let accounts: Address[] = [] - - const increaseLimits = async () => { - await grandaMento - .setStableTokenExchangeLimits('StableToken', newLimitMin.toString(), newLimitMax.toString()) - .sendAndWaitForReceipt() - } - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - grandaMento = await kit.contracts.getGrandaMento() - }) - - beforeEach(async () => { - await assumeOwnership(web3, accounts[0]) - await increaseLimits() - // create mock proposal - await testLocally(Propose, [ - '--from', - accounts[0], - '--sellCelo', - 'true', - '--stableToken', - 'cUSD', - '--value', - '10000', - ]) - }) - - describe('cancel', () => { - it('left no proposal', async () => { - await testLocally(Cancel, ['--from', accounts[0], '--proposalID', '1']) - const activeProposals = await grandaMento.getActiveProposalIds() - expect(activeProposals).toEqual([]) - }) - }) -}) diff --git a/packages/cli/src/commands/grandamento/cancel.ts b/packages/cli/src/commands/grandamento/cancel.ts deleted file mode 100644 index d7292baca8c..00000000000 --- a/packages/cli/src/commands/grandamento/cancel.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Cancel extends BaseCommand { - static description = 'Cancels a Granda Mento exchange proposal' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'The address allowed to cancel the proposal', - }), - proposalID: flags.string({ - required: true, - exclusive: ['account', 'hotfix'], - description: 'UUID of proposal to view', - }), - } - - async run() { - const grandaMento = await this.kit.contracts.getGrandaMento() - - const res = this.parse(Cancel) - const proposalID = res.flags.proposalID - - await newCheckBuilder(this).grandaMentoProposalExists(proposalID).runChecks() - - await displaySendTx( - 'cancelExchangeProposal', - grandaMento.cancelExchangeProposal(proposalID), - undefined, - 'ExchangeProposalCancelled' - ) - } -} diff --git a/packages/cli/src/commands/grandamento/execute.test.ts b/packages/cli/src/commands/grandamento/execute.test.ts deleted file mode 100644 index 184237a7ce8..00000000000 --- a/packages/cli/src/commands/grandamento/execute.test.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import { newKitFromWeb3 } from '@celo/contractkit' -import { assumeOwnership } from '@celo/contractkit/lib/test-utils/transferownership' -import { GrandaMentoWrapper } from '@celo/contractkit/lib/wrappers/GrandaMento' -import { testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Execute from './execute' -import Propose from './propose' - -testWithGanache('grandamento:execute cmd', (web3: Web3) => { - const kit = newKitFromWeb3(web3) - let grandaMento: GrandaMentoWrapper - const newLimitMin = new BigNumber('1000') - const newLimitMax = new BigNumber('1000000000000') - let accounts: Address[] = [] - const dateNowOriginal = Date.now - let originalNoSyncCheck: string | undefined - - const increaseLimits = () => { - return grandaMento - .setStableTokenExchangeLimits('StableToken', newLimitMin.toString(), newLimitMax.toString()) - .sendAndWaitForReceipt() - } - - const createExchangeProposal = () => { - // create mock proposal - return testLocally(Propose, [ - '--from', - accounts[0], - '--sellCelo', - 'true', - '--stableToken', - 'cUSD', - '--value', - '10000', - ]) - } - - const approveExchangeProposal = async (proposalID: number | string) => { - await grandaMento.setApprover(accounts[0]).sendAndWaitForReceipt() - await grandaMento.approveExchangeProposal(proposalID).sendAndWaitForReceipt() - } - - const timeTravelDateAndChain = async (seconds: number) => { - await timeTravel(seconds, web3) - jest.useFakeTimers().setSystemTime(dateNowOriginal() + seconds * 1000) - // Otherwise contractkit complains there is a difference between Date.now() - // and the timestamp of the last block - process.env.NO_SYNCCHECK = 'true' - } - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - grandaMento = await kit.contracts.getGrandaMento() - originalNoSyncCheck = process.env.NO_SYNCCHECK - }) - - afterEach(() => { - process.env.NO_SYNCCHECK = originalNoSyncCheck - }) - - beforeEach(async () => { - await assumeOwnership(web3, accounts[0]) - await increaseLimits() - await createExchangeProposal() - // Approve it - await approveExchangeProposal(1) - // Wait the veto period plus some extra time to be safe - await timeTravelDateAndChain((await grandaMento.vetoPeriodSeconds()).toNumber() + 1000) - }) - - describe('execute', () => { - it('executes the proposal', async () => { - await testLocally(Execute, ['--from', accounts[0], '--proposalID', '1']) - const activeProposals = await grandaMento.getActiveProposalIds() - expect(activeProposals).toEqual([]) - }) - - it('fails if the exchange proposal is not executable', async () => { - // Create a proposal with proposalID 2, but don't wait the veto period - await createExchangeProposal() - await approveExchangeProposal(2) - await expect( - testLocally(Execute, ['--from', accounts[0], '--proposalID', '2']) - ).rejects.toThrow() - }) - }) -}) diff --git a/packages/cli/src/commands/grandamento/execute.ts b/packages/cli/src/commands/grandamento/execute.ts deleted file mode 100644 index b719fc6e1a5..00000000000 --- a/packages/cli/src/commands/grandamento/execute.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Execute extends BaseCommand { - static description = 'Executes a Granda Mento exchange proposal' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'The address to execute the exchange proposal', - }), - proposalID: flags.string({ - required: true, - description: 'UUID of proposal to view', - }), - } - - async run() { - const grandaMento = await this.kit.contracts.getGrandaMento() - - const res = this.parse(Execute) - const proposalID = res.flags.proposalID - - await newCheckBuilder(this) - .grandaMentoProposalExists(proposalID) - .grandaMentoProposalIsExecutable(proposalID) - .runChecks() - - await displaySendTx( - 'executeExchangeProposal', - grandaMento.executeExchangeProposal(proposalID), - undefined, - 'ExchangeProposalExecuted' - ) - } -} diff --git a/packages/cli/src/commands/grandamento/get-buy-amount.test.ts b/packages/cli/src/commands/grandamento/get-buy-amount.test.ts deleted file mode 100644 index d115d24df00..00000000000 --- a/packages/cli/src/commands/grandamento/get-buy-amount.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import { newKitFromWeb3 } from '@celo/contractkit' -import { assumeOwnership } from '@celo/contractkit/lib/test-utils/transferownership' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import GetBuyAmount from './get-buy-amount' - -testWithGanache('grandamento:get-buy-amount cmd', (web3: Web3) => { - const kit = newKitFromWeb3(web3) - let accounts: Address[] = [] - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - }) - - beforeEach(async () => { - await assumeOwnership(web3, accounts[0]) - }) - - it('gets the buy amount', async () => { - await testLocally(GetBuyAmount, [ - '--sellCelo', - 'true', - '--stableToken', - 'cusd', - '--value', - '100000000000000000000000', - ]) - }) -}) diff --git a/packages/cli/src/commands/grandamento/get-buy-amount.ts b/packages/cli/src/commands/grandamento/get-buy-amount.ts deleted file mode 100644 index 3bdcbff0870..00000000000 --- a/packages/cli/src/commands/grandamento/get-buy-amount.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { toFixed } from '@celo/utils/lib/fixidity' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { printValueMap } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { enumEntriesDupWithLowercase } from '../../utils/helpers' - -const stableTokenOptions = enumEntriesDupWithLowercase(Object.entries(StableToken)) - -export default class GetBuyAmount extends BaseCommand { - static description = 'Gets the buy amount for a prospective Granda Mento exchange' - - static flags = { - ...BaseCommand.flags, - value: Flags.wei({ - required: true, - description: 'The value of the tokens to exchange', - }), - stableToken: flags.enum({ - required: true, - options: Object.keys(stableTokenOptions), - description: 'Name of the stable to receive or send', - default: 'cUSD', - }), - sellCelo: flags.enum({ - options: ['true', 'false'], - required: true, - description: 'Sell or buy CELO', - }), - } - - async run() { - const grandaMento = await this.kit.contracts.getGrandaMento() - - const res = this.parse(GetBuyAmount) - const sellAmount = res.flags.value - const stableToken = stableTokenOptions[res.flags.stableToken] - const sellCelo = res.flags.sellCelo === 'true' - - const stableTokenAddress = await this.kit.celoTokens.getAddress(stableToken) - const sortedOracles = await this.kit.contracts.getSortedOracles() - const celoStableTokenOracleRate = (await sortedOracles.medianRate(stableTokenAddress)).rate - - const buyAmount = await grandaMento.getBuyAmount( - toFixed(celoStableTokenOracleRate), - sellAmount, - sellCelo - ) - - printValueMap({ - buyAmount, - }) - } -} diff --git a/packages/cli/src/commands/grandamento/list.test.ts b/packages/cli/src/commands/grandamento/list.test.ts deleted file mode 100644 index 6a6bc9ad2c1..00000000000 --- a/packages/cli/src/commands/grandamento/list.test.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import { newKitFromWeb3 } from '@celo/contractkit' -import { StableToken } from '@celo/contractkit/lib/celo-tokens' -import { assumeOwnership } from '@celo/contractkit/lib/test-utils/transferownership' -import { GoldTokenWrapper } from '@celo/contractkit/lib/wrappers/GoldTokenWrapper' -import { GrandaMentoWrapper } from '@celo/contractkit/lib/wrappers/GrandaMento' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import { setGrandaMentoLimits } from '../../test-utils/grandaMento' -import List from './list' - -testWithGanache('grandamento:list cmd', (web3: Web3) => { - const kit = newKitFromWeb3(web3) - let grandaMento: GrandaMentoWrapper - let accounts: Address[] = [] - let celoToken: GoldTokenWrapper - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - grandaMento = await kit.contracts.getGrandaMento() - - celoToken = await kit.contracts.getGoldToken() - }) - - beforeEach(async () => { - await assumeOwnership(web3, accounts[0]) - await setGrandaMentoLimits(grandaMento) - }) - - it('shows an empty list of proposals', async () => { - await testLocally(List, []) - }) - - it('shows proposals', async () => { - // create mock proposal - const sellAmount = new BigNumber('100000000') - await celoToken.increaseAllowance(grandaMento.address, sellAmount).sendAndWaitForReceipt() - await ( - await grandaMento.createExchangeProposal( - kit.celoTokens.getContract(StableToken.cUSD), - sellAmount, - true - ) - ).sendAndWaitForReceipt() - - await testLocally(List, []) - }) -}) diff --git a/packages/cli/src/commands/grandamento/list.ts b/packages/cli/src/commands/grandamento/list.ts deleted file mode 100644 index bf81dafcdd5..00000000000 --- a/packages/cli/src/commands/grandamento/list.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { BaseCommand } from '../../base' -import { printValueMap } from '../../utils/cli' - -export default class List extends BaseCommand { - static description = 'List current active Granda Mento exchange proposals' - - static flags = { - ...BaseCommand.flags, - } - - async run() { - const grandaMento = await this.kit.contracts.getGrandaMento() - const proposals = await grandaMento.getActiveProposalIds() - - if (!proposals.length) { - console.log('No active Granda Mento proposals') - return - } - - console.log('Active proposals:') - - const proposalsDetails = proposals.map((id) => grandaMento.getHumanReadableExchangeProposal(id)) - - const res = await Promise.all(proposalsDetails) - - res.map((proposalJSON) => { - console.log('Proposal ID: ' + proposalJSON.id) - printValueMap(proposalJSON) - }) - } -} diff --git a/packages/cli/src/commands/grandamento/propose.test.ts b/packages/cli/src/commands/grandamento/propose.test.ts deleted file mode 100644 index 4654cde0140..00000000000 --- a/packages/cli/src/commands/grandamento/propose.test.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import { newKitFromWeb3 } from '@celo/contractkit' -import { assumeOwnership } from '@celo/contractkit/lib/test-utils/transferownership' -import { - ExchangeProposalState, - GrandaMentoWrapper, -} from '@celo/contractkit/lib/wrappers/GrandaMento' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import { setGrandaMentoLimits } from '../../test-utils/grandaMento' -import Propose from './propose' - -testWithGanache('grandamento:propose cmd', (web3: Web3) => { - const kit = newKitFromWeb3(web3) - let grandaMento: GrandaMentoWrapper - let accounts: Address[] = [] - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - grandaMento = await kit.contracts.getGrandaMento() - }) - - beforeEach(async () => { - await assumeOwnership(web3, accounts[0]) - await setGrandaMentoLimits(grandaMento) - }) - - describe('proposes', () => { - it('can sell Celo', async () => { - await testLocally(Propose, [ - '--from', - accounts[0], - '--sellCelo', - 'true', - '--stableToken', - 'cUSD', - '--value', - '10000', - ]) - - const activeProposals = await grandaMento.getActiveProposalIds() - - expect(activeProposals).not.toEqual([]) - - const proposal = await grandaMento.getExchangeProposal(activeProposals[0]) - expect(proposal.exchanger).toEqual(accounts[0]) - expect(proposal.stableToken).toEqual((await kit.contracts.getStableToken()).address) - expect(proposal.sellAmount).toEqBigNumber(10000) - expect(proposal.approvalTimestamp).toEqual(new BigNumber(0)) - expect(proposal.state).toEqual(ExchangeProposalState.Proposed) - expect(proposal.sellCelo).toEqual(true) - }) - - it('can buy Celo', async () => { - await testLocally(Propose, [ - '--from', - accounts[0], - '--sellCelo', - 'false', - '--stableToken', - 'cUSD', - '--value', - '10000', - ]) - const activeProposals = await grandaMento.getActiveProposalIds() - - expect(activeProposals).not.toEqual([]) - - const proposal = await grandaMento.getExchangeProposal(activeProposals[0]) - expect(proposal.exchanger).toEqual(accounts[0]) - expect(proposal.stableToken).toEqual((await kit.contracts.getStableToken()).address) - expect(proposal.sellAmount).toEqBigNumber(10000) - expect(proposal.approvalTimestamp).toEqual(new BigNumber(0)) - expect(proposal.state).toEqual(ExchangeProposalState.Proposed) - expect(proposal.sellCelo).toEqual(false) - }) - - it("doesn't work without explicitly setting the sellCelo flag", async () => { - let activeProposals - - await expect( - testLocally(Propose, [ - '--from', - accounts[0], - '--sellCelo', - '--stableToken', - 'cUSD', - '--value', - '10000', - ]) - ).rejects.toThrow() - - activeProposals = await grandaMento.getActiveProposalIds() - expect(activeProposals).toEqual([]) - - await expect( - testLocally(Propose, [ - '--from', - accounts[0], - '--sellCelo', - 'tru', // typo on propose - '--stableToken', - 'cUSD', - '--value', - '10000', - ]) - ).rejects.toThrow() - - activeProposals = await grandaMento.getActiveProposalIds() - expect(activeProposals).toEqual([]) - }) - }) -}) diff --git a/packages/cli/src/commands/grandamento/propose.ts b/packages/cli/src/commands/grandamento/propose.ts deleted file mode 100644 index eff5e013187..00000000000 --- a/packages/cli/src/commands/grandamento/propose.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { enumEntriesDupWithLowercase } from '../../utils/helpers' - -const stableTokenOptions = enumEntriesDupWithLowercase(Object.entries(StableToken)) - -export default class Propose extends BaseCommand { - static description = 'Proposes a Granda Mento exchange' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: 'The address with tokens to exchange' }), - value: Flags.wei({ - required: true, - description: 'The value of the tokens to exchange', - }), - stableToken: flags.enum({ - required: true, - options: Object.keys(stableTokenOptions), - description: 'Name of the stable to receive or send', - default: 'cUSD', - }), - sellCelo: flags.enum({ - options: ['true', 'false'], - required: true, - description: 'Sell or buy CELO', - }), - } - - async run() { - const celoToken = await this.kit.contracts.getGoldToken() - const grandaMento = await this.kit.contracts.getGrandaMento() - - const res = this.parse(Propose) - const signer = res.flags.from - const sellAmount = res.flags.value - const stableToken = stableTokenOptions[res.flags.stableToken] - const sellCelo = res.flags.sellCelo === 'true' - - this.kit.defaultAccount = signer - - const tokenToSell = sellCelo ? celoToken : await this.kit.contracts.getStableToken(stableToken) - - await newCheckBuilder(this, signer) - .hasEnoughErc20(signer, sellAmount, tokenToSell.address) - .runChecks() - - await displaySendTx( - 'increaseAllowance', - tokenToSell.increaseAllowance(grandaMento.address, sellAmount.toFixed()) - ) - - await displaySendTx( - 'createExchangeProposal', - await grandaMento.createExchangeProposal( - this.kit.celoTokens.getContract(stableToken), - sellAmount, - sellCelo - ), - undefined, - 'ExchangeProposalCreated' - ) - } -} diff --git a/packages/cli/src/commands/grandamento/show.test.ts b/packages/cli/src/commands/grandamento/show.test.ts deleted file mode 100644 index 044c82b0fcd..00000000000 --- a/packages/cli/src/commands/grandamento/show.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import { newKitFromWeb3 } from '@celo/contractkit' -import { StableToken } from '@celo/contractkit/lib/celo-tokens' -import { assumeOwnership } from '@celo/contractkit/lib/test-utils/transferownership' -import { GoldTokenWrapper } from '@celo/contractkit/lib/wrappers/GoldTokenWrapper' -import { GrandaMentoWrapper } from '@celo/contractkit/lib/wrappers/GrandaMento' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import { setGrandaMentoLimits } from '../../test-utils/grandaMento' -import Show from './show' - -testWithGanache('grandamento:show cmd', (web3: Web3) => { - const kit = newKitFromWeb3(web3) - let grandaMento: GrandaMentoWrapper - let accounts: Address[] = [] - let celoToken: GoldTokenWrapper - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - grandaMento = await kit.contracts.getGrandaMento() - - celoToken = await kit.contracts.getGoldToken() - }) - - beforeEach(async () => { - await assumeOwnership(web3, accounts[0]) - await setGrandaMentoLimits(grandaMento) - }) - - it('shows proposals', async () => { - // create mock proposal - const sellAmount = new BigNumber('100000000') - await celoToken.increaseAllowance(grandaMento.address, sellAmount).sendAndWaitForReceipt() - - await ( - await grandaMento.createExchangeProposal( - kit.celoTokens.getContract(StableToken.cUSD), - sellAmount, - true - ) - ).sendAndWaitForReceipt() - - await testLocally(Show, ['--proposalID', '1']) - }) -}) diff --git a/packages/cli/src/commands/grandamento/show.ts b/packages/cli/src/commands/grandamento/show.ts deleted file mode 100644 index f4a227435f5..00000000000 --- a/packages/cli/src/commands/grandamento/show.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { printValueMap } from '../../utils/cli' - -export default class Show extends BaseCommand { - static description = 'Shows details of a Granda Mento exchange proposal' - - static flags = { - ...BaseCommand.flags, - proposalID: flags.string({ - required: true, - description: 'UUID of proposal to view', - }), - } - - async run() { - const grandaMento = await this.kit.contracts.getGrandaMento() - - const res = this.parse(Show) - const proposalID = res.flags.proposalID - - await newCheckBuilder(this).grandaMentoProposalExists(proposalID).runChecks() - - const proposal = await grandaMento.getHumanReadableExchangeProposal(proposalID) - - printValueMap(proposal) - } -} diff --git a/packages/cli/src/commands/identity/get-attestations.test.ts b/packages/cli/src/commands/identity/get-attestations.test.ts deleted file mode 100644 index f60184c9fe1..00000000000 --- a/packages/cli/src/commands/identity/get-attestations.test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { testLocally } from '../../test-utils/cliUtils' -import GetAttestations from './get-attestations' - -process.env.NO_SYNCCHECK = 'true' - -describe('identity:get-attetstations', () => { - describe('input validation correctly outputs errors', () => { - const consoleOutput: string[] = [] - const mockedError = (output: string) => consoleOutput.push(output) - beforeEach(() => (console.error = mockedError)) - - it('Fails when neither from, pepper, nor identifier are specified', async () => { - await expect(testLocally(GetAttestations, ['--phoneNumber', '+15555555555'])).rejects.toThrow( - 'Must specify either --from or --pepper or --identifier' - ) - }) - - it('Fails when neither phone number nor identifier are specified', async () => { - await expect( - testLocally(GetAttestations, ['--from', '0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95']) - ).rejects.toThrow('Must specify phoneNumber if identifier not provided') - }) - - it('Successfully prints identifier when given pepper and number', async () => { - console.log = jest.fn() - await testLocally(GetAttestations, [ - '--phoneNumber', - '+15555555555', - '--pepper', - 'XQke2bjvN7mPt', - ]) - expect(console.log).toHaveBeenCalledWith( - 'Identifier: 0xd9460ae529b2889716c8f1ccebb5efec945adc46fe1e9cd16f6242463e81f37c' - ) - }) - }) -}) diff --git a/packages/cli/src/commands/identity/get-attestations.ts b/packages/cli/src/commands/identity/get-attestations.ts deleted file mode 100644 index e4ef260f83f..00000000000 --- a/packages/cli/src/commands/identity/get-attestations.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { ContractKit } from '@celo/contractkit' -import { OdisUtils } from '@celo/identity' -import { AuthSigner, OdisContextName } from '@celo/identity/lib/odis/query' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' - -export default class GetAttestations extends BaseCommand { - static description = - "Looks up attestations associated with the provided phone number. If a pepper is not provided, it uses the --from account's balance to query the pepper." - - static flags = { - ...BaseCommand.flags, - phoneNumber: flags.string({ - required: false, - description: 'Phone number to check attestations for', - }), - from: flags.string({ - required: false, - description: 'Account whose balance to use for querying ODIS for the pepper lookup', - }), - pepper: flags.string({ - required: false, - description: 'ODIS phone number pepper', - }), - identifier: flags.string({ - required: false, - description: 'On-chain identifier', - }), - network: flags.string({ - required: false, - description: 'The ODIS service to hit: mainnet, alfajores, alfajoresstaging', - }), - } - - static examples = [ - 'get-attestations --phoneNumber +15555555555 --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95', - 'get-attestations --phoneNumber +15555555555 --pepper XgnKVpplZc0p1', - 'get-attestations --identifier 0x4952c9db9c283a62721b13f56c4b5e84a438e2569af3de21cb3440efa8840872', - ] - - async run() { - const res = this.parse(GetAttestations) - const phoneNumber = res.flags.phoneNumber - const account = res.flags.from - let identifier = res.flags.identifier - let pepper = res.flags.pepper - if (!account && !pepper && !identifier) { - throw Error('Must specify either --from or --pepper or --identifier') - } - const network = res.flags.network - const attestationsContract = await this.kit.contracts.getAttestations() - const accountsContract = await this.kit.contracts.getAccounts() - - if (!identifier) { - if (!phoneNumber) { - throw Error('Must specify phoneNumber if identifier not provided') - } - // Get Phone number pepper - // Needs a balance to perform query - if (!pepper) { - pepper = await this.getPhoneNumberPepper(this.kit, phoneNumber!, account!, network) - console.log('Pepper: ' + pepper) - } - - const computedIdentifier = this.kit.connection.web3.utils.soliditySha3({ - type: 'string', - value: 'tel://' + phoneNumber + '__' + pepper, - }) - identifier = computedIdentifier! - console.log('Identifier: ' + identifier) - } - const accounts = await attestationsContract.lookupAccountsForIdentifier(identifier) - accounts.forEach(async (accountAddress) => { - console.log('Account address: ' + accountAddress) - console.log('\tWallet address: ' + (await accountsContract.getWalletAddress(accountAddress))) - console.log( - '\tData-Encryption Key: ' + (await accountsContract.getDataEncryptionKey(accountAddress)) - ) - }) - } - - async getPhoneNumberPepper( - kit: ContractKit, - phoneNumber: string, - account: string, - network: string = 'mainnet' - ): Promise { - console.log('Using network: ' + network) - const authSigner: AuthSigner = { - authenticationMethod: OdisUtils.Query.AuthenticationMethod.WALLET_KEY, - // @ts-ignore -- TODO: if identity depends on diff version of ck which has a slightly different type this complains - contractKit: kit, - } - - const ret = await OdisUtils.PhoneNumberIdentifier.getPhoneNumberIdentifier( - phoneNumber, - account, - authSigner, - OdisUtils.Query.getServiceContext(network as OdisContextName) - ) - - return ret.pepper - } -} diff --git a/packages/cli/src/commands/identity/identifier.ts b/packages/cli/src/commands/identity/identifier.ts deleted file mode 100644 index f10ea1a137f..00000000000 --- a/packages/cli/src/commands/identity/identifier.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { OdisUtils } from '@celo/identity' -import { AuthSigner, OdisContextName } from '@celo/identity/lib/odis/query' -import { flags as oFlags } from '@oclif/command' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { printValueMap } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class IdentifierQuery extends BaseCommand { - static description = - 'Queries ODIS for the on-chain identifier and pepper corresponding to a given phone number.' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'The address from which to perform the query', - }), - phoneNumber: Flags.phoneNumber({ - required: true, - description: - 'The phone number for which to query the identifier. Should be in e164 format with country code.', - }), - context: oFlags.string({ - required: false, - description: 'mainnet (default), alfajores, or alfajoresstaging', - }), - } - - static examples = [ - 'identifier --phoneNumber +14151231234 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 --context alfajores', - ] - - async run() { - const { flags } = this.parse(IdentifierQuery) - const { phoneNumber, from, context } = flags - - await newCheckBuilder(this).isValidAddress(flags.from).runChecks() - - cli.action.start('Querying ODIS for identifier') - - const authSigner: AuthSigner = { - authenticationMethod: OdisUtils.Query.AuthenticationMethod.WALLET_KEY, - // @ts-ignore -- TODO: if identity depends on diff version of ck which has a slightly differnt type this complains - contractKit: this.kit, - } - - const res = await OdisUtils.PhoneNumberIdentifier.getPhoneNumberIdentifier( - phoneNumber, - from, - authSigner, - OdisUtils.Query.getServiceContext(context as OdisContextName) - ) - - cli.action.stop() - - printValueMap({ - identifier: res.phoneHash, - pepper: res.pepper, - }) - } -} diff --git a/packages/cli/src/commands/identity/withdraw-attestation-rewards.ts b/packages/cli/src/commands/identity/withdraw-attestation-rewards.ts deleted file mode 100644 index 327292fbf24..00000000000 --- a/packages/cli/src/commands/identity/withdraw-attestation-rewards.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class AttestationRewardsWithdraw extends BaseCommand { - static description = 'Withdraw accumulated attestation rewards for a given currency' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: - 'Address to withdraw from. Can be the attestation signer address or the underlying account address', - }), - tokenAddress: Flags.address({ - description: 'The address of the token that will be withdrawn. Defaults to cUSD', - }), - } - - async run() { - const { flags } = this.parse(AttestationRewardsWithdraw) - const [accounts, attestations] = await Promise.all([ - this.kit.contracts.getAccounts(), - this.kit.contracts.getAttestations(), - ]) - - let tokenAddress = flags.tokenAddress - if (!tokenAddress) { - tokenAddress = (await this.kit.contracts.getStableToken()).address - } - - const accountAddress = await accounts.signerToAccount(flags.from) - const pendingWithdrawals = await attestations.getPendingWithdrawals( - tokenAddress, - accountAddress - ) - if (!pendingWithdrawals.gt(0)) { - console.info('No pending rewards for this token address') - return - } - - cli.action.start(`Withdrawing ${pendingWithdrawals.toString()} rewards to ${accountAddress}`) - await displaySendTx('withdraw', attestations.withdraw(tokenAddress), { from: flags.from }) - cli.action.stop() - } -} diff --git a/packages/cli/src/commands/lockedgold/delegate-info.test.ts b/packages/cli/src/commands/lockedgold/delegate-info.test.ts deleted file mode 100644 index 8d82584dc98..00000000000 --- a/packages/cli/src/commands/lockedgold/delegate-info.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Delegate from './delegate' -import DelegateInfo from './delegate-info' -import Lock from './lock' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('lockedgold:delegate-info cmd', (web3: Web3) => { - test('gets the info', async () => { - const accounts = await web3.eth.getAccounts() - const account = accounts[0] - const account2 = accounts[1] - await testLocally(Register, ['--from', account]) - await testLocally(Register, ['--from', account2]) - await testLocally(Lock, ['--from', account, '--value', '200']) - - await testLocally(Delegate, ['--from', account, '--to', account2, '--percent', '100']) - - await testLocally(DelegateInfo, ['--account', account]) - }) -}) diff --git a/packages/cli/src/commands/lockedgold/delegate-info.ts b/packages/cli/src/commands/lockedgold/delegate-info.ts deleted file mode 100644 index 981f8abb753..00000000000 --- a/packages/cli/src/commands/lockedgold/delegate-info.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Address } from '@celo/connect' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { printValueMapRecursive } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class DelegateInfo extends BaseCommand { - static description = 'Delegate info about account.' - - static flags = { - ...BaseCommand.flags, - account: flags.string({ ...Flags.address, required: true }), - } - - static args = [] - - static examples = ['delegate-info --account 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95'] - - async run() { - const res = this.parse(DelegateInfo) - const address: Address = res.flags.account - - const lockedGold = await this.kit.contracts.getLockedGold() - const delegateInfo = await lockedGold.getDelegateInfo(address) - - printValueMapRecursive(delegateInfo) - } -} diff --git a/packages/cli/src/commands/lockedgold/delegate.test.ts b/packages/cli/src/commands/lockedgold/delegate.test.ts deleted file mode 100644 index 2d321477e6e..00000000000 --- a/packages/cli/src/commands/lockedgold/delegate.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { newKitFromWeb3 } from '@celo/contractkit' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Delegate from './delegate' -import Lock from './lock' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('lockedgold:delegate cmd', (web3: Web3) => { - test('can delegate', async () => { - const accounts = await web3.eth.getAccounts() - const account = accounts[0] - const account2 = accounts[1] - const kit = newKitFromWeb3(web3) - const lockedGold = await kit.contracts.getLockedGold() - await testLocally(Register, ['--from', account]) - await testLocally(Register, ['--from', account2]) - await testLocally(Lock, ['--from', account, '--value', '200']) - - const account2OriginalVotingPower = await lockedGold.getAccountTotalGovernanceVotingPower( - account2 - ) - expect(account2OriginalVotingPower.toFixed()).toBe('0') - - await testLocally(Delegate, ['--from', account, '--to', account2, '--percent', '100']) - - const account2VotingPower = await lockedGold.getAccountTotalGovernanceVotingPower(account2) - expect(account2VotingPower.toFixed()).toBe('200') - }) -}) diff --git a/packages/cli/src/commands/lockedgold/delegate.ts b/packages/cli/src/commands/lockedgold/delegate.ts deleted file mode 100644 index 7184450b334..00000000000 --- a/packages/cli/src/commands/lockedgold/delegate.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Address } from '@celo/connect' -import { toFixed } from '@celo/utils/src/fixidity' -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { LockedGoldArgs } from '../../utils/lockedgold' - -export default class Delegate extends BaseCommand { - static description = 'Delegate locked celo.' - - static flags = { - ...BaseCommand.flags, - from: flags.string({ ...Flags.address, required: true }), - to: flags.string({ ...Flags.address, required: true }), - percent: flags.string({ - ...LockedGoldArgs.valueArg, - required: true, - description: '1-100% of locked celo to be delegated', - }), - } - - static args = [] - - static examples = [ - 'delegate --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --to 0xc0ffee254729296a45a3885639AC7E10F9d54979 --percent 100', - ] - - async run() { - const res = this.parse(Delegate) - const address: Address = res.flags.from - const to: Address = res.flags.to - - this.kit.defaultAccount = address - const percent = new BigNumber(res.flags.percent).div(100) - const percentFixed = toFixed(percent) - - await newCheckBuilder(this) - .addCheck(`Value [${percentFixed}] is > 0 and <=100`, () => percent.gt(0) && percent.lte(100)) - .isAccount(address) - .isAccount(to) - .runChecks() - - const lockedGold = await this.kit.contracts.getLockedGold() - - console.log('value', percent.toString()) - console.log('valueFixed', percentFixed.toFixed()) - - const tx = lockedGold.delegate(to, percentFixed.toFixed()) - await displaySendTx('delegate', tx) - } -} diff --git a/packages/cli/src/commands/lockedgold/lock.test.ts b/packages/cli/src/commands/lockedgold/lock.test.ts deleted file mode 100644 index f669ab3484b..00000000000 --- a/packages/cli/src/commands/lockedgold/lock.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { newKitFromWeb3 } from '@celo/contractkit' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Lock from './lock' -import Unlock from './unlock' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('lockedgold:lock cmd', (web3: Web3) => { - test('can lock with pending withdrawals', async () => { - const accounts = await web3.eth.getAccounts() - const account = accounts[0] - const kit = newKitFromWeb3(web3) - const lockedGold = await kit.contracts.getLockedGold() - await testLocally(Register, ['--from', account]) - await testLocally(Lock, ['--from', account, '--value', '100']) - await testLocally(Unlock, ['--from', account, '--value', '50']) - await testLocally(Lock, ['--from', account, '--value', '75']) - await testLocally(Unlock, ['--from', account, '--value', '50']) - await testLocally(Lock, ['--from', account, '--value', '50']) - const pendingWithdrawalsTotalValue = await lockedGold.getPendingWithdrawalsTotalValue(account) - expect(pendingWithdrawalsTotalValue.toFixed()).toBe('0') - }) -}) diff --git a/packages/cli/src/commands/lockedgold/lock.ts b/packages/cli/src/commands/lockedgold/lock.ts deleted file mode 100644 index bbaec77b46f..00000000000 --- a/packages/cli/src/commands/lockedgold/lock.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Address } from '@celo/connect' -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { LockedGoldArgs } from '../../utils/lockedgold' - -export default class Lock extends BaseCommand { - static description = 'Locks CELO to be used in governance and validator elections.' - - static flags = { - ...BaseCommand.flags, - from: flags.string({ ...Flags.address, required: true }), - value: flags.string({ ...LockedGoldArgs.valueArg, required: true }), - } - - static args = [] - - static examples = [ - 'lock --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --value 10000000000000000000000', - ] - - async run() { - const res = this.parse(Lock) - const address: Address = res.flags.from - - this.kit.defaultAccount = address - const value = new BigNumber(res.flags.value) - - await newCheckBuilder(this) - .addCheck(`Value [${value.toFixed()}] is > 0`, () => value.gt(0)) - .isAccount(address) - .runChecks() - - const lockedGold = await this.kit.contracts.getLockedGold() - const pendingWithdrawalsValue = await lockedGold.getPendingWithdrawalsTotalValue(address) - const relockValue = BigNumber.minimum(pendingWithdrawalsValue, value) - const lockValue = value.minus(relockValue) - - await newCheckBuilder(this).hasEnoughCelo(address, lockValue).runChecks() - - const txos = await lockedGold.relock(address, relockValue) - for (const txo of txos) { - await displaySendTx('relock', txo, { from: address }) - } - if (lockValue.gt(new BigNumber(0))) { - const tx = lockedGold.lock() - await displaySendTx('lock', tx, { value: lockValue.toFixed() }) - } - } -} diff --git a/packages/cli/src/commands/lockedgold/max-delegatees-count.ts b/packages/cli/src/commands/lockedgold/max-delegatees-count.ts deleted file mode 100644 index b610abdbaf0..00000000000 --- a/packages/cli/src/commands/lockedgold/max-delegatees-count.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { BaseCommand } from '../../base' -import { printValueMapRecursive } from '../../utils/cli' - -export default class MaxDelegateesCount extends BaseCommand { - static description = 'Returns the maximum number of delegates allowed per account.' - - static flags = { - ...BaseCommand.flags, - } - - static examples = ['max-delegatees-count'] - - async run() { - const lockedGold = await this.kit.contracts.getLockedGold() - - const res = { - maxDelegateesCount: (await lockedGold.getMaxDelegateesCount()).toFixed(), - } - - printValueMapRecursive(res) - } -} diff --git a/packages/cli/src/commands/lockedgold/revoke-delegate.test.ts b/packages/cli/src/commands/lockedgold/revoke-delegate.test.ts deleted file mode 100644 index 08220b26331..00000000000 --- a/packages/cli/src/commands/lockedgold/revoke-delegate.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { newKitFromWeb3 } from '@celo/contractkit' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Delegate from './delegate' -import Lock from './lock' -import RevokeDelegate from './revoke-delegate' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('lockedgold:revoke-delegate cmd', (web3: Web3) => { - test('can revoke delegate', async () => { - const accounts = await web3.eth.getAccounts() - const account = accounts[0] - const account2 = accounts[1] - const kit = newKitFromWeb3(web3) - const lockedGold = await kit.contracts.getLockedGold() - await testLocally(Register, ['--from', account]) - await testLocally(Register, ['--from', account2]) - await testLocally(Lock, ['--from', account, '--value', '200']) - - await testLocally(Delegate, ['--from', account, '--to', account2, '--percent', '100']) - - const account2VotingPower = await lockedGold.getAccountTotalGovernanceVotingPower(account2) - expect(account2VotingPower.toFixed()).toBe('200') - - await testLocally(RevokeDelegate, ['--from', account, '--to', account2, '--percent', '100']) - - const account2VotingPowerAfterRevoke = await lockedGold.getAccountTotalGovernanceVotingPower( - account2 - ) - expect(account2VotingPowerAfterRevoke.toFixed()).toBe('0') - }) -}) diff --git a/packages/cli/src/commands/lockedgold/revoke-delegate.ts b/packages/cli/src/commands/lockedgold/revoke-delegate.ts deleted file mode 100644 index 4cfcf99804b..00000000000 --- a/packages/cli/src/commands/lockedgold/revoke-delegate.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Address } from '@celo/connect' -import { toFixed } from '@celo/utils/src/fixidity' -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { LockedGoldArgs } from '../../utils/lockedgold' - -export default class RevokeDelegate extends BaseCommand { - static description = 'Revoke delegated locked celo.' - - static flags = { - ...BaseCommand.flags, - from: flags.string({ ...Flags.address, required: true }), - to: flags.string({ ...Flags.address, required: true }), - percent: flags.string({ - ...LockedGoldArgs.valueArg, - required: true, - description: '1-100% of locked celo to be revoked from currently delegated amount', - }), - } - - static args = [] - - static examples = [ - 'revoke-delegate --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --to 0xc0ffee254729296a45a3885639AC7E10F9d54979 --percent 100', - ] - - async run() { - const res = this.parse(RevokeDelegate) - const address: Address = res.flags.from - const to: Address = res.flags.to - - this.kit.defaultAccount = address - const percent = new BigNumber(res.flags.percent).div(100) - const percentFixed = toFixed(percent) - - await newCheckBuilder(this) - .addCheck( - `Value [${percentFixed}] is >= 0 and <=100`, - () => percent.gte(0) && percent.lte(100) - ) - .isAccount(address) - .isAccount(to) - .runChecks() - - const lockedGold = await this.kit.contracts.getLockedGold() - - const tx = lockedGold.revokeDelegated(to, percentFixed.toFixed()) - await displaySendTx('revokeDelegated', tx) - } -} diff --git a/packages/cli/src/commands/lockedgold/show.ts b/packages/cli/src/commands/lockedgold/show.ts deleted file mode 100644 index a18acad555c..00000000000 --- a/packages/cli/src/commands/lockedgold/show.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { printValueMapRecursive } from '../../utils/cli' -import { Args } from '../../utils/command' - -export default class Show extends BaseCommand { - static description = - 'Show Locked Gold information for a given account. This includes the total amount of locked celo, the amount being used for voting in Validator Elections, the Locked Gold balance this account is required to maintain due to a registered Validator or Validator Group, and any pending withdrawals that have been initiated via "lockedgold:unlock".' - - static flags = { - ...BaseCommand.flags, - } - - static args = [Args.address('account')] - - static examples = ['show 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const { args } = this.parse(Show) - - const lockedGold = await this.kit.contracts.getLockedGold() - - await newCheckBuilder(this).isAccount(args.account).runChecks() - - printValueMapRecursive(await lockedGold.getAccountSummary(args.account)) - } -} diff --git a/packages/cli/src/commands/lockedgold/unlock.test.ts b/packages/cli/src/commands/lockedgold/unlock.test.ts deleted file mode 100644 index 8e8affe5b36..00000000000 --- a/packages/cli/src/commands/lockedgold/unlock.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { newKitFromWeb3 } from '@celo/contractkit' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { addressToPublicKey } from '@celo/utils/lib/signatureUtils' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Vote from '../election/vote' -import ValidatorAffiliate from '../validator/affiliate' -import ValidatorRegister from '../validator/register' -import ValidatorGroupMember from '../validatorgroup/member' -import ValidatorGroupRegister from '../validatorgroup/register' -import Lock from './lock' -import Unlock from './unlock' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('lockedgold:unlock cmd', (web3: Web3) => { - test('can unlock correctly from registered validator group', async () => { - const accounts = await web3.eth.getAccounts() - const account = accounts[0] - const validator = accounts[1] - const kit = newKitFromWeb3(web3) - const lockedGold = await kit.contracts.getLockedGold() - await testLocally(Register, ['--from', account]) - await testLocally(Lock, ['--from', account, '--value', '20000000000000000000000']) - await testLocally(ValidatorGroupRegister, ['--from', account, '--commission', '0', '--yes']) - await testLocally(Register, ['--from', validator]) - await testLocally(Lock, ['--from', validator, '--value', '20000000000000000000000']) - const ecdsaPublicKey = await addressToPublicKey(validator, web3.eth.sign) - await testLocally(ValidatorRegister, [ - '--from', - validator, - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - await testLocally(ValidatorAffiliate, ['--yes', '--from', validator, account]) - await testLocally(ValidatorGroupMember, ['--yes', '--from', account, '--accept', validator]) - await testLocally(Vote, [ - '--from', - account, - '--for', - account, - '--value', - '10000000000000000000000', - ]) - await testLocally(Unlock, ['--from', account, '--value', '10000000000000000000000']) - const pendingWithdrawalsTotalValue = await lockedGold.getPendingWithdrawalsTotalValue(account) - expect(pendingWithdrawalsTotalValue.toFixed()).toBe('10000000000000000000000') - }) -}) diff --git a/packages/cli/src/commands/lockedgold/unlock.ts b/packages/cli/src/commands/lockedgold/unlock.ts deleted file mode 100644 index 244d331cc3d..00000000000 --- a/packages/cli/src/commands/lockedgold/unlock.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { LockedGoldArgs } from '../../utils/lockedgold' - -export default class Unlock extends BaseCommand { - static description = - 'Unlocks CELO, which can be withdrawn after the unlocking period. Unlocked celo will appear as a "pending withdrawal" until the unlocking period is over, after which it can be withdrawn via "lockedgold:withdraw".' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true }), - value: flags.string({ ...LockedGoldArgs.valueArg, required: true }), - } - - static args = [] - - static examples = ['unlock --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --value 500000000'] - - async run() { - const res = this.parse(Unlock) - - const lockedgold = await this.kit.contracts.getLockedGold() - const value = new BigNumber(res.flags.value) - - await newCheckBuilder(this, res.flags.from) - .isAccount(res.flags.from) - .isNotVoting(res.flags.from) - .hasEnoughLockedGoldToUnlock(value) - .runChecks() - - await displaySendTx('unlock', lockedgold.unlock(value)) - } -} diff --git a/packages/cli/src/commands/lockedgold/update-delegated-amount.test.ts b/packages/cli/src/commands/lockedgold/update-delegated-amount.test.ts deleted file mode 100644 index 8a60b2ba9d6..00000000000 --- a/packages/cli/src/commands/lockedgold/update-delegated-amount.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Delegate from './delegate' -import Lock from './lock' -import UpdateDelegatedAmount from './update-delegated-amount' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('lockedgold:update-delegated-amount cmd', (web3: Web3) => { - test('can update delegated amount', async () => { - const accounts = await web3.eth.getAccounts() - const account = accounts[0] - const account2 = accounts[1] - await testLocally(Register, ['--from', account]) - await testLocally(Register, ['--from', account2]) - await testLocally(Lock, ['--from', account, '--value', '200']) - await testLocally(Delegate, ['--from', account, '--to', account2, '--percent', '100']) - - await testLocally(UpdateDelegatedAmount, ['--from', account, '--to', account2]) - }) -}) diff --git a/packages/cli/src/commands/lockedgold/update-delegated-amount.ts b/packages/cli/src/commands/lockedgold/update-delegated-amount.ts deleted file mode 100644 index b8dee9ba0af..00000000000 --- a/packages/cli/src/commands/lockedgold/update-delegated-amount.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Address } from '@celo/connect' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class UpdateDelegatedAmount extends BaseCommand { - static description = - 'Updates the amount of delegated locked celo. There might be discrepancy between the amount of locked celo and the amount of delegated locked celo because of received rewards.' - - static flags = { - ...BaseCommand.flags, - from: flags.string({ ...Flags.address, required: true }), - to: flags.string({ ...Flags.address, required: true }), - } - - static args = [] - - static examples = [ - 'update-delegated-amount --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --to 0xc0ffee254729296a45a3885639AC7E10F9d54979', - ] - - async run() { - const res = this.parse(UpdateDelegatedAmount) - const address: Address = res.flags.from - const to: Address = res.flags.to - - this.kit.defaultAccount = address - - await newCheckBuilder(this).isAccount(address).isAccount(to).runChecks() - - const lockedGold = await this.kit.contracts.getLockedGold() - - const tx = lockedGold.updateDelegatedAmount(address, to) - await displaySendTx('updateDelegatedAmount', tx) - } -} diff --git a/packages/cli/src/commands/lockedgold/withdraw.ts b/packages/cli/src/commands/lockedgold/withdraw.ts deleted file mode 100644 index ee2cffcd94d..00000000000 --- a/packages/cli/src/commands/lockedgold/withdraw.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class Withdraw extends BaseCommand { - static description = - 'Withdraw any pending withdrawals created via "lockedgold:unlock" that have become available.' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true }), - } - - static examples = ['withdraw --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95'] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(Withdraw) - this.kit.defaultAccount = flags.from - const lockedgold = await this.kit.contracts.getLockedGold() - - await newCheckBuilder(this).isAccount(flags.from).runChecks() - - const currentTime = Math.round(new Date().getTime() / 1000) - while (true) { - let madeWithdrawal = false - const pendingWithdrawals = await lockedgold.getPendingWithdrawals(flags.from) - for (let i = 0; i < pendingWithdrawals.length; i++) { - const pendingWithdrawal = pendingWithdrawals[i] - if (pendingWithdrawal.time.isLessThan(currentTime)) { - console.log( - `Found available pending withdrawal of value ${pendingWithdrawal.value.toFixed()}, withdrawing` - ) - await displaySendTx('withdraw', lockedgold.withdraw(i)) - madeWithdrawal = true - break - } - } - if (!madeWithdrawal) { - break - } - } - const remainingPendingWithdrawals = await lockedgold.getPendingWithdrawals(flags.from) - for (const pendingWithdrawal of remainingPendingWithdrawals) { - console.log( - `Pending withdrawal of value ${pendingWithdrawal.value.toFixed()} available for withdrawal in ${pendingWithdrawal.time - .minus(currentTime) - .toFixed()} seconds.` - ) - } - } -} diff --git a/packages/cli/src/commands/multisig/approve.ts b/packages/cli/src/commands/multisig/approve.ts deleted file mode 100644 index 834ffb12a4f..00000000000 --- a/packages/cli/src/commands/multisig/approve.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ApproveMultiSig extends BaseCommand { - static description = 'Approves an existing transaction on a multi-sig contract' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'Account approving the multi-sig transaction', - }), - for: Flags.address({ - required: true, - description: 'Address of the multi-sig contract', - }), - tx: flags.integer({ - required: true, - description: 'Transaction to approve', - }), - } - - static examples = [ - 'approve --from 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --for 0x5409ed021d9299bf6814279a6a1411a7e866a631 --tx 3', - ] - - async run() { - const res = this.parse(ApproveMultiSig) - const account = res.flags.from - this.kit.defaultAccount = account - - const multisig = await this.kit.contracts.getMultiSig(res.flags.for) - - const checkBuilder = newCheckBuilder(this) - .isMultiSigOwner(account, multisig) - .addCheck( - `Checking that ${res.flags.tx} is an existing transaction.`, - async () => { - const max = await multisig.getTransactionCount(true, true) - return res.flags.tx < max - }, - `(Failed: No transaction with index ${res.flags.tx} found)` - ) - - await checkBuilder.runChecks() - - const tx = await multisig.confirmTransaction(res.flags.tx) - await displaySendTx('approveTx', tx, {}, 'ApproveTx') - } -} diff --git a/packages/cli/src/commands/multisig/show.ts b/packages/cli/src/commands/multisig/show.ts deleted file mode 100644 index beef0745c5f..00000000000 --- a/packages/cli/src/commands/multisig/show.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { CeloContract } from '@celo/contractkit' -import { TransactionData } from '@celo/contractkit/lib/wrappers/MultiSig' -import { newBlockExplorer } from '@celo/explorer/lib/block-explorer' -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { printValueMapRecursive } from '../../utils/cli' -import { Args } from '../../utils/command' - -export default class ShowMultiSig extends BaseCommand { - static description = 'Shows information about multi-sig contract' - - static flags = { - ...BaseCommand.flags, - tx: flags.integer({ - default: undefined, - description: 'Show info for a transaction', - }), - all: flags.boolean({ default: false, description: 'Show info about all transactions' }), - raw: flags.boolean({ default: false, description: 'Do not attempt to parse transactions' }), - } - - static args = [Args.address('address')] - - static examples = [ - 'show 0x5409ed021d9299bf6814279a6a1411a7e866a631', - 'show 0x5409ed021d9299bf6814279a6a1411a7e866a631 --tx 3', - 'show 0x5409ed021d9299bf6814279a6a1411a7e866a631 --all --raw', - ] - - async run() { - const { - args, - flags: { tx, all, raw }, - } = this.parse(ShowMultiSig) - const multisig = await this.kit.contracts.getMultiSig(args.address) - const txs = await multisig.totalTransactionCount() - const explorer = await newBlockExplorer(this.kit) - await explorer.updateContractDetailsMapping(CeloContract.MultiSig, args.address) - const process = async (txdata: TransactionData) => { - if (raw) return txdata - return { ...txdata, data: await explorer.tryParseTxInput(txdata.destination, txdata.data) } - } - const txinfo = - tx !== undefined - ? await process(await multisig.getTransaction(tx)) - : all - ? await Promise.all((await multisig.getTransactions()).map(process)) - : txs - const info = { - Owners: await multisig.getOwners(), - 'Required confirmations': await multisig.getRequired(), - 'Required confirmations (internal)': await multisig.getInternalRequired(), - Transactions: txinfo, - } - printValueMapRecursive(info) - } -} diff --git a/packages/cli/src/commands/multisig/transfer.ts b/packages/cli/src/commands/multisig/transfer.ts deleted file mode 100644 index 4b366d3c081..00000000000 --- a/packages/cli/src/commands/multisig/transfer.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { flags } from '@oclif/command' -import { BigNumber } from 'bignumber.js' -import { BaseCommand } from '../../base' -import { displaySendTx } from '../../utils/cli' -import { Args, Flags } from '../../utils/command' - -export default class MultiSigTransfer extends BaseCommand { - static description = - 'Ability to approve CELO transfers to and from multisig. Submit transaction or approve a matching existing transaction' - - static flags = { - ...BaseCommand.flags, - to: Flags.address({ required: true, description: 'Recipient of transfer' }), - amount: flags.string({ required: true, description: 'Amount to transfer, e.g. 10e18' }), - transferFrom: flags.boolean({ - description: 'Perform transferFrom instead of transfer in the ERC-20 interface', - }), - sender: Flags.address({ description: 'Identify sender if performing transferFrom' }), - from: Flags.address({ - required: true, - description: 'Account transferring value to the recipient', - }), - } - - static args = [Args.address('address')] - - static examples = [ - 'transfer --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --amount 200000e18 --from 0x123abc', - 'transfer --transferFrom --sender 0x123abc --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --amount 200000e18 --from 0x123abc', - ] - - async run() { - const { - args, - flags: { to, sender, from, amount, transferFrom }, - } = this.parse(MultiSigTransfer) - const amountBN = new BigNumber(amount) - const celoToken = await this.kit.contracts.getGoldToken() - const multisig = await this.kit.contracts.getMultiSig(args.address) - - let transferTx - if (transferFrom) { - if (!sender) this.error("Must submit 'sender' when submitting TransferFrom tx") - // @ts-ignore - function will accept BigNumber - transferTx = celoToken.transferFrom(sender, to, amountBN) - } else { - // @ts-ignore - function will accept BigNumber - transferTx = celoToken.transfer(to, amountBN) - } - const multiSigTx = await multisig.submitOrConfirmTransaction(celoToken.address, transferTx.txo) - await displaySendTx('submitOrApproveTransfer', multiSigTx, { from }, 'tx Sent') - } -} diff --git a/packages/cli/src/commands/network/contracts.ts b/packages/cli/src/commands/network/contracts.ts deleted file mode 100644 index 93806bb00bd..00000000000 --- a/packages/cli/src/commands/network/contracts.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { newICeloVersionedContract } from '@celo/abis/web3/ICeloVersionedContract' -import { newProxy } from '@celo/abis/web3/Proxy' -import { concurrentMap } from '@celo/base' -import { CeloContract } from '@celo/contractkit' -import { cli } from 'cli-ux' -import { table } from 'cli-ux/lib/styled/table' -import { BaseCommand } from '../../base' - -const UNVERSIONED_CONTRACTS = [ - CeloContract.Registry, - CeloContract.FeeCurrencyWhitelist, - CeloContract.Freezer, - CeloContract.StableToken, - CeloContract.StableTokenBRL, - CeloContract.StableTokenEUR, -] -const UNPROXIED_CONTRACTS: CeloContract[] = [] - -export default class Contracts extends BaseCommand { - static description = 'Lists Celo core contracts and their addesses.' - - static flags = { - ...BaseCommand.flags, - ...(cli.table.flags() as object), - } - - async run() { - const res = this.parse(Contracts) - - const addressMapping = await this.kit.registry.addressMapping() - const contractInfo = await concurrentMap( - 4, - Array.from(addressMapping.entries()), - async ([contract, proxy]) => { - // skip implementation check for unproxied contract - const implementation = UNPROXIED_CONTRACTS.includes(contract) - ? 'NONE' - : await newProxy(this.kit.web3, proxy).methods._getImplementation().call() - - // skip version check for unversioned contracts - let version: string - if (UNVERSIONED_CONTRACTS.includes(contract)) { - version = 'NONE' - } else { - const raw = await newICeloVersionedContract(this.kit.web3, implementation) - .methods.getVersionNumber() - .call() - version = `${raw[0]}.${raw[1]}.${raw[2]}.${raw[3]}` - } - - const balances = await this.kit.celoTokens.balancesOf(proxy) - return { - contract, - proxy, - implementation, - version, - balances, - } - } - ) - - const tokenBalanceColumns: table.Columns<(typeof contractInfo)[number]> = {} - await this.kit.celoTokens.forEachCeloToken( - (token) => - (tokenBalanceColumns[token.symbol] = { - header: token.symbol, - get: (i) => { - const balance = i.balances[token.symbol]! - return balance.isZero() ? '0' : balance.toExponential(3) - }, - }) - ) - - cli.table( - contractInfo, - { - contract: { get: (i) => i.contract }, - proxy: { get: (i) => i.proxy }, - implementation: { get: (i) => i.implementation }, - version: { - get: (i) => i.version, - }, - ...tokenBalanceColumns, - }, - { sort: 'contract', ...res.flags } - ) - } -} diff --git a/packages/cli/src/commands/network/info.ts b/packages/cli/src/commands/network/info.ts deleted file mode 100644 index 5991f8c4f0c..00000000000 --- a/packages/cli/src/commands/network/info.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { printValueMapRecursive } from '../../utils/cli' - -export default class Info extends BaseCommand { - static description = 'View general network information such as the current block number' - - static flags = { - ...BaseCommand.flags, - lastN: flags.integer({ - char: 'n', - description: 'Fetch info about the last n epochs', - required: false, - default: 1, - }), - } - - async run() { - const res = this.parse(Info) - - const blockNumber = await this.kit.connection.getBlockNumber() - const latestEpochNumber = await this.kit.getEpochNumberOfBlock(blockNumber) - const epochSize = await this.kit.getEpochSize() - - const fetchEpochInfo = async (epochNumber: number) => ({ - number: epochNumber, - start: await this.kit.getFirstBlockNumberForEpoch(epochNumber), - end: await this.kit.getLastBlockNumberForEpoch(epochNumber), - }) - - const n = res.flags.lastN - const epochs = [] - for (let i = latestEpochNumber; i > latestEpochNumber - n; i--) { - epochs.push(await fetchEpochInfo(i)) - } - - printValueMapRecursive({ - blockNumber, - epochSize, - epochs: epochs.length === 1 ? epochs[0] : epochs, - }) - } -} diff --git a/packages/cli/src/commands/network/parameters.ts b/packages/cli/src/commands/network/parameters.ts deleted file mode 100644 index b4ac612ea6b..00000000000 --- a/packages/cli/src/commands/network/parameters.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { printValueMapRecursive } from '../../utils/cli' - -export default class Parameters extends BaseCommand { - static description = - 'View parameters of the network, including but not limited to configuration for the various Celo core smart contracts.' - - static flags = { - ...BaseCommand.flags, - raw: flags.boolean({ - description: 'Display raw numerical configuration', - required: false, - default: false, - }), - } - - async run() { - const res = this.parse(Parameters) - const config = await this.kit.getNetworkConfig(!res.flags.raw) - printValueMapRecursive(config) - } -} diff --git a/packages/cli/src/commands/node/accounts.ts b/packages/cli/src/commands/node/accounts.ts deleted file mode 100644 index aa3f09594c7..00000000000 --- a/packages/cli/src/commands/node/accounts.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { BaseCommand } from '../../base' - -export default class NodeAccounts extends BaseCommand { - static description = 'List the addresses that this node has the private keys for.' - - static flags = { - ...BaseCommand.flags, - } - - requireSynced = false - - async run() { - this.parse(NodeAccounts) - - const accounts = await this.kit.connection.getAccounts() - console.log('***This command will be deprecated, please use "account:list" ***') - console.log(accounts) - } -} diff --git a/packages/cli/src/commands/node/synced.ts b/packages/cli/src/commands/node/synced.ts deleted file mode 100644 index c66556f0cce..00000000000 --- a/packages/cli/src/commands/node/synced.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { nodeIsSynced } from '../../utils/helpers' - -export default class NodeSynced extends BaseCommand { - static description = 'Check if the node is synced' - - static flags = { - ...BaseCommand.flags, - verbose: flags.boolean({ - description: 'output the full status if syncing', - }), - } - - requireSynced = false - - async run() { - const res = this.parse(NodeSynced) - - if (res.flags.verbose) { - const status = await this.web3.eth.isSyncing() - if (typeof status !== 'boolean') { - console.log(status) - } - } - console.log(await nodeIsSynced(this.web3)) - } -} diff --git a/packages/cli/src/commands/oracle/list.ts b/packages/cli/src/commands/oracle/list.ts deleted file mode 100644 index 1bb0d3fa2f3..00000000000 --- a/packages/cli/src/commands/oracle/list.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { CeloContract } from '@celo/contractkit' -import { BaseCommand } from '../../base' -import { failWith } from '../../utils/cli' - -export default class List extends BaseCommand { - static description = 'List oracle addresses for a given token' - - static flags = { - ...BaseCommand.flags, - } - - static args = [ - { - name: 'token', - required: true, - description: 'Token to list the oracles for', - default: CeloContract.StableToken, - }, - ] - - static example = ['list StableToken', 'list', 'list StableTokenEUR'] - - async run() { - const res = this.parse(List) - const sortedOracles = await this.kit.contracts.getSortedOracles() - - const oracles = await sortedOracles.getOracles(res.args.token).catch((e) => failWith(e)) - console.log(oracles) - } -} diff --git a/packages/cli/src/commands/oracle/remove-expired-reports.ts b/packages/cli/src/commands/oracle/remove-expired-reports.ts deleted file mode 100644 index a05be358468..00000000000 --- a/packages/cli/src/commands/oracle/remove-expired-reports.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { CeloContract } from '@celo/contractkit' -import { BaseCommand } from '../../base' -import { displaySendTx, failWith } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class RemoveExpiredReports extends BaseCommand { - static description = 'Remove expired oracle reports for a specified token' - - static args = [ - { - name: 'token', - required: true, - default: CeloContract.StableToken, - description: 'Token to remove expired reports for', - }, - ] - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'Address of the account removing oracle reports', - }), - } - - static example = [ - 'remove-expired-reports StableToken --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1', - 'remove-expired-reports --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1', - 'remove-expired-reports StableTokenEUR --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1', - ] - - async run() { - const res = this.parse(RemoveExpiredReports) - - const sortedOracles = await this.kit.contracts.getSortedOracles().catch((e) => failWith(e)) - const txo = await sortedOracles.removeExpiredReports(res.args.token) - await displaySendTx('removeExpiredReports', txo) - } -} diff --git a/packages/cli/src/commands/oracle/report.ts b/packages/cli/src/commands/oracle/report.ts deleted file mode 100644 index c25275a8594..00000000000 --- a/packages/cli/src/commands/oracle/report.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { CeloContract } from '@celo/contractkit' -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { displaySendTx, failWith } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ReportPrice extends BaseCommand { - static description = 'Report the price of CELO in a specified token' - - static args = [ - { - name: 'token', - required: true, - default: CeloContract.StableToken, - description: 'Token to report on', - }, - ] - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: 'Address of the oracle account' }), - value: flags.string({ - required: true, - description: 'Amount of the specified token equal to 1 CELO', - }), - } - - static example = [ - 'report StableToken --value 1.02 --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1', - 'report --value 0.99 --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1', - 'report StableTokenEUR --value 1.02 --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1', - ] - - async run() { - const res = this.parse(ReportPrice) - const sortedOracles = await this.kit.contracts.getSortedOracles() - const value = new BigNumber(res.flags.value) - - await displaySendTx( - 'sortedOracles.report', - await sortedOracles.report(res.args.token, value, res.flags.from).catch((e) => failWith(e)) - ) - this.log(`Reported oracle value: ${value.toString()} ${res.args.token} == 1 CELO`) - } -} diff --git a/packages/cli/src/commands/oracle/reports.ts b/packages/cli/src/commands/oracle/reports.ts deleted file mode 100644 index 28aa1ad729a..00000000000 --- a/packages/cli/src/commands/oracle/reports.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { CeloContract } from '@celo/contractkit' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { failWith } from '../../utils/cli' - -export default class Reports extends BaseCommand { - static description = 'List oracle reports for a given token' - - static flags = { - ...BaseCommand.flags, - ...(cli.table.flags() as object), - } - - static args = [ - { - name: 'token', - required: true, - description: 'Token to list the reports for', - default: CeloContract.StableToken, - }, - ] - - static example = ['reports StableToken', 'reports', 'reports StableTokenEUR'] - - async run() { - const res = this.parse(Reports) - const sortedOracles = await this.kit.contracts.getSortedOracles() - - const reports = await sortedOracles.getReports(res.args.token).catch((e) => failWith(e)) - cli.table( - reports, - { - address: {}, - rate: { get: (r) => r.rate.toNumber() }, - timestamp: { get: (r) => r.timestamp.toNumber() }, - }, - res.flags - ) - } -} diff --git a/packages/cli/src/commands/releasecelo b/packages/cli/src/commands/releasecelo deleted file mode 120000 index b40e4bd6aea..00000000000 --- a/packages/cli/src/commands/releasecelo +++ /dev/null @@ -1 +0,0 @@ -releasegold \ No newline at end of file diff --git a/packages/cli/src/commands/releasegold/admin-revoke.test.ts b/packages/cli/src/commands/releasegold/admin-revoke.test.ts deleted file mode 100644 index 1371f2c6436..00000000000 --- a/packages/cli/src/commands/releasegold/admin-revoke.test.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { newReleaseGold } from '@celo/abis/web3/ReleaseGold' -import { serializeSignature } from '@celo/base/lib/signatureUtils' -import { ContractKit, newKitFromWeb3 } from '@celo/contractkit' -import { AccountsWrapper } from '@celo/contractkit/lib/wrappers/Accounts' -import { GovernanceWrapper } from '@celo/contractkit/lib/wrappers/Governance' -import { ReleaseGoldWrapper } from '@celo/contractkit/lib/wrappers/ReleaseGold' -import { - getContractFromEvent, - NetworkConfig, - testWithGanache, - timeTravel, -} from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Approve from '../governance/approve' -import GovernanceUpvote from '../governance/upvote' -import GovernanceVote from '../governance/vote' -import AdminRevoke from './admin-revoke' -import Authorize from './authorize' -import CreateAccount from './create-account' -import LockedGold from './locked-gold' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('releasegold:admin-revoke cmd', (web3: Web3) => { - let kit: ContractKit - let contractAddress: string - let releaseGoldWrapper: ReleaseGoldWrapper - let accounts: string[] - - beforeEach(async () => { - contractAddress = await getContractFromEvent( - 'ReleaseGoldInstanceCreated(address,address)', - web3, - { index: 1 } // revocable: true - ) - kit = newKitFromWeb3(web3) - releaseGoldWrapper = new ReleaseGoldWrapper( - kit.connection, - newReleaseGold(web3, contractAddress), - kit.contracts - ) - accounts = await web3.eth.getAccounts() - }) - - test('will revoke', async () => { - await testLocally(AdminRevoke, ['--contract', contractAddress, '--yesreally']) - const revokedContract = await getContractFromEvent( - 'ReleaseScheduleRevoked(uint256,uint256)', - web3 - ) - expect(revokedContract).toBe(contractAddress) - }) - - test('will rescue all cUSD balance', async () => { - const stableToken = await kit.contracts.getStableToken() - await stableToken.transfer(contractAddress, 100).send({ - from: accounts[0], - }) - await testLocally(AdminRevoke, ['--contract', contractAddress, '--yesreally']) - const balance = await stableToken.balanceOf(contractAddress) - expect(balance.isZero()).toBeTruthy() - }) - - test('will refund and finalize', async () => { - await testLocally(AdminRevoke, ['--contract', contractAddress, '--yesreally']) - const destroyedContract = await getContractFromEvent( - 'ReleaseGoldInstanceDestroyed(address,address)', - web3 - ) - expect(destroyedContract).toBe(contractAddress) - }) - - describe('#when account exists with locked celo', () => { - const value = '10' - - beforeEach(async () => { - await testLocally(CreateAccount, ['--contract', contractAddress]) - await testLocally(LockedGold, [ - '--contract', - contractAddress, - '--action', - 'lock', - '--value', - value, - '--yes', - ]) - }) - - test('will unlock all gold', async () => { - await testLocally(AdminRevoke, ['--contract', contractAddress, '--yesreally']) - const lockedGold = await kit.contracts.getLockedGold() - const lockedAmount = await lockedGold.getAccountTotalLockedGold(releaseGoldWrapper.address) - expect(lockedAmount.isZero()).toBeTruthy() - }) - - describe('#when account has authorized a vote signer', () => { - let voteSigner: string - let accountsWrapper: AccountsWrapper - - beforeEach(async () => { - voteSigner = accounts[2] - accountsWrapper = await kit.contracts.getAccounts() - const pop = await accountsWrapper.generateProofOfKeyPossession(contractAddress, voteSigner) - await testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'vote', - '--signer', - voteSigner, - '--signature', - serializeSignature(pop), - ]) - }) - - test('will rotate vote signer', async () => { - await testLocally(AdminRevoke, ['--contract', contractAddress, '--yesreally']) - const newVoteSigner = await accountsWrapper.getVoteSigner(contractAddress) - expect(newVoteSigner).not.toEqual(voteSigner) - }) - - describe('#when account has voted', () => { - let governance: GovernanceWrapper - - beforeEach(async () => { - // from vote.test.ts - const expConfig = NetworkConfig.governance - const minDeposit = web3.utils.toWei(expConfig.minDeposit.toString(), 'ether') - governance = await kit.contracts.getGovernance() - await governance - .propose([], 'URL') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await timeTravel(expConfig.dequeueFrequency, web3) - await testLocally(Approve, ['--from', accounts[0], '--proposalID', '1', '--useMultiSig']) - await testLocally(GovernanceVote, [ - '--from', - voteSigner, - '--proposalID', - '1', - '--value', - 'Yes', - ]) - await governance - .propose([], 'URL') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await governance - .propose([], 'URL') - .sendAndWaitForReceipt({ from: accounts[0], value: minDeposit }) - await testLocally(GovernanceUpvote, ['--from', voteSigner, '--proposalID', '3']) - - // const validators = await kit.contracts.getValidators() - // const groups = await validators.getRegisteredValidatorGroupsAddresses() - // await testLocally(ElectionVote, [ - // '--from', - // voteSigner, - // '--for', - // groups[0], - // '--value', - // value - // ]) - }) - - test('will revoke governance votes and upvotes', async () => { - const isVotingBefore = await governance.isVoting(contractAddress) - expect(isVotingBefore).toBeTruthy() - await testLocally(AdminRevoke, ['--contract', contractAddress, '--yesreally']) - const isVotingAfter = await governance.isVoting(contractAddress) - expect(isVotingAfter).toBeFalsy() - }) - - // test.only('will revoke election votes', async () => { - // const election = await kit.contracts.getElection() - // const votesBefore = await election.getTotalVotesByAccount(contractAddress) - // expect(votesBefore.isZero).toBeFalsy() - // await testLocally(AdminRevoke, ['--contract', contractAddress, '--yesreally']) - // const votesAfter = await election.getTotalVotesByAccount(contractAddress) - // expect(votesAfter.isZero()).toBeTruthy() - // }) - }) - }) - }) -}) diff --git a/packages/cli/src/commands/releasegold/admin-revoke.ts b/packages/cli/src/commands/releasegold/admin-revoke.ts deleted file mode 100644 index f23f9a59056..00000000000 --- a/packages/cli/src/commands/releasegold/admin-revoke.ts +++ /dev/null @@ -1,143 +0,0 @@ -import { flags } from '@oclif/command' -import prompts from 'prompts' -import { displaySendTx, printValueMap } from '../../utils/cli' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class AdminRevoke extends ReleaseGoldBaseCommand { - static hidden = true - - static description = 'Take all possible steps to revoke given contract instance.' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - yesreally: flags.boolean({ description: 'Override interactive prompt to confirm revocation' }), - } - - static args = [] - - static examples = ['admin-revoke --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631'] - - async run() { - const { flags: _flags } = this.parse(AdminRevoke) - - if (!_flags.yesreally) { - const response = await prompts({ - type: 'confirm', - name: 'confirmation', - message: 'Are you sure you want to revoke this contract? (y/n)', - }) - - if (!response.confirmation) { - console.info('Aborting due to user response') - process.exit(0) - } - } - - this.kit.defaultAccount = await this.releaseGoldWrapper.getReleaseOwner() - - const isRevoked = await this.releaseGoldWrapper.isRevoked() - if (!isRevoked) { - await displaySendTx( - 'releasegold: revokeBeneficiary', - this.releaseGoldWrapper.revokeBeneficiary(), - undefined, - 'ReleaseScheduleRevoked' - ) - } - - const accounts = await this.kit.contracts.getAccounts() - const isAccount = await accounts.isAccount(this.contractAddress) - if (isAccount) { - // rotate vote signers - let voteSigner = await accounts.getVoteSigner(this.contractAddress) - if (voteSigner !== this.contractAddress) { - const password = 'bad_password' - voteSigner = await this.web3.eth.personal.newAccount(password) - await this.web3.eth.personal.unlockAccount(voteSigner, password, 1000) - const pop = await accounts.generateProofOfKeyPossession(this.contractAddress, voteSigner) - await displaySendTx( - 'accounts: rotateVoteSigner', - await this.releaseGoldWrapper.authorizeVoteSigner(voteSigner, pop), - undefined, - 'VoteSignerAuthorized' - ) - } - - const election = await this.kit.contracts.getElection() - const electionVotes = await election.getTotalVotesByAccount(this.contractAddress) - const isElectionVoting = electionVotes.isGreaterThan(0) - - // handle election votes - if (isElectionVoting) { - const txos = await this.releaseGoldWrapper.revokeAllVotesForAllGroups() - for (const txo of txos) { - await displaySendTx('election: revokeVotes', txo, { from: voteSigner }, [ - 'ValidatorGroupPendingVoteRevoked', - 'ValidatorGroupActiveVoteRevoked', - ]) - } - } - - const governance = await this.kit.contracts.getGovernance() - const isGovernanceVoting = await governance.isVoting(this.contractAddress) - - // handle governance votes - if (isGovernanceVoting) { - const isUpvoting = await governance.isUpvoting(this.contractAddress) - if (isUpvoting) { - await displaySendTx( - 'governance: revokeUpvote', - await governance.revokeUpvote(this.contractAddress), - { from: voteSigner }, - 'ProposalUpvoteRevoked' - ) - } - - const isVotingReferendum = await governance.isVotingReferendum(this.contractAddress) - if (isVotingReferendum) { - await displaySendTx( - 'governance: revokeVotes', - governance.revokeVotes(), - { from: voteSigner }, - 'ProposalVoteRevoked' - ) - } - } - - await displaySendTx( - 'releasegold: unlockAllGold', - await this.releaseGoldWrapper.unlockAllGold(), - undefined, - 'GoldUnlocked' - ) - } - - // rescue any cUSD balance - const stabletoken = await this.kit.contracts.getStableToken() - const cusdBalance = await stabletoken.balanceOf(this.contractAddress) - if (cusdBalance.isGreaterThan(0)) { - await displaySendTx( - 'releasegold: rescueCUSD', - this.releaseGoldWrapper.transfer(this.kit.defaultAccount, cusdBalance), - undefined, - 'Transfer' - ) - } - - // attempt to refund and finalize, surface pending withdrawals - const remainingLockedGold = await this.releaseGoldWrapper.getRemainingLockedBalance() - if (remainingLockedGold.isZero()) { - await displaySendTx( - 'releasegold: refundAndFinalize', - this.releaseGoldWrapper.refundAndFinalize(), - undefined, - 'ReleaseGoldInstanceDestroyed' - ) - } else { - console.log('Some celo is still locked, printing pending withdrawals...') - const lockedGold = await this.kit.contracts.getLockedGold() - const pendingWithdrawals = await lockedGold.getPendingWithdrawals(this.contractAddress) - pendingWithdrawals.forEach((w) => printValueMap(w)) - } - } -} diff --git a/packages/cli/src/commands/releasegold/authorize.test.ts b/packages/cli/src/commands/releasegold/authorize.test.ts deleted file mode 100644 index ba1cf0291a7..00000000000 --- a/packages/cli/src/commands/releasegold/authorize.test.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { newKitFromWeb3 } from '@celo/contractkit' -import { getContractFromEvent, testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { addressToPublicKey, serializeSignature } from '@celo/utils/lib/signatureUtils' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import ValidatorRegister from '../validator/register' -import Authorize from './authorize' -import CreateAccount from './create-account' -import LockedGold from './locked-gold' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('releasegold:authorize cmd', (web3: Web3) => { - let contractAddress: string - let kit: any - - beforeEach(async () => { - contractAddress = await getContractFromEvent( - 'ReleaseGoldInstanceCreated(address,address)', - web3 - ) - kit = newKitFromWeb3(web3) - await testLocally(CreateAccount, ['--contract', contractAddress]) - }) - - describe('can authorize account signers', () => { - let pop: any - let accounts: any - - beforeEach(async () => { - accounts = await web3.eth.getAccounts() - const accountsWrapper = await kit.contracts.getAccounts() - pop = await accountsWrapper.generateProofOfKeyPossession(contractAddress, accounts[1]) - }) - - test('can authorize account vote signer ', async () => { - await testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'vote', - '--signer', - accounts[1], - '--signature', - serializeSignature(pop), - ]) - }) - - test('can authorize account validator signer', async () => { - await testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'validator', - '--signer', - accounts[1], - '--signature', - serializeSignature(pop), - ]) - }) - - test('can authorize account attestation signer', async () => { - await testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'attestation', - '--signer', - accounts[1], - '--signature', - serializeSignature(pop), - ]) - }) - }) - - test('can register as a validator from an authorized signer', async () => { - const accounts = await web3.eth.getAccounts() - const accountsWrapper = await kit.contracts.getAccounts() - const signer = accounts[1] - const pop = await accountsWrapper.generateProofOfKeyPossession(contractAddress, signer) - const ecdsaPublicKey = await addressToPublicKey(signer, web3.eth.sign) - await testLocally(LockedGold, [ - '--contract', - contractAddress, - '--action', - 'lock', - '--value', - '10000000000000000000000', - '--yes', - ]) - await testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'validator', - '--signer', - signer, - '--signature', - serializeSignature(pop), - ]) - await testLocally(ValidatorRegister, [ - '--from', - signer, - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - }) - - test('can authorize signer with BLS keys after registering as validator', async () => { - const accounts = await web3.eth.getAccounts() - const accountsWrapper = await kit.contracts.getAccounts() - const signer = accounts[1] - const pop = await accountsWrapper.generateProofOfKeyPossession(contractAddress, signer) - const ecdsaPublicKey = await addressToPublicKey(signer, web3.eth.sign) - - const signerBLS = accounts[2] - const popBLS = await accountsWrapper.generateProofOfKeyPossession(contractAddress, signerBLS) - const newBlsPublicKey = web3.utils.randomHex(96) - const newBlsPoP = web3.utils.randomHex(48) - - await testLocally(LockedGold, [ - '--contract', - contractAddress, - '--action', - 'lock', - '--value', - '10000000000000000000000', - '--yes', - ]) - await testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'validator', - '--signer', - signer, - '--signature', - serializeSignature(pop), - ]) - await testLocally(ValidatorRegister, [ - '--from', - signer, - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - await testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'validator', - '--signer', - signerBLS, - '--signature', - serializeSignature(popBLS), - '--blsKey', - newBlsPublicKey, - '--blsPop', - newBlsPoP, - ]) - }) - - test('cannot authorize signer without BLS keys after registering as validator', async () => { - const accounts = await web3.eth.getAccounts() - const accountsWrapper = await kit.contracts.getAccounts() - const signer = accounts[1] - const pop = await accountsWrapper.generateProofOfKeyPossession(contractAddress, signer) - const ecdsaPublicKey = await addressToPublicKey(signer, web3.eth.sign) - - const signerNew = accounts[2] - const popNew = await accountsWrapper.generateProofOfKeyPossession(contractAddress, signerNew) - - await testLocally(LockedGold, [ - '--contract', - contractAddress, - '--action', - 'lock', - '--value', - '10000000000000000000000', - '--yes', - ]) - await testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'validator', - '--signer', - signer, - '--signature', - serializeSignature(pop), - ]) - await testLocally(ValidatorRegister, [ - '--from', - signer, - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - await expect( - testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'validator', - '--signer', - signerNew, - '--signature', - serializeSignature(popNew), - ]) - ).rejects.toThrow() - }) - - test('fails if contract is not registered as an account', async () => { - const accounts = await web3.eth.getAccounts() - await expect( - testLocally(Authorize, [ - '--contract', - contractAddress, - '--role', - 'validator', - '--signer', - accounts[1], - '--signature', - '0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - ]) - ).rejects.toThrow() - }) -}) diff --git a/packages/cli/src/commands/releasegold/authorize.ts b/packages/cli/src/commands/releasegold/authorize.ts deleted file mode 100644 index f69334de631..00000000000 --- a/packages/cli/src/commands/releasegold/authorize.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { flags as oclifFlags } from '@oclif/command' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class Authorize extends ReleaseGoldBaseCommand { - static description = - 'Authorize an alternative key to be used for a given action (Vote, Validate, Attest) on behalf of the ReleaseGold instance contract.' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - role: oclifFlags.string({ required: true, options: ['vote', 'validator', 'attestation'] }), - signer: Flags.address({ - required: true, - description: 'The signer key that is to be used for voting through the ReleaseGold instance', - }), - signature: Flags.proofOfPossession({ - description: 'Signature (a.k.a. proof-of-possession) of the signer key', - required: true, - }), - blsKey: Flags.blsPublicKey({ - description: - 'The BLS public key that the validator is using for consensus, should pass proof of possession. 96 bytes.', - dependsOn: ['blsPop'], - }), - blsPop: Flags.blsProofOfPossession({ - description: - 'The BLS public key proof-of-possession, which consists of a signature on the account address. 48 bytes.', - dependsOn: ['blsKey'], - }), - force: oclifFlags.boolean({ - description: - 'Allow rotation of validator ECDSA key without rotating the BLS key. Only intended for validators with a special reason to do so.', - default: false, - hidden: true, - }), - } - - static args = [] - - static examples = [ - 'authorize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role vote --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - 'authorize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role validator --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb --blsKey 0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00 --blsPop 0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - 'authorize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role attestation --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(Authorize) - - const role = flags.role - - // Check that the account is registered on-chain. - // Additionally, if the authorization is for a validator, the BLS key must be provided when the - // validator is already registered, and cannot be provided if the validator is not registered. - // (Because the BLS key is stored on the validator entry, which would not exist yet) - // Using the --force flag allows setting the ECDSA key on the validator without the BLS key. - const checker = newCheckBuilder(this).isAccount(this.releaseGoldWrapper.address) - if (flags.role === 'validator' && !flags.force) { - if (flags.blsKey && flags.blsPop) { - checker.isValidator(this.releaseGoldWrapper.address) - } else { - checker.isNotValidator(this.releaseGoldWrapper.address) - } - } - await checker.runChecks() - - const accounts = await this.kit.contracts.getAccounts() - const sig = accounts.parseSignatureOfAddress( - this.releaseGoldWrapper.address, - flags.signer, - flags.signature - ) - - const isRevoked = await this.releaseGoldWrapper.isRevoked() - this.kit.defaultAccount = isRevoked - ? await this.releaseGoldWrapper.getReleaseOwner() - : await this.releaseGoldWrapper.getBeneficiary() - let tx: any - if (role === 'vote') { - tx = await this.releaseGoldWrapper.authorizeVoteSigner(flags.signer, sig) - } else if (role === 'validator' && flags.blsKey && flags.blsPop) { - tx = await this.releaseGoldWrapper.authorizeValidatorSignerAndBls( - flags.signer, - sig, - flags.blsKey, - flags.blsPop - ) - } else if (role === 'validator') { - tx = await this.releaseGoldWrapper.authorizeValidatorSigner(flags.signer, sig) - } else if (role === 'attestation') { - tx = await this.releaseGoldWrapper.authorizeAttestationSigner(flags.signer, sig) - } else { - this.error('Invalid role provided') - return - } - await displaySendTx('authorize' + role + 'Tx', tx) - } -} diff --git a/packages/cli/src/commands/releasegold/create-account.ts b/packages/cli/src/commands/releasegold/create-account.ts deleted file mode 100644 index e347740ca98..00000000000 --- a/packages/cli/src/commands/releasegold/create-account.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' -export default class CreateAccount extends ReleaseGoldBaseCommand { - static description = 'Creates a new account for the ReleaseGold instance' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - } - - static args = [] - - static examples = ['create-account --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631'] - - async run() { - const isRevoked = await this.releaseGoldWrapper.isRevoked() - await newCheckBuilder(this) - .isNotAccount(this.releaseGoldWrapper.address) - .addCheck('Contract is not revoked', () => !isRevoked) - .runChecks() - - this.kit.defaultAccount = await this.releaseGoldWrapper.getBeneficiary() - await displaySendTx('createAccount', this.releaseGoldWrapper.createAccount()) - } -} diff --git a/packages/cli/src/commands/releasegold/locked-gold.test.ts b/packages/cli/src/commands/releasegold/locked-gold.test.ts deleted file mode 100644 index 9dbd6d39a1b..00000000000 --- a/packages/cli/src/commands/releasegold/locked-gold.test.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { newKitFromWeb3 } from '@celo/contractkit' -import { getContractFromEvent, testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import CreateAccount from './create-account' -import LockedGold from './locked-gold' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('releasegold:locked-gold cmd', (web3: Web3) => { - let contractAddress: string - let kit: any - - beforeEach(async () => { - contractAddress = await getContractFromEvent( - 'ReleaseGoldInstanceCreated(address,address)', - web3 - ) - kit = newKitFromWeb3(web3) - await testLocally(CreateAccount, ['--contract', contractAddress]) - }) - - test('can lock celo with pending withdrawals', async () => { - const lockedGold = await kit.contracts.getLockedGold() - await testLocally(LockedGold, [ - '--contract', - contractAddress, - '--action', - 'lock', - '--value', - '100', - ]) - await testLocally(LockedGold, [ - '--contract', - contractAddress, - '--action', - 'unlock', - '--value', - '50', - ]) - await testLocally(LockedGold, [ - '--contract', - contractAddress, - '--action', - 'lock', - '--value', - '75', - ]) - await testLocally(LockedGold, [ - '--contract', - contractAddress, - '--action', - 'unlock', - '--value', - '50', - ]) - const pendingWithdrawalsTotalValue = await lockedGold.getPendingWithdrawalsTotalValue( - contractAddress - ) - await expect(pendingWithdrawalsTotalValue.toFixed()).toBe('50') - }) -}) diff --git a/packages/cli/src/commands/releasegold/locked-gold.ts b/packages/cli/src/commands/releasegold/locked-gold.ts deleted file mode 100644 index b368c5deec9..00000000000 --- a/packages/cli/src/commands/releasegold/locked-gold.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { eqAddress } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { newCheckBuilder } from '../../utils/checks' -import { binaryPrompt, displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class LockedGold extends ReleaseGoldBaseCommand { - static description = - 'Perform actions [lock, unlock, withdraw] on CELO that has been locked via the provided ReleaseGold contract.' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - action: flags.string({ - char: 'a', - options: ['lock', 'unlock', 'withdraw'], - description: "Action to perform on contract's celo", - required: true, - }), - value: Flags.wei({ required: true, description: 'Amount of celo to perform `action` with' }), - yes: flags.boolean({ description: 'Answer yes to prompt' }), - } - - static examples = [ - 'locked-gold --contract 0xCcc8a47BE435F1590809337BB14081b256Ae26A8 --action lock --value 10000000000000000000000', - 'locked-gold --contract 0xCcc8a47BE435F1590809337BB14081b256Ae26A8 --action unlock --value 10000000000000000000000', - 'locked-gold --contract 0xCcc8a47BE435F1590809337BB14081b256Ae26A8 --action withdraw --value 10000000000000000000000', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(LockedGold) - const value = new BigNumber(flags.value) - const checkBuilder = newCheckBuilder(this, this.contractAddress).isAccount(this.contractAddress) - const isRevoked = await this.releaseGoldWrapper.isRevoked() - const beneficiary = await this.releaseGoldWrapper.getBeneficiary() - const releaseOwner = await this.releaseGoldWrapper.getReleaseOwner() - const lockedGold = await this.kit.contracts.getLockedGold() - this.kit.defaultAccount = isRevoked ? releaseOwner : beneficiary - - if (flags.action === 'lock') { - // Must verify contract is account before checking pending withdrawals - await checkBuilder.addCheck('Is not revoked', () => !isRevoked).runChecks() - const pendingWithdrawalsValue = await lockedGold.getPendingWithdrawalsTotalValue( - this.contractAddress - ) - const relockValue = BigNumber.minimum(pendingWithdrawalsValue, value) - const lockValue = value.minus(relockValue) - await newCheckBuilder(this, this.contractAddress) - .hasEnoughCelo(this.contractAddress, lockValue) - .runChecks() - const txos = await this.releaseGoldWrapper.relockGold(relockValue) - for (const txo of txos) { - await displaySendTx('lockedGoldRelock', txo, { from: beneficiary }) - } - if (lockValue.gt(new BigNumber(0))) { - const accounts = await this.kit.contracts.getAccounts() - const totalValue = await this.releaseGoldWrapper.getRemainingUnlockedBalance() - const remaining = totalValue.minus(lockValue) - console.log('remaining', remaining.toFixed()) - if ( - !flags.yes && - remaining.lt(new BigNumber(2e18)) && - (eqAddress(await accounts.getVoteSigner(flags.contract), flags.contract) || - eqAddress(await accounts.getValidatorSigner(flags.contract), flags.contract)) - ) { - const check = await binaryPrompt( - `Only ${remaining.shiftedBy( - -18 - )} CELO would be left unlocked, you might not be able to fund your signers. Unlock anyway?`, - true - ) - if (!check) { - console.log('Cancelled') - return - } - } - await displaySendTx('lockedGoldLock', this.releaseGoldWrapper.lockGold(lockValue)) - } - } else if (flags.action === 'unlock') { - await checkBuilder - .isNotVoting(this.contractAddress) - .hasEnoughLockedGoldToUnlock(value) - .runChecks() - await displaySendTx('lockedGoldUnlock', this.releaseGoldWrapper.unlockGold(flags.value)) - } else if (flags.action === 'withdraw') { - await checkBuilder.runChecks() - const currentTime = Math.round(new Date().getTime() / 1000) - while (true) { - let madeWithdrawal = false - const pendingWithdrawals = await lockedGold.getPendingWithdrawals(this.contractAddress) - for (let i = 0; i < pendingWithdrawals.length; i++) { - const pendingWithdrawal = pendingWithdrawals[i] - if (pendingWithdrawal.time.isLessThan(currentTime)) { - console.log( - `Found available pending withdrawal of value ${pendingWithdrawal.value.toFixed()}, withdrawing` - ) - await displaySendTx('lockedGoldWithdraw', this.releaseGoldWrapper.withdrawLockedGold(i)) - madeWithdrawal = true - break - } - } - if (!madeWithdrawal) break - } - const remainingPendingWithdrawals = await lockedGold.getPendingWithdrawals( - this.contractAddress - ) - for (const pendingWithdrawal of remainingPendingWithdrawals) { - console.log( - `Pending withdrawal of value ${pendingWithdrawal.value.toFixed()} available for withdrawal in ${pendingWithdrawal.time - .minus(currentTime) - .toFixed()} seconds.` - ) - } - } - } -} diff --git a/packages/cli/src/commands/releasegold/refund-and-finalize.test.ts b/packages/cli/src/commands/releasegold/refund-and-finalize.test.ts deleted file mode 100644 index 0aa8611d5e4..00000000000 --- a/packages/cli/src/commands/releasegold/refund-and-finalize.test.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { newReleaseGold } from '@celo/abis/web3/ReleaseGold' -import { ContractKit, newKitFromWeb3 } from '@celo/contractkit' -import { ReleaseGoldWrapper } from '@celo/contractkit/lib/wrappers/ReleaseGold' -import { getContractFromEvent, testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import RefundAndFinalize from './refund-and-finalize' -import Revoke from './revoke' -import Show from './show' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('releasegold:refund-and-finalize cmd', (web3: Web3) => { - let contractAddress: any - let kit: ContractKit - - beforeEach(async () => { - contractAddress = await getContractFromEvent( - 'ReleaseGoldInstanceCreated(address,address)', - web3, - { index: 1 } // revocable = true - ) - kit = newKitFromWeb3(web3) - }) - - test('can refund celo', async () => { - await testLocally(Revoke, ['--contract', contractAddress, '--yesreally']) - const releaseGoldWrapper = new ReleaseGoldWrapper( - kit.connection, - newReleaseGold(web3, contractAddress), - kit.contracts - ) - const refundAddress = await releaseGoldWrapper.getRefundAddress() - const balanceBefore = await kit.getTotalBalance(refundAddress) - await testLocally(RefundAndFinalize, ['--contract', contractAddress]) - const balanceAfter = await kit.getTotalBalance(refundAddress) - expect(balanceBefore.CELO!.toNumber()).toBeLessThan(balanceAfter.CELO!.toNumber()) - }) - - test('can finalize the contract', async () => { - await testLocally(Revoke, ['--contract', contractAddress, '--yesreally']) - await testLocally(RefundAndFinalize, ['--contract', contractAddress]) - await expect(testLocally(Show, ['--contract', contractAddress])).rejects.toThrow() - }) -}) diff --git a/packages/cli/src/commands/releasegold/refund-and-finalize.ts b/packages/cli/src/commands/releasegold/refund-and-finalize.ts deleted file mode 100644 index 04699d822bf..00000000000 --- a/packages/cli/src/commands/releasegold/refund-and-finalize.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class RefundAndFinalize extends ReleaseGoldBaseCommand { - static description = - "Refund the given contract's balance to the appopriate parties and destroy the contact. Can only be called by the release owner of revocable ReleaseGold instances." - - static flags = { - ...ReleaseGoldBaseCommand.flags, - } - - static args = [] - - static examples = ['refund-and-finalize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631'] - - async run() { - const isRevoked = await this.releaseGoldWrapper.isRevoked() - const remainingLockedBalance = await this.releaseGoldWrapper.getRemainingLockedBalance() - - await newCheckBuilder(this) - .addCheck('Contract is revoked', () => isRevoked) - .addCheck('All contract celo is unlocked', () => remainingLockedBalance.eq(0)) - .runChecks() - - this.kit.defaultAccount = await this.releaseGoldWrapper.getReleaseOwner() - await displaySendTx('refundAndFinalize', await this.releaseGoldWrapper.refundAndFinalize()) - } -} diff --git a/packages/cli/src/commands/releasegold/revoke-votes.ts b/packages/cli/src/commands/releasegold/revoke-votes.ts deleted file mode 100644 index d3aed95beb1..00000000000 --- a/packages/cli/src/commands/releasegold/revoke-votes.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { CeloTransactionObject } from '@celo/connect' -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class RevokeVotes extends ReleaseGoldBaseCommand { - static description = - "Revokes `votes` for the given contract's account from the given group's account" - - static flags = { - ...ReleaseGoldBaseCommand.flags, - group: Flags.address({ - required: false, - exclusive: ['allGroups'], - description: 'Address of the group to revoke votes from', - }), - votes: flags.string({ - required: false, - exclusive: ['allVotes', 'allGroups'], - description: 'The number of votes to revoke', - }), - allVotes: flags.boolean({ - required: false, - exclusive: ['votes'], - description: 'Revoke all votes', - }), - allGroups: flags.boolean({ - required: false, - exclusive: ['group', 'votes'], - description: 'Revoke all votes from all groups', - }), - } - - static examples = [ - 'revoke-votes --contract 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --group 0x5409ED021D9299bf6814279A6A1411A7e866A631 --votes 100', - 'revoke-votes --contract 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --allVotes --allGroups', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(RevokeVotes) - - await newCheckBuilder(this).isAccount(this.releaseGoldWrapper.address).runChecks() - - const isRevoked = await this.releaseGoldWrapper.isRevoked() - const beneficiary = await this.releaseGoldWrapper.getBeneficiary() - const releaseOwner = await this.releaseGoldWrapper.getReleaseOwner() - - this.kit.defaultAccount = isRevoked ? releaseOwner : beneficiary - - let txos: Array> - if (flags.allVotes && flags.allGroups) { - txos = await this.releaseGoldWrapper.revokeAllVotesForAllGroups() - } else if (flags.allVotes && flags.group) { - txos = await this.releaseGoldWrapper.revokeAllVotesForGroup(flags.group) - } else if (flags.votes && flags.group) { - txos = await this.releaseGoldWrapper.revokeValueFromVotes( - flags.group, - new BigNumber(flags.votes) - ) - } else { - throw new Error( - 'Must provide --votes amount and --group address or --allVotes --allGroups flags' - ) - } - - for (const txo of txos) { - await displaySendTx('revokeVotes', txo) - } - } -} diff --git a/packages/cli/src/commands/releasegold/revoke.ts b/packages/cli/src/commands/releasegold/revoke.ts deleted file mode 100644 index 3501ca86675..00000000000 --- a/packages/cli/src/commands/releasegold/revoke.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { flags } from '@oclif/command' -import prompts from 'prompts' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class Revoke extends ReleaseGoldBaseCommand { - static description = - 'Revoke the given contract instance. Once revoked, any Locked Gold can be unlocked by the release owner. The beneficiary will then be able to withdraw any released Gold that had yet to be withdrawn, and the remainder can be transferred by the release owner to the refund address. Note that not all ReleaseGold instances are revokable.' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - yesreally: flags.boolean({ description: 'Override prompt to set liquidity (be careful!)' }), - } - - static args = [] - - static examples = ['revoke --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631'] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(Revoke) - - const isRevoked = await this.releaseGoldWrapper.isRevoked() - const isRevocable = await this.releaseGoldWrapper.isRevocable() - - await newCheckBuilder(this) - .addCheck('Contract is not revoked', () => !isRevoked) - .addCheck('Contract is revocable', () => isRevocable) - .runChecks() - - if (!flags.yesreally) { - const response = await prompts({ - type: 'confirm', - name: 'confirmation', - message: 'Are you sure you want to revoke this contract? (y/n)', - }) - - if (!response.confirmation) { - console.info('Aborting due to user response') - process.exit(0) - } - } - - this.kit.defaultAccount = await this.releaseGoldWrapper.getReleaseOwner() - await displaySendTx('revokeReleasing', await this.releaseGoldWrapper.revokeReleasing()) - } -} diff --git a/packages/cli/src/commands/releasegold/set-account-wallet-address.ts b/packages/cli/src/commands/releasegold/set-account-wallet-address.ts deleted file mode 100644 index 9c1c792a232..00000000000 --- a/packages/cli/src/commands/releasegold/set-account-wallet-address.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { flags } from '@oclif/command' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class SetAccountWalletAddress extends ReleaseGoldBaseCommand { - static description = "Set the ReleaseGold contract account's wallet address" - - static flags = { - ...ReleaseGoldBaseCommand.flags, - walletAddress: Flags.address({ - required: true, - description: - "Address of wallet to set for contract's account and signer of PoP. 0x0 if owner wants payers to contact them directly.", - }), - pop: flags.string({ - required: false, - description: "ECDSA PoP for signer over contract's account", - }), - } - - static args = [] - - static examples = [ - 'set-account-wallet-address --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --walletAddress 0xE36Ea790bc9d7AB70C55260C66D52b1eca985f84 --pop 0x1b3e611d05e46753c43444cdc55c2cc3d95c54da0eba2464a8cc8cb01bd57ae8bb3d82a0e293ca97e5813e7fb9b624127f42ef0871d025d8a56fe2f8f08117e25b', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(SetAccountWalletAddress) - const isRevoked = await this.releaseGoldWrapper.isRevoked() - - const checkBuilder = newCheckBuilder(this) - .isAccount(this.releaseGoldWrapper.address) - .addCheck('Contract is not revoked', () => !isRevoked) - - let sig: any - if (flags.walletAddress !== '0x0000000000000000000000000000000000000000') { - const accounts = await this.kit.contracts.getAccounts() - checkBuilder.addCheck( - 'Wallet address is provided and PoP is provided', - () => flags.pop !== undefined - ) - await checkBuilder.runChecks() - const pop = String(flags.pop) - sig = accounts.parseSignatureOfAddress( - this.releaseGoldWrapper.address, - flags.walletAddress, - pop - ) - } else { - await checkBuilder.runChecks() - sig = {} - sig.v = '0' - sig.r = '0x0' - sig.s = '0x0' - } - - this.kit.defaultAccount = await this.releaseGoldWrapper.getBeneficiary() - await displaySendTx( - 'setAccountWalletAddressTx', - this.releaseGoldWrapper.setAccountWalletAddress(flags.walletAddress, sig.v, sig.r, sig.s) - ) - } -} diff --git a/packages/cli/src/commands/releasegold/set-account.ts b/packages/cli/src/commands/releasegold/set-account.ts deleted file mode 100644 index 187e38f7dbc..00000000000 --- a/packages/cli/src/commands/releasegold/set-account.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { flags } from '@oclif/command' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class SetAccount extends ReleaseGoldBaseCommand { - static description = - 'Set account properties of the ReleaseGold instance account such as name, data encryption key, and the metadata URL' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - property: flags.string({ - char: 'p', - options: ['name', 'dataEncryptionKey', 'metaURL'], - description: 'Property type to set', - required: true, - }), - value: flags.string({ - char: 'v', - description: 'Property value to set', - required: true, - }), - } - - static args = [] - - static examples = [ - 'set-account --contract 0x5719118266779B58D0f9519383A4A27aA7b829E5 --property name --value mywallet', - 'set-account --contract 0x5719118266779B58D0f9519383A4A27aA7b829E5 --property dataEncryptionKey --value 0x041bb96e35f9f4b71ca8de561fff55a249ddf9d13ab582bdd09a09e75da68ae4cd0ab7038030f41b237498b4d76387ae878dc8d98fd6f6db2c15362d1a3bf11216', - 'set-account --contract 0x5719118266779B58D0f9519383A4A27aA7b829E5 --property metaURL --value www.test.com', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(SetAccount) - const isRevoked = await this.releaseGoldWrapper.isRevoked() - - await newCheckBuilder(this) - .isAccount(this.releaseGoldWrapper.address) - .addCheck('Contract is not revoked', () => !isRevoked) - .runChecks() - - let tx: any - if (flags.property === 'name') { - tx = this.releaseGoldWrapper.setAccountName(flags.value) - } else if (flags.property === 'dataEncryptionKey') { - tx = this.releaseGoldWrapper.setAccountDataEncryptionKey(flags.value) - } else if (flags.property === 'metaURL') { - tx = this.releaseGoldWrapper.setAccountMetadataURL(flags.value) - } else { - return this.error(`Invalid property provided`) - } - - this.kit.defaultAccount = await this.releaseGoldWrapper.getBeneficiary() - await displaySendTx('setAccount' + flags.property + 'Tx', tx) - } -} diff --git a/packages/cli/src/commands/releasegold/set-beneficiary.test.ts b/packages/cli/src/commands/releasegold/set-beneficiary.test.ts deleted file mode 100644 index 11710dd6f20..00000000000 --- a/packages/cli/src/commands/releasegold/set-beneficiary.test.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { newReleaseGold } from '@celo/abis/web3/ReleaseGold' -import { newKitFromWeb3 } from '@celo/contractkit' -import { ReleaseGoldWrapper } from '@celo/contractkit/lib/wrappers/ReleaseGold' -import { getContractFromEvent, testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import SetBeneficiary from './set-beneficiary' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('releasegold:set-beneficiary cmd', (web3: Web3) => { - let contractAddress: any - let kit: any - let releaseGoldWrapper: ReleaseGoldWrapper - let releaseGoldMultiSig: any - let releaseOwner: string - let beneficiary: string - let newBeneficiary: string - let otherAccount: string - - beforeEach(async () => { - const accounts = await web3.eth.getAccounts() - releaseOwner = accounts[0] - newBeneficiary = accounts[2] - otherAccount = accounts[3] - contractAddress = await getContractFromEvent( - 'ReleaseGoldInstanceCreated(address,address)', - web3, - { index: 1 } // canValidate = false - ) - kit = newKitFromWeb3(web3) - releaseGoldWrapper = new ReleaseGoldWrapper( - kit.connection, - newReleaseGold(web3, contractAddress), - kit.contracts - ) - beneficiary = await releaseGoldWrapper.getBeneficiary() - const owner = await releaseGoldWrapper.getOwner() - releaseGoldMultiSig = await kit.contracts.getMultiSig(owner) - }) - - test('can change beneficiary', async () => { - // First submit the tx from the release owner (accounts[0]) - await testLocally(SetBeneficiary, [ - '--contract', - contractAddress, - '--from', - releaseOwner, - '--beneficiary', - newBeneficiary, - '--yesreally', - ]) - // The multisig tx should not confirm until both parties submit - expect(await releaseGoldWrapper.getBeneficiary()).toEqual(beneficiary) - await testLocally(SetBeneficiary, [ - '--contract', - contractAddress, - '--from', - beneficiary, - '--beneficiary', - newBeneficiary, - '--yesreally', - ]) - expect(await releaseGoldWrapper.getBeneficiary()).toEqual(newBeneficiary) - // It should also update the multisig owners - expect(await releaseGoldMultiSig.getOwners()).toEqual([releaseOwner, newBeneficiary]) - }) - - test('if called by a different account, it should fail', async () => { - await expect( - testLocally(SetBeneficiary, [ - '--contract', - contractAddress, - '--from', - otherAccount, - '--beneficiary', - newBeneficiary, - '--yesreally', - ]) - ).rejects.toThrow() - }) - - test('if the owners submit different txs, nothing on the ReleaseGold contract should change', async () => { - // ReleaseOwner tries to change the beneficiary to `newBeneficiary` while the beneficiary - // tries to change to `otherAccount`. Nothing should change on the RG contract. - await testLocally(SetBeneficiary, [ - '--contract', - contractAddress, - '--from', - releaseOwner, - '--beneficiary', - newBeneficiary, - '--yesreally', - ]) - await testLocally(SetBeneficiary, [ - '--contract', - contractAddress, - '--from', - beneficiary, - '--beneficiary', - otherAccount, - '--yesreally', - ]) - expect(await releaseGoldWrapper.getBeneficiary()).toEqual(beneficiary) - expect(await releaseGoldMultiSig.getOwners()).toEqual([releaseOwner, beneficiary]) - }) -}) diff --git a/packages/cli/src/commands/releasegold/set-beneficiary.ts b/packages/cli/src/commands/releasegold/set-beneficiary.ts deleted file mode 100644 index 22f3b56ea67..00000000000 --- a/packages/cli/src/commands/releasegold/set-beneficiary.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { flags } from '@oclif/command' -import prompts from 'prompts' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class SetBeneficiary extends ReleaseGoldBaseCommand { - static description = - "Set the beneficiary of the ReleaseGold contract. This command is gated via a multi-sig, so this is expected to be called twice: once by the contract's beneficiary and once by the contract's releaseOwner. Once both addresses call this command with the same parameters, the tx will execute." - - static flags = { - ...ReleaseGoldBaseCommand.flags, - from: Flags.address({ - required: true, - description: 'Address to submit multisig transaction from (one of the owners)', - }), - beneficiary: Flags.address({ - required: true, - description: 'Address of the new beneficiary', - }), - yesreally: flags.boolean({ - description: 'Override prompt to set new beneficiary (be careful!)', - }), - } - - static args = [] - - static examples = [ - 'set-beneficiary --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --from 0xE36Ea790bc9d7AB70C55260C66D52b1eca985f84 --beneficiary 0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(SetBeneficiary) - const newBeneficiary = flags.beneficiary - - const owner = await this.releaseGoldWrapper.getOwner() - const releaseGoldMultiSig = await this.kit.contracts.getMultiSig(owner) - - await newCheckBuilder(this).isMultiSigOwner(flags.from, releaseGoldMultiSig).runChecks() - - if (!flags.yesreally) { - const response = await prompts({ - type: 'confirm', - name: 'confirmation', - message: - "Are you sure you want to set a new beneficiary? This will forfeit the current beneficiary's controls. (y/n)", - }) - - if (!response.confirmation) { - console.info('Aborting due to user response') - process.exit(0) - } - } - - const currentBeneficiary = await this.releaseGoldWrapper.getBeneficiary() - const setBeneficiaryTx = this.releaseGoldWrapper.setBeneficiary(newBeneficiary) - const setBeneficiaryMultiSigTx = await releaseGoldMultiSig.submitOrConfirmTransaction( - this.contractAddress, - setBeneficiaryTx.txo - ) - await displaySendTx( - 'setBeneficiary', - setBeneficiaryMultiSigTx, - { from: flags.from }, - 'BeneficiarySet' - ) - const replaceOwnerTx = releaseGoldMultiSig.replaceOwner(currentBeneficiary, newBeneficiary) - const replaceOwnerMultiSigTx = await releaseGoldMultiSig.submitOrConfirmTransaction( - releaseGoldMultiSig.address, - replaceOwnerTx.txo - ) - await displaySendTx('replaceMultiSigOwner', replaceOwnerMultiSigTx, { from: flags.from }) - } -} diff --git a/packages/cli/src/commands/releasegold/set-can-expire.ts b/packages/cli/src/commands/releasegold/set-can-expire.ts deleted file mode 100644 index def74838a96..00000000000 --- a/packages/cli/src/commands/releasegold/set-can-expire.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { flags } from '@oclif/command' -import prompts from 'prompts' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class SetCanExpire extends ReleaseGoldBaseCommand { - static description = 'Set the canExpire flag for the given ReleaseGold contract' - - static expireOptions = ['true', 'false', 'True', 'False'] - - static flags = { - ...ReleaseGoldBaseCommand.flags, - value: flags.enum({ - options: SetCanExpire.expireOptions, - required: true, - description: 'canExpire value', - }), - yesreally: flags.boolean({ - description: 'Override prompt to set expiration flag (be careful!)', - }), - } - - static args = [] - - static examples = [ - 'set-can-expire --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --value true', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(SetCanExpire) - const canExpire = flags.value === 'true' || flags.value === 'True' ? true : false - - await newCheckBuilder(this) - .addCheck('New expire value is different', async () => { - const revocationInfo = await this.releaseGoldWrapper.getRevocationInfo() - return revocationInfo.canExpire !== canExpire - }) - .runChecks() - - if (!flags.yesreally) { - const response = await prompts({ - type: 'confirm', - name: 'confirmation', - message: 'Are you sure you want to change the `canExpire` parameter? (y/n)', - }) - - if (!response.confirmation) { - console.info('Aborting due to user response') - process.exit(0) - } - } - - this.kit.defaultAccount = await this.releaseGoldWrapper.getBeneficiary() - await displaySendTx('setCanExpire', this.releaseGoldWrapper.setCanExpire(canExpire)) - } -} diff --git a/packages/cli/src/commands/releasegold/set-liquidity-provision.ts b/packages/cli/src/commands/releasegold/set-liquidity-provision.ts deleted file mode 100644 index 88af4aea387..00000000000 --- a/packages/cli/src/commands/releasegold/set-liquidity-provision.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { flags } from '@oclif/command' -import prompts from 'prompts' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class SetLiquidityProvision extends ReleaseGoldBaseCommand { - static description = - 'Set the liquidity provision to true, allowing the beneficiary to withdraw released gold.' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - yesreally: flags.boolean({ description: 'Override prompt to set liquidity (be careful!)' }), - } - - static args = [] - - static examples = [ - 'set-liquidity-provision --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(SetLiquidityProvision) - - await newCheckBuilder(this) - .addCheck('The liquidity provision has not already been set', async () => { - const liquidityProvisionMet = await this.releaseGoldWrapper.getLiquidityProvisionMet() - return !liquidityProvisionMet - }) - .runChecks() - - if (!flags.yesreally) { - const response = await prompts({ - type: 'confirm', - name: 'confirmation', - message: 'Are you sure you want to enable the liquidity provision? (y/n)', - }) - - if (!response.confirmation) { - console.info('Aborting due to user response') - process.exit(0) - } - } - - this.kit.defaultAccount = await this.releaseGoldWrapper.getReleaseOwner() - await displaySendTx('setLiquidityProvision', this.releaseGoldWrapper.setLiquidityProvision()) - } -} diff --git a/packages/cli/src/commands/releasegold/set-max-distribution.ts b/packages/cli/src/commands/releasegold/set-max-distribution.ts deleted file mode 100644 index 49c9f841f01..00000000000 --- a/packages/cli/src/commands/releasegold/set-max-distribution.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { flags } from '@oclif/command' -import prompts from 'prompts' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class SetMaxDistribution extends ReleaseGoldBaseCommand { - static description = 'Set the maximum distribution of celo for the given contract' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - distributionRatio: flags.string({ - required: true, - description: - 'Amount in range [0, 1000] (3 significant figures) indicating % of total balance available for distribution.', - }), - yesreally: flags.boolean({ - description: 'Override prompt to set new maximum distribution (be careful!)', - }), - } - - static args = [] - - static examples = [ - 'set-max-distribution --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --distributionRatio 1000', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(SetMaxDistribution) - const distributionRatio = Number(flags.distributionRatio) - - await newCheckBuilder(this) - .addCheck( - 'Distribution ratio must be within [0, 1000]', - () => distributionRatio >= 0 && distributionRatio <= 1000 - ) - .runChecks() - - if (!flags.yesreally) { - const response = await prompts({ - type: 'confirm', - name: 'confirmation', - message: - 'Are you sure you want to set the new maximum distribution ratio to ' + - distributionRatio + - '? (y/n)', - }) - - if (!response.confirmation) { - console.info('Aborting due to user response') - process.exit(0) - } - } - - this.kit.defaultAccount = await this.releaseGoldWrapper.getReleaseOwner() - await displaySendTx( - 'setMaxDistribution', - this.releaseGoldWrapper.setMaxDistribution(distributionRatio) - ) - } -} diff --git a/packages/cli/src/commands/releasegold/show.ts b/packages/cli/src/commands/releasegold/show.ts deleted file mode 100644 index d99b26da719..00000000000 --- a/packages/cli/src/commands/releasegold/show.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { printValueMapRecursive } from '../../utils/cli' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class Show extends ReleaseGoldBaseCommand { - static description = 'Show info on a ReleaseGold instance contract.' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - } - - static examples = ['show --contract 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95'] - - async run() { - const balanceStateData = { - totalWithdrawn: await this.releaseGoldWrapper.getTotalWithdrawn(), - maxDistribution: await this.releaseGoldWrapper.getMaxDistribution(), - totalBalance: await this.releaseGoldWrapper.getTotalBalance(), - remainingTotalBalance: await this.releaseGoldWrapper.getRemainingTotalBalance(), - remainingUnlockedBalance: await this.releaseGoldWrapper.getRemainingUnlockedBalance(), - remainingLockedBalance: await this.releaseGoldWrapper.getRemainingLockedBalance(), - currentReleasedTotalAmount: await this.releaseGoldWrapper.getCurrentReleasedTotalAmount(), - } - const accounts = await this.kit.contracts.getAccounts() - const isAccount = await accounts.isAccount(this.releaseGoldWrapper.address) - const authorizedSigners = isAccount - ? { - voter: await accounts.getVoteSigner(this.releaseGoldWrapper.address), - validator: await accounts.getValidatorSigner(this.releaseGoldWrapper.address), - attestations: await accounts.getAttestationSigner(this.releaseGoldWrapper.address), - } - : { voter: null, validator: null, attestations: null } - const releaseGoldInfo = { - releaseGoldWrapperAddress: this.releaseGoldWrapper.address, - beneficiary: await this.releaseGoldWrapper.getBeneficiary(), - authorizedSigners, - releaseOwner: await this.releaseGoldWrapper.getReleaseOwner(), - owner: await this.releaseGoldWrapper.getOwner(), - refundAddress: await this.releaseGoldWrapper.getRefundAddress(), - liquidityProvisionMet: await this.releaseGoldWrapper.getLiquidityProvisionMet(), - canValidate: await this.releaseGoldWrapper.getCanValidate(), - canVote: await this.releaseGoldWrapper.getCanVote(), - releaseSchedule: await this.releaseGoldWrapper.getHumanReadableReleaseSchedule(), - isRevoked: await this.releaseGoldWrapper.isRevoked(), - revokedStateData: await this.releaseGoldWrapper.getRevocationInfo(), - balanceStateData: balanceStateData, - } - printValueMapRecursive(releaseGoldInfo) - } -} diff --git a/packages/cli/src/commands/releasegold/transfer-dollars.test.ts b/packages/cli/src/commands/releasegold/transfer-dollars.test.ts deleted file mode 100644 index 560101ce2bb..00000000000 --- a/packages/cli/src/commands/releasegold/transfer-dollars.test.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { ContractKit, newKitFromWeb3 } from '@celo/contractkit' -import { getContractFromEvent, testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import TransferDollars from '../transfer/dollars' -import CreateAccount from './create-account' -import RGTransferDollars from './transfer-dollars' - -process.env.NO_SYNCCHECK = 'true' - -// Lots of commands, sometimes times out -jest.setTimeout(15000) - -testWithGanache('releasegold:transfer-dollars cmd', (web3: Web3) => { - let accounts: string[] = [] - let contractAddress: any - let kit: ContractKit - - beforeEach(async () => { - contractAddress = await getContractFromEvent( - 'ReleaseGoldInstanceCreated(address,address)', - web3, - { index: 1 } // canValidate = false - ) - kit = newKitFromWeb3(web3) - accounts = await web3.eth.getAccounts() - await testLocally(Register, ['--from', accounts[0]]) - await testLocally(CreateAccount, ['--contract', contractAddress]) - }) - - test('can transfer dollars out of the ReleaseGold contract', async () => { - const balanceBefore = await kit.getTotalBalance(accounts[0]) - const cUSDToTransfer = '500000000000000000000' - // Send cUSD to RG contract - await testLocally(TransferDollars, [ - '--from', - accounts[0], - '--to', - contractAddress, - '--value', - cUSDToTransfer, - '--gasCurrency', - 'CELO', - ]) - // RG cUSD balance should match the amount sent - const contractBalance = await kit.getTotalBalance(contractAddress) - expect(contractBalance.cUSD!.toFixed()).toEqual(cUSDToTransfer) - // Attempt to send cUSD back - await testLocally(RGTransferDollars, [ - '--contract', - contractAddress, - '--to', - accounts[0], - '--value', - cUSDToTransfer, - '--gasCurrency', - 'CELO', - ]) - const balanceAfter = await kit.getTotalBalance(accounts[0]) - expect(balanceBefore.cUSD).toEqual(balanceAfter.cUSD) - }) - - test('should fail if contract has no celo dollars', async () => { - await expect( - testLocally(RGTransferDollars, [ - '--contract', - contractAddress, - '--to', - accounts[0], - '--value', - '1', - ]) - ).rejects.toThrow() - }) -}) diff --git a/packages/cli/src/commands/releasegold/transfer-dollars.ts b/packages/cli/src/commands/releasegold/transfer-dollars.ts deleted file mode 100644 index 72ba7017505..00000000000 --- a/packages/cli/src/commands/releasegold/transfer-dollars.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class TransferDollars extends ReleaseGoldBaseCommand { - static description = - 'Transfer Celo Dollars from the given contract address. Dollars may be accrued to the ReleaseGold contract via validator epoch rewards.' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - to: Flags.address({ - required: true, - description: 'Address of the recipient of Celo Dollars transfer', - }), - value: Flags.wei({ required: true, description: 'Value (in Wei) of Celo Dollars to transfer' }), - } - - static args = [] - - static examples = [ - 'transfer-dollars --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --to 0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb --value 10000000000000000000000', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(TransferDollars) - const isRevoked = await this.releaseGoldWrapper.isRevoked() - this.kit.defaultAccount = isRevoked - ? await this.releaseGoldWrapper.getReleaseOwner() - : await this.releaseGoldWrapper.getBeneficiary() - await displaySendTx('transfer', this.releaseGoldWrapper.transfer(flags.to, flags.value)) - } -} diff --git a/packages/cli/src/commands/releasegold/withdraw.test.ts b/packages/cli/src/commands/releasegold/withdraw.test.ts deleted file mode 100644 index df5bdf67e4e..00000000000 --- a/packages/cli/src/commands/releasegold/withdraw.test.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { newReleaseGold } from '@celo/abis/web3/ReleaseGold' -import { ContractKit, newKitFromWeb3 } from '@celo/contractkit' -import { ReleaseGoldWrapper } from '@celo/contractkit/lib/wrappers/ReleaseGold' -import { getContractFromEvent, testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import { BigNumber } from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import CreateAccount from './create-account' -import SetLiquidityProvision from './set-liquidity-provision' -import RGTransferDollars from './transfer-dollars' -import Withdraw from './withdraw' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('releasegold:withdraw cmd', (web3: Web3) => { - let contractAddress: string - let kit: ContractKit - - beforeEach(async () => { - contractAddress = await getContractFromEvent( - 'ReleaseGoldInstanceCreated(address,address)', - web3 - ) - kit = newKitFromWeb3(web3) - await testLocally(CreateAccount, ['--contract', contractAddress]) - }) - - test('can withdraw released celo to beneficiary', async () => { - await testLocally(SetLiquidityProvision, ['--contract', contractAddress, '--yesreally']) - // ReleasePeriod of default contract - await timeTravel(300000000, web3) - const releaseGoldWrapper = new ReleaseGoldWrapper( - kit.connection, - newReleaseGold(web3, contractAddress), - kit.contracts - ) - const beneficiary = await releaseGoldWrapper.getBeneficiary() - const balanceBefore = (await kit.getTotalBalance(beneficiary)).CELO! - // Use a value which would lose precision if converted to a normal javascript number - const withdrawalAmount = '10000000000000000000005' - await testLocally(Withdraw, ['--contract', contractAddress, '--value', withdrawalAmount]) - const balanceAfter = (await kit.getTotalBalance(beneficiary)).CELO! - const difference = balanceAfter.minus(balanceBefore) - expect(difference).toEqBigNumber(new BigNumber(withdrawalAmount)) - }) - - test("can't withdraw the whole balance if there is a cUSD balance", async () => { - await testLocally(SetLiquidityProvision, ['--contract', contractAddress, '--yesreally']) - // ReleasePeriod of default contract - await timeTravel(300000000, web3) - const releaseGoldWrapper = new ReleaseGoldWrapper( - kit.connection, - newReleaseGold(web3, contractAddress), - kit.contracts - ) - const beneficiary = await releaseGoldWrapper.getBeneficiary() - const balanceBefore = await kit.getTotalBalance(beneficiary) - const remainingBalance = await releaseGoldWrapper.getRemainingUnlockedBalance() - - const stableToken = await kit.contracts.getStableToken() - - await stableToken.transfer(contractAddress, 100).sendAndWaitForReceipt({ from: beneficiary }) - - // Can't withdraw since there is cUSD balance still - await expect( - testLocally(Withdraw, ['--contract', contractAddress, '--value', remainingBalance.toString()]) - ).rejects.toThrow() - - // Move out the cUSD balance - await await testLocally(RGTransferDollars, [ - '--contract', - contractAddress, - '--to', - beneficiary, - '--value', - '100', - ]) - - await testLocally(Withdraw, [ - '--contract', - contractAddress, - '--value', - remainingBalance.toString(), - ]) - const balanceAfter = await kit.getTotalBalance(beneficiary) - expect(balanceBefore.CELO!.toNumber()).toBeLessThan(balanceAfter.CELO!.toNumber()) - - // Contract should self-destruct now - await expect(releaseGoldWrapper.getRemainingUnlockedBalance()).rejects.toThrow() - }) -}) diff --git a/packages/cli/src/commands/releasegold/withdraw.ts b/packages/cli/src/commands/releasegold/withdraw.ts deleted file mode 100644 index e290a6b2d2a..00000000000 --- a/packages/cli/src/commands/releasegold/withdraw.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' -import { ReleaseGoldBaseCommand } from '../../utils/release-gold-base' - -export default class Withdraw extends ReleaseGoldBaseCommand { - static description = - 'Withdraws `value` released celo to the beneficiary address. Fails if `value` worth of celo has not been released yet.' - - static flags = { - ...ReleaseGoldBaseCommand.flags, - value: Flags.wei({ - required: true, - description: 'Amount of released celo (in wei) to withdraw', - }), - } - - static args = [] - - static examples = [ - 'withdraw --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --value 10000000000000000000000', - ] - - async run() { - // tslint:disable-next-line - const { flags } = this.parse(Withdraw) - const value = flags.value - - const remainingUnlockedBalance = await this.releaseGoldWrapper.getRemainingUnlockedBalance() - const maxDistribution = await this.releaseGoldWrapper.getMaxDistribution() - const totalWithdrawn = await this.releaseGoldWrapper.getTotalWithdrawn() - await newCheckBuilder(this) - .addCheck('Value does not exceed available unlocked celo', () => - value.lte(remainingUnlockedBalance) - ) - .addCheck('Value would not exceed maximum distribution', () => - value.plus(totalWithdrawn).lte(maxDistribution) - ) - .addCheck('Contract has met liquidity provision if applicable', () => - this.releaseGoldWrapper.getLiquidityProvisionMet() - ) - .addCheck( - 'Contract would self-destruct with cUSD left when withdrawing the whole balance', - async () => { - if (value.eq(remainingUnlockedBalance)) { - const stableToken = await this.kit.contracts.getStableToken() - const stableBalance = await stableToken.balanceOf(this.releaseGoldWrapper.address) - if (stableBalance.gt(0)) { - return false - } - } - - return true - } - ) - .runChecks() - - this.kit.defaultAccount = await this.releaseGoldWrapper.getBeneficiary() - await displaySendTx('withdrawTx', this.releaseGoldWrapper.withdraw(value)) - } -} diff --git a/packages/cli/src/commands/reserve/status.ts b/packages/cli/src/commands/reserve/status.ts deleted file mode 100644 index 24773ecf9b2..00000000000 --- a/packages/cli/src/commands/reserve/status.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BaseCommand } from '../../base' -import { printValueMapRecursive } from '../../utils/cli' - -export default class ReserveStatus extends BaseCommand { - static description = 'Shows information about reserve' - - static flags = { - ...BaseCommand.flags, - } - - static examples = ['status'] - - async run() { - const reserve = await this.kit.contracts.getReserve() - const data = { - 'Reserve address': reserve.address, - Spenders: await reserve.getSpenders(), - 'Other reserves': await reserve.getOtherReserveAddresses(), - Frozen: await reserve.frozenReserveGoldStartBalance(), - 'Gold balance': await reserve.getReserveGoldBalance(), - } - printValueMapRecursive(data) - } -} diff --git a/packages/cli/src/commands/reserve/transfergold.test.ts b/packages/cli/src/commands/reserve/transfergold.test.ts deleted file mode 100644 index 761488ffee5..00000000000 --- a/packages/cli/src/commands/reserve/transfergold.test.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Address } from '@celo/connect' -import { newKitFromWeb3 } from '@celo/contractkit' -import { GoldTokenWrapper } from '@celo/contractkit/lib/wrappers/GoldTokenWrapper' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import TransferGold from './transfergold' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('reserve:transfergold cmd', (web3: Web3) => { - const transferAmt = new BigNumber(100000) - const kit = newKitFromWeb3(web3) - - let accounts: Address[] = [] - let goldToken: GoldTokenWrapper - - beforeEach(async () => { - accounts = await web3.eth.getAccounts() - goldToken = await kit.contracts.getGoldToken() - }) - test('transferGold fails if spender not passed in', async () => { - await expect( - testLocally(TransferGold, [ - '--from', - accounts[0], - '--value', - transferAmt.toString(10), - '--to', - accounts[9], - ]) - ).rejects.toThrow("Some checks didn't pass!") - }) - test('can transferGold with multisig option', async () => { - const initialBalance = await goldToken.balanceOf(accounts[9]) - await testLocally(TransferGold, [ - '--from', - accounts[0], - '--value', - transferAmt.toString(10), - '--to', - accounts[9], - '--useMultiSig', - ]) - await testLocally(TransferGold, [ - '--from', - accounts[7], - '--value', - transferAmt.toString(10), - '--to', - accounts[9], - '--useMultiSig', - ]) - expect(await goldToken.balanceOf(accounts[9])).toEqual(initialBalance.plus(transferAmt)) - }) -}) diff --git a/packages/cli/src/commands/reserve/transfergold.ts b/packages/cli/src/commands/reserve/transfergold.ts deleted file mode 100644 index bb4445f6886..00000000000 --- a/packages/cli/src/commands/reserve/transfergold.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class TransferGold extends BaseCommand { - static description = 'Transfers reserve celo to other reserve address' - - static flags = { - ...BaseCommand.flags, - value: flags.string({ required: true, description: 'The unit amount of CELO' }), - to: Flags.address({ required: true, description: 'Receiving address' }), - from: Flags.address({ required: true, description: "Spender's address" }), - useMultiSig: flags.boolean({ - description: 'True means the request will be sent through multisig.', - }), - } - - static examples = [ - 'transfergold --value 9000 --to 0x91c987bf62D25945dB517BDAa840A6c661374402 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631', - 'transfergold --value 9000 --to 0x91c987bf62D25945dB517BDAa840A6c661374402 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 --useMultiSig', - ] - - async run() { - const res = this.parse(TransferGold) - const value = res.flags.value - const to = res.flags.to - const account = res.flags.from - const useMultiSig = res.flags.useMultiSig - this.kit.defaultAccount = account - const reserve = await this.kit.contracts.getReserve() - const spenders = useMultiSig ? await reserve.getSpenders() : [] - // assumes that the multisig is the most recent spender in the spenders array - const multiSigAddress = spenders.length > 0 ? spenders[spenders.length - 1] : '' - const reserveSpenderMultiSig = useMultiSig - ? await this.kit.contracts.getMultiSig(multiSigAddress) - : undefined - const spender = useMultiSig ? multiSigAddress : account - - await newCheckBuilder(this) - .addCheck(`${spender} is a reserve spender`, async () => reserve.isSpender(spender)) - .addConditionalCheck(`${account} is a multisig signatory`, useMultiSig, async () => - reserveSpenderMultiSig !== undefined - ? reserveSpenderMultiSig.isowner(account) - : new Promise(() => false) - ) - .addCheck(`${to} is another reserve address`, async () => reserve.isOtherReserveAddress(to)) - .runChecks() - - const reserveTx = await reserve.transferGold(to, value) - const tx = - reserveSpenderMultiSig === undefined - ? reserveTx - : await reserveSpenderMultiSig.submitOrConfirmTransaction(reserve.address, reserveTx.txo) - await displaySendTx('transferGoldTx', tx) - } -} diff --git a/packages/cli/src/commands/rewards/show.ts b/packages/cli/src/commands/rewards/show.ts deleted file mode 100644 index 83065c397a5..00000000000 --- a/packages/cli/src/commands/rewards/show.ts +++ /dev/null @@ -1,313 +0,0 @@ -import { Address } from '@celo/connect' -import { GroupVoterReward, VoterReward } from '@celo/contractkit/lib/wrappers/Election' -import { AccountSlashed } from '@celo/contractkit/lib/wrappers/LockedGold' -import { Validator, ValidatorReward } from '@celo/contractkit/lib/wrappers/Validators' -import { eqAddress } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { Flags } from '../../utils/command' - -interface ExplainedVoterReward extends VoterReward { - validators: Validator[] -} - -interface ExplainedGroupVoterReward extends GroupVoterReward { - validators: Validator[] -} - -export default class Show extends BaseCommand { - static description = - 'Show rewards information about a voter, registered Validator, or Validator Group' - - static flags = { - ...BaseCommand.flags, - estimate: flags.boolean({ description: 'Estimate voter rewards from current votes' }), - voter: Flags.address({ description: 'Voter to show rewards for' }), - validator: Flags.address({ description: 'Validator to show rewards for' }), - group: Flags.address({ description: 'Validator Group to show rewards for' }), - slashing: flags.boolean({ description: 'Show rewards for slashing', default: true }), - epochs: flags.integer({ - default: 1, - description: 'Show results for the last N epochs', - }), - ...(cli.table.flags() as object), - } - - static args = [] - - static examples = ['show --address 0x5409ed021d9299bf6814279a6a1411a7e866a631'] - - async run() { - const res = this.parse(Show) - const filter = - Boolean(res.flags.voter) || Boolean(res.flags.validator) || Boolean(res.flags.group) - const election = await this.kit.contracts.getElection() - const validators = await this.kit.contracts.getValidators() - const lockedGold = await this.kit.contracts.getLockedGold() - const currentEpoch = (await validators.getEpochNumber()).toNumber() - const checkBuilder = newCheckBuilder(this) - const epochs = Math.max(1, res.flags.epochs || 1) - - if (res.flags.validator) { - if (res.flags.voter || res.flags.group) { - throw Error('Cannot select --validator with --voter or --group') - } - checkBuilder.isValidator(res.flags.validator) - } - if (res.flags.group) { - checkBuilder.isValidatorGroup(res.flags.group) - } - if (res.flags.voter) { - checkBuilder.isAccount(res.flags.voter) - } - await checkBuilder.runChecks() - - let voterRewards: ExplainedVoterReward[] = [] - let groupVoterRewards: ExplainedGroupVoterReward[] = [] - let validatorRewards: ValidatorReward[] = [] - let validatorGroupRewards: ValidatorReward[] = [] - let accountsSlashed: AccountSlashed[] = [] - - cli.action.start(`Calculating rewards`) - // Accumulate the rewards from each epoch - for ( - let epochNumber = Math.max(0, currentEpoch - epochs); - epochNumber < currentEpoch; - epochNumber++ - ) { - if (!filter || res.flags.voter) { - const electedValidators = await election.getElectedValidators(epochNumber) - if (!filter) { - const useBlockNumber = !res.flags.estimate - const epochGroupVoterRewards = await election.getGroupVoterRewards( - epochNumber, - useBlockNumber - ) - groupVoterRewards = groupVoterRewards.concat( - epochGroupVoterRewards.map( - (e: GroupVoterReward): ExplainedGroupVoterReward => ({ - ...e, - validators: filterValidatorsByGroup(electedValidators, e.group.address), - }) - ) - ) - } else if (res.flags.voter) { - const address = res.flags.voter - try { - const epochVoterRewards = await election.getVoterRewards( - address, - epochNumber, - !res.flags.estimate, - res.flags.estimate ? await election.getVoterShare(address) : undefined - ) - voterRewards = voterRewards.concat( - epochVoterRewards.map( - (e: VoterReward): ExplainedVoterReward => ({ - ...e, - validators: filterValidatorsByGroup(electedValidators, e.group.address), - }) - ) - ) - } catch (error: any) { - if (error.message.includes('missing trie node')) { - throw new Error( - 'Exact voter information is avaiable only for 1024 blocks after each epoch.\n' + - 'Supply --estimate to estimate rewards based on current votes, or use an archive node.' - ) - } else { - throw error - } - } - } - } - if (!filter || res.flags.validator || res.flags.group) { - const useBlockNumber = !res.flags.estimate - const epochValidatorRewards: ValidatorReward[] = await validators.getValidatorRewards( - epochNumber, - useBlockNumber - ) - - if (!filter || res.flags.validator) { - const address = res.flags.validator - validatorRewards = validatorRewards.concat( - address - ? epochValidatorRewards.filter((e: ValidatorReward) => - eqAddress(e.validator.address, address) - ) - : epochValidatorRewards - ) - } - - if (!filter || res.flags.group) { - const address = res.flags.group - validatorGroupRewards = validatorGroupRewards.concat( - address - ? epochValidatorRewards.filter((e: ValidatorReward) => - eqAddress(e.group.address, address) - ) - : epochValidatorRewards - ) - } - } - - if (res.flags.slashing) { - const epochAccountsSlashed = await lockedGold.getAccountsSlashed(epochNumber) - const address = res.flags.voter || res.flags.validator || res.flags.group - accountsSlashed = accountsSlashed.concat( - address ? filterAccountsSlashed(epochAccountsSlashed, address) : epochAccountsSlashed - ) - } - } - - // Slashing rewards are available before the current epoch ends - if (res.flags.slashing) { - const epochAccountsSlashed = await lockedGold.getAccountsSlashed(currentEpoch) - const address = res.flags.voter || res.flags.validator || res.flags.group - accountsSlashed = accountsSlashed.concat( - address ? filterAccountsSlashed(epochAccountsSlashed, address) : epochAccountsSlashed - ) - } - - cli.action.stop() - - // At the end of each epoch: R, the total amount of rewards in celo to be allocated to stakers - // for this epoch is programmatically derived from considering the tradeoff between paying rewards - // now vs. saving rewards for later. - // - // Every validator group has a slashing penalty M, initially M=1.0. All rewards to the group and to - // voters for the group are weighted by this factor. - // - // Let T be the total celo voting for groups eligible for rewards in this epoch. For each account - // holder, for each group, the amount of celo the account holder has voting for that group is increased - // by average_epoch_score_of_elected_validators_in_group * account_gold_voting_for_group * R * M / T. - if (voterRewards.length > 0) { - console.info('') - console.info('Voter rewards:') - cli.table( - voterRewards, - { - address: {}, - addressPayment: { get: (e) => e.addressPayment.toFixed(0) }, - group: { get: (e) => e.group.address }, - averageValidatorScore: { get: (e) => averageValidatorScore(e.validators).toFixed() }, - epochNumber: {}, - }, - res.flags - ) - } else if (groupVoterRewards.length > 0) { - console.info('') - console.info('Group voter rewards:') - cli.table( - groupVoterRewards, - { - groupName: { get: (e) => e.group.name }, - group: { get: (e) => e.group.address }, - groupVoterPayment: { get: (e) => e.groupVoterPayment.toFixed(0) }, - averageValidatorScore: { get: (e) => averageValidatorScore(e.validators).toFixed() }, - epochNumber: {}, - }, - res.flags - ) - } - - // Each validator maintains a running validator score Sv: - // - // - At the end of an epoch, if a validator was elected, define its uptime: - // U = counter / (blocks_in_epoch - [9]) - // - // - Define the validator’s epoch score: - // Sve = U ^ k, where k is governable. - // - // - If the validator is elected, Sv = min(Sve, Sve * x + Sv-1 * (1 -x)) where 0 < x < 1 and is - // governable. Otherwise, Sv = Sv-1 - // - // At the end of each epoch, provided that the validator and its group have the required minimum - // stake, Validators are paid Pv * Sv * M * (1 - C) Celo Dollars where - // C is group share for the group the validator was a member of when it was elected and - // Pv is the max payout to validators and is governable. - if (validatorRewards.length > 0) { - console.info('') - console.info('Validator rewards:') - cli.table( - validatorRewards, - { - validatorName: { get: (e) => e.validator.name }, - validator: { get: (e) => e.validator.address }, - validatorPayment: { get: (e) => e.validatorPayment.toFixed(0) }, - validatorScore: { get: (e) => e.validator.score.toFixed() }, - group: { get: (e) => e.group.address }, - epochNumber: {}, - }, - res.flags - ) - } - - // At the end of each epoch, for each validator that was elected, the group a validator was - // elected as a member of is paid Pv * Sv * C * M Celo Dollars where: - // C is the current group share for the group the validator was a member of when it was elected, - // Pv is the max payout to validators during this epoch programmatically derived from - // considering the tradeoff between paying rewards now vs. saving rewards for later, and - // M is the group’s current slashing penalty (M=1 initially, 0 0) { - console.info('') - console.info('Validator Group rewards:') - cli.table( - validatorGroupRewards, - { - groupName: { get: (e) => e.group.name }, - group: { get: (e) => e.group.address }, - groupPayment: { get: (e) => e.groupPayment.toFixed(0) }, - validator: { get: (e) => e.validator.address }, - validatorScore: { get: (e) => e.validator.score.toFixed() }, - epochNumber: {}, - }, - res.flags - ) - } - - if (accountsSlashed.length > 0) { - console.info('') - console.info('Slashing penalties and rewards:') - cli.table( - accountsSlashed, - { - slashed: {}, - penalty: { get: (e) => e.penalty.toFixed(0) }, - reporter: {}, - reward: { get: (e) => e.reward.toFixed(0) }, - epochNumber: {}, - }, - res.flags - ) - } - - if ( - voterRewards.length === 0 && - groupVoterRewards.length === 0 && - validatorRewards.length === 0 && - validatorGroupRewards.length === 0 && - accountsSlashed.length === 0 - ) { - console.info('No rewards.') - } - } -} - -function filterValidatorsByGroup(validators: Validator[], group: Address) { - return validators.filter((v) => eqAddress(v.affiliation || '', group)) -} - -function averageValidatorScore(validators: Validator[]): BigNumber { - return validators - .reduce((sumScore: BigNumber, v: Validator) => sumScore.plus(v.score), new BigNumber(0)) - .dividedBy(validators.length || 1) -} - -function filterAccountsSlashed(accountsSlashed: AccountSlashed[], address: Address) { - return accountsSlashed.filter( - (e: AccountSlashed) => eqAddress(e.slashed, address) || eqAddress(e.reporter, address) - ) -} diff --git a/packages/cli/src/commands/transfer/celo.ts b/packages/cli/src/commands/transfer/celo.ts deleted file mode 100644 index 6bbb8ebdd40..00000000000 --- a/packages/cli/src/commands/transfer/celo.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class TransferCelo extends BaseCommand { - static description = - 'Transfer CELO to a specified address. (Note: this is the equivalent of the old transfer:gold)' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: 'Address of the sender' }), - to: Flags.address({ required: true, description: 'Address of the receiver' }), - value: flags.string({ required: true, description: 'Amount to transfer (in wei)' }), - comment: flags.string({ description: 'Transfer comment' }), - } - - static examples = [ - 'celo --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 10000000000000000000', - ] - - async run() { - const res = this.parse(TransferCelo) - - const from: string = res.flags.from - const to: string = res.flags.to - const value = new BigNumber(res.flags.value) - - this.kit.defaultAccount = from - const celoToken = await this.kit.contracts.getGoldToken() - - await newCheckBuilder(this).hasEnoughCelo(from, value).runChecks() - - if (res.flags.comment) { - await displaySendTx( - 'transferWithComment', - celoToken.transferWithComment(to, value.toFixed(), res.flags.comment) - ) - } else { - await displaySendTx('transfer', celoToken.transfer(to, value.toFixed())) - } - } -} diff --git a/packages/cli/src/commands/transfer/dollars.ts b/packages/cli/src/commands/transfer/dollars.ts deleted file mode 100644 index 20c87988dc7..00000000000 --- a/packages/cli/src/commands/transfer/dollars.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { TransferStableBase } from '../../transfer-stable-base' - -export default class TransferDollars extends TransferStableBase { - static description = 'Transfer Celo Dollars (cUSD) to a specified address.' - - static flags = { - ...TransferStableBase.flags, - } - - static examples = [ - 'dollars --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 1000000000000000000', - ] - - async init() { - this._stableCurrency = StableToken.cUSD - await super.init() - } -} diff --git a/packages/cli/src/commands/transfer/erc20.ts b/packages/cli/src/commands/transfer/erc20.ts deleted file mode 100644 index 875f95085f0..00000000000 --- a/packages/cli/src/commands/transfer/erc20.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { IERC20 } from '@celo/abis/web3/IERC20' -import { Erc20Wrapper } from '@celo/contractkit/lib/wrappers/Erc20Wrapper' -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx, failWith } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class TransferErc20 extends BaseCommand { - static description = 'Transfer ERC20 to a specified address' - - static flags = { - ...BaseCommand.flags, - erc20Address: Flags.address({ - required: true, - description: "Custom erc20 to check it's balance too", - }), - from: Flags.address({ - required: true, - description: 'Address of the sender', - }), - to: Flags.address({ - required: true, - description: 'Address of the receiver', - }), - value: flags.string({ - required: true, - description: 'Amount to transfer (in wei)', - }), - } - - static examples = [ - 'erc20 --erc20Address 0x765DE816845861e75A25fCA122bb6898B8B1282a --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 10000000000000000000', - ] - - async run() { - const res = this.parse(TransferErc20) - - const from: string = res.flags.from - const to: string = res.flags.to - const value = new BigNumber(res.flags.value) - - this.kit.defaultAccount = from - let celoToken: Erc20Wrapper - try { - celoToken = await this.kit.contracts.getErc20(res.flags.erc20Address) - // this call allow us to check if it is a valid erc20 - await celoToken.balanceOf(res.flags.from) - } catch { - failWith('Invalid erc20 address') - } - await newCheckBuilder(this).hasEnoughErc20(from, value, res.flags.erc20Address).runChecks() - - await displaySendTx('transfer', celoToken.transfer(to, value.toFixed())) - } -} diff --git a/packages/cli/src/commands/transfer/euros.ts b/packages/cli/src/commands/transfer/euros.ts deleted file mode 100644 index 8cba59dc1b4..00000000000 --- a/packages/cli/src/commands/transfer/euros.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { TransferStableBase } from '../../transfer-stable-base' - -export default class TransferEuros extends TransferStableBase { - static description = 'Transfer Celo Euros (cEUR) to a specified address.' - - static flags = { - ...TransferStableBase.flags, - } - - static examples = [ - 'euros --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 1000000000000000000', - ] - - async init() { - this._stableCurrency = StableToken.cEUR - await super.init() - } -} diff --git a/packages/cli/src/commands/transfer/gold.ts b/packages/cli/src/commands/transfer/gold.ts deleted file mode 100644 index 5f89e0642ee..00000000000 --- a/packages/cli/src/commands/transfer/gold.ts +++ /dev/null @@ -1,14 +0,0 @@ -import TransferCelo from './celo' - -export default class TransferGold extends TransferCelo { - static description = - 'Transfer CELO to a specified address. *DEPRECATION WARNING* Use the "transfer:celo" command instead' - - static flags = { - ...TransferCelo.flags, - } - - static examples = [ - 'gold --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 10000000000000000000', - ] -} diff --git a/packages/cli/src/commands/transfer/reals.ts b/packages/cli/src/commands/transfer/reals.ts deleted file mode 100644 index a84e304570c..00000000000 --- a/packages/cli/src/commands/transfer/reals.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { TransferStableBase } from '../../transfer-stable-base' - -export default class TransferEuros extends TransferStableBase { - static description = 'Transfer Celo Brazilian Real (cREAL) to a specified address.' - - static flags = { - ...TransferStableBase.flags, - } - - static examples = [ - 'reals --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 1000000000000000000', - ] - - async init() { - this._stableCurrency = StableToken.cREAL - await super.init() - } -} diff --git a/packages/cli/src/commands/transfer/stable.ts b/packages/cli/src/commands/transfer/stable.ts deleted file mode 100644 index 6aa65b75dc1..00000000000 --- a/packages/cli/src/commands/transfer/stable.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { flags } from '@oclif/command' -import { TransferStableBase } from '../../transfer-stable-base' -import { enumEntriesDupWithLowercase } from '../../utils/helpers' - -const stableTokenOptions = enumEntriesDupWithLowercase(Object.entries(StableToken)) -export default class TransferStable extends TransferStableBase { - static description = 'Transfer a stable token to a specified address.' - - static flags = { - ...TransferStableBase.flags, - stableToken: flags.enum({ - options: Object.keys(stableTokenOptions), - description: 'Name of the stable to be transfered', - }), - } - - static examples = [ - 'stable --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 1000000000000000000 --stableToken cStableTokenSymbol', - ] - - async init() { - const res = this.parse(TransferStable) - const stableName = res.flags.stableToken - this._stableCurrency = stableTokenOptions[stableName] - await super.init() - } -} diff --git a/packages/cli/src/commands/validator/affiliate.ts b/packages/cli/src/commands/validator/affiliate.ts deleted file mode 100644 index 1d00d57b6b2..00000000000 --- a/packages/cli/src/commands/validator/affiliate.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { flags } from '@oclif/command' -import { IArg } from '@oclif/parser/lib/args' -import prompts from 'prompts' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Args, Flags } from '../../utils/command' - -export default class ValidatorAffiliate extends BaseCommand { - static description = - "Affiliate a Validator with a Validator Group. This allows the Validator Group to add that Validator as a member. If the Validator is already a member of a Validator Group, affiliating with a different Group will remove the Validator from the first group's members." - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Signer or Validator's address" }), - yes: flags.boolean({ description: 'Answer yes to prompt' }), - } - - static args: IArg[] = [ - Args.address('groupAddress', { description: "ValidatorGroup's address", required: true }), - ] - - static examples = [ - 'affiliate --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 0x97f7333c51897469e8d98e7af8653aab468050a3', - ] - - async run() { - const res = this.parse(ValidatorAffiliate) - - const validators = await this.kit.contracts.getValidators() - - await newCheckBuilder(this, res.flags.from) - .isSignerOrAccount() - .canSignValidatorTxs() - .signerAccountIsValidator() - .isValidatorGroup(res.args.groupAddress) - .runChecks() - - if (!res.flags.yes) { - const response = await prompts({ - type: 'confirm', - name: 'confirmation', - message: - 'Are you sure you want to affiliate with this group?\nAffiliating with a Validator Group could result in Locked Gold requirements of up to 10,000 CELO for 60 days. (y/n)', - }) - - if (!response.confirmation) { - console.info('Aborting due to user response') - process.exit(0) - } - } - await displaySendTx('affiliate', validators.affiliate(res.args.groupAddress)) - } -} diff --git a/packages/cli/src/commands/validator/deaffiliate.ts b/packages/cli/src/commands/validator/deaffiliate.ts deleted file mode 100644 index 0b5837d1917..00000000000 --- a/packages/cli/src/commands/validator/deaffiliate.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ValidatorDeAffiliate extends BaseCommand { - static description = - 'Deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member.' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Signer or Validator's address" }), - } - - static examples = ['deaffiliate --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95'] - - async run() { - const res = this.parse(ValidatorDeAffiliate) - - const validators = await this.kit.contracts.getValidators() - - await newCheckBuilder(this, res.flags.from) - .isSignerOrAccount() - .canSignValidatorTxs() - .signerAccountIsValidator() - .runChecks() - - await displaySendTx('deaffiliate', validators.deaffiliate()) - } -} diff --git a/packages/cli/src/commands/validator/deregister.ts b/packages/cli/src/commands/validator/deregister.ts deleted file mode 100644 index 7457303a901..00000000000 --- a/packages/cli/src/commands/validator/deregister.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ValidatorDeregister extends BaseCommand { - static description = - "Deregister a Validator. Approximately 60 days after the validator is no longer part of any group, it will be possible to deregister the validator and start unlocking the CELO. If you wish to deregister your validator, you must first remove it from it's group, such as by deaffiliating it, then wait the required 60 days before running this command." - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Signer or Validator's address" }), - } - - static examples = ['deregister --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95'] - - async run() { - const res = this.parse(ValidatorDeregister) - - const validators = await this.kit.contracts.getValidators() - - await newCheckBuilder(this, res.flags.from) - .isSignerOrAccount() - .canSignValidatorTxs() - .signerAccountIsValidator() - .isNotValidatorGroupMember() - .validatorDeregisterDurationPassed() - .runChecks() - - const validator = await validators.signerToAccount(res.flags.from) - await displaySendTx('deregister', await validators.deregisterValidator(validator)) - } -} diff --git a/packages/cli/src/commands/validator/downtime-slash.ts b/packages/cli/src/commands/validator/downtime-slash.ts deleted file mode 100644 index 475bb9b823f..00000000000 --- a/packages/cli/src/commands/validator/downtime-slash.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class DowntimeSlashCommand extends BaseCommand { - static description = 'Downtime slash a validator' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'From address to perform the slash (reward recipient)', - }), - validator: Flags.address({ - description: 'Validator (signer or account) address', - exclusive: ['validators'], - }), - validators: Flags.addressArray({ - description: 'Validator (signer or account) address list', - exclusive: ['validator'], - }), - intervals: Flags.intRangeArray({ - description: 'Array of intervals, ordered by min start to max end', - exclusive: ['beforeBlock'], - }), - beforeBlock: flags.integer({ - description: 'Slash for slashable downtime window before provided block', - exclusive: ['intervals'], - }), - } - - static examples = [ - 'downtime-slash \ - --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 \ - --validator 0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD \ - --intervals "[100:150), [150:200)"', - 'downtime-slash \ - --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 \ - --validator 0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD \ - --slashableDowntimeBeforeBlock 200', - ] - - async run() { - const res = this.parse(DowntimeSlashCommand) - const validatorsToSlash = res.flags.validators ?? [res.flags.validator!] - - const downtimeSlasher = await this.kit.contracts.getDowntimeSlasher() - const intervals = res.flags.beforeBlock - ? await downtimeSlasher.slashableDowntimeIntervalsBefore(res.flags.beforeBlock) - : res.flags.intervals! - - const [startBlock, endBlock] = [intervals[0].start, intervals[intervals.length - 1].end] - - await newCheckBuilder(this) - .addCheck( - `provided intervals span slashableDowntime blocks `, - async () => endBlock - startBlock + 1 >= (await downtimeSlasher.slashableDowntime()) - ) - .addCheck( - `bitmaps are set for intervals`, - () => downtimeSlasher.isBitmapSetForIntervals(intervals), - 'some bitmaps are not set, please use validator:set-bitmaps' - ) - .runChecks() - - for (const validator of validatorsToSlash) { - await newCheckBuilder(this, validator) - .isSignerOrAccount() - .canSignValidatorTxs() - .signerAccountIsValidator() - .addCheck( - `validator not already slashed for span`, - async () => startBlock > (await downtimeSlasher.lastSlashedBlock(validator)), - `${validator} was already slashed` - ) - .addCheck( - 'validator was down for intervals', - () => downtimeSlasher.wasValidatorDownForIntervals(validator, intervals), - `${validator} was not down` - ) - .runChecks() - - const tx = await downtimeSlasher.slashValidator(validator, intervals) - await displaySendTx('slash', tx, undefined, 'DowntimeSlashPerformed') - } - } -} diff --git a/packages/cli/src/commands/validator/force-deaffiliate.ts b/packages/cli/src/commands/validator/force-deaffiliate.ts deleted file mode 100644 index 143b8696dc8..00000000000 --- a/packages/cli/src/commands/validator/force-deaffiliate.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ValidatorForceDeaffiliate extends BaseCommand { - static description = - "Force deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member. Used by stake-off admins in order to remove validators from the next epoch's validator set if they are down and consistently unresponsive, in order to preserve the health of the network. This feature will be removed once slashing for downtime is implemented." - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: 'Initiator' }), - validator: Flags.address({ required: true, description: "Validator's address" }), - } - - static examples = [ - 'force-deaffiliate --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --validator 0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD', - ] - - async run() { - const res = this.parse(ValidatorForceDeaffiliate) - - const validators = await this.kit.contracts.getValidators() - - await newCheckBuilder(this, res.flags.validator) - .isSignerOrAccount() - .canSignValidatorTxs() - .signerAccountIsValidator() - .runChecks() - - await displaySendTx( - 'force-deaffiliate', - validators.forceDeaffiliateIfValidator(res.flags.validator) - ) - } -} diff --git a/packages/cli/src/commands/validator/list.ts b/packages/cli/src/commands/validator/list.ts deleted file mode 100644 index cdaca154b18..00000000000 --- a/packages/cli/src/commands/validator/list.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Validator } from '@celo/contractkit/lib/wrappers/Validators' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' - -export const validatorTable = { - address: {}, - name: {}, - affiliation: {}, - score: { get: (v: Validator) => v.score.toFixed() }, - ecdsaPublicKey: {}, - blsPublicKey: {}, - signer: {}, -} - -export default class ValidatorList extends BaseCommand { - static description = - 'List registered Validators, their name (if provided), affiliation, uptime score, and public keys used for validating.' - - static flags = { - ...BaseCommand.flags, - ...(cli.table.flags() as object), - } - - static examples = ['list'] - - async run() { - const res = this.parse(ValidatorList) - - cli.action.start('Fetching Validators') - const validators = await this.kit.contracts.getValidators() - const validatorList = await validators.getRegisteredValidators() - - cli.action.stop() - cli.table(validatorList, validatorTable, res.flags) - } -} diff --git a/packages/cli/src/commands/validator/register.test.ts b/packages/cli/src/commands/validator/register.test.ts deleted file mode 100644 index 17173ac815a..00000000000 --- a/packages/cli/src/commands/validator/register.test.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { addressToPublicKey } from '@celo/utils/lib/signatureUtils' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import Register from '../account/register' -import Lock from '../lockedgold/lock' -import ValidatorRegister from './register' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('validator:register', (web3: Web3) => { - let account: string - let ecdsaPublicKey: string - - beforeEach(async () => { - const accounts = await web3.eth.getAccounts() - account = accounts[0] - ecdsaPublicKey = await addressToPublicKey(account, web3.eth.sign) - await testLocally(Register, ['--from', account]) - await testLocally(Lock, ['--from', account, '--value', '10000000000000000000000']) - }) - - test('can register validator with 0x prefix', async () => { - await testLocally(ValidatorRegister, [ - '--from', - account, - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - }) - - test('can register validator without 0x prefix', async () => { - await testLocally(ValidatorRegister, [ - '--from', - account, - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - 'cdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - }) - - test('fails if validator already registered', async () => { - await testLocally(ValidatorRegister, [ - '--from', - account, - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - 'cdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - await expect( - testLocally(ValidatorRegister, [ - '--from', - account, - '--ecdsaKey', - ecdsaPublicKey, - '--blsKey', - '4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - '--blsSignature', - 'cdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - '--yes', - ]) - ).rejects.toThrow("Some checks didn't pass!") - }) -}) diff --git a/packages/cli/src/commands/validator/register.ts b/packages/cli/src/commands/validator/register.ts deleted file mode 100644 index d6f64291654..00000000000 --- a/packages/cli/src/commands/validator/register.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { addressToPublicKey } from '@celo/utils/lib/signatureUtils' -import { flags } from '@oclif/command' -import humanizeDuration from 'humanize-duration' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { binaryPrompt, displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ValidatorRegister extends BaseCommand { - static description = 'Register a new Validator' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: 'Address for the Validator' }), - ecdsaKey: Flags.ecdsaPublicKey({ required: true }), - blsKey: Flags.blsPublicKey({ required: true }), - blsSignature: Flags.blsProofOfPossession({ required: true }), - yes: flags.boolean({ description: 'Answer yes to prompt' }), - } - - static examples = [ - 'register --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --ecdsaKey 0x049b7291ab8813a095d6b7913a7930ede5ea17466abd5e1a26c6c44f6df9a400a6f474080098b2c752c6c4871978ca977b90dcd3aed92bc9d564137c8dfa14ee72 --blsKey 0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00 --blsSignature 0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - ] - - async run() { - const res = this.parse(ValidatorRegister) - - const validators = await this.kit.contracts.getValidators() - const accounts = await this.kit.contracts.getAccounts() - - if (!res.flags.yes) { - const requirements = await validators.getValidatorLockedGoldRequirements() - const duration = requirements.duration.toNumber() * 1000 - const check = await binaryPrompt( - `This will lock ${requirements.value.shiftedBy(-18)} CELO for ${humanizeDuration( - duration - )}. Are you sure you want to continue?`, - true - ) - if (!check) { - console.log('Cancelled') - return - } - } - - await newCheckBuilder(this, res.flags.from) - .isSignerOrAccount() - .canSignValidatorTxs() - .isNotValidator() - .isNotValidatorGroup() - .signerMeetsValidatorBalanceRequirements() - .runChecks() - - await displaySendTx( - 'registerValidator', - validators.registerValidator( - // @ts-ignore incorrect typing for bytes type - res.flags.ecdsaKey, - res.flags.blsKey, - res.flags.blsSignature - ) - ) - - // register encryption key on accounts contract - // TODO: Use a different key data encryption - const pubKey = await addressToPublicKey(res.flags.from, this.web3.eth.sign) - // TODO fix typing - const setKeyTx = accounts.setAccountDataEncryptionKey(pubKey as any) - await displaySendTx('Set encryption key', setKeyTx) - } -} diff --git a/packages/cli/src/commands/validator/requirements.ts b/packages/cli/src/commands/validator/requirements.ts deleted file mode 100644 index 7ead1fc8512..00000000000 --- a/packages/cli/src/commands/validator/requirements.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { BaseCommand } from '../../base' -import { printValueMap } from '../../utils/cli' - -export default class ValidatorRequirements extends BaseCommand { - static description = - 'List the Locked Gold requirements for registering a Validator. This consists of a value, which is the amount of CELO that needs to be locked in order to register, and a duration, which is the amount of time that CELO must stay locked following the deregistration of the Validator.' - - static flags = { - ...BaseCommand.flags, - } - - static examples = ['requirements'] - - async run() { - this.parse(ValidatorRequirements) - - const validators = await this.kit.contracts.getValidators() - - const requirements = await validators.getValidatorLockedGoldRequirements() - - printValueMap(requirements) - } -} diff --git a/packages/cli/src/commands/validator/set-bitmaps.ts b/packages/cli/src/commands/validator/set-bitmaps.ts deleted file mode 100644 index 171de43212a..00000000000 --- a/packages/cli/src/commands/validator/set-bitmaps.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { flags } from '@oclif/command' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class SetBitmapsCommand extends BaseCommand { - static description = 'Set validator signature bitmaps for provided intervals' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'From address to sign set bitmap transactions', - }), - slashableDowntimeBeforeBlock: flags.integer({ - description: 'Set all bitmaps for slashable downtime window before provided block', - exclusive: ['intervals', 'slashableDowntimeBeforeLatest'], - }), - slashableDowntimeBeforeLatest: flags.boolean({ - description: 'Set all bitmaps for slashable downtime window before latest block', - exclusive: ['intervals', 'slashableDowntimeBeforeBlock'], - }), - intervals: Flags.intRangeArray({ - description: 'Array of intervals, ordered by min start to max end', - exclusive: ['beforeBlock'], - }), - } - - static examples = [ - 'set-bitmaps --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --slashableDowntimeBeforeBlock 10000', - 'set-bitmaps --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --intervals "[0:100], (100:200]"', - ] - - async run() { - const res = this.parse(SetBitmapsCommand) - - const downtimeSlasher = await this.kit.contracts.getDowntimeSlasher() - - const intervals = - res.flags.slashableDowntimeBeforeLatest || res.flags.slashableDowntimeBeforeBlock - ? await downtimeSlasher.slashableDowntimeIntervalsBefore( - res.flags.slashableDowntimeBeforeBlock - ) - : res.flags.intervals! - - await newCheckBuilder(this) - .addCheck( - 'bitmaps are not already set for intervals', - async () => !(await downtimeSlasher.isBitmapSetForIntervals(intervals)) - ) - .runChecks() - - for (const interval of intervals) { - const tx = downtimeSlasher.setBitmapForInterval(interval) - await displaySendTx('setBitmap', tx, undefined, 'BitmapSetForInterval') - } - } -} diff --git a/packages/cli/src/commands/validator/show.ts b/packages/cli/src/commands/validator/show.ts deleted file mode 100644 index 6d9047381c9..00000000000 --- a/packages/cli/src/commands/validator/show.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { IArg } from '@oclif/parser/lib/args' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { printValueMap } from '../../utils/cli' -import { Args } from '../../utils/command' - -export default class ValidatorShow extends BaseCommand { - static description = 'Show information about a registered Validator.' - - static flags = { - ...BaseCommand.flags, - } - - static args: IArg[] = [Args.address('validatorAddress', { description: "Validator's address" })] - - static examples = ['show 0x97f7333c51897469E8D98E7af8653aAb468050a3'] - - async run() { - const { args } = this.parse(ValidatorShow) - const address = args.validatorAddress - const validators = await this.kit.contracts.getValidators() - - await newCheckBuilder(this).isValidator(address).runChecks() - - const validator = await validators.getValidator(address) - printValueMap(validator) - } -} diff --git a/packages/cli/src/commands/validator/signed-blocks.ts b/packages/cli/src/commands/validator/signed-blocks.ts deleted file mode 100644 index b490647bf76..00000000000 --- a/packages/cli/src/commands/validator/signed-blocks.ts +++ /dev/null @@ -1,205 +0,0 @@ -import { Provider } from '@celo/connect/lib/types' -import { stopProvider } from '@celo/connect/lib/utils/provider-utils' -import { concurrentMap } from '@celo/utils/lib/async' -import { flags } from '@oclif/command' -import chalk from 'chalk' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { Flags } from '../../utils/command' -import { ElectionResultsCache } from '../../utils/election' - -export default class ValidatorSignedBlocks extends BaseCommand { - static description = - "Display a graph of blocks and whether the given signer's signature is included in each. A green '.' indicates the signature is present in that block, a red '✘' indicates the signature is not present. A yellow '~' indicates the signer is not elected for that block." - - static flags = { - ...BaseCommand.flags, - signer: Flags.address({ - description: 'address of the signer to check for signatures', - exclusive: ['signers'], - }), - signers: Flags.addressArray({ - description: 'list of signer addresses to check for signatures', - exclusive: ['signer'], - }), - wasDownWhileElected: flags.boolean({ - description: 'indicate whether a validator was down while elected for range', - }), - 'at-block': flags.integer({ - description: 'latest block to examine for signer activity', - exclusive: ['follow'], - }), - lookback: flags.integer({ - description: 'how many blocks to look back for signer activity', - default: 120, - exclusive: ['slashableDowntime'], - }), - slashableDowntimeLookback: flags.boolean({ - description: 'lookback of slashableDowntime', - exclusive: ['lookback'], - }), - width: flags.integer({ - description: 'line width for printing marks', - default: 40, - }), - follow: flags.boolean({ - char: 'f', - default: false, - exclusive: ['at-block'], - hidden: true, - }), - } - - static examples = [ - 'signed-blocks --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631', - 'signed-blocks --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631 --follow', - 'signed-blocks --at-block 100000 --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631', - 'signed-blocks --lookback 500 --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631', - 'signed-blocks --lookback 50 --width 10 --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631', - ] - - async run() { - const res = this.parse(ValidatorSignedBlocks) - const election = await this.kit.contracts.getElection() - const validators = await this.kit.contracts.getValidators() - const epochSize = await validators.getEpochSize() - const electionCache = new ElectionResultsCache(election, epochSize.toNumber()) - - if (res.flags.follow) { - console.info('Follow mode, press q or ctrl-c to quit') - } - - const latest = res.flags['at-block'] - ? res.flags['at-block'] + 1 - : (await this.web3.eth.getBlock('latest')).number - - let lookback: number - if (res.flags.slashableDowntimeLookback) { - const downtimeSlasher = await this.kit.contracts.getDowntimeSlasher() - lookback = await downtimeSlasher.slashableDowntime() - } else { - lookback = res.flags.lookback - } - - const blocks = await concurrentMap(10, [...Array(lookback).keys()], (i) => - this.web3.eth.getBlock(latest - lookback! + i + 1) - ) - - const signers = res.flags.signers ?? [res.flags.signer!] - - for (const signer of signers) { - let wasDown: boolean - let wasElected: boolean - let printer: MarkPrinter - if (res.flags.wasDownWhileElected) { - wasDown = true - wasElected = true - } else { - printer = new MarkPrinter(res.flags.width!) - } - try { - for (const block of blocks) { - const elected = await electionCache.elected(signer, block.number - 1) - const signed = elected && (await electionCache.signedParent(signer, block)) - if (res.flags.wasDownWhileElected) { - wasElected = wasElected! && elected - wasDown = wasDown! && !signed - } else { - printer!.addMark(block.number - 1, elected, signed) - } - } - - if (res.flags.follow) { - const web3 = await this.newWeb3() - const subscription = web3.eth - .subscribe('newBlockHeaders', (error) => { - if (error) { - this.error(error) - } - }) - .on('data', async (block) => { - const elected = await electionCache.elected(signer, block.number - 1) - const signed = elected && (await electionCache.signedParent(signer, block)) - if (!res.flags.wasDownWhileElected) { - printer!.addMark(block.number - 1, elected, signed) - } - }) - .on('error', (error) => { - this.error(`error in block header subscription: ${error}`) - }) - - try { - let response: string - do { - response = await cli.prompt('', { prompt: '', type: 'single', required: false }) - } while (response !== 'q' && response !== '\u0003' /* ctrl-c */) - } finally { - await subscription.unsubscribe() - stopProvider(web3.currentProvider as Provider) - } - } - } finally { - if (res.flags.wasDownWhileElected) { - const was = (b: boolean) => 'was' + (b ? '' : ' not') - console.log(`signer ${signer} ${was(wasElected!)} elected and ${was(wasDown!)} down`) - } else { - await printer!.done() - } - } - } - } -} - -/** - * Printer object to output marks in a grid to indicate signing status. - */ -// tslint:disable-next-line:max-classes-per-file -class MarkPrinter { - private previousBlockNumber: number | null = null - - constructor(private width: number) {} - - addMark(blockNumber: number, elected: boolean, signed: boolean) { - if (this.previousBlockNumber === null) { - const labelNumber = Math.floor(blockNumber / this.width) * this.width - this.previousBlockNumber = labelNumber - 1 - } - if (blockNumber <= this.previousBlockNumber - 1) { - throw new Error( - `cannot add mark for ${blockNumber} which is not after ${this.previousBlockNumber}` - ) - } - - for (let i = this.previousBlockNumber + 1; i <= blockNumber; i++) { - if (i % this.width === 0) { - this.printLineLabel(i) - } - if (i < blockNumber) { - process.stdout.write(' ') - } else { - process.stdout.write(this.mark(elected, signed)) - } - } - this.previousBlockNumber = blockNumber - } - - async done() { - // Print a final newline to complete the line. - return new Promise((resolve, reject) => { - process.stdout.write('\n', (err: any) => { - err ? reject(err) : resolve() - }) - }) - } - - private mark(elected: boolean, signed: boolean) { - return elected ? (signed ? chalk.green('.') : chalk.red('✘')) : chalk.yellow('~') - } - - private printLineLabel(blockNumber: number, newline: boolean = true) { - if (newline) { - process.stdout.write('\n') - } - process.stdout.write(`${blockNumber} `.padStart(8, ' ')) - } -} diff --git a/packages/cli/src/commands/validator/status.ts b/packages/cli/src/commands/validator/status.ts deleted file mode 100644 index 2b1cc987c60..00000000000 --- a/packages/cli/src/commands/validator/status.ts +++ /dev/null @@ -1,245 +0,0 @@ -import { Address } from '@celo/connect' -import { eqAddress } from '@celo/utils/lib/address' -import { concurrentMap } from '@celo/utils/lib/async' -import { bitIsSet, parseBlockExtraData } from '@celo/utils/lib/istanbul' -import { flags } from '@oclif/command' -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { Flags } from '../../utils/command' -import { ElectionResultsCache } from '../../utils/election' - -interface ValidatorStatusEntry { - name: string - address: Address - signer: Address - elected: boolean - frontRunner: boolean - signatures: number -} - -export const statusTable = { - address: {}, - name: {}, - signer: {}, - elected: {}, - frontRunner: {}, - signatures: { - get: (v: ValidatorStatusEntry) => - isNaN(v.signatures) ? '' : (v.signatures * 100).toFixed(2) + '%', - }, -} - -export default class ValidatorStatus extends BaseCommand { - static description = - 'Shows the consensus status of a validator. This command will show whether a validator is currently elected, would be elected if an election were to be run right now, and the percentage of blocks signed and number of blocks successfully proposed within a given window.' - - static flags = { - ...BaseCommand.flags, - validator: Flags.address({ - description: 'address of the validator to check if elected and validating', - exclusive: ['all', 'signer'], - }), - signer: Flags.address({ - description: 'address of the signer to check if elected and validating', - exclusive: ['validator', 'all'], - }), - all: flags.boolean({ - description: 'get the status of all registered validators', - exclusive: ['validator', 'signer'], - }), - start: flags.integer({ - description: - 'what block to start at when looking at signer activity. defaults to the last 100 blocks', - default: -1, - }), - end: flags.integer({ - description: - 'what block to end at when looking at signer activity. defaults to the latest block', - default: -1, - }), - ...(cli.table.flags() as object), - } - - static examples = [ - 'status --validator 0x5409ED021D9299bf6814279A6A1411A7e866A631', - 'status --validator 0x5409ED021D9299bf6814279A6A1411A7e866A631 --start 1480000', - 'status --all --start 1480000 --end 1490000', - ] - - async run() { - const res = this.parse(ValidatorStatus) - const accounts = await this.kit.contracts.getAccounts() - const validators = await this.kit.contracts.getValidators() - const election = await this.kit.contracts.getElection() - - // Resolve the signer address(es) from the provide flags. - let signers: string[] = [] - const checker = newCheckBuilder(this) - if (res.flags.signer) { - signers = [res.flags.signer] - const validator = await accounts.signerToAccount(res.flags.signer) - checker.isAccount(validator).isValidator(validator) - await checker.runChecks() - } else if (res.flags.validator) { - checker.isAccount(res.flags.validator).isValidator(res.flags.validator) - await checker.runChecks() - const signer = await accounts.getValidatorSigner(res.flags.validator) - signers = [signer] - } else { - signers = await concurrentMap(10, await validators.getRegisteredValidatorsAddresses(), (a) => - accounts.getValidatorSigner(a) - ) - } - - const latest = await this.web3.eth.getBlockNumber() - const endBlock = res.flags.end === -1 ? await this.web3.eth.getBlockNumber() : res.flags.end - const startBlock = res.flags.start === -1 ? endBlock - 100 : res.flags.start - if (startBlock > endBlock || endBlock > latest) { - this.error('invalid values for start/end') - } - - const epochSize = (await validators.getEpochSize()).toNumber() - const electionCache = new ElectionResultsCache(election, epochSize) - let frontRunnerSigners: string[] = [] - cli.action.start(`Running mock election`) - try { - frontRunnerSigners = await election.electValidatorSigners() - } catch (err) { - console.warn('Warning: Elections not available') - } - cli.action.stop() - const signatureCounts = await this.getSignatureCounts(startBlock, endBlock, electionCache) - const electedCounts = await this.getElectedCounts( - startBlock, - endBlock, - electionCache, - epochSize - ) - cli.action.start(`Fetching validator information`) - const validatorStatuses = await concurrentMap(10, signers, (s) => - this.getStatus(s, signatureCounts, electedCounts, electionCache, frontRunnerSigners) - ) - cli.action.stop() - - cli.table(validatorStatuses, statusTable, res.flags) - } - - private async getSignatureCounts( - start: number, - end: number, - electionCache: ElectionResultsCache - ): Promise> { - const bar = cli.progress({ - format: 'counting block signatures [{bar}] {percentage}% | ETA: {eta}s | {value}/{total}', - }) - bar.start(end - start) - const countsBySigner = new Map() - const incrementSignatureCounts = async (blockNumber: number) => { - if ((blockNumber - start) % 10 === 0 || blockNumber === end) { - bar.update(blockNumber - start) - } - const block = await this.web3.eth.getBlock(blockNumber) - const bitmap = parseBlockExtraData(block.extraData).parentAggregatedSeal.bitmap - const signers = await electionCache.electedSigners(blockNumber) - signers.map((s, i) => { - if (bitIsSet(bitmap, i)) { - const count = countsBySigner.get(s) === undefined ? 0 : countsBySigner.get(s) - countsBySigner.set(s, count + 1) - } - }) - } - await concurrentMap( - 10, - Array.from({ length: end - start + 1 }, (_, i) => i + start), - incrementSignatureCounts - ) - const signerToAccountCache = new Map() - const accounts = await this.kit.contracts.getAccounts() - await concurrentMap(10, Array.from(countsBySigner.keys()), async (signer) => { - const account = await accounts.signerToAccount(signer) - signerToAccountCache.set(signer, account) - }) - const countsByAccount = new Map() - countsBySigner.forEach(async (count, signer) => { - const account = signerToAccountCache.get(signer) - const total = countsByAccount.get(account) - countsByAccount.set(account, total === undefined ? count : count + total) - }) - bar.stop() - return countsByAccount - } - - private epochNumber(blockNumber: number, epochSize: number): number { - return Math.ceil(blockNumber / epochSize) - } - - private firstBlockOfEpoch(epochNumber: number, epochSize: number): number { - return (epochNumber - 1) * epochSize + 1 - } - - private async getElectedCounts( - start: number, - end: number, - electionCache: ElectionResultsCache, - epochSize: number - ): Promise> { - const countsBySigner = new Map() - let i = start - while (i < end) { - const epoch = this.epochNumber(i, epochSize) - const j = Math.min(this.firstBlockOfEpoch(epoch + 1, epochSize) - 1, end) - const signers = await electionCache.electedSigners(i) - signers.map((s) => { - const count = countsBySigner.get(s) === undefined ? 0 : countsBySigner.get(s) - countsBySigner.set(s, count + (j - i) + 1) - }) - i = j + 1 - } - const signerToAccountCache = new Map() - const accounts = await this.kit.contracts.getAccounts() - await concurrentMap(10, Array.from(countsBySigner.keys()), async (signer) => { - const account = await accounts.signerToAccount(signer) - signerToAccountCache.set(signer, account) - }) - const countsByAccount = new Map() - countsBySigner.forEach(async (count, signer) => { - const account = signerToAccountCache.get(signer) - const total = countsByAccount.get(account) - countsByAccount.set(account, total === undefined ? count : count + total) - }) - return countsByAccount - } - - private async getStatus( - signer: Address, - signatureCounts: Map, - electedCounts: Map, - electionCache: ElectionResultsCache, - frontRunnerSigners: Address[] - ): Promise { - const accounts = await this.kit.contracts.getAccounts() - const validators = await this.kit.contracts.getValidators() - const validator = await accounts.signerToAccount(signer) - let name = 'Unregistered validator' - if (await validators.isValidator(validator)) { - name = (await accounts.getName(validator)) || '' - } - let signatures = signatureCounts.get(validator) - if (signatures === undefined) { - signatures = 0 - } - let elected = electedCounts.get(validator) - if (elected === undefined) { - elected = 0 - } - return { - name, - address: validator, - signer, - elected: await electionCache.elected(signer, await this.web3.eth.getBlockNumber()), - frontRunner: frontRunnerSigners.some(eqAddress.bind(null, signer)), - signatures: signatures / elected, // may be NaN - } - } -} diff --git a/packages/cli/src/commands/validator/update-bls-public-key.ts b/packages/cli/src/commands/validator/update-bls-public-key.ts deleted file mode 100644 index 973101cc241..00000000000 --- a/packages/cli/src/commands/validator/update-bls-public-key.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ValidatorUpdateBlsPublicKey extends BaseCommand { - static description = `Update the BLS public key for a Validator to be used in consensus. - -Regular (ECDSA and BLS) key rotation is recommended for Validator operational security. - -WARNING: By default, the BLS key used by the validator node is derived from the ECDSA private key. As a result, rotating the BLS key without rotating the ECDSA key will result in validator downtime without special configuration. Use this method only if you know what you are doing.` - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Validator's address" }), - blsKey: Flags.blsPublicKey({ required: true }), - blsPop: Flags.blsProofOfPossession({ required: true }), - } - - static examples = [ - 'update-bls-key --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --blsKey 0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00 --blsPop 0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900', - ] - async run() { - const res = this.parse(ValidatorUpdateBlsPublicKey) - - const validators = await this.kit.contracts.getValidators() - await newCheckBuilder(this, res.flags.from) - .isSignerOrAccount() - .canSignValidatorTxs() - .signerAccountIsValidator() - .runChecks() - - await displaySendTx( - 'updateBlsPublicKey', - validators.updateBlsPublicKey(res.flags.blsKey as any, res.flags.blsPop as any) - ) - } -} diff --git a/packages/cli/src/commands/validatorgroup/commission.test.ts b/packages/cli/src/commands/validatorgroup/commission.test.ts deleted file mode 100644 index dea5a4d01e5..00000000000 --- a/packages/cli/src/commands/validatorgroup/commission.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { mineBlocks, testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { testLocally } from '../../test-utils/cliUtils' -import AccountRegister from '../account/register' -import Lock from '../lockedgold/lock' -import Commission from './commission' -import ValidatorGroupRegister from './register' - -process.env.NO_SYNCCHECK = 'true' - -testWithGanache('validatorgroup:comission cmd', (web3: Web3) => { - async function registerValidatorGroup() { - const accounts = await web3.eth.getAccounts() - - await testLocally(AccountRegister, ['--from', accounts[0]]) - await testLocally(Lock, ['--from', accounts[0], '--value', '10000000000000000000000']) - await testLocally(ValidatorGroupRegister, [ - '--from', - accounts[0], - '--commission', - '0.1', - '--yes', - ]) - } - - test('can queue update', async () => { - const accounts = await web3.eth.getAccounts() - await registerValidatorGroup() - await testLocally(Commission, ['--from', accounts[0], '--queue-update', '0.2']) - }) - test('can apply update', async () => { - const accounts = await web3.eth.getAccounts() - await registerValidatorGroup() - await testLocally(Commission, ['--from', accounts[0], '--queue-update', '0.2']) - await mineBlocks(3, web3) - await testLocally(Commission, ['--from', accounts[0], '--apply']) - }) -}) diff --git a/packages/cli/src/commands/validatorgroup/commission.ts b/packages/cli/src/commands/validatorgroup/commission.ts deleted file mode 100644 index 114cc3727d7..00000000000 --- a/packages/cli/src/commands/validatorgroup/commission.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ValidatorGroupCommission extends BaseCommand { - static description = - 'Manage the commission for a registered Validator Group. This represents the share of the epoch rewards given to elected Validators that goes to the group they are a member of. Updates must be made in a two step process where the group owner first calls uses the queue-update option, then after the required update delay, the apply option. The commission update delay, in blocks, can be viewed with the network:parameters command. A groups next commission update block can be checked with validatorgroup:show' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'Address for the Validator Group or Validator Group validator signer', - }), - apply: flags.boolean({ - exclusive: ['queue-update'], - description: 'Applies a previously queued update. Should be called after the update delay.', - }), - 'queue-update': flags.string({ - exclusive: ['apply'], - description: - 'Queues an update to the commission, which can be applied after the update delay.', - }), - } - - static examples = [ - 'commission --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --queue-update 0.1', - 'commission --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --apply', - ] - - async run() { - const res = this.parse(ValidatorGroupCommission) - - if (!(res.flags['queue-update'] || res.flags.apply)) { - this.error(`Specify action: --apply or --queue-update`) - return - } - - const validators = await this.kit.contracts.getValidators() - - if (res.flags['queue-update']) { - const commission = new BigNumber(res.flags['queue-update']) - await newCheckBuilder(this, res.flags.from) - .addCheck('Commission is in range [0,1]', () => commission.gte(0) && commission.lte(1)) - .isSignerOrAccount() - .canSignValidatorTxs() - // .signerAccountIsValidatorGroup() - .runChecks() - - const tx = await validators.setNextCommissionUpdate(commission) - await displaySendTx('setNextCommissionUpdate', tx) - } else if (res.flags.apply) { - await newCheckBuilder(this, res.flags.from) - .isSignerOrAccount() - .canSignValidatorTxs() - // .signerAccountIsValidatorGroup() - .hasACommissionUpdateQueued() - .hasCommissionUpdateDelayPassed() - .runChecks() - - const tx = await validators.updateCommission() - await displaySendTx('updateCommission', tx) - } - } -} diff --git a/packages/cli/src/commands/validatorgroup/deregister.ts b/packages/cli/src/commands/validatorgroup/deregister.ts deleted file mode 100644 index 0ac7af72cdd..00000000000 --- a/packages/cli/src/commands/validatorgroup/deregister.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ValidatorGroupDeRegister extends BaseCommand { - static description = - 'Deregister a Validator Group. Approximately 180 days after the validator group is empty, it will be possible to deregister it start unlocking the CELO. If you wish to deregister your validator group, you must first remove all members, then wait the required 180 days before running this command.' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "Signer or ValidatorGroup's address" }), - } - - static examples = ['deregister --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95'] - - async run() { - const res = this.parse(ValidatorGroupDeRegister) - - const validators = await this.kit.contracts.getValidators() - - const account = await validators.signerToAccount(res.flags.from) - - await newCheckBuilder(this, res.flags.from) - .isSignerOrAccount() - .canSignValidatorTxs() - .signerAccountIsValidatorGroup() - .runChecks() - - await displaySendTx('deregister', await validators.deregisterValidatorGroup(account)) - } -} diff --git a/packages/cli/src/commands/validatorgroup/list.ts b/packages/cli/src/commands/validatorgroup/list.ts deleted file mode 100644 index 0b23bd3be54..00000000000 --- a/packages/cli/src/commands/validatorgroup/list.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { cli } from 'cli-ux' -import { BaseCommand } from '../../base' - -export default class ValidatorGroupList extends BaseCommand { - static description = - 'List registered Validator Groups, their names (if provided), commission, and members.' - - static flags = { - ...BaseCommand.flags, - ...(cli.table.flags() as object), - } - - static examples = ['list'] - - async run() { - const res = this.parse(ValidatorGroupList) - - cli.action.start('Fetching Validator Groups') - const validators = await this.kit.contracts.getValidators() - const vgroups = await validators.getRegisteredValidatorGroups() - cli.action.stop() - - cli.table( - vgroups, - { - address: {}, - name: {}, - commission: { get: (r) => r.commission.toFixed() }, - members: { get: (r) => r.members.length }, - }, - res.flags - ) - } -} diff --git a/packages/cli/src/commands/validatorgroup/member.ts b/packages/cli/src/commands/validatorgroup/member.ts deleted file mode 100644 index ea97bc887d5..00000000000 --- a/packages/cli/src/commands/validatorgroup/member.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { flags } from '@oclif/command' -import { IArg } from '@oclif/parser/lib/args' -import prompts from 'prompts' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Args, Flags } from '../../utils/command' - -export default class ValidatorGroupMembers extends BaseCommand { - static description = 'Add or remove members from a Validator Group' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: "ValidatorGroup's address" }), - yes: flags.boolean({ description: 'Answer yes to prompt' }), - accept: flags.boolean({ - exclusive: ['remove', 'reorder'], - description: 'Accept a validator whose affiliation is already set to the group', - }), - remove: flags.boolean({ - exclusive: ['accept', 'reorder'], - description: 'Remove a validator from the members list', - }), - reorder: flags.integer({ - exclusive: ['accept', 'remove'], - description: 'Reorder a validator within the members list. Indices are 0 based', - }), - } - - static args: IArg[] = [Args.address('validatorAddress', { description: "Validator's address" })] - - static examples = [ - 'member --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --accept 0x97f7333c51897469e8d98e7af8653aab468050a3', - 'member --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --remove 0x97f7333c51897469e8d98e7af8653aab468050a3', - 'member --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --reorder 3 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95', - ] - - async run() { - const res = this.parse(ValidatorGroupMembers) - - if (!(res.flags.accept || res.flags.remove || typeof res.flags.reorder === 'number')) { - this.error(`Specify action: --accept, --remove or --reorder`) - return - } - - const validators = await this.kit.contracts.getValidators() - - await newCheckBuilder(this, res.flags.from) - .isSignerOrAccount() - .canSignValidatorTxs() - .signerAccountIsValidatorGroup() - .isValidator(res.args.validatorAddress) - .runChecks() - - const validatorGroup = await validators.signerToAccount(res.flags.from) - if (res.flags.accept) { - if (!res.flags.yes) { - const response = await prompts({ - type: 'confirm', - name: 'confirmation', - message: - 'Are you sure you want to accept this member?\nValidator Group Locked Gold requirements increase per member. Adding an additional member could result in an increase in Locked Gold requirements of up to 10,000 CELO for 180 days. (y/n)', - }) - - if (!response.confirmation) { - console.info('Aborting due to user response') - process.exit(0) - } - } - const tx = await validators.addMember(validatorGroup, res.args.validatorAddress) - await displaySendTx('addMember', tx) - } else if (res.flags.remove) { - await displaySendTx('removeMember', validators.removeMember(res.args.validatorAddress)) - } else if (res.flags.reorder != null) { - await displaySendTx( - 'reorderMember', - await validators.reorderMember(validatorGroup, res.args.validatorAddress, res.flags.reorder) - ) - } - } -} diff --git a/packages/cli/src/commands/validatorgroup/register.ts b/packages/cli/src/commands/validatorgroup/register.ts deleted file mode 100644 index 3f0a3e62963..00000000000 --- a/packages/cli/src/commands/validatorgroup/register.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { flags } from '@oclif/command' -import BigNumber from 'bignumber.js' -import humanizeDuration from 'humanize-duration' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { binaryPrompt, displaySendTx } from '../../utils/cli' -import { Flags } from '../../utils/command' - -export default class ValidatorGroupRegister extends BaseCommand { - static description = 'Register a new Validator Group' - - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: 'Address for the Validator Group' }), - yes: flags.boolean({ description: 'Answer yes to prompt' }), - commission: flags.string({ - required: true, - description: - 'The share of the epoch rewards given to elected Validators that goes to the group.', - }), - } - - static examples = ['register --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --commission 0.1'] - - async run() { - const res = this.parse(ValidatorGroupRegister) - - const validators = await this.kit.contracts.getValidators() - const commission = new BigNumber(res.flags.commission) - - if (!res.flags.yes) { - const requirements = await validators.getGroupLockedGoldRequirements() - const duration = requirements.duration.toNumber() * 1000 - const check = await binaryPrompt( - `This will lock ${requirements.value.shiftedBy(-18)} CELO for ${humanizeDuration( - duration - )}. Are you sure you want to continue?`, - true - ) - if (!check) { - console.log('Cancelled') - return - } - } - - await newCheckBuilder(this, res.flags.from) - .addCheck('Commission is in range [0,1]', () => commission.gte(0) && commission.lte(1)) - .isSignerOrAccount() - .canSignValidatorTxs() - .isNotValidator() - .isNotValidatorGroup() - .signerMeetsValidatorGroupBalanceRequirements() - .runChecks() - - const tx = await validators.registerValidatorGroup(commission) - await displaySendTx('registerValidatorGroup', tx) - } -} diff --git a/packages/cli/src/commands/validatorgroup/reset-slashing-multiplier.ts b/packages/cli/src/commands/validatorgroup/reset-slashing-multiplier.ts deleted file mode 100644 index 2c8ef51f424..00000000000 --- a/packages/cli/src/commands/validatorgroup/reset-slashing-multiplier.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { IArg } from '@oclif/parser/lib/args' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { displaySendTx } from '../../utils/cli' -import { Args } from '../../utils/command' - -export default class ResetSlashingMultiplier extends BaseCommand { - static description = 'Reset validator group slashing multiplier.' - - static flags = { - ...BaseCommand.flags, - } - - static args: IArg[] = [Args.address('groupAddress', { description: "ValidatorGroup's address" })] - - static examples = ['reset-slashing-multiplier 0x97f7333c51897469E8D98E7af8653aAb468050a3'] - - async run() { - const { args } = this.parse(ResetSlashingMultiplier) - const address = args.groupAddress - - const validators = await this.kit.contracts.getValidators() - this.kit.defaultAccount = address - - await newCheckBuilder(this, address) - .isSignerOrAccount() - .canSignValidatorTxs() - .signerAccountIsValidatorGroup() - .resetSlashingmultiplierPeriodPassed() - .runChecks() - - await displaySendTx('reset-slashing-multiplier', validators.resetSlashingMultiplier()) - } -} diff --git a/packages/cli/src/commands/validatorgroup/show.ts b/packages/cli/src/commands/validatorgroup/show.ts deleted file mode 100644 index 90dee457494..00000000000 --- a/packages/cli/src/commands/validatorgroup/show.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { IArg } from '@oclif/parser/lib/args' -import { BaseCommand } from '../../base' -import { newCheckBuilder } from '../../utils/checks' -import { printValueMap } from '../../utils/cli' -import { Args } from '../../utils/command' - -export default class ValidatorGroupShow extends BaseCommand { - static description = 'Show information about an existing Validator Group' - - static flags = { - ...BaseCommand.flags, - } - - static args: IArg[] = [Args.address('groupAddress', { description: "ValidatorGroup's address" })] - - static examples = ['show 0x97f7333c51897469E8D98E7af8653aAb468050a3'] - - async run() { - const res = this.parse(ValidatorGroupShow) - const validators = await this.kit.contracts.getValidators() - - await newCheckBuilder(this).isValidatorGroup(res.args.groupAddress).runChecks() - - const validatorGroup = await validators.getValidatorGroup(res.args.groupAddress) - printValueMap(validatorGroup) - } -} diff --git a/packages/cli/src/exchange-stable-base.ts b/packages/cli/src/exchange-stable-base.ts deleted file mode 100644 index b3de7188277..00000000000 --- a/packages/cli/src/exchange-stable-base.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { stableTokenInfos } from '@celo/contractkit/lib/celo-tokens' -import { ParserOutput } from '@oclif/parser/lib/parse' -import BigNumber from 'bignumber.js' -import { BaseCommand } from './base' -import { newCheckBuilder } from './utils/checks' -import { displaySendTx, failWith } from './utils/cli' -import { Flags } from './utils/command' -import { checkNotDangerousExchange } from './utils/exchange' - -const largeOrderPercentage = 1 -const deppegedPricePercentage = 20 -export default class ExchangeStableBase extends BaseCommand { - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: 'The address with the Stable Token to exchange', - }), - value: Flags.wei({ - required: true, - description: 'The value of Stable Tokens to exchange for CELO', - }), - forAtLeast: Flags.wei({ - description: 'Optional, the minimum value of CELO to receive in return', - default: new BigNumber(0), - }), - } - - protected _stableCurrency: StableToken | null = null - - async run() { - const res: ParserOutput = this.parse() - const sellAmount = res.flags.value - const minBuyAmount = res.flags.forAtLeast - - if (!this._stableCurrency) { - throw new Error('Stable currency not set') - } - await newCheckBuilder(this) - .hasEnoughStable(res.flags.from, sellAmount, this._stableCurrency) - .runChecks() - - let stableToken - let exchange - try { - stableToken = await this.kit.contracts.getStableToken(this._stableCurrency) - exchange = await this.kit.contracts.getExchange(this._stableCurrency) - } catch { - failWith(`The ${this._stableCurrency} token was not deployed yet`) - } - - if (minBuyAmount.toNumber() === 0) { - const check = await checkNotDangerousExchange( - this.kit, - sellAmount, - largeOrderPercentage, - deppegedPricePercentage, - false, - stableTokenInfos[this._stableCurrency] - ) - - if (!check) { - console.log('Cancelled') - return - } - } - - await displaySendTx( - 'increaseAllowance', - stableToken.increaseAllowance(exchange.address, sellAmount.toFixed()) - ) - - const exchangeTx = exchange.exchange(sellAmount.toFixed(), minBuyAmount!.toFixed(), false) - // Set explicit gas based on github.com/celo-org/celo-monorepo/issues/2541 - await displaySendTx('exchange', exchangeTx, { gas: 300000 }) - } -} diff --git a/packages/cli/src/help.ts b/packages/cli/src/help.ts deleted file mode 100644 index 6e645064f85..00000000000 --- a/packages/cli/src/help.ts +++ /dev/null @@ -1,8 +0,0 @@ -import Help from '@oclif/plugin-help' - -export default class CustomHelp extends Help { - // TODO: customize help output (to show hidden flags) - // showHelp(args: string[]): void { - // console.log('TEST') - // } -} diff --git a/packages/cli/src/hooks/prerun/plugin-warning.ts b/packages/cli/src/hooks/prerun/plugin-warning.ts deleted file mode 100644 index a71a6df8ce3..00000000000 --- a/packages/cli/src/hooks/prerun/plugin-warning.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Hook } from '@oclif/config' -import { CLIError } from '@oclif/errors' -import prompts from 'prompts' - -const hook: Hook<'prerun'> = async (opts) => { - if (['plugins:install', 'plugins:link'].includes(opts.Command.id || '')) { - // Require @celo/* NPM scope for any package installation - // If no args are passed in, default to oclif/plugin-plugins error handling - if (opts.argv.length && !/(@celo\/.+)|(@clabs\/.+)/.test(opts.argv[0])) { - throw new CLIError( - 'Only plugins published in the @celo/* and @clabs/* NPM scopes may currently be installed.' - ) - } - // Ask for explicit confirmation to install any plugins - const response = await prompts({ - type: 'confirm', - name: 'confirmation', - message: 'Are you sure you want to install this plugin? (y/n)', - }) - - if (!response.confirmation) { - console.info('Aborting due to user response') - process.exit(0) - } - } -} - -export default hook diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts deleted file mode 100644 index 088abcf7782..00000000000 --- a/packages/cli/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { run } from '@oclif/command' diff --git a/packages/cli/src/test-utils/PromiEventStub.ts b/packages/cli/src/test-utils/PromiEventStub.ts deleted file mode 100644 index 63490191770..00000000000 --- a/packages/cli/src/test-utils/PromiEventStub.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { CeloTxReceipt, PromiEvent } from '@celo/connect' -import { EventEmitter } from 'events' - -interface PromiEventStub extends PromiEvent { - emitter: EventEmitter - resolveHash(hash: string): void - resolveReceipt(receipt: CeloTxReceipt): void - rejectHash(error: any): void - rejectReceipt(receipt: CeloTxReceipt, error: any): void -} -export function promiEventSpy(): PromiEventStub { - const ee = new EventEmitter() - const pe: PromiEventStub = { - catch: () => { - throw new Error('not implemented') - }, - then: () => { - throw new Error('not implemented') - }, - finally: () => { - throw new Error('not implemented') - }, - on: ((event: string, listener: (...args: any[]) => void) => ee.on(event, listener)) as any, - once: ((event: string, listener: (...args: any[]) => void) => ee.once(event, listener)) as any, - [Symbol.toStringTag]: 'Not Implemented', - emitter: ee, - resolveHash: (hash: string) => { - ee.emit('transactionHash', hash) - }, - resolveReceipt: (receipt: CeloTxReceipt) => { - ee.emit('receipt', receipt) - }, - rejectHash: (error: any) => { - ee.emit('error', error, false) - }, - rejectReceipt: (receipt: CeloTxReceipt, error: any) => { - ee.emit('error', error, receipt) - }, - } - return pe -} diff --git a/packages/cli/src/test-utils/cliUtils.ts b/packages/cli/src/test-utils/cliUtils.ts deleted file mode 100644 index 79bbbf10923..00000000000 --- a/packages/cli/src/test-utils/cliUtils.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { LoadOptions } from '@oclif/config' -import { BaseCommand } from '../base' - -export async function testLocally( - command: typeof BaseCommand, - argv: string[], - config?: LoadOptions -) { - const extendedArgv = [...argv, '--node', 'local'] - return command.run(extendedArgv, config) -} diff --git a/packages/cli/src/test-utils/grandaMento.ts b/packages/cli/src/test-utils/grandaMento.ts deleted file mode 100644 index 28869b92283..00000000000 --- a/packages/cli/src/test-utils/grandaMento.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { GrandaMentoWrapper } from '@celo/contractkit/lib/wrappers/GrandaMento' -import BigNumber from 'bignumber.js' - -export const setGrandaMentoLimits = async ( - grandaMento: GrandaMentoWrapper, - newLimitMin: BigNumber = new BigNumber('1000'), - newLimitMax: BigNumber = new BigNumber('1000000000000'), - stableToken: string = 'StableToken' -) => { - await grandaMento - .setStableTokenExchangeLimits(stableToken, newLimitMin.toString(), newLimitMax.toString()) - .sendAndWaitForReceipt() -} diff --git a/packages/cli/src/test-utils/setup.global.ts b/packages/cli/src/test-utils/setup.global.ts deleted file mode 100644 index 14e12f624d3..00000000000 --- a/packages/cli/src/test-utils/setup.global.ts +++ /dev/null @@ -1,16 +0,0 @@ -import baseSetup from '@celo/dev-utils/lib/ganache-setup' -// Has to import the matchers somewhere so that typescript knows the matchers have been made available -import _unused from '@celo/dev-utils/lib/matchers' -import * as path from 'path' - -// Warning: There should be an unused import of '@celo/dev-utils/lib/matchers' above. -// If there is not, then your editor probably deleted it automatically. - -export default async function globalSetup() { - console.log('\nstarting ganache...') - const chainDataPath = path.join(path.dirname(require.resolve('@celo/celo-devchain')), '../chains') - // v10 refers to core contract release 10 - await baseSetup(path.resolve(chainDataPath), 'v10.tar.gz', { - from_targz: true, - }) -} diff --git a/packages/cli/src/test-utils/teardown.global.ts b/packages/cli/src/test-utils/teardown.global.ts deleted file mode 100644 index aea64f79dbb..00000000000 --- a/packages/cli/src/test-utils/teardown.global.ts +++ /dev/null @@ -1,5 +0,0 @@ -import teardown from '@celo/dev-utils/lib/ganache-teardown' - -export default async function globalTeardown() { - await teardown() -} diff --git a/packages/cli/src/transfer-stable-base.ts b/packages/cli/src/transfer-stable-base.ts deleted file mode 100644 index f3901c0ea0b..00000000000 --- a/packages/cli/src/transfer-stable-base.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { StableToken } from '@celo/contractkit' -import { stableTokenInfos } from '@celo/contractkit/lib/celo-tokens' -import { StableTokenWrapper } from '@celo/contractkit/lib/wrappers/StableTokenWrapper' -import { flags } from '@oclif/command' -import { ParserOutput } from '@oclif/parser/lib/parse' -import BigNumber from 'bignumber.js' -import { BaseCommand } from './base' -import { newCheckBuilder } from './utils/checks' -import { displaySendTx, failWith } from './utils/cli' -import { Flags } from './utils/command' - -export abstract class TransferStableBase extends BaseCommand { - static flags = { - ...BaseCommand.flags, - from: Flags.address({ required: true, description: 'Address of the sender' }), - to: Flags.address({ required: true, description: 'Address of the receiver' }), - value: flags.string({ required: true, description: 'Amount to transfer (in wei)' }), - comment: flags.string({ description: 'Transfer comment' }), - } - - protected _stableCurrency: StableToken | null = null - - async run() { - const res: ParserOutput = this.parse() - - const from: string = res.flags.from - const to: string = res.flags.to - const value = new BigNumber(res.flags.value) - - if (!this._stableCurrency) { - throw new Error('Stable currency not set') - } - let stableToken: StableTokenWrapper - try { - stableToken = await this.kit.contracts.getStableToken(this._stableCurrency) - } catch { - failWith(`The ${this._stableCurrency} token was not deployed yet`) - } - // If gasCurrency is not set, use the transferring token - if (!res.flags.gasCurrency) { - await this.kit.setFeeCurrency(stableTokenInfos[this._stableCurrency].contract) - } - - const tx = res.flags.comment - ? stableToken.transferWithComment(to, value.toFixed(), res.flags.comment) - : stableToken.transfer(to, value.toFixed()) - - await newCheckBuilder(this) - .hasEnoughStable(from, value, this._stableCurrency) - .addConditionalCheck( - `Account can afford transfer and gas paid in ${this._stableCurrency}`, - this.kit.connection.defaultFeeCurrency === stableToken.address, - async () => { - const [gas, gasPrice, balance] = await Promise.all([ - tx.txo.estimateGas({ feeCurrency: stableToken.address }), - this.kit.connection.gasPrice(stableToken.address), - stableToken.balanceOf(from), - ]) - const gasValue = new BigNumber(gas).times(gasPrice as string) - return balance.gte(value.plus(gasValue)) - }, - `Cannot afford transfer with ${this._stableCurrency} gasCurrency; try reducing value slightly or using gasCurrency=CELO` - ) - .runChecks() - - await displaySendTx(res.flags.comment ? 'transferWithComment' : 'transfer', tx) - } -} diff --git a/packages/cli/src/utils/checks.ts b/packages/cli/src/utils/checks.ts deleted file mode 100644 index da85f980e6f..00000000000 --- a/packages/cli/src/utils/checks.ts +++ /dev/null @@ -1,521 +0,0 @@ -import { eqAddress, NULL_ADDRESS } from '@celo/base/lib/address' -import { Address } from '@celo/connect' -import { StableToken } from '@celo/contractkit' -import { AccountsWrapper } from '@celo/contractkit/lib/wrappers/Accounts' -import { GovernanceWrapper, ProposalStage } from '@celo/contractkit/lib/wrappers/Governance' -import { - ExchangeProposalState, - GrandaMentoWrapper, -} from '@celo/contractkit/lib/wrappers/GrandaMento' -import { LockedGoldWrapper } from '@celo/contractkit/lib/wrappers/LockedGold' -import { MultiSigWrapper } from '@celo/contractkit/lib/wrappers/MultiSig' -import { ValidatorsWrapper } from '@celo/contractkit/lib/wrappers/Validators' -import { isValidAddress } from '@celo/utils/lib/address' -import { verifySignature } from '@celo/utils/lib/signatureUtils' -import BigNumber from 'bignumber.js' -import chalk from 'chalk' -import { BaseCommand } from '../base' -import { printValueMapRecursive } from './cli' - -export interface CommandCheck { - name: string - errorMessage?: string - run(): Promise | boolean -} - -export function check( - name: string, - predicate: () => Promise | boolean, - errorMessage?: string -): CommandCheck { - return { - name, - errorMessage, - run: predicate, - } -} - -const negate = (x: Promise) => x.then((y) => !y) - -type Resolve = A extends Promise ? T : A - -export function newCheckBuilder(cmd: BaseCommand, signer?: Address) { - return new CheckBuilder(cmd, signer) -} - -class CheckBuilder { - private checks: CommandCheck[] = [] - - constructor(private cmd: BaseCommand, private signer?: Address) {} - - get web3() { - return this.cmd.web3 - } - - get kit() { - return this.cmd.kit - } - - withValidators( - f: (validators: ValidatorsWrapper, signer: Address, account: Address, ctx: CheckBuilder) => A - ): () => Promise> { - return async () => { - const validators = await this.kit.contracts.getValidators() - if (this.signer) { - const account = await validators.signerToAccount(this.signer) - return f(validators, this.signer, account, this) as Resolve - } else { - return f(validators, '', '', this) as Resolve - } - } - } - - withLockedGold( - f: ( - lockedGold: LockedGoldWrapper, - signer: Address, - account: Address, - validators: ValidatorsWrapper - ) => A - ): () => Promise> { - return async () => { - const lockedGold = await this.kit.contracts.getLockedGold() - const validators = await this.kit.contracts.getValidators() - if (this.signer) { - const account = await validators.signerToAccount(this.signer) - return f(lockedGold, this.signer, account, validators) as Resolve - } else { - return f(lockedGold, '', '', validators) as Resolve - } - } - } - - withAccounts(f: (accounts: AccountsWrapper) => A): () => Promise> { - return async () => { - const accounts = await this.kit.contracts.getAccounts() - return f(accounts) as Resolve - } - } - - withGrandaMento(f: (accounts: GrandaMentoWrapper) => A): () => Promise> { - return async () => { - const accounts = await this.kit.contracts.getGrandaMento() - return f(accounts) as Resolve - } - } - - withGovernance( - f: (governance: GovernanceWrapper, signer: Address, account: Address, ctx: CheckBuilder) => A - ): () => Promise> { - return async () => { - const governance = await this.kit.contracts.getGovernance() - return f(governance, '', '', this) as Resolve - } - } - - addCheck(name: string, predicate: () => Promise | boolean, errorMessage?: string) { - this.checks.push(check(name, predicate, errorMessage)) - return this - } - - addConditionalCheck( - name: string, - runCondition: boolean, - predicate: () => Promise | boolean, - errorMessage?: string - ) { - if (runCondition) { - return this.addCheck(name, predicate, errorMessage) - } - return this - } - - isApprover = (account: Address) => - this.addCheck( - `${account} is approver address`, - this.withGovernance(async (governance) => eqAddress(await governance.getApprover(), account)) - ) - - proposalExists = (proposalID: string) => - this.addCheck( - `${proposalID} is an existing proposal`, - this.withGovernance((governance) => governance.proposalExists(proposalID)) - ) - - grandaMentoProposalExists = (proposalID: string) => - this.addCheck( - `${proposalID} is an existing proposal`, - this.withGrandaMento((grandaMento) => grandaMento.exchangeProposalExists(proposalID)) - ) - - grandaMentoProposalHasState = (proposalID: string, state: ExchangeProposalState) => - this.addCheck( - `${proposalID} has state ${ExchangeProposalState[state]}`, - this.withGrandaMento(async (grandaMento) => { - const exchangeProposal = await grandaMento.getExchangeProposal(proposalID) - return exchangeProposal.state === state - }) - ) - - grandaMentoProposalIsExecutable = (proposalID: string) => { - this.grandaMentoProposalHasState(proposalID, ExchangeProposalState.Approved) - return this.addCheck( - `${proposalID} veto period has elapsed`, - this.withGrandaMento(async (grandaMento) => { - const exchangeProposal = await grandaMento.getExchangeProposal(proposalID) - return exchangeProposal.approvalTimestamp - .plus(exchangeProposal.vetoPeriodSeconds) - .isLessThanOrEqualTo(Date.now() / 1000) - }) - ) - } - - proposalInStage = (proposalID: string, stage: keyof typeof ProposalStage) => - this.addCheck( - `${proposalID} is in stage ${stage}`, - this.withGovernance(async (governance) => { - const match = (await governance.getProposalStage(proposalID)) === stage - if (!match) { - const schedule = await governance.proposalSchedule(proposalID) - printValueMapRecursive(schedule) - } - return match - }) - ) - - proposalIsPassing = (proposalID: string) => - this.addCheck( - `Proposal ${proposalID} is passing corresponding constitutional quorum`, - this.withGovernance((governance) => governance.isProposalPassing(proposalID)) - ) - - hotfixIsPassing = (hash: Buffer) => - this.addCheck( - `Hotfix 0x${hash.toString('hex')} is whitelisted by quorum of validators`, - this.withGovernance((governance) => governance.isHotfixPassing(hash)) - ) - - hotfixNotExecuted = (hash: Buffer) => - this.addCheck( - `Hotfix 0x${hash.toString('hex')} is not already executed`, - this.withGovernance(async (governance) => !(await governance.getHotfixRecord(hash)).executed) - ) - - hotfixNotApproved = (hash: Buffer) => - this.addCheck( - `Hotfix 0x${hash.toString('hex')} is not already approved`, - this.withGovernance(async (governance) => !(await governance.getHotfixRecord(hash)).approved) - ) - - canSign = (account: Address) => - this.addCheck('Account can sign', async () => { - try { - const message = 'test' - const signature = await this.kit.connection.sign(message, account) - return verifySignature(message, signature, account) - } catch (error) { - console.error(error) - return false - } - }) - - canSignValidatorTxs = () => - this.addCheck( - 'Signer can sign Validator Txs', - this.withAccounts((accounts) => - accounts - .validatorSignerToAccount(this.signer!) - .then(() => true) - .catch(() => false) - ) - ) - - signerAccountIsValidator = () => - this.addCheck( - `Signer account is Validator`, - this.withValidators((validators, _s, account) => validators.isValidator(account)) - ) - - signerAccountIsValidatorGroup = () => - this.addCheck( - `Signer account is ValidatorGroup`, - this.withValidators((validators, _s, account) => validators.isValidatorGroup(account)) - ) - - isValidator = (account?: Address) => - this.addCheck( - `${account} is Validator`, - this.withValidators((validators, _, _account) => validators.isValidator(account ?? _account)) - ) - - isValidatorGroup = (account: Address) => - this.addCheck( - `${account} is ValidatorGroup`, - this.withValidators((validators) => validators.isValidatorGroup(account)) - ) - - isNotValidator = (account?: Address) => - this.addCheck( - `${this.signer!} is not a registered Validator`, - this.withValidators((validators, _, _account) => - negate(validators.isValidator(account ?? _account)) - ) - ) - - isNotValidatorGroup = () => - this.addCheck( - `${this.signer!} is not a registered ValidatorGroup`, - this.withValidators((validators, _, account) => negate(validators.isValidatorGroup(account))) - ) - - signerMeetsValidatorBalanceRequirements = () => - this.addCheck( - `Signer's account has enough locked celo for registration`, - this.withValidators((validators, _signer, account) => - validators.meetsValidatorBalanceRequirements(account) - ) - ) - - signerMeetsValidatorGroupBalanceRequirements = () => - this.addCheck( - `Signer's account has enough locked celo for group registration`, - this.withValidators((validators, _signer, account) => - validators.meetsValidatorGroupBalanceRequirements(account) - ) - ) - - meetsValidatorBalanceRequirements = (account: Address) => - this.addCheck( - `${account} has enough locked celo for registration`, - this.withValidators((validators) => validators.meetsValidatorBalanceRequirements(account)) - ) - - meetsValidatorGroupBalanceRequirements = (account: Address) => - this.addCheck( - `${account} has enough locked celo for group registration`, - this.withValidators((validators) => - validators.meetsValidatorGroupBalanceRequirements(account) - ) - ) - - isValidAddress = (address: Address) => - this.addCheck(`${address} is a valid address`, () => isValidAddress(address)) - - isNotAccount = (address: Address) => - this.addCheck( - `${address} is not a registered Account`, - this.withAccounts((accounts) => negate(accounts.isAccount(address))) - ) - - isSignerOrAccount = () => - this.addCheck( - `${this.signer!} is Signer or registered Account`, - this.withAccounts(async (accounts) => { - const res = - (await accounts.isAccount(this.signer!)) || (await accounts.isSigner(this.signer!)) - return res - }), - `${this.signer} is not a signer or registered as an account. Try authorizing as a signer or running account:register.` - ) - - isVoteSignerOrAccount = () => - this.addCheck( - `${this.signer!} is vote signer or registered account`, - this.withAccounts(async (accounts) => { - return accounts.voteSignerToAccount(this.signer!).then( - (addr) => !eqAddress(addr, NULL_ADDRESS), - () => false - ) - }) - ) - - isAccount = (address: Address) => - this.addCheck( - `${address} is a registered Account`, - this.withAccounts((accounts) => accounts.isAccount(address)), - `${address} is not registered as an account. Try running account:register` - ) - - isNotVoting = (address: Address) => - this.addCheck( - `${address} is not currently voting on a governance proposal`, - this.withGovernance((governance) => negate(governance.isVoting(address))), - `${address} is currently voting in governance. Revoke your upvotes or wait for the referendum to end.` - ) - - hasEnoughCelo = (account: Address, value: BigNumber) => { - const valueInEth = this.kit.connection.web3.utils.fromWei(value.toFixed(), 'ether') - return this.addCheck(`Account has at least ${valueInEth} CELO`, () => - this.kit.contracts - .getGoldToken() - .then((goldToken) => goldToken.balanceOf(account)) - .then((balance) => balance.gte(value)) - ) - } - - hasEnoughStable = ( - account: Address, - value: BigNumber, - stable: StableToken = StableToken.cUSD - ) => { - const valueInEth = this.kit.connection.web3.utils.fromWei(value.toFixed(), 'ether') - return this.addCheck(`Account has at least ${valueInEth} ${stable}`, () => - this.kit.contracts - .getStableToken(stable) - .then((stableToken) => stableToken.balanceOf(account)) - .then((balance) => balance.gte(value)) - ) - } - - hasEnoughErc20 = (account: Address, value: BigNumber, erc20: Address) => { - const valueInEth = this.kit.connection.web3.utils.fromWei(value.toFixed(), 'ether') - return this.addCheck(`Account has at least ${valueInEth} erc20 token`, () => - this.kit.contracts - .getErc20(erc20) - .then((goldToken) => goldToken.balanceOf(account)) - .then((balance) => balance.gte(value)) - ) - } - - exceedsProposalMinDeposit = (deposit: BigNumber) => - this.addCheck( - `Deposit is greater than or equal to governance proposal minDeposit`, - this.withGovernance(async (governance) => deposit.gte(await governance.minDeposit())) - ) - - hasRefundedDeposits = (account: Address) => - this.addCheck( - `${account} has refunded governance deposits`, - this.withGovernance( - async (governance) => !(await governance.getRefundedDeposits(account)).isZero() - ) - ) - - hasEnoughLockedGold = (value: BigNumber) => { - const valueInEth = this.kit.connection.web3.utils.fromWei(value.toFixed(), 'ether') - return this.addCheck( - `Account has at least ${valueInEth} Locked Gold`, - this.withLockedGold(async (lockedGold, _signer, account) => - value.isLessThanOrEqualTo(await lockedGold.getAccountTotalLockedGold(account)) - ) - ) - } - - hasEnoughNonvotingLockedGold = (value: BigNumber) => { - const valueInEth = this.kit.connection.web3.utils.fromWei(value.toFixed(), 'ether') - return this.addCheck( - `Account has at least ${valueInEth} non-voting Locked Gold`, - this.withLockedGold(async (lockedGold, _signer, account) => - value.isLessThanOrEqualTo(await lockedGold.getAccountNonvotingLockedGold(account)) - ) - ) - } - - hasEnoughLockedGoldToUnlock = (value: BigNumber) => { - const valueInEth = this.kit.connection.web3.utils.fromWei(value.toFixed(), 'ether') - return this.addCheck( - `Account has at least ${valueInEth} non-voting Locked Gold over requirement`, - this.withLockedGold(async (lockedGold, _signer, account, validators) => { - const requirement = await validators.getAccountLockedGoldRequirement(account) - return ( - (requirement.eq(0) || - value.plus(requirement).lte(await lockedGold.getAccountTotalLockedGold(account))) && - value.lte(await lockedGold.getAccountNonvotingLockedGold(account)) - ) - }) - ) - } - - isNotValidatorGroupMember = () => { - return this.addCheck( - `Account isn't a member of a validator group`, - this.withValidators(async (validators, _signer, account) => { - const { affiliation } = await validators.getValidator(account) - if (!affiliation || eqAddress(affiliation, NULL_ADDRESS)) { - return true - } - const { members } = await validators.getValidatorGroup(affiliation!) - return !members.includes(account) - }) - ) - } - - validatorDeregisterDurationPassed = () => { - return this.addCheck( - `Enough time has passed since the account was removed from a validator group`, - this.withValidators(async (validators, _signer, account) => { - const { lastRemovedFromGroupTimestamp } = - await validators.getValidatorMembershipHistoryExtraData(account) - const { duration } = await validators.getValidatorLockedGoldRequirements() - return duration.toNumber() + lastRemovedFromGroupTimestamp < Date.now() / 1000 - }) - ) - } - - resetSlashingmultiplierPeriodPassed = () => { - return this.addCheck( - `Enough time has passed since the last halving of the slashing multiplier`, - this.withValidators(async (validators, _signer, account) => { - const { lastSlashed } = await validators.getValidatorGroup(account) - const duration = await validators.getSlashingMultiplierResetPeriod() - return duration.toNumber() + lastSlashed.toNumber() < Date.now() / 1000 - }) - ) - } - - hasACommissionUpdateQueued = () => - this.addCheck( - "There's a commision update queued", - this.withValidators(async (validators, _signer, account) => { - const vg = await validators.getValidatorGroup(account) - return !vg.nextCommissionBlock.eq(0) - }) - ) - - hasCommissionUpdateDelayPassed = () => - this.addCheck( - 'The Commission update delay has already passed', - this.withValidators(async (validators, _signer, account, ctx) => { - const blockNumber = await ctx.web3.eth.getBlockNumber() - const vg = await validators.getValidatorGroup(account) - return vg.nextCommissionBlock.lte(blockNumber) - }) - ) - - isMultiSigOwner = (from: string, multisig: MultiSigWrapper) => { - return this.addCheck('The provided address is an owner of the multisig', async () => { - const owners = await multisig.getOwners() - return owners.indexOf(from) > -1 - }) - } - - async runChecks() { - console.log(`Running Checks:`) - let allPassed = true - for (const aCheck of this.checks) { - const passed = await aCheck.run() - const status︎Str = chalk.bold(passed ? '✔' : '✘') - const color = passed ? chalk.green : chalk.red - const msg = !passed && aCheck.errorMessage ? aCheck.errorMessage : '' - console.log(color(` ${status︎Str} ${aCheck.name} ${msg}`)) - allPassed = allPassed && passed - } - - if (!allPassed) { - return this.cmd.error("Some checks didn't pass!") - } else { - console.log(`All checks passed`) - } - } - - // async executeValidatorTx( - // name: string, - // f: ( - // validators: ValidatorsWrapper, - // signer: Address, - // account: Address - // ) => Promise> | CeloTransactionObject - // ) { - - // } -} diff --git a/packages/cli/src/utils/cli.ts b/packages/cli/src/utils/cli.ts deleted file mode 100644 index dc153e03a9c..00000000000 --- a/packages/cli/src/utils/cli.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { CeloTransactionObject, CeloTx, EventLog, parseDecodedParams } from '@celo/connect' -import { CLIError } from '@oclif/errors' -import BigNumber from 'bignumber.js' -import chalk from 'chalk' -import Table from 'cli-table' -import { cli } from 'cli-ux' - -// TODO: How can we deploy contracts with the Celo provider w/o a CeloTransactionObject? -export async function displayWeb3Tx(name: string, txObj: any, tx?: Omit) { - cli.action.start(`Sending Transaction: ${name}`) - const result = await txObj.send(tx) - console.log(result) - cli.action.stop() -} - -export async function displaySendTx( - name: string, - txObj: CeloTransactionObject, - tx?: Omit, - displayEventName?: string | string[] -) { - cli.action.start(`Sending Transaction: ${name}`) - try { - const txResult = await txObj.send(tx) - const txHash = await txResult.getHash() - - console.log(chalk`SendTransaction: {red.bold ${name}}`) - printValueMap({ txHash }) - - const txReceipt = await txResult.waitReceipt() - cli.action.stop() - - if (displayEventName && txReceipt.events) { - Object.entries(txReceipt.events) - .filter( - ([eventName]) => - (typeof displayEventName === 'string' && eventName === displayEventName) || - displayEventName.includes(eventName) - ) - .forEach(([eventName, log]) => { - const { params } = parseDecodedParams((log as EventLog).returnValues) - console.log(chalk.magenta.bold(`${eventName}:`)) - printValueMap(params, chalk.magenta) - }) - } - } catch (e: any) { - cli.action.stop(`failed: ${e.message}`) - throw e - } -} - -export function printValueMap(valueMap: Record, color = chalk.yellowBright.bold) { - console.log( - Object.keys(valueMap) - .map((key) => color(`${key}: `) + valueMap[key]) - .join('\n') - ) -} - -export function printValueMap2(valueMap: Map, color = chalk.yellowBright.bold) { - valueMap.forEach((value, key) => console.log(color(`${key}: `) + value)) -} - -export function printValueMapRecursive(valueMap: Record) { - console.log(toStringValueMapRecursive(valueMap, '')) -} - -function toStringValueMapRecursive(valueMap: Record, prefix: string): string { - const printValue = (v: any): string => { - if (typeof v === 'object' && v != null) { - if (BigNumber.isBigNumber(v)) { - const extra = v.isGreaterThan(new BigNumber(10).pow(3)) ? `(~${v.toExponential(3)})` : '' - return `${v.toFixed()} ${extra}` - } else if (v instanceof Error) { - return '\n' + chalk.red(v.message) - } - return '\n' + toStringValueMapRecursive(v, prefix + ' ') - } - return chalk`${v}` - } - return Object.keys(valueMap) - .map((key) => prefix + chalk.yellowBright.bold(`${key}: `) + printValue(valueMap[key])) - .join('\n') -} - -export function printVTable(valueMap: Record) { - const table = new Table() - Object.keys(valueMap).forEach((key) => { - table.push({ [key]: valueMap[key] }) - }) - console.log(table.toString()) -} - -export function failWith(msg: string): never { - throw new CLIError(msg) -} - -export async function binaryPrompt(promptMessage: string, defaultToNo?: boolean) { - const resp: string = await cli.prompt( - promptMessage + ` [y/yes, n/no${defaultToNo ? ' (default)' : ''}]`, - { required: !defaultToNo } - ) - return ['y', 'yes'].includes(resp.toLowerCase()) -} diff --git a/packages/cli/src/utils/command.ts b/packages/cli/src/utils/command.ts deleted file mode 100644 index a1c7ca14bf6..00000000000 --- a/packages/cli/src/utils/command.ts +++ /dev/null @@ -1,209 +0,0 @@ -import { URL_REGEX } from '@celo/base/lib/io' -import { CeloContract, RegisteredContracts } from '@celo/contractkit' -import { BLS_POP_SIZE, BLS_PUBLIC_KEY_SIZE } from '@celo/cryptographic-utils/lib/bls' -import { isE164NumberStrict } from '@celo/phone-utils/lib/phoneNumbers' -import { ensureLeading0x, trimLeading0x } from '@celo/utils/lib/address' -import { POP_SIZE } from '@celo/utils/lib/signatureUtils' -import { flags } from '@oclif/command' -import { CLIError } from '@oclif/errors' -import { IArg, ParseFn } from '@oclif/parser/lib/args' -import BigNumber from 'bignumber.js' -import { pathExistsSync } from 'fs-extra' -import Web3 from 'web3' - -const parseBytes = (input: string, length: number, msg: string) => { - // Check that the string is hex and and has byte length of `length`. - const expectedLength = input.startsWith('0x') ? length * 2 + 2 : length * 2 - if (Web3.utils.isHex(input) && input.length === expectedLength) { - return ensureLeading0x(input) - } else { - throw new CLIError(msg) - } -} - -const parseEcdsaPublicKey: ParseFn = (input) => { - const stripped = trimLeading0x(input) - // ECDSA public keys may be passed as 65 byte values. When this happens, we drop the first byte. - if (stripped.length === 65 * 2) { - return parseBytes(stripped.slice(2), 64, `${input} is not an ECDSA public key`) - } else { - return parseBytes(input, 64, `${input} is not an ECDSA public key`) - } -} -const parseBlsPublicKey: ParseFn = (input) => { - return parseBytes(input, BLS_PUBLIC_KEY_SIZE, `${input} is not a BLS public key`) -} -const parseBlsProofOfPossession: ParseFn = (input) => { - return parseBytes(input, BLS_POP_SIZE, `${input} is not a BLS proof-of-possession`) -} -const parseProofOfPossession: ParseFn = (input) => { - return parseBytes(input, POP_SIZE, `${input} is not a proof-of-possession`) -} -const parseAddress: ParseFn = (input) => { - if (Web3.utils.isAddress(input)) { - return input - } else { - throw new CLIError(`${input} is not a valid address`) - } -} -const parseCoreContract: ParseFn = (input) => { - if (RegisteredContracts.includes(input as CeloContract)) { - return input - } else { - throw new CLIError(`${input} is not a core contract`) - } -} - -const parseWei: ParseFn = (input) => { - try { - return new BigNumber(input) - } catch (_err) { - throw new CLIError(`${input} is not a valid token amount`) - } -} - -export const parsePath: ParseFn = (input) => { - if (pathExistsSync(input)) { - return input - } else { - throw new CLIError(`File at "${input}" does not exist`) - } -} - -const parsePhoneNumber: ParseFn = (input) => { - if (isE164NumberStrict(input)) { - return input - } else { - throw new CLIError(`PhoneNumber "${input}" is not a valid E164 number`) - } -} - -const parseUrl: ParseFn = (input) => { - if (URL_REGEX.test(input)) { - return input - } else { - throw new CLIError(`"${input}" is not a valid URL`) - } -} - -function parseArray(parseElement: ParseFn): ParseFn { - return (input) => { - const array = JSON.parse(input) - if (Array.isArray(array)) { - return array.map(parseElement) - } else { - throw new CLIError(`"${input}" is not a valid array`) - } - } -} - -export const parseAddressArray = parseArray(parseAddress) -export const parseIntRange = (input: string) => { - const range = input - .slice(1, input.length - 1) - .split(':') - .map((s) => parseInt(s, 10)) - if (range.length !== 2) { - throw new Error('range input must be two integers separated by a ":"') - } - - let start: number - if (input.startsWith('[')) { - start = range[0] - } else if (input.startsWith('(')) { - start = range[0] + 1 - } else { - throw new Error('range input must begin with "[" (inclusive) or "(" (exclusive)') - } - - let end: number - if (input.endsWith(']')) { - end = range[1] - } else if (input.endsWith(')')) { - end = range[1] - 1 - } else { - throw new Error('range input must end with "]" (inclusive) or ")" (exclusive)') - } - - return { start, end } -} - -type Omit = Pick> -type ArgBuilder = (name: string, args?: Partial, 'name' | 'parse'>>) => IArg -export function argBuilder(parser: ParseFn): ArgBuilder { - return (name, args) => ({ - name, - ...args, - required: true, - parse: parser, - }) -} - -export const Flags = { - intRangeArray: flags.build({ - parse: (s) => s.split(',').map((r) => parseIntRange(r.trim())), - helpValue: "'[0:1], [1:2]'", - }), - addressArray: flags.build({ - parse: parseAddressArray, - helpValue: - '\'["0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD", "0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95"]\'', - }), - address: flags.build({ - parse: parseAddress, - description: 'Account Address', - helpValue: '0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d', - }), - ecdsaPublicKey: flags.build({ - parse: parseEcdsaPublicKey, - description: 'ECDSA Public Key', - helpValue: '0x', - }), - blsPublicKey: flags.build({ - parse: parseBlsPublicKey, - description: 'BLS Public Key', - helpValue: '0x', - }), - blsProofOfPossession: flags.build({ - parse: parseBlsProofOfPossession, - description: 'BLS Proof-of-Possession', - helpValue: '0x', - }), - contract: flags.build({ - parse: parseCoreContract, - description: 'Core Contract Name', - helpValue: `${CeloContract.BlockchainParameters}`, - }), - contractsArray: flags.build({ - parse: parseArray(parseCoreContract), - description: 'Array of Registered Core Contracts', - helpValue: `\'["${CeloContract.BlockchainParameters}", "${CeloContract.Governance}", "${CeloContract.Validators}"]\'`, - }), - phoneNumber: flags.build({ - parse: parsePhoneNumber, - description: 'Phone Number in E164 Format', - helpValue: '+14152223333', - }), - proofOfPossession: flags.build({ - parse: parseProofOfPossession, - description: 'Proof-of-Possession', - helpValue: '0x', - }), - url: flags.build({ - parse: parseUrl, - description: 'URL', - helpValue: 'https://www.celo.org', - }), - wei: flags.build({ - parse: parseWei, - description: 'Token value without decimals', - helpValue: '10000000000000000000000', - }), -} - -export const Args = { - address: argBuilder(parseAddress), - file: argBuilder(parsePath), - // TODO: Check that the file path is possible - newFile: argBuilder((x) => x), -} diff --git a/packages/cli/src/utils/config.ts b/packages/cli/src/utils/config.ts deleted file mode 100644 index 66abe540db2..00000000000 --- a/packages/cli/src/utils/config.ts +++ /dev/null @@ -1,49 +0,0 @@ -// tslint:disable:class-name max-classes-per-file -// TODO: investigate tslint issues -import * as fs from 'fs-extra' -import * as path from 'path' -import { gasOptions } from '../base' - -export interface CeloConfig { - node: string - gasCurrency: string -} - -export const defaultConfig: CeloConfig = { - node: 'http://localhost:8545', - gasCurrency: 'auto', -} - -const configFile = 'config.json' - -export function configPath(configDir: string) { - return path.join(configDir, configFile) -} - -export function readConfig(configDir: string): CeloConfig { - if (fs.pathExistsSync(configPath(configDir))) { - const existingConfig = fs.readJSONSync(configPath(configDir)) - const combinedConfig = { ...defaultConfig, ...existingConfig } - if (combinedConfig.hasOwnProperty('nodeUrl')) { - combinedConfig.node = combinedConfig.nodeUrl - } - return combinedConfig - } else { - return defaultConfig - } -} - -export function getNodeUrl(configDir: string): string { - return readConfig(configDir).node -} - -export function getGasCurrency(configDir: string): string { - return readConfig(configDir).gasCurrency -} - -export function writeConfig(configDir: string, configObj: CeloConfig) { - if (!Object.keys(gasOptions).includes(configObj.gasCurrency)) { - throw new Error('Invalid gas option') - } - fs.outputJSONSync(configPath(configDir), configObj) -} diff --git a/packages/cli/src/utils/election.ts b/packages/cli/src/utils/election.ts deleted file mode 100644 index 8c1a443b7c3..00000000000 --- a/packages/cli/src/utils/election.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Address, BlockHeader } from '@celo/connect' -import { eqAddress } from '@celo/utils/lib/address' -import { bitIsSet, parseBlockExtraData } from '@celo/utils/lib/istanbul' - -/** - * Cache to efficiently retreive the elected validators for many blocks within an epoch. - */ -export class ElectionResultsCache { - private readonly cache = new Map() - - constructor(private readonly election: any, private readonly epochSize: number) {} - - /** - * Returns the list of elected signers for a given block. - * @param blockNumber The block number to get elected signers for. - */ - async electedSigners(blockNumber: number): Promise { - const epoch = this.epochNumber(blockNumber) - const cached = this.cache.get(epoch) - if (cached) { - return cached - } - // For the first epoch, the contract might be unavailable - const electedSigners = await this.election.getValidatorSigners( - epoch === 1 ? blockNumber : this.firstBlockOfEpoch(epoch) - ) - this.cache.set(epoch, electedSigners) - return electedSigners - } - - /** - * Returns true if the given signer is elected at the given block number. - * @param signer Validator signer address to check if elected. - * @param blockNumber The block number to check the election status at. - */ - async elected(signer: Address, blockNumber: number): Promise { - const electedSigners = await this.electedSigners(blockNumber) - return electedSigners.some(eqAddress.bind(null, signer)) - } - - /** - * Returns true if the given signer is present in the parent aggregated seal of the given block. - * @param signer Validator signer address to check if present in the block. - * @param block The block to check for a signature on. - */ - async signedParent(signer: Address, block: BlockHeader): Promise { - const electedSigners = await this.electedSigners(block.number) - const signerIndex = electedSigners.map(eqAddress.bind(null, signer)).indexOf(true) - if (signerIndex < 0) { - return false - } - const bitmap = parseBlockExtraData(block.extraData).parentAggregatedSeal.bitmap - return bitIsSet(bitmap, signerIndex) - } - - private epochNumber(blockNumber: number): number { - return Math.ceil(blockNumber / this.epochSize) - } - - private firstBlockOfEpoch(epochNumber: number): number { - return (epochNumber - 1) * this.epochSize + 1 - } -} diff --git a/packages/cli/src/utils/exchange.ts b/packages/cli/src/utils/exchange.ts deleted file mode 100644 index 98515ee8ca0..00000000000 --- a/packages/cli/src/utils/exchange.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { ContractKit } from '@celo/contractkit' -import { StableToken, StableTokenInfo, stableTokenInfos } from '@celo/contractkit/lib/celo-tokens' -import BigNumber from 'bignumber.js' -import { binaryPrompt } from './cli' - -export const swapArguments = [ - { - name: 'sellAmount', - required: true, - description: 'the amount of sellToken (in wei) to sell', - }, - { - name: 'minBuyAmount', - required: true, - description: 'the minimum amount of buyToken (in wei) expected', - }, - { - name: 'from', - required: true, - }, -] - -export async function checkNotDangerousExchange( - kit: ContractKit, - amount: BigNumber, - largeOrderPercentage: number, - deppegedPricePercentage: number, - buyBucket: boolean, - stableTokenInfo: StableTokenInfo = stableTokenInfos[StableToken.cUSD] -): Promise { - const oracles = await kit.contracts.getSortedOracles() - const exchange = await kit.contracts.getExchange(stableTokenInfo.symbol as StableToken) - const oracleMedianRate = (await oracles.medianRate(stableTokenInfo.contract)).rate - const buckets = await exchange.getBuyAndSellBuckets(false) - - const chainRate = buckets[1].dividedBy(buckets[0]) - let warningMessage - // XX% difference between rates - if (Math.abs(oracleMedianRate.dividedBy(chainRate).toNumber() - 1) > deppegedPricePercentage) { - const warningDeppegedPrice = `Warning ${stableTokenInfo.symbol} price here (i.e. on-chain) is depegged by >${deppegedPricePercentage}% from the oracle prices (i.e. exchange prices).` - warningMessage = warningDeppegedPrice - } - - // X% of the bucket - const bucket = buyBucket ? buckets[1] : buckets[0] - if (bucket.dividedBy(100 / largeOrderPercentage).isLessThanOrEqualTo(amount)) { - const warningLargeOrder = - 'Warning you are executing a large order, risk of price slippage i.e. getting an unfavorable exchange rate.' - warningMessage = warningMessage ? `${warningMessage} ${warningLargeOrder}` : warningLargeOrder - } - - if (warningMessage) { - const check = await binaryPrompt(`${warningMessage}. Are you sure you want to continue?`, true) - return check - } - return true -} diff --git a/packages/cli/src/utils/exec.ts b/packages/cli/src/utils/exec.ts deleted file mode 100644 index 8081093b2f1..00000000000 --- a/packages/cli/src/utils/exec.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { spawn, SpawnOptions } from 'child_process' -import cmdExists from 'command-exists' - -export function execCmd( - cmd: string, - args: string[], - options?: SpawnOptions & { silent?: boolean } -) { - return new Promise((resolve, reject) => { - const { silent, ...spawnOptions } = options || { silent: false } - if (!silent) { - console.debug('$ ' + [cmd].concat(args).join(' ')) - } - const process = spawn(cmd, args, { - ...spawnOptions, - stdio: silent ? 'ignore' : 'inherit', - }) - process.on('close', (code) => { - try { - resolve(code) - } catch (error) { - reject(error) - } - }) - }) -} - -export async function execWith0Exit( - cmd: string, - args: string[], - options?: SpawnOptions & { silent?: boolean } -) { - try { - return (await execCmd(cmd, args, options)) === 0 - } catch (error) { - return false - } -} - -export async function execCmdWithError( - cmd: string, - args: string[], - options?: SpawnOptions & { silent?: boolean } -) { - const code = await execCmd(cmd, args, options) - if (code !== 0) { - throw new Error(`"${cmd} ${args.join(' ')}" exited ${code}`) - } -} - -export async function commandExists(command: string) { - return cmdExists(command) -} diff --git a/packages/cli/src/utils/governance.ts b/packages/cli/src/utils/governance.ts deleted file mode 100644 index c1dd228c05f..00000000000 --- a/packages/cli/src/utils/governance.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { toTxResult } from '@celo/connect' -import { ContractKit } from '@celo/contractkit' -import { ProposalTransaction } from '@celo/contractkit/lib/wrappers/Governance' -import { ProposalBuilder, proposalToJSON, ProposalTransactionJSON } from '@celo/governance' -import chalk from 'chalk' -import { readJsonSync } from 'fs-extra' - -export async function checkProposal(proposal: ProposalTransaction[], kit: ContractKit) { - const governance = await kit.contracts.getGovernance() - return tryProposal(proposal, kit, governance.address, true) -} - -export async function executeProposal( - proposal: ProposalTransaction[], - kit: ContractKit, - from: string -) { - return tryProposal(proposal, kit, from, false) -} - -async function tryProposal( - proposal: ProposalTransaction[], - kit: ContractKit, - from: string, - call: boolean -) { - console.log('Simulating proposal execution') - let ok = true - for (const [i, tx] of proposal.entries()) { - if (!tx.to) { - continue - } - - try { - if (call) { - await kit.web3.eth.call({ - to: tx.to, - from, - value: tx.value, - data: tx.input, - }) - } else { - const txRes = toTxResult( - kit.web3.eth.sendTransaction({ to: tx.to, from, value: tx.value, data: tx.input }) - ) - await txRes.waitReceipt() - } - console.log(chalk.green(` ${chalk.bold('✔')} Transaction ${i} success!`)) - } catch (err: any) { - console.log(chalk.red(` ${chalk.bold('✘')} Transaction ${i} failure: ${err.toString()}`)) - ok = false - } - } - return ok -} - -export async function addExistingProposalIDToBuilder( - kit: ContractKit, - builder: ProposalBuilder, - existingProposalID: string -) { - const governance = await kit.contracts.getGovernance() - const proposalRaw = await governance.getProposal(existingProposalID) - return addProposalToBuilder(builder, await proposalToJSON(kit, proposalRaw)) -} - -export function addExistingProposalJSONFileToBuilder( - builder: ProposalBuilder, - existingProposalPath: string -) { - return addProposalToBuilder(builder, readJsonSync(existingProposalPath)) -} - -async function addProposalToBuilder( - builder: ProposalBuilder, - existingProposal: ProposalTransactionJSON[] -) { - // accounts for registry additions and caches in builder - for (const tx of existingProposal) { - await builder.fromJsonTx(tx) - } - - console.info( - `After executing provided proposal, account for registry remappings: ${JSON.stringify( - builder.registryAdditions, - null, - 2 - )}` - ) -} diff --git a/packages/cli/src/utils/helpers.ts b/packages/cli/src/utils/helpers.ts deleted file mode 100644 index 23041c950f7..00000000000 --- a/packages/cli/src/utils/helpers.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Block } from '@celo/connect' -import Web3 from 'web3' -import { failWith } from './cli' - -export function enumEntriesDupWithLowercase(entries: Array<[string, T]>) { - const enumMap: { [key: string]: T } = {} - entries.forEach((value) => { - enumMap[value[0]] = value[1] - enumMap[value[0].toLowerCase()] = value[1] - }) - return enumMap -} - -export async function nodeIsSynced(web3: Web3): Promise { - if (process.env.NO_SYNCCHECK) { - return true - } - try { - // isSyncing() returns an object describing sync progress if syncing is actively - // happening, and the boolean value `false` if not. - // However, `false` can also indicate the syncing hasn't started, so here we - // also need to check the latest block number - const syncProgress = await web3.eth.isSyncing() - if (typeof syncProgress === 'boolean' && !syncProgress) { - const latestBlock: Block = await web3.eth.getBlock('latest') - if (latestBlock && latestBlock.number > 0) { - // To catch the case in which syncing has happened in the past, - // has stopped, and hasn't started again, check for an old timestamp - // on the latest block - const ageOfBlock = Date.now() / 1000 - Number(latestBlock.timestamp) - if (ageOfBlock > 120) { - console.log( - `Latest block is ${ageOfBlock} seconds old, and syncing is not currently in progress` - ) - console.log('To disable this check, set the NO_SYNCCHECK environment variable') - return false - } else { - return true - } - } - } - return false - } catch (error) { - console.log( - "An error occurred while trying to reach the node. Perhaps your node isn't running?" - ) - return false - } -} - -export async function requireNodeIsSynced(web3: Web3) { - if (!(await nodeIsSynced(web3))) { - failWith('Node is not currently synced. Run node:synced to check its status.') - } -} diff --git a/packages/cli/src/utils/identity.ts b/packages/cli/src/utils/identity.ts deleted file mode 100644 index 2fb2c713b17..00000000000 --- a/packages/cli/src/utils/identity.ts +++ /dev/null @@ -1,158 +0,0 @@ -import { ContractKit } from '@celo/contractkit' -import { ClaimTypes, IdentityMetadataWrapper } from '@celo/contractkit/lib/identity' -import { Claim } from '@celo/contractkit/lib/identity/claims/claim' -import { now, VERIFIABLE_CLAIM_TYPES } from '@celo/contractkit/lib/identity/claims/types' -import { verifyClaim } from '@celo/contractkit/lib/identity/claims/verify' -import { eqAddress } from '@celo/utils/lib/address' -import { concurrentMap } from '@celo/utils/lib/async' -import { NativeSigner } from '@celo/utils/lib/signatureUtils' -import { toChecksumAddress } from '@ethereumjs/util' -import { cli } from 'cli-ux' -import { writeFileSync } from 'fs' -import humanizeDuration from 'humanize-duration' -import { BaseCommand } from '../base' -import { Args, Flags } from './command' - -export abstract class ClaimCommand extends BaseCommand { - static flags = { - ...BaseCommand.flags, - from: Flags.address({ - required: true, - description: - 'Address of the account to set metadata for or an authorized signer for the address in the metadata', - }), - } - static args = [Args.file('file', { description: 'Path of the metadata file' })] - public requireSynced = false - // We need this to properly parse flags for subclasses - protected self = ClaimCommand - - protected async checkMetadataAddress(address: string, from: string) { - if (eqAddress(address, from)) { - return - } - const accounts = await this.kit.contracts.getAccounts() - const signers = await accounts.getCurrentSigners(address) - if (!signers.some((a) => eqAddress(a, from))) { - throw new Error( - 'Signing metadata with an address that is not the account or one of its signers' - ) - } - } - - protected readMetadata = async () => { - const { args, flags } = this.parse(this.self) - const filePath = args.file - try { - cli.action.start(`Read Metadata from ${filePath}`) - const data = await IdentityMetadataWrapper.fromFile( - await this.kit.contracts.getAccounts(), - filePath - ) - await this.checkMetadataAddress(data.data.meta.address, flags.from) - cli.action.stop() - return data - } catch (error) { - cli.action.stop(`Error: ${error}`) - throw error - } - } - - protected get signer() { - const res = this.parse(this.self) - const address = toChecksumAddress(res.flags.from) - return NativeSigner(this.kit.connection.sign, address) - } - - protected async addClaim(metadata: IdentityMetadataWrapper, claim: Claim): Promise { - try { - cli.action.start(`Add claim`) - const addedClaim = await metadata.addClaim(claim, this.signer) - cli.action.stop() - return addedClaim - } catch (error) { - cli.action.stop(`Error: ${error}`) - throw error - } - } - - protected writeMetadata = (metadata: IdentityMetadataWrapper) => { - const { args } = this.parse(this.self) - const filePath = args.file - - try { - cli.action.start(`Write Metadata to ${filePath}`) - writeFileSync(filePath, metadata.toString()) - cli.action.stop() - } catch (error) { - cli.action.stop(`Error: ${error}`) - throw error - } - } -} - -export const claimArgs = [Args.file('file', { description: 'Path of the metadata file' })] - -const fromNow = (timeInSeconds: number) => { - return `${humanizeDuration((now() - timeInSeconds) * 1000)} ago` -} - -export const displayMetadata = async ( - metadata: IdentityMetadataWrapper, - kit: ContractKit, - tableFlags: object = {} -) => { - const data = await concurrentMap(5, metadata.claims, async (claim) => { - const verifiable = VERIFIABLE_CLAIM_TYPES.includes(claim.type) - const status = verifiable ? await verifyClaim(kit, claim, metadata.data.meta.address) : 'N/A' - let extra = '' - switch (claim.type) { - case ClaimTypes.DOMAIN: - extra = `Domain: ${claim.domain}` - break - case ClaimTypes.KEYBASE: - extra = `Username: ${claim.username}` - break - case ClaimTypes.NAME: - extra = `Name: "${claim.name}"` - break - case ClaimTypes.STORAGE: - extra = `URL: "${claim.address}"` - break - default: - extra = JSON.stringify(claim) - break - } - return { - type: claim.type, - extra, - status: verifiable ? (status ? `Could not verify: ${status}` : 'Verified!') : 'N/A', - // timestamp is in seconds see packages/sdk/contractkit/src/identity/claims/types.ts#now - createdAt: fromNow(claim.timestamp), // or //new Date(claim.timestamp * 1000).toUTCString(), - } - }) - - cli.table( - data, - { - type: { header: 'Type' }, - extra: { header: 'Value' }, - status: { header: 'Status' }, - createdAt: { header: 'Created At' }, - }, - tableFlags - ) -} - -export const modifyMetadata = async ( - kit: ContractKit, - filePath: string, - operation: (metadata: IdentityMetadataWrapper) => Promise -) => { - const metadata = await IdentityMetadataWrapper.fromFile( - await kit.contracts.getAccounts(), - filePath - ) - await operation(metadata) - writeFileSync(filePath, metadata.toString()) -} diff --git a/packages/cli/src/utils/lockedgold.ts b/packages/cli/src/utils/lockedgold.ts deleted file mode 100644 index 5a1dc62b42f..00000000000 --- a/packages/cli/src/utils/lockedgold.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const LockedGoldArgs = { - valueArg: { - name: 'value', - description: 'The unit amount of CELO', - }, -} diff --git a/packages/cli/src/utils/off-chain-data.ts b/packages/cli/src/utils/off-chain-data.ts deleted file mode 100644 index 2df8f7b7b35..00000000000 --- a/packages/cli/src/utils/off-chain-data.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { BasicDataWrapper } from '@celo/identity/lib/offchain-data-wrapper' -import { - AwsStorageWriter, - GitStorageWriter, - GoogleStorageWriter, - LocalStorageWriter, -} from '@celo/identity/lib/offchain/storage-writers' -import { privateKeyToAddress } from '@celo/utils/lib/address' -import { flags } from '@oclif/command' -import { ParserOutput } from '@oclif/parser/lib/parse' -import { BaseCommand } from '../base' -import { parsePath } from './command' - -export enum StorageProviders { - AWS = 'aws', - GCP = 'gcp', - git = 'git', -} - -export abstract class OffchainDataCommand extends BaseCommand { - static flags = { - ...BaseCommand.flags, - directory: flags.string({ - parse: parsePath, - default: '.', - description: 'To which directory data should be written', - }), - provider: flags.enum({ - options: ['git', 'aws', 'gcp'], - description: 'If the CLI should attempt to push to the cloud', - }), - bucket: flags.string({ - dependsOn: ['provider'], - description: 'If using a GCP or AWS storage bucket this parameter is required', - }), - } - - // @ts-ignore Can't encode that this is happening in init - offchainDataWrapper: BasicDataWrapper - - async init() { - await super.init() - - const { - flags: { provider, directory, bucket, privateKey }, - }: ParserOutput = this.parse() - - const from = privateKeyToAddress(privateKey) - // @ts-ignore -- TODO: if identity depends on diff version of ck which has a slightly differnt type this complains - this.offchainDataWrapper = new BasicDataWrapper(from, this.kit) - - this.offchainDataWrapper.storageWriter = - provider === StorageProviders.GCP - ? new GoogleStorageWriter(directory, bucket) - : provider === StorageProviders.AWS - ? new AwsStorageWriter(directory, bucket) - : provider === StorageProviders.git - ? new GitStorageWriter(directory) - : new LocalStorageWriter(directory) - } -} diff --git a/packages/cli/src/utils/release-gold-base.ts b/packages/cli/src/utils/release-gold-base.ts deleted file mode 100644 index 5376ca0cf24..00000000000 --- a/packages/cli/src/utils/release-gold-base.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { newReleaseGold } from '@celo/abis/web3/ReleaseGold' -import { ReleaseGoldWrapper } from '@celo/contractkit/lib/wrappers/ReleaseGold' -import { ParserOutput } from '@oclif/parser/lib/parse' -import { BaseCommand } from '../base' -import { Flags } from './command' - -export abstract class ReleaseGoldBaseCommand extends BaseCommand { - static flags = { - ...BaseCommand.flags, - contract: Flags.address({ required: true, description: 'Address of the ReleaseGold Contract' }), - } - - private _contractAddress: string | null = null - private _releaseGoldWrapper: ReleaseGoldWrapper | null = null - - get contractAddress() { - if (!this._contractAddress) { - const res: ParserOutput = this.parse() - this._contractAddress = String(res.flags.contract) - } - return this._contractAddress - } - - get releaseGoldWrapper() { - if (!this._releaseGoldWrapper) { - this.error('Error in initilizing release gold wrapper') - } - return this._releaseGoldWrapper - } - - async init() { - await super.init() - if (!this._releaseGoldWrapper) { - this._releaseGoldWrapper = new ReleaseGoldWrapper( - this.kit.connection, - newReleaseGold(this.kit.connection.web3, this.contractAddress as string), - this.kit.contracts - ) - // Call arbitrary release gold fn to verify `contractAddress` is a releasegold contract. - try { - await this._releaseGoldWrapper.getBeneficiary() - } catch (err) { - this.error(`Does the provided address point to release gold contract? ${err}`) - } - } - } -} diff --git a/packages/cli/src/utils/require.ts b/packages/cli/src/utils/require.ts deleted file mode 100644 index bd6a86fe659..00000000000 --- a/packages/cli/src/utils/require.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { CeloTxObject } from '@celo/connect' -import { failWith } from './cli' - -export enum Op { - EQ = 'EQ', - NEQ = 'NEQ', - LT = 'LT', - LTE = 'LTE', - GT = 'GT', - GTE = 'GTE', -} - -export function requireOp(value: A, op: Op, expected: A, ctx: string) { - const OpFn: Record boolean> = { - [Op.EQ]: (a, b) => a === b, - [Op.NEQ]: (a, b) => a !== b, - [Op.LT]: (a, b) => a < b, - [Op.LTE]: (a, b) => a <= b, - [Op.GT]: (a, b) => a > b, - [Op.GTE]: (a, b) => a >= b, - } - if (!OpFn[op](value, expected)) { - failWith(`require(${ctx}) => [${value}, ${expected}]`) - } -} -export async function requireCall( - callPromise: CeloTxObject, - op: Op, - expected: A, - ctx: string -) { - const value = await callPromise.call() - requireOp(value, op, expected, ctx) -} diff --git a/packages/cli/start_geth.sh b/packages/cli/start_geth.sh deleted file mode 100644 index 451b74ad800..00000000000 --- a/packages/cli/start_geth.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# TODO(ashishb): testing only -ls /usr/local/bin - -# Usage: start_geth.sh [geth binary location] [network name] [sync mode] [data_dir_path] [genesis_filepath] [static_nodes_filepath] -# Delete this -GETH_BINARY=${1:-"/usr/local/bin/geth"} -# Default to testing the alfajores network -NETWORK_NAME=${2:-"alfajores"} -# Default to testing the ultralight sync mode -SYNCMODE=${3:-"ultralight"} -# Default to 44787 -NETWORK_ID=${4:-"44787"} -DATA_DIR=${5:-"/tmp/tmp1"} -GENESIS_FILE_PATH=${6:-"/celo/genesis.json"} -STATIC_NODES_FILE_PATH=${7:-"/celo/static-nodes.json"} - -echo "This will start geth local node from ${GETH_BINARY} in '${SYNCMODE}' sync mode which will connect to network '${NETWORK_NAME}'..." - -echo "Setting constants..." -mkdir -p ${DATA_DIR} - -echo "Initializing data dir..." -${GETH_BINARY} --datadir ${DATA_DIR} init ${GENESIS_FILE_PATH} -echo "Initializing static nodes..." -cp ${STATIC_NODES_FILE_PATH} ${DATA_DIR}/static-nodes.json - -echo "Running geth..." -${GETH_BINARY} \ - --datadir ${DATA_DIR} \ - --syncmode ${SYNCMODE} \ - --rpc \ - --ws \ - --wsport=8546 \ - --wsorigins=* \ - --rpcapi=eth,net,web3,debug,admin,personal \ - --debug \ - --port=30303 \ - --rpcport=8545 \ - --rpcvhosts=* \ - --networkid=${NETWORK_ID} \ - --verbosity=5 \ - --consoleoutput=stdout \ - --consoleformat=term diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json deleted file mode 100644 index f1339041c5d..00000000000 --- a/packages/cli/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "moduleResolution": "node16", - "rootDir": "src", - "outDir": "lib", - "esModuleInterop": true, - "target": "es2020" - }, - "include": ["src", "../contractkit/types"], - "references": [{ "path": "../sdk/utils" }, { "path": "../sdk/contractkit" }] -} diff --git a/packages/cli/tslint.json b/packages/cli/tslint.json deleted file mode 100644 index 5cc4dadf889..00000000000 --- a/packages/cli/tslint.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "linterOptions": { - "include": ["**/*.ts"] - }, - "rules": { - "no-var-keyword": false, - "curly": false, - "no-console": false, - "no-arg": false, - "no-object-literal-type-assertion": false, - "object-literal-shorthand": false, - "no-duplicate-variable": false, - "no-sparse-arrays": false, - "interface-over-type-literal": false, - "no-global-arrow-functions": false, - "no-floating-promises": true - } -} diff --git a/packages/cli/types/hw-transport-node-hid.d.ts b/packages/cli/types/hw-transport-node-hid.d.ts deleted file mode 100644 index 036c6463f24..00000000000 --- a/packages/cli/types/hw-transport-node-hid.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module '@ledgerhq/hw-transport-node-hid' diff --git a/packages/docs/README.md b/packages/docs/README.md deleted file mode 100644 index 64fcda539ce..00000000000 --- a/packages/docs/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Docs - -Most of the docs package in the [celo-monorepo](https://github.com/celo-org/celo-monorepo) has been moved to its own [Celo documentation repo](https://github.com/celo-org/docs). - -## Celo CLI docs - -Currently, the autogenerated [cli](../cli) package docs are still output in this docs folder. When updates are made to these autogenerated docs, the updates need to be manually copied to the [command-line-interface](https://github.com/celo-org/docs/tree/main/docs/command-line-interface) folder in the [celo-org/docs repo](https://github.com/celo-org/docs). diff --git a/packages/docs/command-line-interface/account.md b/packages/docs/command-line-interface/account.md deleted file mode 100644 index 528f6b7b41d..00000000000 --- a/packages/docs/command-line-interface/account.md +++ /dev/null @@ -1,952 +0,0 @@ -# `celocli account` - -Manage your account, keys, and metadata - - -## `celocli account:authorize` - -Keep your locked Gold more secure by authorizing alternative keys to be used for signing attestations, voting, or validating. By doing so, you can continue to participate in the protocol while keeping the key with access to your locked Gold in cold storage. You must include a "proof-of-possession" of the key being authorized, which can be generated with the "account:proof-of-possession" command. - -``` -Keep your locked Gold more secure by authorizing alternative keys to be used for signing attestations, voting, or validating. By doing so, you can continue to participate in the protocol while keeping the key with access to your locked Gold in cold storage. You must include a "proof-of-possession" of the key being authorized, which can be generated with the "account:proof-of-possession" command. - -USAGE - $ celocli account:authorize - -OPTIONS - -r, --role=vote|validator|attestation (required) Role to delegate - - --blsKey=0x The BLS public key that the - validator is using for consensus, - should pass proof of possession. - 96 bytes. - - --blsPop=0x The BLS public key - proof-of-possession, which - consists of a signature on the - account address. 48 bytes. - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - - --globalHelp View all available global flags - - --signature=0x (required) Signature (a.k.a - proof-of-possession) of the - signer key - - --signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - -EXAMPLES - authorize --from 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role vote --signer - 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature - 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6 - c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb - - authorize --from 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role validator --signer - 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature - 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6 - c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb --blsKey - 0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde1115 - 4f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be - 3f5d7aaddb0b06fc9aff00 --blsPop - 0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35 - 664ea3923900 -``` - -_See code: [src/commands/account/authorize.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/authorize.ts)_ - -## `celocli account:balance ADDRESS` - -View Celo Stables and CELO balances for an address - -``` -View Celo Stables and CELO balances for an address - -USAGE - $ celocli account:balance ADDRESS - -OPTIONS - --erc20Address=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Address of generic ERC-20 - token to also check balance - for - - --globalHelp View all available global - flags - -EXAMPLES - balance 0x5409ed021d9299bf6814279a6a1411a7e866a631 - - balance 0x5409ed021d9299bf6814279a6a1411a7e866a631 --erc20Address - 0x765DE816845861e75A25fCA122bb6898B8B1282a -``` - -_See code: [src/commands/account/balance.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/balance.ts)_ - -## `celocli account:claim-account FILE` - -Claim another account, and optionally its public key, and add the claim to a local metadata file - -``` -Claim another account, and optionally its public key, and add the claim to a local metadata file - -USAGE - $ celocli account:claim-account FILE - -ARGUMENTS - FILE Path of the metadata file - -OPTIONS - --address=address (required) The address of the - account you want to claim - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the account - to set metadata for or an - authorized signer for the address - in the metadata - - --globalHelp View all available global flags - - --publicKey=publicKey The public key of the account that - others may use to send you - encrypted messages - -EXAMPLE - claim-account ~/metadata.json --address 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/account/claim-account.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/claim-account.ts)_ - -## `celocli account:claim-domain FILE` - -Claim a domain and add the claim to a local metadata file - -``` -Claim a domain and add the claim to a local metadata file - -USAGE - $ celocli account:claim-domain FILE - -ARGUMENTS - FILE Path of the metadata file - -OPTIONS - --domain=domain (required) The domain you want to - claim - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the account - to set metadata for or an - authorized signer for the address - in the metadata - - --globalHelp View all available global flags - -EXAMPLE - claim-domain ~/metadata.json --domain test.com --from - 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/account/claim-domain.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/claim-domain.ts)_ - -## `celocli account:claim-keybase FILE` - -Claim a keybase username and add the claim to a local metadata file - -``` -Claim a keybase username and add the claim to a local metadata file - -USAGE - $ celocli account:claim-keybase FILE - -ARGUMENTS - FILE Path of the metadata file - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the account - to set metadata for or an - authorized signer for the address - in the metadata - - --globalHelp View all available global flags - - --username=username (required) The keybase username you - want to claim - -EXAMPLE - claim-keybase ~/metadata.json --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 - --username myusername -``` - -_See code: [src/commands/account/claim-keybase.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/claim-keybase.ts)_ - -## `celocli account:claim-name FILE` - -Claim a name and add the claim to a local metadata file - -``` -Claim a name and add the claim to a local metadata file - -USAGE - $ celocli account:claim-name FILE - -ARGUMENTS - FILE Path of the metadata file - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the account - to set metadata for or an - authorized signer for the address - in the metadata - - --globalHelp View all available global flags - - --name=name (required) The name you want to - claim - -EXAMPLE - claim-name ~/metadata.json --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --name - myname -``` - -_See code: [src/commands/account/claim-name.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/claim-name.ts)_ - -## `celocli account:claim-storage FILE` - -Claim a storage root and add the claim to a local metadata file - -``` -Claim a storage root and add the claim to a local metadata file - -USAGE - $ celocli account:claim-storage FILE - -ARGUMENTS - FILE Path of the metadata file - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the account - to set metadata for or an - authorized signer for the address - in the metadata - - --globalHelp View all available global flags - - --url=https://www.celo.org (required) The URL of the storage - root you want to claim - -EXAMPLE - claim-storage ~/metadata.json --url http://test.com/myurl --from - 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/account/claim-storage.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/claim-storage.ts)_ - -## `celocli account:create-metadata FILE` - -Create an empty identity metadata file. Use this metadata file to store claims attesting to ownership of off-chain resources. Claims can be generated with the account:claim-\* commands. - -``` -Create an empty identity metadata file. Use this metadata file to store claims attesting to ownership of off-chain resources. Claims can be generated with the account:claim-* commands. - -USAGE - $ celocli account:create-metadata FILE - -ARGUMENTS - FILE Path where the metadata should be saved - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the account - to set metadata for or an - authorized signer for the address - in the metadata - - --globalHelp View all available global flags - -EXAMPLE - create-metadata ~/metadata.json --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/account/create-metadata.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/create-metadata.ts)_ - -## `celocli account:deauthorize` - -Remove an account's authorized attestation signer role. - -``` -Remove an account's authorized attestation signer role. - -USAGE - $ celocli account:deauthorize - -OPTIONS - -r, --role=attestation (required) Role to remove - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - --globalHelp View all available global flags - --signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - -EXAMPLE - deauthorize --from 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role attestation - --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb -``` - -_See code: [src/commands/account/deauthorize.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/deauthorize.ts)_ - -## `celocli account:delete-payment-delegation` - -Removes a validator's payment delegation by setting benficiary and fraction to 0. - -``` -Removes a validator's payment delegation by setting benficiary and fraction to 0. - -USAGE - $ celocli account:delete-payment-delegation - -OPTIONS - --account=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - --globalHelp View all available global flags - -EXAMPLE - delete-payment-delegation --account 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/account/delete-payment-delegation.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/delete-payment-delegation.ts)_ - -## `celocli account:get-metadata ADDRESS` - -Show information about an address. Retreives the metadata URL for an account from the on-chain, then fetches the metadata file off-chain and verifies proofs as able. - -``` -Show information about an address. Retreives the metadata URL for an account from the on-chain, then fetches the metadata file off-chain and verifies proofs as able. - -USAGE - $ celocli account:get-metadata ADDRESS - -ARGUMENTS - ADDRESS Address to get metadata for - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) - -EXAMPLE - get-metadata 0x97f7333c51897469E8D98E7af8653aAb468050a3 -``` - -_See code: [src/commands/account/get-metadata.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/get-metadata.ts)_ - -## `celocli account:get-payment-delegation` - -Get the payment delegation account beneficiary and fraction allocated from a validator's payment each epoch. The fraction cannot be greater than 1. - -``` -Get the payment delegation account beneficiary and fraction allocated from a validator's payment each epoch. The fraction cannot be greater than 1. - -USAGE - $ celocli account:get-payment-delegation - -OPTIONS - -x, --extended show extra columns - --account=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - - --columns=columns only show provided columns - (comma-separated) - - --csv output is csv format [alias: - --output=csv] - - --filter=filter filter property by partial - string matching, ex: name=foo - - --globalHelp View all available global flags - - --no-header hide table header from output - - --no-truncate do not truncate output to fit - screen - - --output=csv|json|yaml output in a more machine - friendly format - - --sort=sort property to sort by (prepend '-' - for descending) - -EXAMPLE - get-payment-delegation --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/account/get-payment-delegation.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/get-payment-delegation.ts)_ - -## `celocli account:list` - -List the addresses from the node and the local instance - -``` -List the addresses from the node and the local instance - -USAGE - $ celocli account:list - -OPTIONS - --globalHelp View all available global flags - - --local If set, only show local and hardware wallet accounts. Use no-local to - only show keystore addresses. -``` - -_See code: [src/commands/account/list.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/list.ts)_ - -## `celocli account:lock ACCOUNT` - -Lock an account which was previously unlocked - -``` -Lock an account which was previously unlocked - -USAGE - $ celocli account:lock ACCOUNT - -ARGUMENTS - ACCOUNT Account address - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - lock 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/account/lock.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/lock.ts)_ - -## `celocli account:new` - -Creates a new account locally using the Celo Derivation Path (m/44'/52752'/0/changeIndex/addressIndex) and print out the key information. Save this information for local transaction signing or import into a Celo node. Ledger: this command has been tested swapping mnemonics with the Ledger successfully (only supports english) - -``` -Creates a new account locally using the Celo Derivation Path (m/44'/52752'/0/changeIndex/addressIndex) and print out the key information. Save this information for local transaction signing or import into a Celo node. Ledger: this command has been tested swapping mnemonics with the Ledger successfully (only supports english) - -USAGE - $ celocli account:new - -OPTIONS - --addressIndex=addressIndex - Choose the address index for the derivation path - - --changeIndex=changeIndex - Choose the change index for the derivation path - - --derivationPath=derivationPath - Choose a different derivation Path (Celo's default is "m/44'/52752'/0'"). Use "eth" - as an alias of the Ethereum derivation path ("m/44'/60'/0'"). Recreating the same - account requires knowledge of the mnemonic, passphrase (if any), and the derivation - path - - --globalHelp - View all available global flags - - --language=chinese_simplified|chinese_traditional|english|french|italian|japanese|kore - an|spanish - [default: english] Language for the mnemonic words. **WARNING**, some hardware - wallets don't support other languages - - --mnemonicPath=mnemonicPath - Instead of generating a new mnemonic (seed phrase), use the user-supplied mnemonic - instead. Path to a file that contains all the mnemonic words separated by a space - (example: "word1 word2 word3 ... word24"). If the words are a language other than - English, the --language flag must be used. Only BIP39 mnemonics are supported - - --passphrasePath=passphrasePath - Path to a file that contains the BIP39 passphrase to combine with the mnemonic - specified using the mnemonicPath flag and the index specified using the addressIndex - flag. Every passphrase generates a different private key and wallet address. - -EXAMPLES - new - - new --passphrasePath myFolder/my_passphrase_file - - new --language spanish - - new --passphrasePath some_folder/my_passphrase_file --language japanese --addressIndex - 5 - - new --passphrasePath some_folder/my_passphrase_file --mnemonicPath - some_folder/my_mnemonic_file --addressIndex 5 -``` - -_See code: [src/commands/account/new.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/new.ts)_ - -## `celocli account:offchain-read ADDRESS` - -DEV: Reads the name from offchain storage - -``` -DEV: Reads the name from offchain storage - -USAGE - $ celocli account:offchain-read ADDRESS - -OPTIONS - --bucket=bucket If using a GCP or AWS storage - bucket this parameter is required - - --directory=directory [default: .] To which directory - data should be written - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Account Address - - --globalHelp View all available global flags - - --privateDEK=privateDEK - - --provider=(git|aws|gcp) If the CLI should attempt to push - to the cloud - -EXAMPLES - offchain-read 0x... - - offchain-read 0x... --from 0x... --privateKey 0x... -``` - -_See code: [src/commands/account/offchain-read.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/offchain-read.ts)_ - -## `celocli account:offchain-write` - -DEV: Writes a name to offchain storage - -``` -DEV: Writes a name to offchain storage - -USAGE - $ celocli account:offchain-write - -OPTIONS - --bucket=bucket If using a GCP or AWS storage bucket this parameter is - required - - --directory=directory [default: .] To which directory data should be written - - --encryptTo=encryptTo - - --globalHelp View all available global flags - - --name=name (required) - - --privateDEK=privateDEK - - --privateKey=privateKey (required) - - --provider=(git|aws|gcp) If the CLI should attempt to push to the cloud - -EXAMPLES - offchain-write --name test-account --privateKey 0x... - - offchain-write --name test-account --privateKey 0x... privateDEK 0x... --encryptTo - 0x... -``` - -_See code: [src/commands/account/offchain-write.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/offchain-write.ts)_ - -## `celocli account:proof-of-possession` - -Generate proof-of-possession to be used to authorize a signer. See the "account:authorize" command for more details. - -``` -Generate proof-of-possession to be used to authorize a signer. See the "account:authorize" command for more details. - -USAGE - $ celocli account:proof-of-possession - -OPTIONS - --account=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - account that needs to prove - possession of the signer key. - - --globalHelp View all available global flags - - --signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the signer - key to prove possession of. - -EXAMPLE - proof-of-possession --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 --signer - 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb -``` - -_See code: [src/commands/account/proof-of-possession.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/proof-of-possession.ts)_ - -## `celocli account:recover-old` - -Recovers the Valora old account and print out the key information. The old Valora app (in a beta state) generated the user address using a seed of 32 bytes, instead of 64 bytes. As the app fixed that, some old accounts were left with some funds. This command allows the user to recover those funds. - -``` -Recovers the Valora old account and print out the key information. The old Valora app (in a beta state) generated the user address using a seed of 32 bytes, instead of 64 bytes. As the app fixed that, some old accounts were left with some funds. This command allows the user to recover those funds. - -USAGE - $ celocli account:recover-old - -OPTIONS - --addressIndex=addressIndex - Choose the address index for the derivation path - - --changeIndex=changeIndex - Choose the change index for the derivation path - - --derivationPath=derivationPath - Choose a different derivation Path (Celo's default is "m/44'/52752'/0'"). Use "eth" - as an alias of the Ethereum derivation path ("m/44'/60'/0'"). Recreating the same - account requires knowledge of the mnemonic, passphrase (if any), and the derivation - path - - --globalHelp - View all available global flags - - --language=chinese_simplified|chinese_traditional|english|french|italian|japanese|kore - an|spanish - [default: english] Language for the mnemonic words. **WARNING**, some hardware - wallets don't support other languages - - --mnemonicPath=mnemonicPath - (required) Path to a file that contains all the mnemonic words separated by a space - (example: "word1 word2 word3 ... word24"). If the words are a language other than - English, the --language flag must be used. Only BIP39 mnemonics are supported - - --passphrasePath=passphrasePath - Path to a file that contains the BIP39 passphrase to combine with the mnemonic - specified using the mnemonicPath flag and the index specified using the addressIndex - flag. Every passphrase generates a different private key and wallet address. - -EXAMPLES - recover-old --mnemonicPath some_folder/my_mnemonic_file - - recover-old --mnemonicPath some_folder/my_mnemonic_file --passphrasePath - myFolder/my_passphrase_file - - recover-old --mnemonicPath some_folder/my_mnemonic_file --language spanish - - recover-old --mnemonicPath some_folder/my_mnemonic_file --passphrasePath - some_folder/my_passphrase_file --language japanese --addressIndex 5 - - recover-old --mnemonicPath some_folder/my_mnemonic_file --passphrasePath - some_folder/my_passphrase_file --addressIndex 5 -``` - -_See code: [src/commands/account/recover-old.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/recover-old.ts)_ - -## `celocli account:register` - -Register an account on-chain. This allows you to lock Gold, which is a pre-requisite for registering a Validator or Group, participating in Validator elections and on-chain Governance, and earning epoch rewards. - -``` -Register an account on-chain. This allows you to lock Gold, which is a pre-requisite for registering a Validator or Group, participating in Validator elections and on-chain Governance, and earning epoch rewards. - -USAGE - $ celocli account:register - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - --globalHelp View all available global flags - --name=name - -EXAMPLES - register --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 - - register --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 --name test-account -``` - -_See code: [src/commands/account/register.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/register.ts)_ - -## `celocli account:register-data-encryption-key` - -Register a data encryption key for an account on chain. This key can be used to encrypt data to you such as offchain metadata or transaction comments - -``` -Register a data encryption key for an account on chain. This key can be used to encrypt data to you such as offchain metadata or transaction comments - -USAGE - $ celocli account:register-data-encryption-key - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Addess of the account to - set the data encryption key for - - --globalHelp View all available global flags - - --publicKey=publicKey (required) The public key you want - to register - -EXAMPLE - register-data-encryption-key --publicKey 0x... --from - 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/account/register-data-encryption-key.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/register-data-encryption-key.ts)_ - -## `celocli account:register-metadata` - -Register metadata URL for an account where users will be able to retieve the metadata file and verify your claims - -``` -Register metadata URL for an account where users will be able to retieve the metadata file and verify your claims - -USAGE - $ celocli account:register-metadata - -OPTIONS - -x, --extended show extra columns - - --columns=columns only show provided columns - (comma-separated) - - --csv output is csv format [alias: - --output=csv] - - --filter=filter filter property by partial string - matching, ex: name=foo - - --force Ignore metadata validity checks - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Addess of the account to - set metadata for - - --globalHelp View all available global flags - - --no-header hide table header from output - - --no-truncate do not truncate output to fit - screen - - --output=csv|json|yaml output in a more machine friendly - format - - --sort=sort property to sort by (prepend '-' - for descending) - - --url=https://www.celo.org (required) The url to the metadata - you want to register - -EXAMPLE - register-metadata --url https://www.mywebsite.com/celo-metadata --from - 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/account/register-metadata.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/register-metadata.ts)_ - -## `celocli account:set-name` - -Sets the name of a registered account on-chain. An account's name is an optional human readable identifier - -``` -Sets the name of a registered account on-chain. An account's name is an optional human readable identifier - -USAGE - $ celocli account:set-name - -OPTIONS - --account=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - --globalHelp View all available global flags - --name=name (required) - -EXAMPLE - set-name --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 --name test-account -``` - -_See code: [src/commands/account/set-name.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/set-name.ts)_ - -## `celocli account:set-payment-delegation` - -Sets a payment delegation beneficiary, an account address to receive a fraction of the validator's payment every epoch. The fraction must not be greater than 1. - -``` -Sets a payment delegation beneficiary, an account address to receive a fraction of the validator's payment every epoch. The fraction must not be greater than 1. - -USAGE - $ celocli account:set-payment-delegation - -OPTIONS - --account=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - --beneficiary=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - --fraction=fraction (required) - - --globalHelp View all available global - flags - -EXAMPLE - set-payment-delegation --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 - --beneficiary 0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb --fraction 0.1 -``` - -_See code: [src/commands/account/set-payment-delegation.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/set-payment-delegation.ts)_ - -## `celocli account:set-wallet` - -Sets the wallet of a registered account on-chain. An account's wallet is an optional wallet associated with an account. Can be set by the account or an account's signer. - -``` -Sets the wallet of a registered account on-chain. An account's wallet is an optional wallet associated with an account. Can be set by the account or an account's signer. - -USAGE - $ celocli account:set-wallet - -OPTIONS - --account=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - --globalHelp View all available global flags - - --signature=0x Signature (a.k.a. - proof-of-possession) of the - signer key - - --signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Address of the signer key to - verify proof of possession. - - --wallet=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - -EXAMPLES - set-wallet --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 --wallet - 0x5409ed021d9299bf6814279a6a1411a7e866a631 - - set-wallet --account 0x5409ed021d9299bf6814279a6a1411a7e866a631 --wallet - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --signer - 0x0EdeDF7B1287f07db348997663EeEb283D70aBE7 --signature - 0x1c5efaa1f7ca6484d49ccce76217e2fba0552c0b23462cff7ba646473bc2717ffc4ce45be89bd5be9b5d - 23305e87fc2896808467c4081d9524a84c01b89ec91ca3 -``` - -_See code: [src/commands/account/set-wallet.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/set-wallet.ts)_ - -## `celocli account:show ADDRESS` - -Show information for an account, including name, authorized vote, validator, and attestation signers, the URL at which account metadata is hosted, the address the account is using with the mobile wallet, and a public key that can be used to encrypt information for the account. - -``` -Show information for an account, including name, authorized vote, validator, and attestation signers, the URL at which account metadata is hosted, the address the account is using with the mobile wallet, and a public key that can be used to encrypt information for the account. - -USAGE - $ celocli account:show ADDRESS - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - show 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/account/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/show.ts)_ - -## `celocli account:show-claimed-accounts ADDRESS` - -Show information about claimed accounts - -``` -Show information about claimed accounts - -USAGE - $ celocli account:show-claimed-accounts ADDRESS - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - show-claimed-accounts 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/account/show-claimed-accounts.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/show-claimed-accounts.ts)_ - -## `celocli account:show-metadata FILE` - -Show the data in a local metadata file - -``` -Show the data in a local metadata file - -USAGE - $ celocli account:show-metadata FILE - -ARGUMENTS - FILE Path of the metadata file - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) - -EXAMPLE - show-metadata ~/metadata.json -``` - -_See code: [src/commands/account/show-metadata.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/show-metadata.ts)_ - -## `celocli account:unlock ACCOUNT` - -Unlock an account address to send transactions or validate blocks - -``` -Unlock an account address to send transactions or validate blocks - -USAGE - $ celocli account:unlock ACCOUNT - -ARGUMENTS - ACCOUNT Account address - -OPTIONS - --duration=duration Duration in seconds to leave the account unlocked. Unlocks until - the node exits by default. - - --globalHelp View all available global flags - - --password=password Password used to unlock the account. If not specified, you will - be prompted for a password. - -EXAMPLES - unlock 0x5409ed021d9299bf6814279a6a1411a7e866a631 - - unlock 0x5409ed021d9299bf6814279a6a1411a7e866a631 --duration 600 -``` - -_See code: [src/commands/account/unlock.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/unlock.ts)_ - -## `celocli account:verify-proof-of-possession` - -Verify a proof-of-possession. See the "account:proof-of-possession" command for more details. - -``` -Verify a proof-of-possession. See the "account:proof-of-possession" command for more details. - -USAGE - $ celocli account:verify-proof-of-possession - -OPTIONS - --account=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - account that needs to prove - possession of the signer key. - - --globalHelp View all available global flags - - --signature=0x (required) Signature (a.k.a. - proof-of-possession) of the - signer key - - --signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the signer - key to verify proof of - possession. - -EXAMPLE - verify-proof-of-possession --account 0x199eDF79ABCa29A2Fa4014882d3C13dC191A5B58 - --signer 0x0EdeDF7B1287f07db348997663EeEb283D70aBE7 --signature - 0x1c5efaa1f7ca6484d49ccce76217e2fba0552c0b23462cff7ba646473bc2717ffc4ce45be89bd5be9b5d - 23305e87fc2896808467c4081d9524a84c01b89ec91ca3 -``` - -_See code: [src/commands/account/verify-proof-of-possession.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/account/verify-proof-of-possession.ts)_ diff --git a/packages/docs/command-line-interface/autocomplete.md b/packages/docs/command-line-interface/autocomplete.md deleted file mode 100644 index 957b2fe2884..00000000000 --- a/packages/docs/command-line-interface/autocomplete.md +++ /dev/null @@ -1,32 +0,0 @@ -# `celocli autocomplete` - -display autocomplete installation instructions - - -## `celocli autocomplete [SHELL]` - -display autocomplete installation instructions - -``` -display autocomplete installation instructions - -USAGE - $ celocli autocomplete [SHELL] - -ARGUMENTS - SHELL shell type - -OPTIONS - -r, --refresh-cache Refresh cache (ignores displaying instructions) - -EXAMPLES - $ celocli autocomplete - - $ celocli autocomplete bash - - $ celocli autocomplete zsh - - $ celocli autocomplete --refresh-cache -``` - -_See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v0.1.5/src/commands/autocomplete/index.ts)_ diff --git a/packages/docs/command-line-interface/commands.md b/packages/docs/command-line-interface/commands.md deleted file mode 100644 index 495208bd98d..00000000000 --- a/packages/docs/command-line-interface/commands.md +++ /dev/null @@ -1,30 +0,0 @@ -# `celocli commands` - -list all the commands - - -## `celocli commands` - -list all the commands - -``` -list all the commands - -USAGE - $ celocli commands - -OPTIONS - -h, --help show CLI help - -j, --json display unfiltered api data in json format - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --hidden show hidden commands - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) -``` - -_See code: [@oclif/plugin-commands](https://github.com/oclif/plugin-commands/blob/v1.3.0/src/commands/commands.ts)_ diff --git a/packages/docs/command-line-interface/config.md b/packages/docs/command-line-interface/config.md deleted file mode 100644 index e9d315483c4..00000000000 --- a/packages/docs/command-line-interface/config.md +++ /dev/null @@ -1,53 +0,0 @@ -# `celocli config` - -Configure CLI options which persist across commands - - -## `celocli config:get` - -Output network node configuration - -``` -Output network node configuration - -USAGE - $ celocli config:get - -OPTIONS - --globalHelp View all available global flags -``` - -_See code: [src/commands/config/get.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/config/get.ts)_ - -## `celocli config:set` - -Configure running node information for propogating transactions to network - -``` -Configure running node information for propogating transactions to network - -USAGE - $ celocli config:set - -OPTIONS - -n, --node=node - URL of the node to run commands against (defaults to 'http://localhost:8545') - - --gasCurrency=(auto|Auto|CELO|celo|cUSD|cusd|cEUR|ceur|cREAL|creal) - Use a specific gas currency for transaction fees (defaults to 'auto' which uses - whatever feeCurrency is available) - - --globalHelp - View all available global flags - -EXAMPLES - set --node ws://localhost:2500 - - set --node /geth.ipc - - set --gasCurrency cUSD - - set --gasCurrency CELO -``` - -_See code: [src/commands/config/set.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/config/set.ts)_ diff --git a/packages/docs/command-line-interface/dkg.md b/packages/docs/command-line-interface/dkg.md deleted file mode 100644 index 42e51596a9b..00000000000 --- a/packages/docs/command-line-interface/dkg.md +++ /dev/null @@ -1,132 +0,0 @@ -# `celocli dkg` - -Publish your locally computed DKG results to the blockchain - - -## `celocli dkg:allowlist` - -Allowlist an address in the DKG - -``` -Allowlist an address in the DKG - -USAGE - $ celocli dkg:allowlist - -OPTIONS - --address=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) DKG Contract Address - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags - - --participantAddress=participantAddress (required) Address of the - participant to allowlist -``` - -_See code: [src/commands/dkg/allowlist.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/dkg/allowlist.ts)_ - -## `celocli dkg:deploy` - -Deploys the DKG smart contract - -``` -Deploys the DKG smart contract - -USAGE - $ celocli dkg:deploy - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags - - --phaseDuration=phaseDuration (required) Duration of each DKG - phase in blocks - - --threshold=threshold (required) The threshold to use for - the DKG -``` - -_See code: [src/commands/dkg/deploy.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/dkg/deploy.ts)_ - -## `celocli dkg:get` - -Gets data from the contract to run the next phase - -``` -Gets data from the contract to run the next phase - -USAGE - $ celocli dkg:get - -OPTIONS - --address=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) DKG - Contract Address - - --globalHelp View all - available global - flags - - --method=(shares|responses|justifications|participants|phase|group) (required) Getter - method to call -``` - -_See code: [src/commands/dkg/get.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/dkg/get.ts)_ - -## `celocli dkg:publish` - -Publishes data for each phase of the DKG - -``` -Publishes data for each phase of the DKG - -USAGE - $ celocli dkg:publish - -OPTIONS - --address=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) DKG Contract Address - - --data=data (required) Path to the data - being published - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - - --globalHelp View all available global flags -``` - -_See code: [src/commands/dkg/publish.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/dkg/publish.ts)_ - -## `celocli dkg:register` - -Register a public key in the DKG - -``` -Register a public key in the DKG - -USAGE - $ celocli dkg:register - -OPTIONS - --address=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) DKG Contract Address - --blsKey=blsKey (required) - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags -``` - -_See code: [src/commands/dkg/register.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/dkg/register.ts)_ - -## `celocli dkg:start` - -Starts the DKG - -``` -Starts the DKG - -USAGE - $ celocli dkg:start - -OPTIONS - --address=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) DKG Contract Address - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags -``` - -_See code: [src/commands/dkg/start.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/dkg/start.ts)_ diff --git a/packages/docs/command-line-interface/election.md b/packages/docs/command-line-interface/election.md deleted file mode 100644 index 96c22ead54a..00000000000 --- a/packages/docs/command-line-interface/election.md +++ /dev/null @@ -1,182 +0,0 @@ -# `celocli election` - -Participate in and view the state of Validator Elections - - -## `celocli election:activate` - -Activate pending votes in validator elections to begin earning rewards. To earn rewards as a voter, it is required to activate your pending votes at some point after the end of the epoch in which they were made. - -``` -Activate pending votes in validator elections to begin earning rewards. To earn rewards as a voter, it is required to activate your pending votes at some point after the end of the epoch in which they were made. - -USAGE - $ celocli election:activate - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Voter's address - --globalHelp View all available global flags - - --wait Wait until all pending votes can be - activated - -EXAMPLES - activate --from 0x4443d0349e8b3075cba511a0a87796597602a0f1 - - activate --from 0x4443d0349e8b3075cba511a0a87796597602a0f1 --wait -``` - -_See code: [src/commands/election/activate.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/election/activate.ts)_ - -## `celocli election:current` - -Outputs the set of validators currently participating in BFT to create blocks. An election is run to select the validator set at the end of every epoch. - -``` -Outputs the set of validators currently participating in BFT to create blocks. An election is run to select the validator set at the end of every epoch. - -USAGE - $ celocli election:current - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) - - --valset Show currently used signers from valset (by default the - authorized validator signers are shown). Useful for checking - if keys have been rotated. -``` - -_See code: [src/commands/election/current.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/election/current.ts)_ - -## `celocli election:list` - -Prints the list of validator groups, the number of votes they have received, the number of additional votes they are able to receive, and whether or not they are eligible to elect validators. - -``` -Prints the list of validator groups, the number of votes they have received, the number of additional votes they are able to receive, and whether or not they are eligible to elect validators. - -USAGE - $ celocli election:list - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) - -EXAMPLE - list -``` - -_See code: [src/commands/election/list.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/election/list.ts)_ - -## `celocli election:revoke` - -Revoke votes for a Validator Group in validator elections. - -``` -Revoke votes for a Validator Group in validator elections. - -USAGE - $ celocli election:revoke - -OPTIONS - --for=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) ValidatorGroup's address - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Voter's address - --globalHelp View all available global flags - --value=value (required) Value of votes to revoke - -EXAMPLE - revoke --from 0x4443d0349e8b3075cba511a0a87796597602a0f1 --for - 0x932fee04521f5fcb21949041bf161917da3f588b, --value 1000000 -``` - -_See code: [src/commands/election/revoke.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/election/revoke.ts)_ - -## `celocli election:run` - -Runs a "mock" election and prints out the validators that would be elected if the epoch ended right now. - -``` -Runs a "mock" election and prints out the validators that would be elected if the epoch ended right now. - -USAGE - $ celocli election:run - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) -``` - -_See code: [src/commands/election/run.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/election/run.ts)_ - -## `celocli election:show ADDRESS` - -Show election information about a voter or registered Validator Group - -``` -Show election information about a voter or registered Validator Group - -USAGE - $ celocli election:show ADDRESS - -ARGUMENTS - ADDRESS Voter or Validator Groups's address - -OPTIONS - --globalHelp View all available global flags - --group Show information about a group running in Validator elections - --voter Show information about an account voting in Validator elections - -EXAMPLES - show 0x97f7333c51897469E8D98E7af8653aAb468050a3 --voter - - show 0x97f7333c51897469E8D98E7af8653aAb468050a3 --group -``` - -_See code: [src/commands/election/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/election/show.ts)_ - -## `celocli election:vote` - -Vote for a Validator Group in validator elections. - -``` -Vote for a Validator Group in validator elections. - -USAGE - $ celocli election:vote - -OPTIONS - --for=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) ValidatorGroup's address - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Voter's address - --globalHelp View all available global flags - - --value=value (required) Amount of Gold used to - vote for group - -EXAMPLE - vote --from 0x4443d0349e8b3075cba511a0a87796597602a0f1 --for - 0x932fee04521f5fcb21949041bf161917da3f588b, --value 1000000 -``` - -_See code: [src/commands/election/vote.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/election/vote.ts)_ diff --git a/packages/docs/command-line-interface/exchange.md b/packages/docs/command-line-interface/exchange.md deleted file mode 100644 index 32559fa404c..00000000000 --- a/packages/docs/command-line-interface/exchange.md +++ /dev/null @@ -1,224 +0,0 @@ -# `celocli exchange` - -Exchange Celo Dollars and CELO via the stability mechanism - - -## `celocli exchange:celo` - -Exchange CELO for StableTokens via the stability mechanism. (Note: this is the equivalent of the old exchange:gold) - -``` -Exchange CELO for StableTokens via the stability mechanism. (Note: this is the equivalent of the old exchange:gold) - -USAGE - $ celocli exchange:celo - -OPTIONS - --forAtLeast=10000000000000000000000 [default: 0] Optional, the minimum - value of StableTokens to receive in - return - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address with CELO to - exchange - - --globalHelp View all available global flags - - --stableToken=(cUSD|cusd|cEUR|ceur|cREAL|creal) [default: cUSD] Name of the stable - to receive - - --value=10000000000000000000000 (required) The value of CELO to - exchange for a StableToken - -EXAMPLES - celo --value 5000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - - celo --value 5000000000000 --forAtLeast 100000000000000 --from - 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d --stableToken cStableTokenSymbol -``` - -_See code: [src/commands/exchange/celo.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/exchange/celo.ts)_ - -## `celocli exchange:dollars` - -Exchange Celo Dollars for CELO via the stability mechanism - -``` -Exchange Celo Dollars for CELO via the stability mechanism - -USAGE - $ celocli exchange:dollars - -OPTIONS - --forAtLeast=10000000000000000000000 [default: 0] Optional, the minimum - value of CELO to receive in return - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address with Celo - Dollars to exchange - - --globalHelp View all available global flags - - --value=10000000000000000000000 (required) The value of Celo - Dollars to exchange for CELO - -EXAMPLES - dollars --value 10000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - - dollars --value 10000000000000 --forAtLeast 50000000000000 --from - 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d -``` - -_See code: [src/commands/exchange/dollars.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/exchange/dollars.ts)_ - -## `celocli exchange:euros` - -Exchange Celo Euros for CELO via the stability mechanism - -``` -Exchange Celo Euros for CELO via the stability mechanism - -USAGE - $ celocli exchange:euros - -OPTIONS - --forAtLeast=10000000000000000000000 [default: 0] Optional, the minimum - value of CELO to receive in return - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address with Celo - Euros to exchange - - --globalHelp View all available global flags - - --value=10000000000000000000000 (required) The value of Celo Euros - to exchange for CELO - -EXAMPLES - euros --value 10000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - - euros --value 10000000000000 --forAtLeast 50000000000000 --from - 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d -``` - -_See code: [src/commands/exchange/euros.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/exchange/euros.ts)_ - -## `celocli exchange:gold` - -Exchange CELO for StableTokens via the stability mechanism. _DEPRECATION WARNING_ Use the "exchange:celo" command instead - -``` -Exchange CELO for StableTokens via the stability mechanism. *DEPRECATION WARNING* Use the "exchange:celo" command instead - -USAGE - $ celocli exchange:gold - -OPTIONS - --forAtLeast=10000000000000000000000 [default: 0] Optional, the minimum - value of StableTokens to receive in - return - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address with CELO to - exchange - - --globalHelp View all available global flags - - --stableToken=(cUSD|cusd|cEUR|ceur|cREAL|creal) [default: cUSD] Name of the stable - to receive - - --value=10000000000000000000000 (required) The value of CELO to - exchange for a StableToken - -EXAMPLES - gold --value 5000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - - gold --value 5000000000000 --forAtLeast 100000000000000 --from - 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d --stableToken cUSD -``` - -_See code: [src/commands/exchange/gold.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/exchange/gold.ts)_ - -## `celocli exchange:reals` - -Exchange Celo Brazilian Real (cREAL) for CELO via the stability mechanism - -``` -Exchange Celo Brazilian Real (cREAL) for CELO via the stability mechanism - -USAGE - $ celocli exchange:reals - -OPTIONS - --forAtLeast=10000000000000000000000 [default: 0] Optional, the minimum - value of CELO to receive in return - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address with Celo - Brazilian Real to exchange - - --globalHelp View all available global flags - - --value=10000000000000000000000 (required) The value of Celo - Brazilian Real to exchange for CELO - -EXAMPLES - reals --value 10000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - - reals --value 10000000000000 --forAtLeast 50000000000000 --from - 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d -``` - -_See code: [src/commands/exchange/reals.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/exchange/reals.ts)_ - -## `celocli exchange:show` - -Show the current exchange rates offered by the Exchange - -``` -Show the current exchange rates offered by the Exchange - -USAGE - $ celocli exchange:show - -OPTIONS - --amount=amount [default: 1000000000000000000] Amount of the token being exchanged to - report rates for - - --globalHelp View all available global flags - -EXAMPLE - list -``` - -_See code: [src/commands/exchange/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/exchange/show.ts)_ - -## `celocli exchange:stable` - -Exchange Stable Token for CELO via the stability mechanism - -``` -Exchange Stable Token for CELO via the stability mechanism - -USAGE - $ celocli exchange:stable - -OPTIONS - --forAtLeast=10000000000000000000000 [default: 0] Optional, the minimum - value of CELO to receive in return - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address with the - Stable Token to exchange - - --globalHelp View all available global flags - - --stableToken=(cUSD|cusd|cEUR|ceur|cREAL|creal) Name of the stable token to be - transfered - - --value=10000000000000000000000 (required) The value of Stable - Tokens to exchange for CELO - -EXAMPLES - stable --value 10000000000000 --from 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - --stableToken cStableTokenSymbol - - stable --value 10000000000000 --forAtLeast 50000000000000 --from - 0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d --stableToken cStableTokenSymbol -``` - -_See code: [src/commands/exchange/stable.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/exchange/stable.ts)_ diff --git a/packages/docs/command-line-interface/governance.md b/packages/docs/command-line-interface/governance.md deleted file mode 100644 index 8c5e5daaca7..00000000000 --- a/packages/docs/command-line-interface/governance.md +++ /dev/null @@ -1,430 +0,0 @@ -# `celocli governance` - -Interact with on-chain governance proposals and hotfixes - - -## `celocli governance:build-proposal` - -Interactively build a governance proposal - -``` -Interactively build a governance proposal - -USAGE - $ celocli governance:build-proposal - -OPTIONS - --afterExecutingID=afterExecutingID Governance proposal identifier which - will be executed prior to proposal - being built - - --afterExecutingProposal=afterExecutingProposal Path to proposal which will be - executed prior to proposal being - built - - --globalHelp View all available global flags - - --output=output [default: proposalTransactions.json] - Path to output - -EXAMPLE - build-proposal --output ./transactions.json -``` - -_See code: [src/commands/governance/build-proposal.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/build-proposal.ts)_ - -## `celocli governance:dequeue` - -Try to dequeue governance proposal - -``` -Try to dequeue governance proposal - -USAGE - $ celocli governance:dequeue - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) From address - --globalHelp View all available global flags - -EXAMPLE - dequeue --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/dequeue.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/dequeue.ts)_ - -## `celocli governance:execute` - -Execute a passing governance proposal - -``` -Execute a passing governance proposal - -USAGE - $ celocli governance:execute - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Executor's address - --globalHelp View all available global flags - - --proposalID=proposalID (required) UUID of proposal to - execute - -EXAMPLE - execute --proposalID 99 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/execute.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/execute.ts)_ - -## `celocli governance:executehotfix` - -Execute a governance hotfix prepared for the current epoch - -``` -Execute a governance hotfix prepared for the current epoch - -USAGE - $ celocli governance:executehotfix - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Executors's address - --globalHelp View all available global flags - - --jsonTransactions=jsonTransactions (required) Path to json - transactions - - --salt=salt (required) Secret salt associated - with hotfix - -EXAMPLE - executehotfix --jsonTransactions ./transactions.json --salt - 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 --from - 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/executehotfix.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/executehotfix.ts)_ - -## `celocli governance:hashhotfix` - -Hash a governance hotfix specified by JSON and a salt - -``` -Hash a governance hotfix specified by JSON and a salt - -USAGE - $ celocli governance:hashhotfix - -OPTIONS - --force Skip execution check - --globalHelp View all available global flags - - --jsonTransactions=jsonTransactions (required) Path to json transactions of the - hotfix - - --salt=salt (required) Secret salt associated with hotfix - -EXAMPLE - hashhotfix --jsonTransactions ./transactions.json --salt - 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 -``` - -_See code: [src/commands/governance/hashhotfix.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/hashhotfix.ts)_ - -## `celocli governance:list` - -List live governance proposals (queued and ongoing) - -``` -List live governance proposals (queued and ongoing) - -USAGE - $ celocli governance:list - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) - -EXAMPLE - list -``` - -_See code: [src/commands/governance/list.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/list.ts)_ - -## `celocli governance:preparehotfix` - -Prepare a governance hotfix for execution in the current epoch - -``` -Prepare a governance hotfix for execution in the current epoch - -USAGE - $ celocli governance:preparehotfix - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Preparer's address - --globalHelp View all available global flags - - --hash=hash (required) Hash of hotfix - transactions - -EXAMPLE - preparehotfix --hash - 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 --from - 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/preparehotfix.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/preparehotfix.ts)_ - -## `celocli governance:propose` - -Submit a governance proposal - -``` -Submit a governance proposal - -USAGE - $ celocli governance:propose - -OPTIONS - --afterExecutingID=afterExecutingID Governance proposal identifier - which will be executed prior to - proposal - - --afterExecutingProposal=afterExecutingProposal Path to proposal which will be - executed prior to proposal - - --deposit=deposit (required) Amount of Gold to attach - to proposal - - --descriptionURL=descriptionURL (required) A URL where further - information about the proposal can - be viewed - - --force Skip execution check - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Proposer's address - - --globalHelp View all available global flags - - --jsonTransactions=jsonTransactions (required) Path to json - transactions - -EXAMPLE - propose --jsonTransactions ./transactions.json --deposit 10000 --from - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --descriptionURL - https://gist.github.com/yorhodes/46430eacb8ed2f73f7bf79bef9d58a33 -``` - -_See code: [src/commands/governance/propose.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/propose.ts)_ - -## `celocli governance:revokeupvote` - -Revoke upvotes for queued governance proposals - -``` -Revoke upvotes for queued governance proposals - -USAGE - $ celocli governance:revokeupvote - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Upvoter's address - --globalHelp View all available global flags - -EXAMPLE - revokeupvote --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/revokeupvote.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/revokeupvote.ts)_ - -## `celocli governance:show` - -Show information about a governance proposal, hotfix, or account. - -``` -Show information about a governance proposal, hotfix, or account. - -USAGE - $ celocli governance:show - -OPTIONS - --account=account Address of account or voter - - --afterExecutingID=afterExecutingID Governance proposal identifier which - will be executed prior to proposal - - --afterExecutingProposal=afterExecutingProposal Path to proposal which will be - executed prior to proposal - - --globalHelp View all available global flags - - --hotfix=hotfix Hash of hotfix proposal - - --jsonTransactions=jsonTransactions Output proposal JSON to provided file - - --nonwhitelisters If set, displays validators that have - not whitelisted the hotfix. - - --notwhitelisted List validators who have not - whitelisted the specified hotfix - - --proposalID=proposalID UUID of proposal to view - - --raw Display proposal in raw bytes format - - --whitelisters If set, displays validators that have - whitelisted the hotfix. - -ALIASES - $ celocli governance:show - $ celocli governance:showhotfix - $ celocli governance:showaccount - $ celocli governance:view - $ celocli governance:viewhotfix - $ celocli governance:viewaccount - -EXAMPLES - show --proposalID 99 - - show --proposalID 99 --raw - - show --hotfix 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 - - show --hotfix 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 - --whitelisters - - show --hotfix 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 - --nonwhitelisters - - show --account 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 -``` - -_See code: [src/commands/governance/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/show.ts)_ - -## `celocli governance:upvote` - -Upvote a queued governance proposal - -``` -Upvote a queued governance proposal - -USAGE - $ celocli governance:upvote - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Upvoter's address - --globalHelp View all available global flags - - --proposalID=proposalID (required) UUID of proposal to - upvote - -EXAMPLE - upvote --proposalID 99 --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/upvote.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/upvote.ts)_ - -## `celocli governance:vote` - -Vote on an approved governance proposal - -``` -Vote on an approved governance proposal - -USAGE - $ celocli governance:vote - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Voter's address - --globalHelp View all available global flags - - --proposalID=proposalID (required) UUID of proposal to vote - on - - --value=(Abstain|No|Yes) (required) Vote - -EXAMPLE - vote --proposalID 99 --value Yes --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/vote.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/vote.ts)_ - -## `celocli governance:votePartially` - -Vote partially on an approved governance proposal - -``` -Vote partially on an approved governance proposal - -USAGE - $ celocli governance:votePartially - -OPTIONS - --abstain=abstain Abstain votes - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Voter's address - --globalHelp View all available global flags - --no=no No votes - - --proposalID=proposalID (required) UUID of proposal to vote - on - - --yes=yes Yes votes - -EXAMPLE - vote-partially --proposalID 99 --yes 10 --no 20 --from - 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/votePartially.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/votePartially.ts)_ - -## `celocli governance:whitelisthotfix` - -Whitelist a governance hotfix - -``` -Whitelist a governance hotfix - -USAGE - $ celocli governance:whitelisthotfix - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Whitelister's address - --globalHelp View all available global flags - - --hash=hash (required) Hash of hotfix - transactions - -EXAMPLE - whitelisthotfix --hash - 0x614dccb5ac13cba47c2430bdee7829bb8c8f3603a8ace22e7680d317b39e3658 --from - 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/whitelisthotfix.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/whitelisthotfix.ts)_ - -## `celocli governance:withdraw` - -Withdraw refunded governance proposal deposits. - -``` -Withdraw refunded governance proposal deposits. - -USAGE - $ celocli governance:withdraw - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Proposer's address - --globalHelp View all available global flags - -EXAMPLE - withdraw --from 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/governance/withdraw.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/governance/withdraw.ts)_ diff --git a/packages/docs/command-line-interface/grandamento.md b/packages/docs/command-line-interface/grandamento.md deleted file mode 100644 index fe08df44f74..00000000000 --- a/packages/docs/command-line-interface/grandamento.md +++ /dev/null @@ -1,129 +0,0 @@ -# `celocli grandamento` - -Cancels a Granda Mento exchange proposal - - -## `celocli grandamento:cancel` - -Cancels a Granda Mento exchange proposal - -``` -Cancels a Granda Mento exchange proposal - -USAGE - $ celocli grandamento:cancel - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address allowed to - cancel the proposal - - --globalHelp View all available global flags - - --proposalID=proposalID (required) UUID of proposal to view -``` - -_See code: [src/commands/grandamento/cancel.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/grandamento/cancel.ts)_ - -## `celocli grandamento:execute` - -Executes a Granda Mento exchange proposal - -``` -Executes a Granda Mento exchange proposal - -USAGE - $ celocli grandamento:execute - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address to execute - the exchange proposal - - --globalHelp View all available global flags - - --proposalID=proposalID (required) UUID of proposal to view -``` - -_See code: [src/commands/grandamento/execute.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/grandamento/execute.ts)_ - -## `celocli grandamento:get-buy-amount` - -Gets the buy amount for a prospective Granda Mento exchange - -``` -Gets the buy amount for a prospective Granda Mento exchange - -USAGE - $ celocli grandamento:get-buy-amount - -OPTIONS - --globalHelp View all available global flags - --sellCelo=(true|false) (required) Sell or buy CELO - - --stableToken=(cUSD|cusd|cEUR|ceur|cREAL|creal) (required) [default: cUSD] Name of - the stable to receive or send - - --value=10000000000000000000000 (required) The value of the tokens to - exchange -``` - -_See code: [src/commands/grandamento/get-buy-amount.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/grandamento/get-buy-amount.ts)_ - -## `celocli grandamento:list` - -List current active Granda Mento exchange proposals - -``` -List current active Granda Mento exchange proposals - -USAGE - $ celocli grandamento:list - -OPTIONS - --globalHelp View all available global flags -``` - -_See code: [src/commands/grandamento/list.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/grandamento/list.ts)_ - -## `celocli grandamento:propose` - -Proposes a Granda Mento exchange - -``` -Proposes a Granda Mento exchange - -USAGE - $ celocli grandamento:propose - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address with tokens - to exchange - - --globalHelp View all available global flags - - --sellCelo=(true|false) (required) Sell or buy CELO - - --stableToken=(cUSD|cusd|cEUR|ceur|cREAL|creal) (required) [default: cUSD] Name of - the stable to receive or send - - --value=10000000000000000000000 (required) The value of the tokens - to exchange -``` - -_See code: [src/commands/grandamento/propose.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/grandamento/propose.ts)_ - -## `celocli grandamento:show` - -Shows details of a Granda Mento exchange proposal - -``` -Shows details of a Granda Mento exchange proposal - -USAGE - $ celocli grandamento:show - -OPTIONS - --globalHelp View all available global flags - --proposalID=proposalID (required) UUID of proposal to view -``` - -_See code: [src/commands/grandamento/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/grandamento/show.ts)_ diff --git a/packages/docs/command-line-interface/help.md b/packages/docs/command-line-interface/help.md deleted file mode 100644 index 5d9a05467be..00000000000 --- a/packages/docs/command-line-interface/help.md +++ /dev/null @@ -1,23 +0,0 @@ -# `celocli help` - -display help for celocli - - -## `celocli help [COMMAND]` - -display help for celocli - -``` -display help for <%= config.bin %> - -USAGE - $ celocli help [COMMAND] - -ARGUMENTS - COMMAND command to show help for - -OPTIONS - --all see all commands in CLI -``` - -_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v1.2.11/src/commands/help.ts)_ diff --git a/packages/docs/command-line-interface/identity.md b/packages/docs/command-line-interface/identity.md deleted file mode 100644 index 9beea527c97..00000000000 --- a/packages/docs/command-line-interface/identity.md +++ /dev/null @@ -1,99 +0,0 @@ -# `celocli identity` - -Interact with ODIS and the attestations service - - -## `celocli identity:get-attestations` - -Looks up attestations associated with the provided phone number. If a pepper is not provided, it uses the --from account's balance to query the pepper. - -``` -Looks up attestations associated with the provided phone number. If a pepper is not provided, it uses the --from account's balance to query the pepper. - -USAGE - $ celocli identity:get-attestations - -OPTIONS - --from=from Account whose balance to use for querying ODIS for the - pepper lookup - - --globalHelp View all available global flags - - --identifier=identifier On-chain identifier - - --network=network The ODIS service to hit: mainnet, alfajores, - alfajoresstaging - - --pepper=pepper ODIS phone number pepper - - --phoneNumber=phoneNumber Phone number to check attestations for - -EXAMPLES - get-attestations --phoneNumber +15555555555 --from - 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 - - get-attestations --phoneNumber +15555555555 --pepper XgnKVpplZc0p1 - - get-attestations --identifier - 0x4952c9db9c283a62721b13f56c4b5e84a438e2569af3de21cb3440efa8840872 -``` - -_See code: [src/commands/identity/get-attestations.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/identity/get-attestations.ts)_ - -## `celocli identity:identifier` - -Queries ODIS for the on-chain identifier and pepper corresponding to a given phone number. - -``` -Queries ODIS for the on-chain identifier and pepper corresponding to a given phone number. - -USAGE - $ celocli identity:identifier - -OPTIONS - --context=context mainnet (default), alfajores, or - alfajoresstaging - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The address from which - to perform the query - - --globalHelp View all available global flags - - --phoneNumber=+14152223333 (required) The phone number for - which to query the identifier. - Should be in e164 format with - country code. - -EXAMPLE - identifier --phoneNumber +14151231234 --from - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --context alfajores -``` - -_See code: [src/commands/identity/identifier.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/identity/identifier.ts)_ - -## `celocli identity:withdraw-attestation-rewards` - -Withdraw accumulated attestation rewards for a given currency - -``` -Withdraw accumulated attestation rewards for a given currency - -USAGE - $ celocli identity:withdraw-attestation-rewards - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address to - withdraw from. Can be the - attestation signer address - or the underlying account - address - - --globalHelp View all available global - flags - - --tokenAddress=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d The address of the token - that will be withdrawn. - Defaults to cUSD -``` - -_See code: [src/commands/identity/withdraw-attestation-rewards.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/identity/withdraw-attestation-rewards.ts)_ diff --git a/packages/docs/command-line-interface/introduction.md b/packages/docs/command-line-interface/introduction.md deleted file mode 100644 index 7e20a30dc9c..00000000000 --- a/packages/docs/command-line-interface/introduction.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -description: >- - This Command Line Interface allows users to interact with the Celo Protocol - smart contracts. ---- - -# Introduction - -## Getting Started - -### **Optional** - -- **Run a Celo node full node.** Commands will connect to a Celo node to execute most functionality. You can either use [Forno](../developer-resources/forno/README.md) (this is the easiest way) or run your own full node if you prefer. See the [Running a Full Node](../getting-started/running-a-full-node-in-mainnet.md) instructions for more details on running a full node. - -### NPM Package - -The Celo CLI is published as a node module on NPM. Assuming you have [npm](https://www.npmjs.com/get-npm) and [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) both installed, you can install the Celo CLI using the following command: - -```bash -npm install -g @celo/celocli -``` - -{% hint style="info" %} -We are currently deploying the CLI with only Node.js v18.14.2. If you are running a different version of Node.js, consider using [NVM](https://github.com/nvm-sh/nvm#installation-and-update) to manage your node versions. e.g. with: `nvm install 12 && nvm use 12` -{% endhint %} - -{% hint style="info" %} -If you have trouble installing globally \(i.e. with the `-g` flag\), try installing to a local directory instead with `npm install @celo/celocli` and run with `npx celocli`. -{% endhint %} - -### Overview - -The tool is broken down into modules and commands with the following pattern: - -```text -celocli : <...args> <...flags?> -``` - -The `celocli` tool assumes that users are running a node which they have access to signing transactions on, or have another mechanism for signing transactions (such as a Ledger wallet or supplying the private key as an argument to the command). See the documentation on the [config](config.md) module for information about how to set which node commands are sent to. - -{% hint style="info" %} -**All balances of CELO or Celo Dollars are expressed in units of 10^-18** -{% endhint %} - -{% embed url="https://www.npmjs.com/package/@celo/celocli" caption="" %} - -### Using a Ledger Wallet - -The Celo CLI supports using a [Ledger hardware wallet](../celo-holder-guide/ledger.md) to sign transactions. - -### Plugins - -Additional plugins can be installed which make the CLI experience smoother. Currently, `celocli` only supports installing plugins published on NPM within the `@celo/*` and `@clabs/*` scopes. - -{% hint style="danger" %} -Installing a 3rd party plugin can be _dangerous_! Please always be sure that you trust the plugin provider. -{% endhint %} - -The autocomplete plugin adds an interactive autocomplete for `bash` and `zsh` shells. To enable the autocomplete plugin, follow the instructions provided at: - -```text -celocli autocomplete -``` - -The update warning plugin notifies the user if they are using an oudated version of the CLI. This plugin is enabled by default. diff --git a/packages/docs/command-line-interface/lockedgold.md b/packages/docs/command-line-interface/lockedgold.md deleted file mode 100644 index 80462b5892e..00000000000 --- a/packages/docs/command-line-interface/lockedgold.md +++ /dev/null @@ -1,195 +0,0 @@ -# `celocli lockedgold` - -View and manage locked CELO - - -## `celocli lockedgold:delegate` - -Delegate locked celo. - -``` -Delegate locked celo. - -USAGE - $ celocli lockedgold:delegate - -OPTIONS - --from=from (required) - --globalHelp View all available global flags - --percent=percent (required) 1-100% of locked celo to be delegated - --to=to (required) - -EXAMPLE - delegate --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --to - 0xc0ffee254729296a45a3885639AC7E10F9d54979 --percent 100 -``` - -_See code: [src/commands/lockedgold/delegate.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/lockedgold/delegate.ts)_ - -## `celocli lockedgold:delegate-info` - -Delegate info about account. - -``` -Delegate info about account. - -USAGE - $ celocli lockedgold:delegate-info - -OPTIONS - --account=account (required) - --globalHelp View all available global flags - -EXAMPLE - delegate-info --account 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/lockedgold/delegate-info.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/lockedgold/delegate-info.ts)_ - -## `celocli lockedgold:lock` - -Locks CELO to be used in governance and validator elections. - -``` -Locks CELO to be used in governance and validator elections. - -USAGE - $ celocli lockedgold:lock - -OPTIONS - --from=from (required) - --globalHelp View all available global flags - --value=value (required) The unit amount of CELO - -EXAMPLE - lock --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --value 10000000000000000000000 -``` - -_See code: [src/commands/lockedgold/lock.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/lockedgold/lock.ts)_ - -## `celocli lockedgold:max-delegatees-count` - -Returns the maximum number of delegates allowed per account. - -``` -Returns the maximum number of delegates allowed per account. - -USAGE - $ celocli lockedgold:max-delegatees-count - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - max-delegatees-count -``` - -_See code: [src/commands/lockedgold/max-delegatees-count.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/lockedgold/max-delegatees-count.ts)_ - -## `celocli lockedgold:revoke-delegate` - -Revoke delegated locked celo. - -``` -Revoke delegated locked celo. - -USAGE - $ celocli lockedgold:revoke-delegate - -OPTIONS - --from=from (required) - --globalHelp View all available global flags - - --percent=percent (required) 1-100% of locked celo to be revoked from currently - delegated amount - - --to=to (required) - -EXAMPLE - revoke-delegate --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --to - 0xc0ffee254729296a45a3885639AC7E10F9d54979 --percent 100 -``` - -_See code: [src/commands/lockedgold/revoke-delegate.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/lockedgold/revoke-delegate.ts)_ - -## `celocli lockedgold:show ACCOUNT` - -Show Locked Gold information for a given account. This includes the total amount of locked celo, the amount being used for voting in Validator Elections, the Locked Gold balance this account is required to maintain due to a registered Validator or Validator Group, and any pending withdrawals that have been initiated via "lockedgold:unlock". - -``` -Show Locked Gold information for a given account. This includes the total amount of locked celo, the amount being used for voting in Validator Elections, the Locked Gold balance this account is required to maintain due to a registered Validator or Validator Group, and any pending withdrawals that have been initiated via "lockedgold:unlock". - -USAGE - $ celocli lockedgold:show ACCOUNT - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - show 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/lockedgold/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/lockedgold/show.ts)_ - -## `celocli lockedgold:unlock` - -Unlocks CELO, which can be withdrawn after the unlocking period. Unlocked celo will appear as a "pending withdrawal" until the unlocking period is over, after which it can be withdrawn via "lockedgold:withdraw". - -``` -Unlocks CELO, which can be withdrawn after the unlocking period. Unlocked celo will appear as a "pending withdrawal" until the unlocking period is over, after which it can be withdrawn via "lockedgold:withdraw". - -USAGE - $ celocli lockedgold:unlock - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - --globalHelp View all available global flags - --value=value (required) The unit amount of CELO - -EXAMPLE - unlock --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --value 500000000 -``` - -_See code: [src/commands/lockedgold/unlock.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/lockedgold/unlock.ts)_ - -## `celocli lockedgold:update-delegated-amount` - -Updates the amount of delegated locked celo. There might be discrepancy between the amount of locked celo and the amount of delegated locked celo because of received rewards. - -``` -Updates the amount of delegated locked celo. There might be discrepancy between the amount of locked celo and the amount of delegated locked celo because of received rewards. - -USAGE - $ celocli lockedgold:update-delegated-amount - -OPTIONS - --from=from (required) - --globalHelp View all available global flags - --to=to (required) - -EXAMPLE - update-delegated-amount --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --to - 0xc0ffee254729296a45a3885639AC7E10F9d54979 -``` - -_See code: [src/commands/lockedgold/update-delegated-amount.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/lockedgold/update-delegated-amount.ts)_ - -## `celocli lockedgold:withdraw` - -Withdraw any pending withdrawals created via "lockedgold:unlock" that have become available. - -``` -Withdraw any pending withdrawals created via "lockedgold:unlock" that have become available. - -USAGE - $ celocli lockedgold:withdraw - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account Address - --globalHelp View all available global flags - -EXAMPLE - withdraw --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/lockedgold/withdraw.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/lockedgold/withdraw.ts)_ diff --git a/packages/docs/command-line-interface/multisig.md b/packages/docs/command-line-interface/multisig.md deleted file mode 100644 index fecc319e18c..00000000000 --- a/packages/docs/command-line-interface/multisig.md +++ /dev/null @@ -1,95 +0,0 @@ -# `celocli multisig` - -Approves an existing transaction on a multi-sig contract - - -## `celocli multisig:approve` - -Approves an existing transaction on a multi-sig contract - -``` -Approves an existing transaction on a multi-sig contract - -USAGE - $ celocli multisig:approve - -OPTIONS - --for=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the multi-sig - contract - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account approving the - multi-sig transaction - - --globalHelp View all available global flags - - --tx=tx (required) Transaction to approve - -EXAMPLE - approve --from 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --for - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --tx 3 -``` - -_See code: [src/commands/multisig/approve.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/multisig/approve.ts)_ - -## `celocli multisig:show ADDRESS` - -Shows information about multi-sig contract - -``` -Shows information about multi-sig contract - -USAGE - $ celocli multisig:show ADDRESS - -OPTIONS - --all Show info about all transactions - --globalHelp View all available global flags - --raw Do not attempt to parse transactions - --tx=tx Show info for a transaction - -EXAMPLES - show 0x5409ed021d9299bf6814279a6a1411a7e866a631 - - show 0x5409ed021d9299bf6814279a6a1411a7e866a631 --tx 3 - - show 0x5409ed021d9299bf6814279a6a1411a7e866a631 --all --raw -``` - -_See code: [src/commands/multisig/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/multisig/show.ts)_ - -## `celocli multisig:transfer ADDRESS` - -Ability to approve CELO transfers to and from multisig. Submit transaction or approve a matching existing transaction - -``` -Ability to approve CELO transfers to and from multisig. Submit transaction or approve a matching existing transaction - -USAGE - $ celocli multisig:transfer ADDRESS - -OPTIONS - --amount=amount (required) Amount to transfer, - e.g. 10e18 - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Account transferring - value to the recipient - - --globalHelp View all available global flags - - --sender=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Identify sender if performing - transferFrom - - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Recipient of transfer - - --transferFrom Perform transferFrom instead of - transfer in the ERC-20 interface - -EXAMPLES - transfer --to 0x5409ed021d9299bf6814279a6a1411a7e866a631 --amount - 200000e18 --from 0x123abc - - transfer --transferFrom --sender 0x123abc --to - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --amount 200000e18 --from 0x123abc -``` - -_See code: [src/commands/multisig/transfer.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/multisig/transfer.ts)_ diff --git a/packages/docs/command-line-interface/network.md b/packages/docs/command-line-interface/network.md deleted file mode 100644 index 7116a0067f7..00000000000 --- a/packages/docs/command-line-interface/network.md +++ /dev/null @@ -1,62 +0,0 @@ -# `celocli network` - -View details about the network, like contracts and parameters - - -## `celocli network:contracts` - -Lists Celo core contracts and their addesses. - -``` -Lists Celo core contracts and their addesses. - -USAGE - $ celocli network:contracts - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) -``` - -_See code: [src/commands/network/contracts.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/network/contracts.ts)_ - -## `celocli network:info` - -View general network information such as the current block number - -``` -View general network information such as the current block number - -USAGE - $ celocli network:info - -OPTIONS - -n, --lastN=lastN [default: 1] Fetch info about the last n epochs - --globalHelp View all available global flags -``` - -_See code: [src/commands/network/info.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/network/info.ts)_ - -## `celocli network:parameters` - -View parameters of the network, including but not limited to configuration for the various Celo core smart contracts. - -``` -View parameters of the network, including but not limited to configuration for the various Celo core smart contracts. - -USAGE - $ celocli network:parameters - -OPTIONS - --globalHelp View all available global flags - --raw Display raw numerical configuration -``` - -_See code: [src/commands/network/parameters.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/network/parameters.ts)_ diff --git a/packages/docs/command-line-interface/node.md b/packages/docs/command-line-interface/node.md deleted file mode 100644 index 85144dfd6a1..00000000000 --- a/packages/docs/command-line-interface/node.md +++ /dev/null @@ -1,37 +0,0 @@ -# `celocli node` - -Manage your Celo node - - -## `celocli node:accounts` - -List the addresses that this node has the private keys for. - -``` -List the addresses that this node has the private keys for. - -USAGE - $ celocli node:accounts - -OPTIONS - --globalHelp View all available global flags -``` - -_See code: [src/commands/node/accounts.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/node/accounts.ts)_ - -## `celocli node:synced` - -Check if the node is synced - -``` -Check if the node is synced - -USAGE - $ celocli node:synced - -OPTIONS - --globalHelp View all available global flags - --verbose output the full status if syncing -``` - -_See code: [src/commands/node/synced.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/node/synced.ts)_ diff --git a/packages/docs/command-line-interface/oracle.md b/packages/docs/command-line-interface/oracle.md deleted file mode 100644 index a595f825f8a..00000000000 --- a/packages/docs/command-line-interface/oracle.md +++ /dev/null @@ -1,126 +0,0 @@ -# `celocli oracle` - -List oracle addresses for a given token - - -## `celocli oracle:list TOKEN` - -List oracle addresses for a given token - -``` -List oracle addresses for a given token - -USAGE - $ celocli oracle:list TOKEN - -ARGUMENTS - TOKEN [default: StableToken] Token to list the oracles for - -OPTIONS - --globalHelp View all available global flags - -EXAMPLES - list StableToken - - list - - list StableTokenEUR -``` - -_See code: [src/commands/oracle/list.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/oracle/list.ts)_ - -## `celocli oracle:remove-expired-reports TOKEN` - -Remove expired oracle reports for a specified token - -``` -Remove expired oracle reports for a specified token - -USAGE - $ celocli oracle:remove-expired-reports TOKEN - -ARGUMENTS - TOKEN [default: StableToken] Token to remove expired reports for - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the account - removing oracle reports - - --globalHelp View all available global flags - -EXAMPLES - remove-expired-reports StableToken --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1 - - remove-expired-reports --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1 - - remove-expired-reports StableTokenEUR --from - 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1 -``` - -_See code: [src/commands/oracle/remove-expired-reports.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/oracle/remove-expired-reports.ts)_ - -## `celocli oracle:report TOKEN` - -Report the price of CELO in a specified token - -``` -Report the price of CELO in a specified token - -USAGE - $ celocli oracle:report TOKEN - -ARGUMENTS - TOKEN [default: StableToken] Token to report on - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the oracle - account - - --globalHelp View all available global flags - - --value=value (required) Amount of the specified - token equal to 1 CELO - -EXAMPLES - report StableToken --value 1.02 --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1 - - report --value 0.99 --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1 - - report StableTokenEUR --value 1.02 --from 0x8c349AAc7065a35B7166f2659d6C35D75A3893C1 -``` - -_See code: [src/commands/oracle/report.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/oracle/report.ts)_ - -## `celocli oracle:reports TOKEN` - -List oracle reports for a given token - -``` -List oracle reports for a given token - -USAGE - $ celocli oracle:reports TOKEN - -ARGUMENTS - TOKEN [default: StableToken] Token to list the reports for - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) - -EXAMPLES - reports StableToken - - reports - - reports StableTokenEUR -``` - -_See code: [src/commands/oracle/reports.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/oracle/reports.ts)_ diff --git a/packages/docs/command-line-interface/plugins.md b/packages/docs/command-line-interface/plugins.md deleted file mode 100644 index 4c38e9ee002..00000000000 --- a/packages/docs/command-line-interface/plugins.md +++ /dev/null @@ -1,170 +0,0 @@ -# `celocli plugins` - -list installed plugins - - -## `celocli plugins` - -list installed plugins - -``` -list installed plugins - -USAGE - $ celocli plugins - -OPTIONS - --core show core plugins - -EXAMPLE - $ celocli plugins -``` - -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v1.10.11/src/commands/plugins/index.ts)_ - -## `celocli plugins:inspect PLUGIN...` - -displays installation properties of a plugin - -``` -displays installation properties of a plugin - -USAGE - $ celocli plugins:inspect PLUGIN... - -ARGUMENTS - PLUGIN [default: .] plugin to inspect - -OPTIONS - -h, --help show CLI help - -v, --verbose - -EXAMPLE - $ celocli plugins:inspect myplugin -``` - -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v1.10.11/src/commands/plugins/inspect.ts)_ - -## `celocli plugins:install PLUGIN...` - -installs a plugin into the CLI - -``` -installs a plugin into the CLI -Can be installed from npm or a git url. - -Installation of a user-installed plugin will override a core plugin. - -e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in the CLI without the need to patch and update the whole CLI. - - -USAGE - $ celocli plugins:install PLUGIN... - -ARGUMENTS - PLUGIN plugin to install - -OPTIONS - -f, --force yarn install with force flag - -h, --help show CLI help - -v, --verbose - -DESCRIPTION - Can be installed from npm or a git url. - - Installation of a user-installed plugin will override a core plugin. - - e.g. If you have a core plugin that has a 'hello' command, installing a user-installed - plugin with a 'hello' command will override the core plugin implementation. This is - useful if a user needs to update core plugin functionality in the CLI without the need - to patch and update the whole CLI. - - -ALIASES - $ celocli plugins:add - -EXAMPLES - $ celocli plugins:install myplugin - - $ celocli plugins:install https://github.com/someuser/someplugin - - $ celocli plugins:install someuser/someplugin -``` - -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v1.10.11/src/commands/plugins/install.ts)_ - -## `celocli plugins:link PLUGIN` - -links a plugin into the CLI for development - -``` -links a plugin into the CLI for development -Installation of a linked plugin will override a user-installed or core plugin. - -e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello' command will override the user-installed or core plugin implementation. This is useful for development work. - - -USAGE - $ celocli plugins:link PLUGIN - -ARGUMENTS - PATH [default: .] path to plugin - -OPTIONS - -h, --help show CLI help - -v, --verbose - -DESCRIPTION - Installation of a linked plugin will override a user-installed or core plugin. - - e.g. If you have a user-installed or core plugin that has a 'hello' command, - installing a linked plugin with a 'hello' command will override the user-installed or - core plugin implementation. This is useful for development work. - - -EXAMPLE - $ celocli plugins:link myplugin -``` - -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v1.10.11/src/commands/plugins/link.ts)_ - -## `celocli plugins:uninstall PLUGIN...` - -removes a plugin from the CLI - -``` -removes a plugin from the CLI - -USAGE - $ celocli plugins:uninstall PLUGIN... - -ARGUMENTS - PLUGIN plugin to uninstall - -OPTIONS - -h, --help show CLI help - -v, --verbose - -ALIASES - $ celocli plugins:unlink - $ celocli plugins:remove -``` - -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v1.10.11/src/commands/plugins/uninstall.ts)_ - -## `celocli plugins:update` - -update installed plugins - -``` -update installed plugins - -USAGE - $ celocli plugins:update - -OPTIONS - -h, --help show CLI help - -v, --verbose -``` - -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v1.10.11/src/commands/plugins/update.ts)_ diff --git a/packages/docs/command-line-interface/registry.md b/packages/docs/command-line-interface/registry.md deleted file mode 100644 index 4d4e015aa71..00000000000 --- a/packages/docs/command-line-interface/registry.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -description: Interact with the contract registry ---- - -## Commands - -### List - -List contracts and their addresses in the registry - -``` -USAGE - $ celocli registry:list - -OPTIONS - --gasCurrency=(celo|CELO|cusd|cUSD|auto|Auto) Use a specific gas currency for transaction fees (defaults to 'auto' - which uses whatever feeCurrency is available) - - --ledgerAddresses=ledgerAddresses [default: 1] If --useLedger is set, this will get the first N addresses - for local signing - - --ledgerConfirmAddress Set it to ask confirmation for the address of the transaction from the - ledger - - --ledgerCustomAddresses=ledgerCustomAddresses [default: [0]] If --useLedger is set, this will get the array of index - addresses for local signing. Example --ledgerCustomAddresses "[4,99]" - - --useLedger Set it to use a ledger wallet - -EXAMPLE - list -``` - -_See code: [packages/cli/src/commands/registry/list.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/registry/list.ts)_ diff --git a/packages/docs/command-line-interface/releasecelo.md b/packages/docs/command-line-interface/releasecelo.md deleted file mode 100644 index 87456f91a95..00000000000 --- a/packages/docs/command-line-interface/releasecelo.md +++ /dev/null @@ -1,473 +0,0 @@ -# `celocli releasecelo` - -View and manage ReleaseGold contracts - - -## `celocli releasecelo:authorize` - -Authorize an alternative key to be used for a given action (Vote, Validate, Attest) on behalf of the ReleaseGold instance contract. - -``` -Authorize an alternative key to be used for a given action (Vote, Validate, Attest) on behalf of the ReleaseGold instance contract. - -USAGE - $ celocli releasecelo:authorize - -OPTIONS - --blsKey=0x The BLS public key that the - validator is using for - consensus, should pass proof of - possession. 96 bytes. - - --blsPop=0x The BLS public key - proof-of-possession, which - consists of a signature on the - account address. 48 bytes. - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --role=vote|validator|attestation (required) - - --signature=0x (required) Signature (a.k.a. - proof-of-possession) of the - signer key - - --signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The signer key that - is to be used for voting - through the ReleaseGold - instance - -EXAMPLES - authorize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role vote --signer - 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature - 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6 - c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb - - authorize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role validator - --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature - 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6 - c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb --blsKey - 0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde1115 - 4f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be - 3f5d7aaddb0b06fc9aff00 --blsPop - 0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35 - 664ea3923900 - - authorize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role attestation - --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature - 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6 - c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb -``` - -_See code: [src/commands/releasecelo/authorize.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/authorize.ts)_ - -## `celocli releasecelo:create-account` - -Creates a new account for the ReleaseGold instance - -``` -Creates a new account for the ReleaseGold instance - -USAGE - $ celocli releasecelo:create-account - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - -EXAMPLE - create-account --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/releasecelo/create-account.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/create-account.ts)_ - -## `celocli releasecelo:locked-gold` - -Perform actions [lock, unlock, withdraw] on CELO that has been locked via the provided ReleaseGold contract. - -``` -Perform actions [lock, unlock, withdraw] on CELO that has been locked via the provided ReleaseGold contract. - -USAGE - $ celocli releasecelo:locked-gold - -OPTIONS - -a, --action=lock|unlock|withdraw (required) Action to perform on - contract's celo - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --value=10000000000000000000000 (required) Amount of celo to - perform `action` with - - --yes Answer yes to prompt - -EXAMPLES - locked-gold --contract 0xCcc8a47BE435F1590809337BB14081b256Ae26A8 --action lock - --value 10000000000000000000000 - - locked-gold --contract 0xCcc8a47BE435F1590809337BB14081b256Ae26A8 --action unlock - --value 10000000000000000000000 - - locked-gold --contract 0xCcc8a47BE435F1590809337BB14081b256Ae26A8 --action withdraw - --value 10000000000000000000000 -``` - -_See code: [src/commands/releasecelo/locked-gold.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/locked-gold.ts)_ - -## `celocli releasecelo:refund-and-finalize` - -Refund the given contract's balance to the appopriate parties and destroy the contact. Can only be called by the release owner of revocable ReleaseGold instances. - -``` -Refund the given contract's balance to the appopriate parties and destroy the contact. Can only be called by the release owner of revocable ReleaseGold instances. - -USAGE - $ celocli releasecelo:refund-and-finalize - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - -EXAMPLE - refund-and-finalize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/releasecelo/refund-and-finalize.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/refund-and-finalize.ts)_ - -## `celocli releasecelo:revoke` - -Revoke the given contract instance. Once revoked, any Locked Gold can be unlocked by the release owner. The beneficiary will then be able to withdraw any released Gold that had yet to be withdrawn, and the remainder can be transferred by the release owner to the refund address. Note that not all ReleaseGold instances are revokable. - -``` -Revoke the given contract instance. Once revoked, any Locked Gold can be unlocked by the release owner. The beneficiary will then be able to withdraw any released Gold that had yet to be withdrawn, and the remainder can be transferred by the release owner to the refund address. Note that not all ReleaseGold instances are revokable. - -USAGE - $ celocli releasecelo:revoke - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --yesreally Override prompt to set - liquidity (be careful!) - -EXAMPLE - revoke --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/releasecelo/revoke.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/revoke.ts)_ - -## `celocli releasecelo:revoke-votes` - -Revokes `votes` for the given contract's account from the given group's account - -``` -Revokes `votes` for the given contract's account from the given group's account - -USAGE - $ celocli releasecelo:revoke-votes - -OPTIONS - --allGroups Revoke all votes from all - groups - - --allVotes Revoke all votes - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --group=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Address of the group to revoke - votes from - - --votes=votes The number of votes to revoke - -EXAMPLES - revoke-votes --contract 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --group - 0x5409ED021D9299bf6814279A6A1411A7e866A631 --votes 100 - - revoke-votes --contract 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --allVotes - --allGroups -``` - -_See code: [src/commands/releasecelo/revoke-votes.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/revoke-votes.ts)_ - -## `celocli releasecelo:set-account` - -Set account properties of the ReleaseGold instance account such as name, data encryption key, and the metadata URL - -``` -Set account properties of the ReleaseGold instance account such as name, data encryption key, and the metadata URL - -USAGE - $ celocli releasecelo:set-account - -OPTIONS - -p, --property=name|dataEncryptionKey|metaURL (required) Property type to set - - -v, --value=value (required) Property value to - set - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - -EXAMPLES - set-account --contract 0x5719118266779B58D0f9519383A4A27aA7b829E5 --property name - --value mywallet - - set-account --contract 0x5719118266779B58D0f9519383A4A27aA7b829E5 --property - dataEncryptionKey --value - 0x041bb96e35f9f4b71ca8de561fff55a249ddf9d13ab582bdd09a09e75da68ae4cd0ab7038030f41b2374 - 98b4d76387ae878dc8d98fd6f6db2c15362d1a3bf11216 - - set-account --contract 0x5719118266779B58D0f9519383A4A27aA7b829E5 --property metaURL - --value www.test.com -``` - -_See code: [src/commands/releasecelo/set-account.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/set-account.ts)_ - -## `celocli releasecelo:set-account-wallet-address` - -Set the ReleaseGold contract account's wallet address - -``` -Set the ReleaseGold contract account's wallet address - -USAGE - $ celocli releasecelo:set-account-wallet-address - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - (required) Address of the ReleaseGold Contract - - --globalHelp - View all available global flags - - --pop=pop - ECDSA PoP for signer over contract's account - - --walletAddress=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - (required) Address of wallet to set for contract's account and signer of PoP. 0x0 if - owner wants payers to contact them directly. - -EXAMPLE - set-account-wallet-address --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 - --walletAddress 0xE36Ea790bc9d7AB70C55260C66D52b1eca985f84 --pop - 0x1b3e611d05e46753c43444cdc55c2cc3d95c54da0eba2464a8cc8cb01bd57ae8bb3d82a0e293ca97e581 - 3e7fb9b624127f42ef0871d025d8a56fe2f8f08117e25b -``` - -_See code: [src/commands/releasecelo/set-account-wallet-address.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/set-account-wallet-address.ts)_ - -## `celocli releasecelo:set-beneficiary` - -Set the beneficiary of the ReleaseGold contract. This command is gated via a multi-sig, so this is expected to be called twice: once by the contract's beneficiary and once by the contract's releaseOwner. Once both addresses call this command with the same parameters, the tx will execute. - -``` -Set the beneficiary of the ReleaseGold contract. This command is gated via a multi-sig, so this is expected to be called twice: once by the contract's beneficiary and once by the contract's releaseOwner. Once both addresses call this command with the same parameters, the tx will execute. - -USAGE - $ celocli releasecelo:set-beneficiary - -OPTIONS - --beneficiary=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - new beneficiary - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address to submit - multisig transaction from - (one of the owners) - - --globalHelp View all available global - flags - - --yesreally Override prompt to set new - beneficiary (be careful!) - -EXAMPLE - set-beneficiary --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --from - 0xE36Ea790bc9d7AB70C55260C66D52b1eca985f84 --beneficiary - 0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb -``` - -_See code: [src/commands/releasecelo/set-beneficiary.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/set-beneficiary.ts)_ - -## `celocli releasecelo:set-can-expire` - -Set the canExpire flag for the given ReleaseGold contract - -``` -Set the canExpire flag for the given ReleaseGold contract - -USAGE - $ celocli releasecelo:set-can-expire - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --value=(true|false|True|False) (required) canExpire value - - --yesreally Override prompt to set - expiration flag (be careful!) - -EXAMPLE - set-can-expire --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --value true -``` - -_See code: [src/commands/releasecelo/set-can-expire.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/set-can-expire.ts)_ - -## `celocli releasecelo:set-liquidity-provision` - -Set the liquidity provision to true, allowing the beneficiary to withdraw released gold. - -``` -Set the liquidity provision to true, allowing the beneficiary to withdraw released gold. - -USAGE - $ celocli releasecelo:set-liquidity-provision - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --yesreally Override prompt to set - liquidity (be careful!) - -EXAMPLE - set-liquidity-provision --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/releasecelo/set-liquidity-provision.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/set-liquidity-provision.ts)_ - -## `celocli releasecelo:set-max-distribution` - -Set the maximum distribution of celo for the given contract - -``` -Set the maximum distribution of celo for the given contract - -USAGE - $ celocli releasecelo:set-max-distribution - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --distributionRatio=distributionRatio (required) Amount in range [0, - 1000] (3 significant figures) - indicating % of total balance - available for distribution. - - --globalHelp View all available global flags - - --yesreally Override prompt to set new - maximum distribution (be - careful!) - -EXAMPLE - set-max-distribution --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 - --distributionRatio 1000 -``` - -_See code: [src/commands/releasecelo/set-max-distribution.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/set-max-distribution.ts)_ - -## `celocli releasecelo:show` - -Show info on a ReleaseGold instance contract. - -``` -Show info on a ReleaseGold instance contract. - -USAGE - $ celocli releasecelo:show - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - -EXAMPLE - show --contract 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/releasecelo/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/show.ts)_ - -## `celocli releasecelo:transfer-dollars` - -Transfer Celo Dollars from the given contract address. Dollars may be accrued to the ReleaseGold contract via validator epoch rewards. - -``` -Transfer Celo Dollars from the given contract address. Dollars may be accrued to the ReleaseGold contract via validator epoch rewards. - -USAGE - $ celocli releasecelo:transfer-dollars - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - recipient of Celo Dollars - transfer - - --value=10000000000000000000000 (required) Value (in Wei) of - Celo Dollars to transfer - -EXAMPLE - transfer-dollars --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --to - 0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb --value 10000000000000000000000 -``` - -_See code: [src/commands/releasecelo/transfer-dollars.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/transfer-dollars.ts)_ - -## `celocli releasecelo:withdraw` - -Withdraws `value` released celo to the beneficiary address. Fails if `value` worth of celo has not been released yet. - -``` -Withdraws `value` released celo to the beneficiary address. Fails if `value` worth of celo has not been released yet. - -USAGE - $ celocli releasecelo:withdraw - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --value=10000000000000000000000 (required) Amount of released - celo (in wei) to withdraw - -EXAMPLE - withdraw --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --value - 10000000000000000000000 -``` - -_See code: [src/commands/releasecelo/withdraw.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasecelo/withdraw.ts)_ diff --git a/packages/docs/command-line-interface/releasegold.md b/packages/docs/command-line-interface/releasegold.md deleted file mode 100644 index dc42b9737bc..00000000000 --- a/packages/docs/command-line-interface/releasegold.md +++ /dev/null @@ -1,473 +0,0 @@ -# `celocli releasegold` - -Alias for releasecelo - - -## `celocli releasegold:authorize` - -Authorize an alternative key to be used for a given action (Vote, Validate, Attest) on behalf of the ReleaseGold instance contract. - -``` -Authorize an alternative key to be used for a given action (Vote, Validate, Attest) on behalf of the ReleaseGold instance contract. - -USAGE - $ celocli releasegold:authorize - -OPTIONS - --blsKey=0x The BLS public key that the - validator is using for - consensus, should pass proof of - possession. 96 bytes. - - --blsPop=0x The BLS public key - proof-of-possession, which - consists of a signature on the - account address. 48 bytes. - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --role=vote|validator|attestation (required) - - --signature=0x (required) Signature (a.k.a. - proof-of-possession) of the - signer key - - --signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) The signer key that - is to be used for voting - through the ReleaseGold - instance - -EXAMPLES - authorize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role vote --signer - 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature - 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6 - c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb - - authorize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role validator - --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature - 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6 - c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb --blsKey - 0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde1115 - 4f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be - 3f5d7aaddb0b06fc9aff00 --blsPop - 0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35 - 664ea3923900 - - authorize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --role attestation - --signer 0x6ecbe1db9ef729cbe972c83fb886247691fb6beb --signature - 0x1b9fca4bbb5bfb1dbe69ef1cddbd9b4202dcb6b134c5170611e1e36ecfa468d7b46c85328d504934fce6 - c2a1571603a50ae224d2b32685e84d4d1a1eebad8452eb -``` - -_See code: [src/commands/releasegold/authorize.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/authorize.ts)_ - -## `celocli releasegold:create-account` - -Creates a new account for the ReleaseGold instance - -``` -Creates a new account for the ReleaseGold instance - -USAGE - $ celocli releasegold:create-account - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - -EXAMPLE - create-account --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/releasegold/create-account.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/create-account.ts)_ - -## `celocli releasegold:locked-gold` - -Perform actions [lock, unlock, withdraw] on CELO that has been locked via the provided ReleaseGold contract. - -``` -Perform actions [lock, unlock, withdraw] on CELO that has been locked via the provided ReleaseGold contract. - -USAGE - $ celocli releasegold:locked-gold - -OPTIONS - -a, --action=lock|unlock|withdraw (required) Action to perform on - contract's celo - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --value=10000000000000000000000 (required) Amount of celo to - perform `action` with - - --yes Answer yes to prompt - -EXAMPLES - locked-gold --contract 0xCcc8a47BE435F1590809337BB14081b256Ae26A8 --action lock - --value 10000000000000000000000 - - locked-gold --contract 0xCcc8a47BE435F1590809337BB14081b256Ae26A8 --action unlock - --value 10000000000000000000000 - - locked-gold --contract 0xCcc8a47BE435F1590809337BB14081b256Ae26A8 --action withdraw - --value 10000000000000000000000 -``` - -_See code: [src/commands/releasegold/locked-gold.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/locked-gold.ts)_ - -## `celocli releasegold:refund-and-finalize` - -Refund the given contract's balance to the appopriate parties and destroy the contact. Can only be called by the release owner of revocable ReleaseGold instances. - -``` -Refund the given contract's balance to the appopriate parties and destroy the contact. Can only be called by the release owner of revocable ReleaseGold instances. - -USAGE - $ celocli releasegold:refund-and-finalize - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - -EXAMPLE - refund-and-finalize --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/releasegold/refund-and-finalize.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/refund-and-finalize.ts)_ - -## `celocli releasegold:revoke` - -Revoke the given contract instance. Once revoked, any Locked Gold can be unlocked by the release owner. The beneficiary will then be able to withdraw any released Gold that had yet to be withdrawn, and the remainder can be transferred by the release owner to the refund address. Note that not all ReleaseGold instances are revokable. - -``` -Revoke the given contract instance. Once revoked, any Locked Gold can be unlocked by the release owner. The beneficiary will then be able to withdraw any released Gold that had yet to be withdrawn, and the remainder can be transferred by the release owner to the refund address. Note that not all ReleaseGold instances are revokable. - -USAGE - $ celocli releasegold:revoke - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --yesreally Override prompt to set - liquidity (be careful!) - -EXAMPLE - revoke --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/releasegold/revoke.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/revoke.ts)_ - -## `celocli releasegold:revoke-votes` - -Revokes `votes` for the given contract's account from the given group's account - -``` -Revokes `votes` for the given contract's account from the given group's account - -USAGE - $ celocli releasegold:revoke-votes - -OPTIONS - --allGroups Revoke all votes from all - groups - - --allVotes Revoke all votes - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --group=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Address of the group to revoke - votes from - - --votes=votes The number of votes to revoke - -EXAMPLES - revoke-votes --contract 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --group - 0x5409ED021D9299bf6814279A6A1411A7e866A631 --votes 100 - - revoke-votes --contract 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --allVotes - --allGroups -``` - -_See code: [src/commands/releasegold/revoke-votes.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/revoke-votes.ts)_ - -## `celocli releasegold:set-account` - -Set account properties of the ReleaseGold instance account such as name, data encryption key, and the metadata URL - -``` -Set account properties of the ReleaseGold instance account such as name, data encryption key, and the metadata URL - -USAGE - $ celocli releasegold:set-account - -OPTIONS - -p, --property=name|dataEncryptionKey|metaURL (required) Property type to set - - -v, --value=value (required) Property value to - set - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - -EXAMPLES - set-account --contract 0x5719118266779B58D0f9519383A4A27aA7b829E5 --property name - --value mywallet - - set-account --contract 0x5719118266779B58D0f9519383A4A27aA7b829E5 --property - dataEncryptionKey --value - 0x041bb96e35f9f4b71ca8de561fff55a249ddf9d13ab582bdd09a09e75da68ae4cd0ab7038030f41b2374 - 98b4d76387ae878dc8d98fd6f6db2c15362d1a3bf11216 - - set-account --contract 0x5719118266779B58D0f9519383A4A27aA7b829E5 --property metaURL - --value www.test.com -``` - -_See code: [src/commands/releasegold/set-account.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/set-account.ts)_ - -## `celocli releasegold:set-account-wallet-address` - -Set the ReleaseGold contract account's wallet address - -``` -Set the ReleaseGold contract account's wallet address - -USAGE - $ celocli releasegold:set-account-wallet-address - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - (required) Address of the ReleaseGold Contract - - --globalHelp - View all available global flags - - --pop=pop - ECDSA PoP for signer over contract's account - - --walletAddress=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - (required) Address of wallet to set for contract's account and signer of PoP. 0x0 if - owner wants payers to contact them directly. - -EXAMPLE - set-account-wallet-address --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 - --walletAddress 0xE36Ea790bc9d7AB70C55260C66D52b1eca985f84 --pop - 0x1b3e611d05e46753c43444cdc55c2cc3d95c54da0eba2464a8cc8cb01bd57ae8bb3d82a0e293ca97e581 - 3e7fb9b624127f42ef0871d025d8a56fe2f8f08117e25b -``` - -_See code: [src/commands/releasegold/set-account-wallet-address.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/set-account-wallet-address.ts)_ - -## `celocli releasegold:set-beneficiary` - -Set the beneficiary of the ReleaseGold contract. This command is gated via a multi-sig, so this is expected to be called twice: once by the contract's beneficiary and once by the contract's releaseOwner. Once both addresses call this command with the same parameters, the tx will execute. - -``` -Set the beneficiary of the ReleaseGold contract. This command is gated via a multi-sig, so this is expected to be called twice: once by the contract's beneficiary and once by the contract's releaseOwner. Once both addresses call this command with the same parameters, the tx will execute. - -USAGE - $ celocli releasegold:set-beneficiary - -OPTIONS - --beneficiary=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - new beneficiary - - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address to submit - multisig transaction from - (one of the owners) - - --globalHelp View all available global - flags - - --yesreally Override prompt to set new - beneficiary (be careful!) - -EXAMPLE - set-beneficiary --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --from - 0xE36Ea790bc9d7AB70C55260C66D52b1eca985f84 --beneficiary - 0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb -``` - -_See code: [src/commands/releasegold/set-beneficiary.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/set-beneficiary.ts)_ - -## `celocli releasegold:set-can-expire` - -Set the canExpire flag for the given ReleaseGold contract - -``` -Set the canExpire flag for the given ReleaseGold contract - -USAGE - $ celocli releasegold:set-can-expire - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --value=(true|false|True|False) (required) canExpire value - - --yesreally Override prompt to set - expiration flag (be careful!) - -EXAMPLE - set-can-expire --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --value true -``` - -_See code: [src/commands/releasegold/set-can-expire.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/set-can-expire.ts)_ - -## `celocli releasegold:set-liquidity-provision` - -Set the liquidity provision to true, allowing the beneficiary to withdraw released gold. - -``` -Set the liquidity provision to true, allowing the beneficiary to withdraw released gold. - -USAGE - $ celocli releasegold:set-liquidity-provision - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --yesreally Override prompt to set - liquidity (be careful!) - -EXAMPLE - set-liquidity-provision --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/releasegold/set-liquidity-provision.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/set-liquidity-provision.ts)_ - -## `celocli releasegold:set-max-distribution` - -Set the maximum distribution of celo for the given contract - -``` -Set the maximum distribution of celo for the given contract - -USAGE - $ celocli releasegold:set-max-distribution - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --distributionRatio=distributionRatio (required) Amount in range [0, - 1000] (3 significant figures) - indicating % of total balance - available for distribution. - - --globalHelp View all available global flags - - --yesreally Override prompt to set new - maximum distribution (be - careful!) - -EXAMPLE - set-max-distribution --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 - --distributionRatio 1000 -``` - -_See code: [src/commands/releasegold/set-max-distribution.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/set-max-distribution.ts)_ - -## `celocli releasegold:show` - -Show info on a ReleaseGold instance contract. - -``` -Show info on a ReleaseGold instance contract. - -USAGE - $ celocli releasegold:show - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - -EXAMPLE - show --contract 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 -``` - -_See code: [src/commands/releasegold/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/show.ts)_ - -## `celocli releasegold:transfer-dollars` - -Transfer Celo Dollars from the given contract address. Dollars may be accrued to the ReleaseGold contract via validator epoch rewards. - -``` -Transfer Celo Dollars from the given contract address. Dollars may be accrued to the ReleaseGold contract via validator epoch rewards. - -USAGE - $ celocli releasegold:transfer-dollars - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - recipient of Celo Dollars - transfer - - --value=10000000000000000000000 (required) Value (in Wei) of - Celo Dollars to transfer - -EXAMPLE - transfer-dollars --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --to - 0x6Ecbe1DB9EF729CBe972C83Fb886247691Fb6beb --value 10000000000000000000000 -``` - -_See code: [src/commands/releasegold/transfer-dollars.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/transfer-dollars.ts)_ - -## `celocli releasegold:withdraw` - -Withdraws `value` released celo to the beneficiary address. Fails if `value` worth of celo has not been released yet. - -``` -Withdraws `value` released celo to the beneficiary address. Fails if `value` worth of celo has not been released yet. - -USAGE - $ celocli releasegold:withdraw - -OPTIONS - --contract=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - ReleaseGold Contract - - --globalHelp View all available global flags - - --value=10000000000000000000000 (required) Amount of released - celo (in wei) to withdraw - -EXAMPLE - withdraw --contract 0x5409ED021D9299bf6814279A6A1411A7e866A631 --value - 10000000000000000000000 -``` - -_See code: [src/commands/releasegold/withdraw.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/releasegold/withdraw.ts)_ diff --git a/packages/docs/command-line-interface/reserve.md b/packages/docs/command-line-interface/reserve.md deleted file mode 100644 index 0d4db416a96..00000000000 --- a/packages/docs/command-line-interface/reserve.md +++ /dev/null @@ -1,53 +0,0 @@ -# `celocli reserve` - -Shows information about reserve - - -## `celocli reserve:status` - -Shows information about reserve - -``` -Shows information about reserve - -USAGE - $ celocli reserve:status - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - status -``` - -_See code: [src/commands/reserve/status.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/reserve/status.ts)_ - -## `celocli reserve:transfergold` - -Transfers reserve celo to other reserve address - -``` -Transfers reserve celo to other reserve address - -USAGE - $ celocli reserve:transfergold - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Spender's address - --globalHelp View all available global flags - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Receiving address - - --useMultiSig True means the request will be sent - through multisig. - - --value=value (required) The unit amount of CELO - -EXAMPLES - transfergold --value 9000 --to 0x91c987bf62D25945dB517BDAa840A6c661374402 --from - 0x5409ed021d9299bf6814279a6a1411a7e866a631 - - transfergold --value 9000 --to 0x91c987bf62D25945dB517BDAa840A6c661374402 --from - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --useMultiSig -``` - -_See code: [src/commands/reserve/transfergold.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/reserve/transfergold.ts)_ diff --git a/packages/docs/command-line-interface/rewards.md b/packages/docs/command-line-interface/rewards.md deleted file mode 100644 index ac26b7c4794..00000000000 --- a/packages/docs/command-line-interface/rewards.md +++ /dev/null @@ -1,61 +0,0 @@ -# `celocli rewards` - -Show rewards information about a voter, registered Validator, or Validator Group - - -## `celocli rewards:show` - -Show rewards information about a voter, registered Validator, or Validator Group - -``` -Show rewards information about a voter, registered Validator, or Validator Group - -USAGE - $ celocli rewards:show - -OPTIONS - -x, --extended show extra columns - - --columns=columns only show provided columns - (comma-separated) - - --csv output is csv format [alias: - --output=csv] - - --epochs=epochs [default: 1] Show results for - the last N epochs - - --estimate Estimate voter rewards from - current votes - - --filter=filter filter property by partial - string matching, ex: name=foo - - --globalHelp View all available global - flags - - --group=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Validator Group to show - rewards for - - --no-header hide table header from output - - --no-truncate do not truncate output to fit - screen - - --output=csv|json|yaml output in a more machine - friendly format - - --slashing Show rewards for slashing - - --sort=sort property to sort by (prepend - '-' for descending) - - --validator=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Validator to show rewards for - - --voter=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d Voter to show rewards for - -EXAMPLE - show --address 0x5409ed021d9299bf6814279a6a1411a7e866a631 -``` - -_See code: [src/commands/rewards/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/rewards/show.ts)_ diff --git a/packages/docs/command-line-interface/transfer.md b/packages/docs/command-line-interface/transfer.md deleted file mode 100644 index 84071fba25b..00000000000 --- a/packages/docs/command-line-interface/transfer.md +++ /dev/null @@ -1,196 +0,0 @@ -# `celocli transfer` - -Transfer CELO and Celo Dollars - - -## `celocli transfer:celo` - -Transfer CELO to a specified address. (Note: this is the equivalent of the old transfer:gold) - -``` -Transfer CELO to a specified address. (Note: this is the equivalent of the old transfer:gold) - -USAGE - $ celocli transfer:celo - -OPTIONS - --comment=comment Transfer comment - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the receiver - - --value=value (required) Amount to transfer (in - wei) - -EXAMPLE - celo --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 10000000000000000000 -``` - -_See code: [src/commands/transfer/celo.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/transfer/celo.ts)_ - -## `celocli transfer:dollars` - -Transfer Celo Dollars (cUSD) to a specified address. - -``` -Transfer Celo Dollars (cUSD) to a specified address. - -USAGE - $ celocli transfer:dollars - -OPTIONS - --comment=comment Transfer comment - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the receiver - - --value=value (required) Amount to transfer (in - wei) - -EXAMPLE - dollars --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 1000000000000000000 -``` - -_See code: [src/commands/transfer/dollars.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/transfer/dollars.ts)_ - -## `celocli transfer:erc20` - -Transfer ERC20 to a specified address - -``` -Transfer ERC20 to a specified address - -USAGE - $ celocli transfer:erc20 - -OPTIONS - --erc20Address=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Custom erc20 to - check it's balance too - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - sender - - --globalHelp View all available global - flags - - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the - receiver - - --value=value (required) Amount to - transfer (in wei) - -EXAMPLE - erc20 --erc20Address 0x765DE816845861e75A25fCA122bb6898B8B1282a --from - 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 10000000000000000000 -``` - -_See code: [src/commands/transfer/erc20.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/transfer/erc20.ts)_ - -## `celocli transfer:euros` - -Transfer Celo Euros (cEUR) to a specified address. - -``` -Transfer Celo Euros (cEUR) to a specified address. - -USAGE - $ celocli transfer:euros - -OPTIONS - --comment=comment Transfer comment - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the receiver - - --value=value (required) Amount to transfer (in - wei) - -EXAMPLE - euros --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 1000000000000000000 -``` - -_See code: [src/commands/transfer/euros.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/transfer/euros.ts)_ - -## `celocli transfer:gold` - -Transfer CELO to a specified address. _DEPRECATION WARNING_ Use the "transfer:celo" command instead - -``` -Transfer CELO to a specified address. *DEPRECATION WARNING* Use the "transfer:celo" command instead - -USAGE - $ celocli transfer:gold - -OPTIONS - --comment=comment Transfer comment - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the receiver - - --value=value (required) Amount to transfer (in - wei) - -EXAMPLE - gold --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 10000000000000000000 -``` - -_See code: [src/commands/transfer/gold.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/transfer/gold.ts)_ - -## `celocli transfer:reals` - -Transfer Celo Brazilian Real (cREAL) to a specified address. - -``` -Transfer Celo Brazilian Real (cREAL) to a specified address. - -USAGE - $ celocli transfer:reals - -OPTIONS - --comment=comment Transfer comment - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the receiver - - --value=value (required) Amount to transfer (in - wei) - -EXAMPLE - reals --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 1000000000000000000 -``` - -_See code: [src/commands/transfer/reals.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/transfer/reals.ts)_ - -## `celocli transfer:stable` - -Transfer a stable token to a specified address. - -``` -Transfer a stable token to a specified address. - -USAGE - $ celocli transfer:stable - -OPTIONS - --comment=comment Transfer comment - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the sender - --globalHelp View all available global flags - --stableToken=(cUSD|cusd|cEUR|ceur|cREAL|creal) Name of the stable to be transfered - --to=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address of the receiver - - --value=value (required) Amount to transfer (in - wei) - -EXAMPLE - stable --from 0xa0Af2E71cECc248f4a7fD606F203467B500Dd53B --to - 0x5409ed021d9299bf6814279a6a1411a7e866a631 --value 1000000000000000000 --stableToken - cStableTokenSymbol -``` - -_See code: [src/commands/transfer/stable.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/transfer/stable.ts)_ diff --git a/packages/docs/command-line-interface/validator.md b/packages/docs/command-line-interface/validator.md deleted file mode 100644 index d0c01bfd501..00000000000 --- a/packages/docs/command-line-interface/validator.md +++ /dev/null @@ -1,442 +0,0 @@ -# `celocli validator` - -View and manage Validators - - -## `celocli validator:affiliate GROUPADDRESS` - -Affiliate a Validator with a Validator Group. This allows the Validator Group to add that Validator as a member. If the Validator is already a member of a Validator Group, affiliating with a different Group will remove the Validator from the first group's members. - -``` -Affiliate a Validator with a Validator Group. This allows the Validator Group to add that Validator as a member. If the Validator is already a member of a Validator Group, affiliating with a different Group will remove the Validator from the first group's members. - -USAGE - $ celocli validator:affiliate GROUPADDRESS - -ARGUMENTS - GROUPADDRESS ValidatorGroup's address - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Signer or Validator's - address - - --globalHelp View all available global flags - - --yes Answer yes to prompt - -EXAMPLE - affiliate --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 - 0x97f7333c51897469e8d98e7af8653aab468050a3 -``` - -_See code: [src/commands/validator/affiliate.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/affiliate.ts)_ - -## `celocli validator:deaffiliate` - -Deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member. - -``` -Deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member. - -USAGE - $ celocli validator:deaffiliate - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Signer or Validator's - address - - --globalHelp View all available global flags - -EXAMPLE - deaffiliate --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 -``` - -_See code: [src/commands/validator/deaffiliate.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/deaffiliate.ts)_ - -## `celocli validator:deregister` - -Deregister a Validator. Approximately 60 days after the validator is no longer part of any group, it will be possible to deregister the validator and start unlocking the CELO. If you wish to deregister your validator, you must first remove it from it's group, such as by deaffiliating it, then wait the required 60 days before running this command. - -``` -Deregister a Validator. Approximately 60 days after the validator is no longer part of any group, it will be possible to deregister the validator and start unlocking the CELO. If you wish to deregister your validator, you must first remove it from it's group, such as by deaffiliating it, then wait the required 60 days before running this command. - -USAGE - $ celocli validator:deregister - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Signer or Validator's - address - - --globalHelp View all available global flags - -EXAMPLE - deregister --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 -``` - -_See code: [src/commands/validator/deregister.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/deregister.ts)_ - -## `celocli validator:downtime-slash` - -Downtime slash a validator - -``` -Downtime slash a validator - -USAGE - $ celocli validator:downtime-slash - -OPTIONS - --beforeBlock=beforeBlock - Slash for slashable downtime window before provided block - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - (required) From address to perform the slash (reward recipient) - - --globalHelp - View all available global flags - - --intervals='[0:1], [1:2]' - Array of intervals, ordered by min start to max end - - --validator=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - Validator (signer or account) address - - --validators='["0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD", - "0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95"]' - Validator (signer or account) address list - -EXAMPLES - downtime-slash --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --validator - 0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD --intervals "[100:150), [150:200)" - - downtime-slash --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --validator - 0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD --slashableDowntimeBeforeBlock 200 -``` - -_See code: [src/commands/validator/downtime-slash.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/downtime-slash.ts)_ - -## `celocli validator:force-deaffiliate` - -Force deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member. Used by stake-off admins in order to remove validators from the next epoch's validator set if they are down and consistently unresponsive, in order to preserve the health of the network. This feature will be removed once slashing for downtime is implemented. - -``` -Force deaffiliate a Validator from a Validator Group, and remove it from the Group if it is also a member. Used by stake-off admins in order to remove validators from the next epoch's validator set if they are down and consistently unresponsive, in order to preserve the health of the network. This feature will be removed once slashing for downtime is implemented. - -USAGE - $ celocli validator:force-deaffiliate - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Initiator - - --globalHelp View all available global - flags - - --validator=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Validator's address - -EXAMPLE - force-deaffiliate --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --validator - 0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD -``` - -_See code: [src/commands/validator/force-deaffiliate.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/force-deaffiliate.ts)_ - -## `celocli validator:list` - -List registered Validators, their name (if provided), affiliation, uptime score, and public keys used for validating. - -``` -List registered Validators, their name (if provided), affiliation, uptime score, and public keys used for validating. - -USAGE - $ celocli validator:list - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) - -EXAMPLE - list -``` - -_See code: [src/commands/validator/list.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/list.ts)_ - -## `celocli validator:register` - -Register a new Validator - -``` -Register a new Validator - -USAGE - $ celocli validator:register - -OPTIONS - --blsKey=0x (required) BLS Public Key - --blsSignature=0x (required) BLS Proof-of-Possession - --ecdsaKey=0x (required) ECDSA Public Key - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address for the - Validator - - --globalHelp View all available global flags - - --yes Answer yes to prompt - -EXAMPLE - register --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --ecdsaKey - 0x049b7291ab8813a095d6b7913a7930ede5ea17466abd5e1a26c6c44f6df9a400a6f474080098b2c752c6 - c4871978ca977b90dcd3aed92bc9d564137c8dfa14ee72 --blsKey - 0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde1115 - 4f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be - 3f5d7aaddb0b06fc9aff00 --blsSignature - 0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35 - 664ea3923900 -``` - -_See code: [src/commands/validator/register.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/register.ts)_ - -## `celocli validator:requirements` - -List the Locked Gold requirements for registering a Validator. This consists of a value, which is the amount of CELO that needs to be locked in order to register, and a duration, which is the amount of time that CELO must stay locked following the deregistration of the Validator. - -``` -List the Locked Gold requirements for registering a Validator. This consists of a value, which is the amount of CELO that needs to be locked in order to register, and a duration, which is the amount of time that CELO must stay locked following the deregistration of the Validator. - -USAGE - $ celocli validator:requirements - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - requirements -``` - -_See code: [src/commands/validator/requirements.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/requirements.ts)_ - -## `celocli validator:set-bitmaps` - -Set validator signature bitmaps for provided intervals - -``` -Set validator signature bitmaps for provided intervals - -USAGE - $ celocli validator:set-bitmaps - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) From address - to sign set bitmap - transactions - - --globalHelp View all available global - flags - - --intervals='[0:1], [1:2]' Array of intervals, - ordered by min start to - max end - - --slashableDowntimeBeforeBlock=slashableDowntimeBeforeBlock Set all bitmaps for - slashable downtime window - before provided block - - --slashableDowntimeBeforeLatest Set all bitmaps for - slashable downtime window - before latest block - -EXAMPLES - set-bitmaps --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 - --slashableDowntimeBeforeBlock 10000 - - set-bitmaps --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --intervals "[0:100], - (100:200]" -``` - -_See code: [src/commands/validator/set-bitmaps.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/set-bitmaps.ts)_ - -## `celocli validator:show VALIDATORADDRESS` - -Show information about a registered Validator. - -``` -Show information about a registered Validator. - -USAGE - $ celocli validator:show VALIDATORADDRESS - -ARGUMENTS - VALIDATORADDRESS Validator's address - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - show 0x97f7333c51897469E8D98E7af8653aAb468050a3 -``` - -_See code: [src/commands/validator/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/show.ts)_ - -## `celocli validator:signed-blocks` - -Display a graph of blocks and whether the given signer's signature is included in each. A green '.' indicates the signature is present in that block, a red '✘' indicates the signature is not present. A yellow '~' indicates the signer is not elected for that block. - -``` -Display a graph of blocks and whether the given signer's signature is included in each. A green '.' indicates the signature is present in that block, a red '✘' indicates the signature is not present. A yellow '~' indicates the signer is not elected for that block. - -USAGE - $ celocli validator:signed-blocks - -OPTIONS - --at-block=at-block - latest block to examine for signer activity - - --globalHelp - View all available global flags - - --lookback=lookback - [default: 120] how many blocks to look back for signer activity - - --signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d - address of the signer to check for signatures - - --signers='["0xb7ef0985bdb4f19460A29d9829aA1514B181C4CD", - "0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95"]' - list of signer addresses to check for signatures - - --slashableDowntimeLookback - lookback of slashableDowntime - - --wasDownWhileElected - indicate whether a validator was down while elected for range - - --width=width - [default: 40] line width for printing marks - -EXAMPLES - signed-blocks --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631 - - signed-blocks --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631 --follow - - signed-blocks --at-block 100000 --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631 - - signed-blocks --lookback 500 --signer 0x5409ED021D9299bf6814279A6A1411A7e866A631 - - signed-blocks --lookback 50 --width 10 --signer - 0x5409ED021D9299bf6814279A6A1411A7e866A631 -``` - -_See code: [src/commands/validator/signed-blocks.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/signed-blocks.ts)_ - -## `celocli validator:status` - -Shows the consensus status of a validator. This command will show whether a validator is currently elected, would be elected if an election were to be run right now, and the percentage of blocks signed and number of blocks successfully proposed within a given window. - -``` -Shows the consensus status of a validator. This command will show whether a validator is currently elected, would be elected if an election were to be run right now, and the percentage of blocks signed and number of blocks successfully proposed within a given window. - -USAGE - $ celocli validator:status - -OPTIONS - -x, --extended show extra columns - - --all get the status of all - registered validators - - --columns=columns only show provided columns - (comma-separated) - - --csv output is csv format [alias: - --output=csv] - - --end=end [default: -1] what block to - end at when looking at signer - activity. defaults to the - latest block - - --filter=filter filter property by partial - string matching, ex: name=foo - - --globalHelp View all available global - flags - - --no-header hide table header from output - - --no-truncate do not truncate output to fit - screen - - --output=csv|json|yaml output in a more machine - friendly format - - --signer=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d address of the signer to check - if elected and validating - - --sort=sort property to sort by (prepend - '-' for descending) - - --start=start [default: -1] what block to - start at when looking at - signer activity. defaults to - the last 100 blocks - - --validator=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d address of the validator to - check if elected and - validating - -EXAMPLES - status --validator 0x5409ED021D9299bf6814279A6A1411A7e866A631 - - status --validator 0x5409ED021D9299bf6814279A6A1411A7e866A631 --start 1480000 - - status --all --start 1480000 --end 1490000 -``` - -_See code: [src/commands/validator/status.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/status.ts)_ - -## `celocli validator:update-bls-public-key` - -Update the BLS public key for a Validator to be used in consensus. - -``` -Update the BLS public key for a Validator to be used in consensus. - -Regular (ECDSA and BLS) key rotation is recommended for Validator operational security. - -WARNING: By default, the BLS key used by the validator node is derived from the ECDSA private key. As a result, rotating the BLS key without rotating the ECDSA key will result in validator downtime without special configuration. Use this method only if you know what you are doing. - -USAGE - $ celocli validator:update-bls-public-key - -OPTIONS - --blsKey=0x (required) BLS Public Key - --blsPop=0x (required) BLS Proof-of-Possession - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Validator's address - --globalHelp View all available global flags - -DESCRIPTION - - Regular (ECDSA and BLS) key rotation is recommended for Validator operational - security. - - WARNING: By default, the BLS key used by the validator node is derived from the ECDSA - private key. As a result, rotating the BLS key without rotating the ECDSA key will - result in validator downtime without special configuration. Use this method only if - you know what you are doing. - -EXAMPLE - update-bls-key --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --blsKey - 0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde1115 - 4f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be - 3f5d7aaddb0b06fc9aff00 --blsPop - 0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35 - 664ea3923900 -``` - -_See code: [src/commands/validator/update-bls-public-key.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validator/update-bls-public-key.ts)_ diff --git a/packages/docs/command-line-interface/validatorgroup.md b/packages/docs/command-line-interface/validatorgroup.md deleted file mode 100644 index 8ec3293999d..00000000000 --- a/packages/docs/command-line-interface/validatorgroup.md +++ /dev/null @@ -1,201 +0,0 @@ -# `celocli validatorgroup` - -View and manage Validator Groups - - -## `celocli validatorgroup:commission` - -Manage the commission for a registered Validator Group. This represents the share of the epoch rewards given to elected Validators that goes to the group they are a member of. Updates must be made in a two step process where the group owner first calls uses the queue-update option, then after the required update delay, the apply option. The commission update delay, in blocks, can be viewed with the network:parameters command. A groups next commission update block can be checked with validatorgroup:show - -``` -Manage the commission for a registered Validator Group. This represents the share of the epoch rewards given to elected Validators that goes to the group they are a member of. Updates must be made in a two step process where the group owner first calls uses the queue-update option, then after the required update delay, the apply option. The commission update delay, in blocks, can be viewed with the network:parameters command. A groups next commission update block can be checked with validatorgroup:show - -USAGE - $ celocli validatorgroup:commission - -OPTIONS - --apply Applies a previously queued update. - Should be called after the update - delay. - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address for the - Validator Group or Validator Group - validator signer - - --globalHelp View all available global flags - - --queue-update=queue-update Queues an update to the commission, - which can be applied after the - update delay. - -EXAMPLES - commission --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --queue-update 0.1 - - commission --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --apply -``` - -_See code: [src/commands/validatorgroup/commission.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validatorgroup/commission.ts)_ - -## `celocli validatorgroup:deregister` - -Deregister a Validator Group. Approximately 180 days after the validator group is empty, it will be possible to deregister it start unlocking the CELO. If you wish to deregister your validator group, you must first remove all members, then wait the required 180 days before running this command. - -``` -Deregister a Validator Group. Approximately 180 days after the validator group is empty, it will be possible to deregister it start unlocking the CELO. If you wish to deregister your validator group, you must first remove all members, then wait the required 180 days before running this command. - -USAGE - $ celocli validatorgroup:deregister - -OPTIONS - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Signer or - ValidatorGroup's address - - --globalHelp View all available global flags - -EXAMPLE - deregister --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 -``` - -_See code: [src/commands/validatorgroup/deregister.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validatorgroup/deregister.ts)_ - -## `celocli validatorgroup:list` - -List registered Validator Groups, their names (if provided), commission, and members. - -``` -List registered Validator Groups, their names (if provided), commission, and members. - -USAGE - $ celocli validatorgroup:list - -OPTIONS - -x, --extended show extra columns - --columns=columns only show provided columns (comma-separated) - --csv output is csv format [alias: --output=csv] - --filter=filter filter property by partial string matching, ex: name=foo - --globalHelp View all available global flags - --no-header hide table header from output - --no-truncate do not truncate output to fit screen - --output=csv|json|yaml output in a more machine friendly format - --sort=sort property to sort by (prepend '-' for descending) - -EXAMPLE - list -``` - -_See code: [src/commands/validatorgroup/list.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validatorgroup/list.ts)_ - -## `celocli validatorgroup:member VALIDATORADDRESS` - -Add or remove members from a Validator Group - -``` -Add or remove members from a Validator Group - -USAGE - $ celocli validatorgroup:member VALIDATORADDRESS - -ARGUMENTS - VALIDATORADDRESS Validator's address - -OPTIONS - --accept Accept a validator whose - affiliation is already set to the - group - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) ValidatorGroup's address - - --globalHelp View all available global flags - - --remove Remove a validator from the members - list - - --reorder=reorder Reorder a validator within the - members list. Indices are 0 based - - --yes Answer yes to prompt - -EXAMPLES - member --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --accept - 0x97f7333c51897469e8d98e7af8653aab468050a3 - - member --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --remove - 0x97f7333c51897469e8d98e7af8653aab468050a3 - - member --from 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 --reorder 3 - 0x47e172f6cfb6c7d01c1574fa3e2be7cc73269d95 -``` - -_See code: [src/commands/validatorgroup/member.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validatorgroup/member.ts)_ - -## `celocli validatorgroup:register` - -Register a new Validator Group - -``` -Register a new Validator Group - -USAGE - $ celocli validatorgroup:register - -OPTIONS - --commission=commission (required) The share of the epoch - rewards given to elected Validators - that goes to the group. - - --from=0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d (required) Address for the - Validator Group - - --globalHelp View all available global flags - - --yes Answer yes to prompt - -EXAMPLE - register --from 0x47e172F6CfB6c7D01C1574fa3E2Be7CC73269D95 --commission 0.1 -``` - -_See code: [src/commands/validatorgroup/register.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validatorgroup/register.ts)_ - -## `celocli validatorgroup:reset-slashing-multiplier GROUPADDRESS` - -Reset validator group slashing multiplier. - -``` -Reset validator group slashing multiplier. - -USAGE - $ celocli validatorgroup:reset-slashing-multiplier GROUPADDRESS - -ARGUMENTS - GROUPADDRESS ValidatorGroup's address - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - reset-slashing-multiplier 0x97f7333c51897469E8D98E7af8653aAb468050a3 -``` - -_See code: [src/commands/validatorgroup/reset-slashing-multiplier.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validatorgroup/reset-slashing-multiplier.ts)_ - -## `celocli validatorgroup:show GROUPADDRESS` - -Show information about an existing Validator Group - -``` -Show information about an existing Validator Group - -USAGE - $ celocli validatorgroup:show GROUPADDRESS - -ARGUMENTS - GROUPADDRESS ValidatorGroup's address - -OPTIONS - --globalHelp View all available global flags - -EXAMPLE - show 0x97f7333c51897469E8D98E7af8653aAb468050a3 -``` - -_See code: [src/commands/validatorgroup/show.ts](https://github.com/celo-org/celo-monorepo/tree/master/packages/cli/src/commands/validatorgroup/show.ts)_ diff --git a/packages/docs/developer-resources/utils/reference/README.md b/packages/docs/developer-resources/utils/reference/README.md deleted file mode 100644 index 3c2f9cb9bcf..00000000000 --- a/packages/docs/developer-resources/utils/reference/README.md +++ /dev/null @@ -1,154 +0,0 @@ -# @celo/phone-utils - -

- - celo logo - -

- -**Celo Monorepo - Official repository for core projects comprising the Celo platform** - -This repository contains the source code for the Celo core projects including the [smart contracts](https://github.com/celo-org/celo-monorepo/tree/master/packages/protocol), [contractKit](https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/contractkit), -and other packages. The source code for the Celo Blockchain which operates a node on the Celo Network is kept in a separate repo [here](https://github.com/celo-org/celo-blockchain). - - - -[![CircleCI](https://img.shields.io/circleci/build/github/celo-org/celo-monorepo/master)](https://circleci.com/gh/celo-org/celo-monorepo/tree/master) -[![Codecov](https://img.shields.io/codecov/c/github/celo-org/celo-monorepo)](https://codecov.io/gh/celo-org/celo-monorepo) -[![GitHub contributors](https://img.shields.io/github/contributors/celo-org/celo-monorepo)](https://github.com/celo-org/celo-monorepo/graphs/contributors) -[![GitHub commit activity](https://img.shields.io/github/commit-activity/w/celo-org/celo-monorepo)](https://github.com/celo-org/celo-monorepo/graphs/contributors) -[![GitHub Stars](https://img.shields.io/github/stars/celo-org/celo-monorepo.svg)](https://github.com/celo-org/celo-monorepo/stargazers) -![GitHub repo size](https://img.shields.io/github/repo-size/celo-org/celo-monorepo) -[![GitHub](https://img.shields.io/github/license/celo-org/celo-monorepo?color=blue)](https://github.com/celo-org/celo-monorepo/blob/master/LICENSE) - - - -[![Website celo.org](https://img.shields.io/website-up-down-green-red/https/celo.org.svg)](https://celo.org) -[![Blog](https://img.shields.io/badge/blog-up-green)](https://medium.com/celoorg) -[![docs](https://img.shields.io/badge/docs-up-green)](https://docs.celo.org/) -[![Youtube](https://img.shields.io/badge/YouTube%20channel-up-green)](https://www.youtube.com/channel/UCCZgos_YAJSXm5QX5D5Wkcw/videos?view=0&sort=p&flow=grid) -[![forum](https://img.shields.io/badge/forum-up-green)](https://forum.celo.org) -[![Discord](https://img.shields.io/discord/600834479145353243.svg)](https://discord.gg/RfHQKtY) -[![Twitter CeloDevs](https://img.shields.io/twitter/follow/celodevs?style=social)](https://twitter.com/celodevs) -[![Twitter CeloOrg](https://img.shields.io/twitter/follow/celoorg?style=social)](https://twitter.com/CeloOrg) -[![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/CeloHQ?style=social)](https://www.reddit.com/r/CeloHQ/) - - - -[![GitHub pull requests by-label](https://img.shields.io/github/issues-pr-raw/celo-org/celo-monorepo)](https://github.com/celo-org/celo-monorepo/pulls) -[![GitHub Issues](https://img.shields.io/github/issues-raw/celo-org/celo-monorepo.svg)](https://github.com/celo-org/celo-monorepo/issues) -[![GitHub issues by-label](https://img.shields.io/github/issues/celo-org/celo-monorepo/1%20hour%20tasks)](https://github.com/celo-org/celo-monorepo/issues?q=is%3Aopen+is%3Aissue+label%3A%221+hour+tasks%22) -[![GitHub issues by-label](https://img.shields.io/github/issues/celo-org/celo-monorepo/betanet-phase-2)](https://github.com/celo-org/celo-monorepo/issues?q=is%3Aopen+is%3Aissue+label%3Abetanet-phase-2) -[![GitHub issues by-label](https://img.shields.io/github/issues/celo-org/celo-monorepo/betanet-phase-3)](https://github.com/celo-org/celo-monorepo/issues?q=is%3Aopen+is%3Aissue+label%3Abetanet-phase-3) - -Contents: - - - -- [Celo's Mission - Prosperity for All](#mission) -- [The Celo Stack](#stack) -- [Documentation](#docs) -- [Issues](#issues) -- [Repo Structure](#repo) -- [Contributing](#contributing) -- [Ask Questions, Find Answers, Get in Touch](#ask) -- [License](#license) - - -## 🥅 Celo's Mission - Prosperity for All - -Celo, pronounced /ˈtselo/, means ‘purpose’ in Esperanto. In a similar spirit, we are aiming to create a new platform to connect people globally and bring financial stability to those who need it most. We believe blockchain technology is one of the most exciting innovations in recent history and as a community we look to push the boundaries of what is possible with it today. More importantly, we are driven by purpose -- to solve real-world problems such as lack of access to sound currency, or friction for cash-transfer programs aimed to alleviate poverty. Our mission is to build a monetary system that creates the conditions for prosperity for all. - - -

- - Play on Youtube - What if money were beautiful - -
- What if money were beautiful? -

- -## 🧱 The Celo Stack - -Celo is oriented around providing the simplest possible experience for end users, who may have no familiarity with cryptocurrencies, and may be using low cost devices with limited connectivity. To achieve this, the project takes a full-stack approach, where each layer of the stack is designed with the end user in mind whilst considering other stakeholders \(e.g. operators of nodes in the network\) involved in enabling the end user experience. - -The Celo stack is structured into the following logical layers: - - -

- Celo protocol -
- The Celo Blockchain and Celo Core Contracts together comprise the Celo Protocol -

- -- **Celo Blockchain**: An open cryptographic protocol that allows applications to make transactions with and run smart contracts in a secure and decentralized fashion. The Celo Blockchain has shared ancestry with [Ethereum](https://www.ethereum.org), and maintains full EVM compatibility for smart contracts. However it uses a [Byzantine Fault Tolerant](http://pmg.csail.mit.edu/papers/osdi99.pdf) \(BFT\) consensus mechanism rather than Proof of Work, and has different block format, transaction format, client synchronization protocols, and gas payment and pricing mechanisms. The network’s native asset is Celo Gold, exposed via an ERC-20 interface. - -- **Celo Core Contracts**: A set of smart contracts running on the Celo Blockchain that comprise much of the logic of the platform features including ERC-20 stable currencies, identity attestations, Proof of Stake and governance. These smart contracts are upgradeable and managed by the decentralized governance process. - - -

- Celo network -
- Topology of a Celo Network -

- -- **Applications:** Applications for end users built on the Celo platform. The Celo Wallet app, the first of an ecosystem of applications, allows end users to manage accounts and make payments securely and simply by taking advantage of the innovations in the Celo protocol. Applications take the form of external mobile or backend software: they interact with the Celo Blockchain to issue transactions and invoke code that forms the Celo Core Contracts’ API. Third parties can also deploy custom smart contracts that their own applications can invoke, which in turn can leverage Celo Core Contracts. Applications may use centralized cloud services to provide some of their functionality: in the case of the Celo Wallet, push notifications and a transaction activity feed. - -## 📚 Documentation - -Follow the instructions in [SETUP.md](SETUP.md) to get a development environment set up. - -See [Developer's Guide](https://docs.celo.org/) for full details about the design of the Celo protocol and other information about running these projects. - -## 🙋 Issues - -See the [issue backlog](https://github.com/celo-org/celo-monorepo/issues) for a list of active or proposed tasks. Feel free to create new issues to report bugs and/or request features. - -## 📂 Repo Structure - -The repository has the following packages (sub projects): - -- [attestation-service](packages/attestation-service) - service run by validators on the Celo network to send SMS messages, enabling attestations of user phone numbers and their accounts on the Celo network -- [celotool](packages/celotool) - scripts for deploying and managing testnets -- [cli](packages/cli) - tool that uses ContractKit to interact with the Celo protocol ([docs](https://docs.celo.org/command-line-interface/introduction)) -- [sdk/contractkit](packages/sdk/contractkit) - library to help developers and validators interact with the protocol and it's smart contracts ([docs](https://docs.celo.org/celo-sdk/contractkit)) -- [dev-utils](packages/dev-utils) - a utils package for use as a dev dependency -- [docs](packages/docs) - technical documentation for the Celo project ([live](https://docs.celo.org/)) -- [helm-charts](packages/helm-charts) - templatized deployments of entire environments to Kubernetes clusters -- [protocol](packages/protocol) - identity, stability and other smart contracts for the Celo protocol ([docs](https://docs.celo.org/celo-codebase/protocol)) -- [typescript](packages/typescript) - no README available (improve?) -- [utils](packages/utils) - no README available (improve?) - -Code owners for each package can be found in [.github/CODEOWNERS](.github/CODEOWNERS). - -## ✍️ Contributing - -Feel free to jump on the Celo 🚂🚋🚋🚋. Improvements and contributions are highly encouraged! 🙏👊 - -See the [contributing guide](https://docs.celo.org/community/contributing) for details on how to participate. -[![GitHub issues by-label](https://img.shields.io/github/issues/celo-org/celo-monorepo/1%20hour%20tasks)](https://github.com/celo-org/celo-monorepo/issues?q=is%3Aopen+is%3Aissue+label%3A%221+hour+tasks%22) - -All communication and contributions to the Celo project are subject to the [Celo Code of Conduct](https://celo.org/code-of-conduct). - -Not yet ready to contribute but do like the project? Support Celo with a ⭐ or share the love in a [![Twitter URL](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fcelo.org%2F)](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DkKggE5OvyhE&via=celohq&text=Checkout%20celo%21%20Love%20what%20they%20are%20building.&hashtags=celo) - - - -## 💬 Ask Questions, Find Answers, Get in Touch - -- [Website](https://celo.org/) -- [Docs](https://docs.celo.org/) -- [Blog](https://medium.com/celohq) -- [YouTube](https://www.youtube.com/channel/UCCZgos_YAJSXm5QX5D5Wkcw/videos?view=0&sort=p&flow=grid) -- [Forum](https://forum.celo.org) -- [Discord](https://discord.gg/vRbExjv) -- [Twitter](https://twitter.com/CeloDevs) -- [Reddit](https://www.reddit.com/r/CeloHQ/) -- [Community Events](https://celo.org/community) - -## 📜 License - -All packages are licensed under the terms of the [Apache 2.0 License](LICENSE) unless otherwise specified in the LICENSE file at package's root. diff --git a/packages/docs/developer-resources/utils/reference/SUMMARY.md b/packages/docs/developer-resources/utils/reference/SUMMARY.md deleted file mode 100644 index 1884115503b..00000000000 --- a/packages/docs/developer-resources/utils/reference/SUMMARY.md +++ /dev/null @@ -1,13 +0,0 @@ -* [Globals](globals.md) -* [Modules]() - * [countries](modules/_countries_.md) - * [Countries](classes/_countries_.countries.md) - * [LocalizedCountry](interfaces/_countries_.localizedcountry.md) - * [data/countries/es/country](modules/_data_countries_es_country_.md) - * [inputValidation](modules/_inputvalidation_.md) - * [io](modules/_io_.md) - * [phoneNumbers](modules/_phonenumbers_.md) -* [Classes]() - * [Countries](classes/_countries_.countries.md) -* [Interfaces]() - * [LocalizedCountry](interfaces/_countries_.localizedcountry.md) \ No newline at end of file diff --git a/packages/docs/developer-resources/utils/reference/classes/_countries_.countries.md b/packages/docs/developer-resources/utils/reference/classes/_countries_.countries.md deleted file mode 100644 index e436fc9b6f7..00000000000 --- a/packages/docs/developer-resources/utils/reference/classes/_countries_.countries.md +++ /dev/null @@ -1,111 +0,0 @@ -# Class: Countries - -## Hierarchy - -* **Countries** - -## Index - -### Constructors - -* [constructor](_countries_.countries.md#constructor) - -### Properties - -* [countryMap](_countries_.countries.md#countrymap) -* [language](_countries_.countries.md#language) -* [localizedCountries](_countries_.countries.md#localizedcountries) - -### Methods - -* [getCountry](_countries_.countries.md#getcountry) -* [getCountryByCodeAlpha2](_countries_.countries.md#getcountrybycodealpha2) -* [getFilteredCountries](_countries_.countries.md#getfilteredcountries) - -## Constructors - -### constructor - -\+ **new Countries**(`language?`: undefined | string): *[Countries](_countries_.countries.md)* - -*Defined in [countries.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L40)* - -**Parameters:** - -Name | Type | ------- | ------ | -`language?` | undefined | string | - -**Returns:** *[Countries](_countries_.countries.md)* - -## Properties - -### countryMap - -• **countryMap**: *Map‹string, [LocalizedCountry](../interfaces/_countries_.localizedcountry.md)›* - -*Defined in [countries.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L39)* - -___ - -### language - -• **language**: *string* - -*Defined in [countries.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L38)* - -___ - -### localizedCountries - -• **localizedCountries**: *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md)[]* - -*Defined in [countries.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L40)* - -## Methods - -### getCountry - -▸ **getCountry**(`countryName?`: string | null): *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md) | undefined* - -*Defined in [countries.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L50)* - -**Parameters:** - -Name | Type | ------- | ------ | -`countryName?` | string | null | - -**Returns:** *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md) | undefined* - -___ - -### getCountryByCodeAlpha2 - -▸ **getCountryByCodeAlpha2**(`countryCode`: string): *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md) | undefined* - -*Defined in [countries.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L60)* - -**Parameters:** - -Name | Type | ------- | ------ | -`countryCode` | string | - -**Returns:** *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md) | undefined* - -___ - -### getFilteredCountries - -▸ **getFilteredCountries**(`query`: string): *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md)[]* - -*Defined in [countries.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L64)* - -**Parameters:** - -Name | Type | ------- | ------ | -`query` | string | - -**Returns:** *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md)[]* diff --git a/packages/docs/developer-resources/utils/reference/globals.md b/packages/docs/developer-resources/utils/reference/globals.md deleted file mode 100644 index e2070222e31..00000000000 --- a/packages/docs/developer-resources/utils/reference/globals.md +++ /dev/null @@ -1,11 +0,0 @@ -# @celo/phone-utils - -## Index - -### Modules - -* ["countries"](modules/_countries_.md) -* ["data/countries/es/country"](modules/_data_countries_es_country_.md) -* ["inputValidation"](modules/_inputvalidation_.md) -* ["io"](modules/_io_.md) -* ["phoneNumbers"](modules/_phonenumbers_.md) diff --git a/packages/docs/developer-resources/utils/reference/interfaces/_countries_.localizedcountry.md b/packages/docs/developer-resources/utils/reference/interfaces/_countries_.localizedcountry.md deleted file mode 100644 index c7747a0fcc2..00000000000 --- a/packages/docs/developer-resources/utils/reference/interfaces/_countries_.localizedcountry.md +++ /dev/null @@ -1,63 +0,0 @@ -# Interface: LocalizedCountry - -## Hierarchy - -* object - - ↳ **LocalizedCountry** - -## Index - -### Properties - -* [countryCallingCode](_countries_.localizedcountry.md#countrycallingcode) -* [countryPhonePlaceholder](_countries_.localizedcountry.md#countryphoneplaceholder) -* [displayName](_countries_.localizedcountry.md#displayname) -* [displayNameNoDiacritics](_countries_.localizedcountry.md#displaynamenodiacritics) -* [names](_countries_.localizedcountry.md#names) - -## Properties - -### countryCallingCode - -• **countryCallingCode**: *string* - -*Defined in [countries.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L18)* - -___ - -### countryPhonePlaceholder - -• **countryPhonePlaceholder**: *object* - -*Defined in [countries.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L14)* - -#### Type declaration: - -* **international**? : *string | undefined* - -* **national**? : *string | undefined* - -___ - -### displayName - -• **displayName**: *string* - -*Defined in [countries.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L11)* - -___ - -### displayNameNoDiacritics - -• **displayNameNoDiacritics**: *string* - -*Defined in [countries.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L12)* - -___ - -### names - -• **names**: *CountryNames* - -*Defined in [countries.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L13)* diff --git a/packages/docs/developer-resources/utils/reference/modules/_countries_.md b/packages/docs/developer-resources/utils/reference/modules/_countries_.md deleted file mode 100644 index 8de832cfac6..00000000000 --- a/packages/docs/developer-resources/utils/reference/modules/_countries_.md +++ /dev/null @@ -1,11 +0,0 @@ -# Module: "countries" - -## Index - -### Classes - -* [Countries](../classes/_countries_.countries.md) - -### Interfaces - -* [LocalizedCountry](../interfaces/_countries_.localizedcountry.md) diff --git a/packages/docs/developer-resources/utils/reference/modules/_data_countries_es_country_.md b/packages/docs/developer-resources/utils/reference/modules/_data_countries_es_country_.md deleted file mode 100644 index 5ffe13dfaf0..00000000000 --- a/packages/docs/developer-resources/utils/reference/modules/_data_countries_es_country_.md +++ /dev/null @@ -1,3 +0,0 @@ -# Module: "data/countries/es/country" - - diff --git a/packages/docs/developer-resources/utils/reference/modules/_inputvalidation_.md b/packages/docs/developer-resources/utils/reference/modules/_inputvalidation_.md deleted file mode 100644 index 754e49767b6..00000000000 --- a/packages/docs/developer-resources/utils/reference/modules/_inputvalidation_.md +++ /dev/null @@ -1,42 +0,0 @@ -# Module: "inputValidation" - -## Index - -### Functions - -* [validateInput](_inputvalidation_.md#validateinput) -* [validatePhone](_inputvalidation_.md#validatephone) - -## Functions - -### validateInput - -▸ **validateInput**(`input`: string, `props`: BaseProps): *string* - -*Defined in [inputValidation.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/inputValidation.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | -`props` | BaseProps | - -**Returns:** *string* - -___ - -### validatePhone - -▸ **validatePhone**(`input`: string, `countryCallingCode?`: undefined | string): *string* - -*Defined in [inputValidation.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/inputValidation.ts#L4)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | -`countryCallingCode?` | undefined | string | - -**Returns:** *string* diff --git a/packages/docs/developer-resources/utils/reference/modules/_io_.md b/packages/docs/developer-resources/utils/reference/modules/_io_.md deleted file mode 100644 index 95c8a900d42..00000000000 --- a/packages/docs/developer-resources/utils/reference/modules/_io_.md +++ /dev/null @@ -1,318 +0,0 @@ -# Module: "io" - -## Index - -### References - -* [URL_REGEX](_io_.md#url_regex) -* [isValidUrl](_io_.md#isvalidurl) - -### Type aliases - -* [Address](_io_.md#address) -* [AttestationRequest](_io_.md#attestationrequest) -* [AttestationResponse](_io_.md#attestationresponse) -* [AttestationServiceTestRequest](_io_.md#attestationservicetestrequest) -* [E164Number](_io_.md#e164number) -* [GetAttestationRequest](_io_.md#getattestationrequest) -* [Signature](_io_.md#signature) - -### Variables - -* [AddressType](_io_.md#const-addresstype) -* [AttestationRequestType](_io_.md#const-attestationrequesttype) -* [AttestationResponseType](_io_.md#const-attestationresponsetype) -* [AttestationServiceStatusResponseType](_io_.md#const-attestationservicestatusresponsetype) -* [AttestationServiceTestRequestType](_io_.md#const-attestationservicetestrequesttype) -* [E164PhoneNumberType](_io_.md#const-e164phonenumbertype) -* [GetAttestationRequestType](_io_.md#const-getattestationrequesttype) -* [JSONStringType](_io_.md#const-jsonstringtype) -* [PublicKeyType](_io_.md#const-publickeytype) -* [SaltType](_io_.md#const-salttype) -* [SignatureType](_io_.md#const-signaturetype) -* [UrlType](_io_.md#const-urltype) - -## References - -### URL_REGEX - -• **URL_REGEX**: - -___ - -### isValidUrl - -• **isValidUrl**: - -## Type aliases - -### Address - -Ƭ **Address**: *t.TypeOf‹typeof AddressType›* - -*Defined in [io.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L105)* - -___ - -### AttestationRequest - -Ƭ **AttestationRequest**: *t.TypeOf‹typeof AttestationRequestType›* - -*Defined in [io.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L120)* - -___ - -### AttestationResponse - -Ƭ **AttestationResponse**: *t.TypeOf‹typeof AttestationResponseType›* - -*Defined in [io.ts:166](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L166)* - -___ - -### AttestationServiceTestRequest - -Ƭ **AttestationServiceTestRequest**: *t.TypeOf‹typeof AttestationServiceTestRequestType›* - -*Defined in [io.ts:102](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L102)* - -___ - -### E164Number - -Ƭ **E164Number**: *t.TypeOf‹typeof E164PhoneNumberType›* - -*Defined in [io.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L106)* - -___ - -### GetAttestationRequest - -Ƭ **GetAttestationRequest**: *t.TypeOf‹typeof GetAttestationRequestType›* - -*Defined in [io.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L132)* - -___ - -### Signature - -Ƭ **Signature**: *t.TypeOf‹typeof SignatureType›* - -*Defined in [io.ts:104](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L104)* - -## Variables - -### `Const` AddressType - -• **AddressType**: *Type‹string, string, unknown›* = new t.Type( - 'Address', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - isValidAddress(stringValue) - ? t.success(toChecksumAddress(stringValue)) - : t.failure(stringValue, context, 'is not a valid address') - ), - String -) - -*Defined in [io.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L51)* - -___ - -### `Const` AttestationRequestType - -• **AttestationRequestType**: *TypeC‹object›* = t.type({ - phoneNumber: E164PhoneNumberType, - account: AddressType, - issuer: AddressType, - // io-ts way of defining optional key-value pair - salt: t.union([t.undefined, SaltType]), - smsRetrieverAppSig: t.union([t.undefined, t.string]), - // if specified, the message sent will be short random number prefixed by this string - securityCodePrefix: t.union([t.undefined, t.string]), - language: t.union([t.undefined, t.string]), -}) - -*Defined in [io.ts:108](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L108)* - -___ - -### `Const` AttestationResponseType - -• **AttestationResponseType**: *TypeC‹object›* = t.type({ - // Always returned in 1.0.x - success: t.boolean, - - // Returned for errors in 1.0.x - error: t.union([t.undefined, t.string]), - - // Stringifyed JSON dict of dicts, mapping attempt to error info. - errors: t.union([t.undefined, t.string]), - - // Returned for successful send in 1.0.x - provider: t.union([t.undefined, t.string]), - - // New fields - identifier: t.union([t.undefined, t.string]), - account: t.union([t.undefined, AddressType]), - issuer: t.union([t.undefined, AddressType]), - status: t.union([t.undefined, t.string]), - attempt: t.union([t.undefined, t.number]), - countryCode: t.union([t.undefined, t.string]), - - // Time to receive eventual delivery/failure (inc retries) - duration: t.union([t.undefined, t.number]), - - // Only used by test endpoint to return randomly generated salt. - // Never return a user-supplied salt. - salt: t.union([t.undefined, t.string]), - - // only returned if the request supplied the correct security code - attestationCode: t.union([t.undefined, t.string]), -}) - -*Defined in [io.ts:134](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L134)* - -___ - -### `Const` AttestationServiceStatusResponseType - -• **AttestationServiceStatusResponseType**: *TypeC‹object›* = t.type({ - status: t.literal('ok'), - smsProviders: t.array(t.string), - blacklistedRegionCodes: t.union([t.array(t.string), t.undefined]), - accountAddress: AddressType, - signature: t.union([SignatureType, t.undefined]), - version: t.string, - latestBlock: t.number, - ageOfLatestBlock: t.number, - isNodeSyncing: t.boolean, - appSignature: t.string, - smsProvidersRandomized: t.boolean, - maxDeliveryAttempts: t.number, - maxRerequestMins: t.number, - twilioVerifySidProvided: t.boolean, -}) - -*Defined in [io.ts:79](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L79)* - -___ - -### `Const` AttestationServiceTestRequestType - -• **AttestationServiceTestRequestType**: *TypeC‹object›* = t.type({ - phoneNumber: E164PhoneNumberType, - message: t.string, - signature: SignatureType, - provider: t.union([t.string, t.undefined]), -}) - -*Defined in [io.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L96)* - -___ - -### `Const` E164PhoneNumberType - -• **E164PhoneNumberType**: *Type‹string, string, unknown›* = new t.Type( - 'E164Number', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - isE164NumberStrict(stringValue) - ? t.success(stringValue) - : t.failure(stringValue, context, 'is not a valid e164 number') - ), - String -) - -*Defined in [io.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L39)* - -___ - -### `Const` GetAttestationRequestType - -• **GetAttestationRequestType**: *TypeC‹object›* = t.type({ - phoneNumber: E164PhoneNumberType, - account: AddressType, - issuer: AddressType, - // io-ts way of defining optional key-value pair - salt: t.union([t.undefined, SaltType]), - // if the value supplied matches the stored security code, the response will include the complete message - securityCode: t.union([t.undefined, t.string]), -}) - -*Defined in [io.ts:122](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L122)* - -___ - -### `Const` JSONStringType - -• **JSONStringType**: *Type‹string, string, unknown›* = new t.Type( - 'JSONString', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => { - try { - JSON.parse(stringValue) - return t.success(stringValue) - } catch (error) { - return t.failure(stringValue, context, 'can not be parsed as JSON') - } - }), - String -) - -*Defined in [io.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L24)* - -___ - -### `Const` PublicKeyType - -• **PublicKeyType**: *Type‹string, string, unknown›* = new t.Type( - 'Public Key', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - stringValue.startsWith('0x') && isValidPublic(Buffer.from(stringValue.slice(2), 'hex'), true) - ? t.success(toChecksumAddress(stringValue)) - : t.failure(stringValue, context, 'is not a valid public key') - ), - String -) - -*Defined in [io.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L63)* - -___ - -### `Const` SaltType - -• **SaltType**: *StringC‹›* = t.string - -*Defined in [io.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L77)* - -___ - -### `Const` SignatureType - -• **SignatureType**: *StringC‹›* = t.string - -*Defined in [io.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L75)* - -___ - -### `Const` UrlType - -• **UrlType**: *Type‹string, string, unknown›* = new t.Type( - 'Url', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - URL_REGEX.test(stringValue) - ? t.success(stringValue) - : t.failure(stringValue, context, 'is not a valid url') - ), - String -) - -*Defined in [io.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L12)* diff --git a/packages/docs/developer-resources/utils/reference/modules/_phonenumbers_.md b/packages/docs/developer-resources/utils/reference/modules/_phonenumbers_.md deleted file mode 100644 index 74cf4748f63..00000000000 --- a/packages/docs/developer-resources/utils/reference/modules/_phonenumbers_.md +++ /dev/null @@ -1,296 +0,0 @@ -# Module: "phoneNumbers" - -## Index - -### References - -* [ParsedPhoneNumber](_phonenumbers_.md#parsedphonenumber) -* [anonymizedPhone](_phonenumbers_.md#anonymizedphone) -* [isE164Number](_phonenumbers_.md#ise164number) - -### Functions - -* [getCountryCode](_phonenumbers_.md#getcountrycode) -* [getCountryEmoji](_phonenumbers_.md#getcountryemoji) -* [getDisplayNumberInternational](_phonenumbers_.md#getdisplaynumberinternational) -* [getDisplayPhoneNumber](_phonenumbers_.md#getdisplayphonenumber) -* [getE164DisplayNumber](_phonenumbers_.md#gete164displaynumber) -* [getE164Number](_phonenumbers_.md#gete164number) -* [getExampleNumber](_phonenumbers_.md#getexamplenumber) -* [getPhoneHash](_phonenumbers_.md#const-getphonehash) -* [getRegionCode](_phonenumbers_.md#getregioncode) -* [getRegionCodeFromCountryCode](_phonenumbers_.md#getregioncodefromcountrycode) -* [isE164NumberStrict](_phonenumbers_.md#ise164numberstrict) -* [parsePhoneNumber](_phonenumbers_.md#parsephonenumber) - -### Object literals - -* [PhoneNumberUtils](_phonenumbers_.md#const-phonenumberutils) - -## References - -### ParsedPhoneNumber - -• **ParsedPhoneNumber**: - -___ - -### anonymizedPhone - -• **anonymizedPhone**: - -___ - -### isE164Number - -• **isE164Number**: - -## Functions - -### getCountryCode - -▸ **getCountryCode**(`e164PhoneNumber`: string): *undefined | null | number* - -*Defined in [phoneNumbers.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L48)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | - -**Returns:** *undefined | null | number* - -___ - -### getCountryEmoji - -▸ **getCountryEmoji**(`e164PhoneNumber`: string, `countryCodePossible?`: undefined | number, `regionCodePossible?`: undefined | string): *string* - -*Defined in [phoneNumbers.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L27)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | -`countryCodePossible?` | undefined | number | -`regionCodePossible?` | undefined | string | - -**Returns:** *string* - -___ - -### getDisplayNumberInternational - -▸ **getDisplayNumberInternational**(`e164PhoneNumber`: string): *string* - -*Defined in [phoneNumbers.ts:94](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L94)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | - -**Returns:** *string* - -___ - -### getDisplayPhoneNumber - -▸ **getDisplayPhoneNumber**(`phoneNumber`: string, `defaultCountryCode`: string): *string* - -*Defined in [phoneNumbers.ts:84](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L84)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | -`defaultCountryCode` | string | - -**Returns:** *string* - -___ - -### getE164DisplayNumber - -▸ **getE164DisplayNumber**(`e164PhoneNumber`: string): *string* - -*Defined in [phoneNumbers.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L105)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | - -**Returns:** *string* - -___ - -### getE164Number - -▸ **getE164Number**(`phoneNumber`: string, `defaultCountryCode`: string): *null | string* - -*Defined in [phoneNumbers.ts:110](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L110)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | -`defaultCountryCode` | string | - -**Returns:** *null | string* - -___ - -### getExampleNumber - -▸ **getExampleNumber**(`regionCode`: string, `useOnlyZeroes`: boolean, `isInternational`: boolean): *undefined | string* - -*Defined in [phoneNumbers.ts:247](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L247)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`regionCode` | string | - | -`useOnlyZeroes` | boolean | true | -`isInternational` | boolean | false | - -**Returns:** *undefined | string* - -___ - -### `Const` getPhoneHash - -▸ **getPhoneHash**(`phoneNumber`: string, `salt?`: undefined | string): *string* - -*Defined in [phoneNumbers.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | -`salt?` | undefined | string | - -**Returns:** *string* - -___ - -### getRegionCode - -▸ **getRegionCode**(`e164PhoneNumber`: string): *undefined | null | string* - -*Defined in [phoneNumbers.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L60)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | - -**Returns:** *undefined | null | string* - -___ - -### getRegionCodeFromCountryCode - -▸ **getRegionCodeFromCountryCode**(`countryCode`: string): *null | string* - -*Defined in [phoneNumbers.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L72)* - -**Parameters:** - -Name | Type | ------- | ------ | -`countryCode` | string | - -**Returns:** *null | string* - -___ - -### isE164NumberStrict - -▸ **isE164NumberStrict**(`phoneNumber`: string): *boolean* - -*Defined in [phoneNumbers.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L120)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | - -**Returns:** *boolean* - -___ - -### parsePhoneNumber - -▸ **parsePhoneNumber**(`phoneNumberRaw`: string, `defaultCountryCode?`: undefined | string): *ParsedPhoneNumber | null* - -*Defined in [phoneNumbers.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L132)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumberRaw` | string | -`defaultCountryCode?` | undefined | string | - -**Returns:** *ParsedPhoneNumber | null* - -## Object literals - -### `Const` PhoneNumberUtils - -### ▪ **PhoneNumberUtils**: *object* - -*Defined in [phoneNumbers.ts:275](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L275)* - -### getCountryCode - -• **getCountryCode**: *[getCountryCode](_phonenumbers_.md#getcountrycode)* - -*Defined in [phoneNumbers.ts:277](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L277)* - -### getDisplayPhoneNumber - -• **getDisplayPhoneNumber**: *[getDisplayPhoneNumber](_phonenumbers_.md#getdisplayphonenumber)* - -*Defined in [phoneNumbers.ts:279](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L279)* - -### getE164Number - -• **getE164Number**: *[getE164Number](_phonenumbers_.md#gete164number)* - -*Defined in [phoneNumbers.ts:280](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L280)* - -### getPhoneHash - -• **getPhoneHash**: *getPhoneHash* - -*Defined in [phoneNumbers.ts:276](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L276)* - -### getRegionCode - -• **getRegionCode**: *[getRegionCode](_phonenumbers_.md#getregioncode)* - -*Defined in [phoneNumbers.ts:278](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L278)* - -### isE164Number - -• **isE164Number**: *isE164Number* - -*Defined in [phoneNumbers.ts:281](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L281)* - -### parsePhoneNumber - -• **parsePhoneNumber**: *[parsePhoneNumber](_phonenumbers_.md#parsephonenumber)* - -*Defined in [phoneNumbers.ts:282](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L282)* diff --git a/packages/docs/sdk/docs/README.md b/packages/docs/sdk/docs/README.md deleted file mode 100644 index ac2255c9c07..00000000000 --- a/packages/docs/sdk/docs/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Celo SDK Reference Documentation - -## Package List - -You can find more information about the specific packages at the following links: - -- [Base](./base) -- [Connect](./connect) -- [ContractKit](./contractkit) -- [Explorer](./explorer) -- [Governance](./governance) -- [Keystores](./keystores) -- [Network Utils](./network-utils) -- [Phone Utils](./phone-utils) -- [Transactions Uri](./transactions-uri) -- [Utils](./utils) -- [Wallet-base](./wallet-base) -- [Wallet-HSM](./wallet-hsm) -- [Wallet-HSM-AWS](./wallet-hsm-aws) -- [Wallet-HSM-Azure](./wallet-hsm-azure) -- [Wallet-ledger](./wallet-ledger) -- [Wallet-local](./wallet-local) -- [Wallet-remote](./wallet-remote) -- [Wallet-rpc](./wallet-rpc) - -## Celo Project - -You can find the full Celo documentation at [https://docs.celo.org](https://docs.celo.org). - -You can find the main project site at [https://celo.org](https://celo.org/). - -You can find the Celo project repsitories on the [celo-org page](https://github.com/celo-org) on Github. - -## 📜 License - -All packages are licensed under the terms of the [Apache 2.0 License](LICENSE) unless otherwise specified in the LICENSE file at package's root. diff --git a/packages/docs/sdk/docs/base/README.md b/packages/docs/sdk/docs/base/README.md deleted file mode 100644 index 6d98025438e..00000000000 --- a/packages/docs/sdk/docs/base/README.md +++ /dev/null @@ -1,27 +0,0 @@ -[@celo/base](README.md) - -# @celo/base - -## Index - -### Modules - -* ["account"](modules/_account_.md) -* ["address"](modules/_address_.md) -* ["async"](modules/_async_.md) -* ["attestations"](modules/_attestations_.md) -* ["collections"](modules/_collections_.md) -* ["contacts"](modules/_contacts_.md) -* ["currencies"](modules/_currencies_.md) -* ["displayFormatting"](modules/_displayformatting_.md) -* ["future"](modules/_future_.md) -* ["inputValidation"](modules/_inputvalidation_.md) -* ["io"](modules/_io_.md) -* ["lock"](modules/_lock_.md) -* ["logger"](modules/_logger_.md) -* ["parsing"](modules/_parsing_.md) -* ["phoneNumbers"](modules/_phonenumbers_.md) -* ["result"](modules/_result_.md) -* ["signatureUtils"](modules/_signatureutils_.md) -* ["string"](modules/_string_.md) -* ["task"](modules/_task_.md) diff --git a/packages/docs/sdk/docs/base/classes/_future_.future.md b/packages/docs/sdk/docs/base/classes/_future_.future.md deleted file mode 100644 index f30ca11f35d..00000000000 --- a/packages/docs/sdk/docs/base/classes/_future_.future.md +++ /dev/null @@ -1,113 +0,0 @@ -[@celo/base](../README.md) › ["future"](../modules/_future_.md) › [Future](_future_.future.md) - -# Class: Future <**T**> - -**`internal`** - -## Type parameters - -▪ **T** - -## Hierarchy - -* **Future** - -## Index - -### Constructors - -* [constructor](_future_.future.md#constructor) - -### Accessors - -* [error](_future_.future.md#error) -* [finished](_future_.future.md#finished) - -### Methods - -* [asPromise](_future_.future.md#aspromise) -* [reject](_future_.future.md#reject) -* [resolve](_future_.future.md#resolve) -* [wait](_future_.future.md#wait) - -## Constructors - -### constructor - -\+ **new Future**(): *[Future](_future_.future.md)* - -*Defined in [packages/sdk/base/src/future.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/future.ts#L8)* - -**Returns:** *[Future](_future_.future.md)* - -## Accessors - -### error - -• **get error**(): *any* - -*Defined in [packages/sdk/base/src/future.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/future.ts#L21)* - -**Returns:** *any* - -___ - -### finished - -• **get finished**(): *boolean* - -*Defined in [packages/sdk/base/src/future.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/future.ts#L17)* - -**Returns:** *boolean* - -## Methods - -### asPromise - -▸ **asPromise**(): *Promise‹T›* - -*Defined in [packages/sdk/base/src/future.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/future.ts#L41)* - -**Returns:** *Promise‹T›* - -___ - -### reject - -▸ **reject**(`error`: any): *void* - -*Defined in [packages/sdk/base/src/future.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/future.ts#L31)* - -**Parameters:** - -Name | Type | ------- | ------ | -`error` | any | - -**Returns:** *void* - -___ - -### resolve - -▸ **resolve**(`value`: T): *void* - -*Defined in [packages/sdk/base/src/future.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/future.ts#L25)* - -**Parameters:** - -Name | Type | ------- | ------ | -`value` | T | - -**Returns:** *void* - -___ - -### wait - -▸ **wait**(): *Promise‹T›* - -*Defined in [packages/sdk/base/src/future.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/future.ts#L37)* - -**Returns:** *Promise‹T›* diff --git a/packages/docs/sdk/docs/base/classes/_lock_.lock.md b/packages/docs/sdk/docs/base/classes/_lock_.lock.md deleted file mode 100644 index 04772ef67f9..00000000000 --- a/packages/docs/sdk/docs/base/classes/_lock_.lock.md +++ /dev/null @@ -1,59 +0,0 @@ -[@celo/base](../README.md) › ["lock"](../modules/_lock_.md) › [Lock](_lock_.lock.md) - -# Class: Lock - -## Hierarchy - -* **Lock** - -## Index - -### Constructors - -* [constructor](_lock_.lock.md#constructor) - -### Methods - -* [acquire](_lock_.lock.md#acquire) -* [release](_lock_.lock.md#release) -* [tryAcquire](_lock_.lock.md#tryacquire) - -## Constructors - -### constructor - -\+ **new Lock**(): *[Lock](_lock_.lock.md)* - -*Defined in [packages/sdk/base/src/lock.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/lock.ts#L12)* - -**Returns:** *[Lock](_lock_.lock.md)* - -## Methods - -### acquire - -▸ **acquire**(): *Promise‹void›* - -*Defined in [packages/sdk/base/src/lock.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/lock.ts#L29)* - -**Returns:** *Promise‹void›* - -___ - -### release - -▸ **release**(): *void* - -*Defined in [packages/sdk/base/src/lock.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/lock.ts#L54)* - -**Returns:** *void* - -___ - -### tryAcquire - -▸ **tryAcquire**(): *boolean* - -*Defined in [packages/sdk/base/src/lock.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/lock.ts#L20)* - -**Returns:** *boolean* diff --git a/packages/docs/sdk/docs/base/classes/_result_.jsonparseerror.md b/packages/docs/sdk/docs/base/classes/_result_.jsonparseerror.md deleted file mode 100644 index 05c5eb19199..00000000000 --- a/packages/docs/sdk/docs/base/classes/_result_.jsonparseerror.md +++ /dev/null @@ -1,95 +0,0 @@ -[@celo/base](../README.md) › ["result"](../modules/_result_.md) › [JSONParseError](_result_.jsonparseerror.md) - -# Class: JSONParseError - -## Hierarchy - - ↳ [RootError](_result_.rooterror.md)‹string› - - ↳ **JSONParseError** - -## Implements - -* [BaseError](../interfaces/_result_.baseerror.md)‹string› - -## Index - -### Constructors - -* [constructor](_result_.jsonparseerror.md#constructor) - -### Properties - -* [error](_result_.jsonparseerror.md#readonly-error) -* [errorType](_result_.jsonparseerror.md#readonly-errortype) -* [message](_result_.jsonparseerror.md#message) -* [name](_result_.jsonparseerror.md#name) -* [stack](_result_.jsonparseerror.md#optional-stack) - -## Constructors - -### constructor - -\+ **new JSONParseError**(`error`: [Error](_result_.rooterror.md#static-error)): *[JSONParseError](_result_.jsonparseerror.md)* - -*Overrides [RootError](_result_.rooterror.md).[constructor](_result_.rooterror.md#constructor)* - -*Defined in [packages/sdk/base/src/result.ts:79](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L79)* - -**Parameters:** - -Name | Type | ------- | ------ | -`error` | [Error](_result_.rooterror.md#static-error) | - -**Returns:** *[JSONParseError](_result_.jsonparseerror.md)* - -## Properties - -### `Readonly` error - -• **error**: *[Error](_result_.rooterror.md#static-error)* - -*Defined in [packages/sdk/base/src/result.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L80)* - -___ - -### `Readonly` errorType - -• **errorType**: *string* - -*Implementation of [BaseError](../interfaces/_result_.baseerror.md).[errorType](../interfaces/_result_.baseerror.md#errortype)* - -*Inherited from [RootError](_result_.rooterror.md).[errorType](_result_.rooterror.md#readonly-errortype)* - -*Defined in [packages/sdk/base/src/result.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L67)* - -___ - -### message - -• **message**: *string* - -*Inherited from [RootError](_result_.rooterror.md).[message](_result_.rooterror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [RootError](_result_.rooterror.md).[name](_result_.rooterror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [RootError](_result_.rooterror.md).[stack](_result_.rooterror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/base/classes/_result_.rooterror.md b/packages/docs/sdk/docs/base/classes/_result_.rooterror.md deleted file mode 100644 index c8839b93026..00000000000 --- a/packages/docs/sdk/docs/base/classes/_result_.rooterror.md +++ /dev/null @@ -1,99 +0,0 @@ -[@celo/base](../README.md) › ["result"](../modules/_result_.md) › [RootError](_result_.rooterror.md) - -# Class: RootError <**T**> - -## Type parameters - -▪ **T** - -## Hierarchy - -* [Error](_result_.rooterror.md#static-error) - - ↳ **RootError** - - ↳ [JSONParseError](_result_.jsonparseerror.md) - -## Implements - -* [BaseError](../interfaces/_result_.baseerror.md)‹T› - -## Index - -### Constructors - -* [constructor](_result_.rooterror.md#constructor) - -### Properties - -* [errorType](_result_.rooterror.md#readonly-errortype) -* [message](_result_.rooterror.md#message) -* [name](_result_.rooterror.md#name) -* [stack](_result_.rooterror.md#optional-stack) -* [Error](_result_.rooterror.md#static-error) - -## Constructors - -### constructor - -\+ **new RootError**(`errorType`: T): *[RootError](_result_.rooterror.md)* - -*Defined in [packages/sdk/base/src/result.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L66)* - -**Parameters:** - -Name | Type | ------- | ------ | -`errorType` | T | - -**Returns:** *[RootError](_result_.rooterror.md)* - -## Properties - -### `Readonly` errorType - -• **errorType**: *T* - -*Implementation of [BaseError](../interfaces/_result_.baseerror.md).[errorType](../interfaces/_result_.baseerror.md#errortype)* - -*Defined in [packages/sdk/base/src/result.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L67)* - -___ - -### message - -• **message**: *string* - -*Inherited from [RootError](_result_.rooterror.md).[message](_result_.rooterror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [RootError](_result_.rooterror.md).[name](_result_.rooterror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [RootError](_result_.rooterror.md).[stack](_result_.rooterror.md#optional-stack)* - -*Overrides [RootError](_result_.rooterror.md).[stack](_result_.rooterror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 - -___ - -### `Static` Error - -▪ **Error**: *ErrorConstructor* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:984 diff --git a/packages/docs/sdk/docs/base/enums/_account_.mnemoniclanguages.md b/packages/docs/sdk/docs/base/enums/_account_.mnemoniclanguages.md deleted file mode 100644 index 49bc1034949..00000000000 --- a/packages/docs/sdk/docs/base/enums/_account_.mnemoniclanguages.md +++ /dev/null @@ -1,89 +0,0 @@ -[@celo/base](../README.md) › ["account"](../modules/_account_.md) › [MnemonicLanguages](_account_.mnemoniclanguages.md) - -# Enumeration: MnemonicLanguages - -## Index - -### Enumeration members - -* [chinese_simplified](_account_.mnemoniclanguages.md#chinese_simplified) -* [chinese_traditional](_account_.mnemoniclanguages.md#chinese_traditional) -* [english](_account_.mnemoniclanguages.md#english) -* [french](_account_.mnemoniclanguages.md#french) -* [italian](_account_.mnemoniclanguages.md#italian) -* [japanese](_account_.mnemoniclanguages.md#japanese) -* [korean](_account_.mnemoniclanguages.md#korean) -* [portuguese](_account_.mnemoniclanguages.md#portuguese) -* [spanish](_account_.mnemoniclanguages.md#spanish) - -## Enumeration members - -### chinese_simplified - -• **chinese_simplified**: - -*Defined in [packages/sdk/base/src/account.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L9)* - -___ - -### chinese_traditional - -• **chinese_traditional**: - -*Defined in [packages/sdk/base/src/account.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L10)* - -___ - -### english - -• **english**: - -*Defined in [packages/sdk/base/src/account.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L11)* - -___ - -### french - -• **french**: - -*Defined in [packages/sdk/base/src/account.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L12)* - -___ - -### italian - -• **italian**: - -*Defined in [packages/sdk/base/src/account.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L13)* - -___ - -### japanese - -• **japanese**: - -*Defined in [packages/sdk/base/src/account.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L14)* - -___ - -### korean - -• **korean**: - -*Defined in [packages/sdk/base/src/account.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L15)* - -___ - -### portuguese - -• **portuguese**: - -*Defined in [packages/sdk/base/src/account.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L17)* - -___ - -### spanish - -• **spanish**: - -*Defined in [packages/sdk/base/src/account.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L16)* diff --git a/packages/docs/sdk/docs/base/enums/_account_.mnemonicstrength.md b/packages/docs/sdk/docs/base/enums/_account_.mnemonicstrength.md deleted file mode 100644 index 967904798cf..00000000000 --- a/packages/docs/sdk/docs/base/enums/_account_.mnemonicstrength.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/base](../README.md) › ["account"](../modules/_account_.md) › [MnemonicStrength](_account_.mnemonicstrength.md) - -# Enumeration: MnemonicStrength - -## Index - -### Enumeration members - -* [s128_12words](_account_.mnemonicstrength.md#s128_12words) -* [s256_24words](_account_.mnemonicstrength.md#s256_24words) - -## Enumeration members - -### s128_12words - -• **s128_12words**: = 128 - -*Defined in [packages/sdk/base/src/account.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L4)* - -___ - -### s256_24words - -• **s256_24words**: = 256 - -*Defined in [packages/sdk/base/src/account.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L5)* diff --git a/packages/docs/sdk/docs/base/enums/_attestations_.identifiertype.md b/packages/docs/sdk/docs/base/enums/_attestations_.identifiertype.md deleted file mode 100644 index 668ac2d51c1..00000000000 --- a/packages/docs/sdk/docs/base/enums/_attestations_.identifiertype.md +++ /dev/null @@ -1,17 +0,0 @@ -[@celo/base](../README.md) › ["attestations"](../modules/_attestations_.md) › [IdentifierType](_attestations_.identifiertype.md) - -# Enumeration: IdentifierType - -## Index - -### Enumeration members - -* [PHONE_NUMBER](_attestations_.identifiertype.md#phone_number) - -## Enumeration members - -### PHONE_NUMBER - -• **PHONE_NUMBER**: = 0 - -*Defined in [packages/sdk/base/src/attestations.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L8)* diff --git a/packages/docs/sdk/docs/base/enums/_currencies_.currency_enum.md b/packages/docs/sdk/docs/base/enums/_currencies_.currency_enum.md deleted file mode 100644 index 10a7fa595e6..00000000000 --- a/packages/docs/sdk/docs/base/enums/_currencies_.currency_enum.md +++ /dev/null @@ -1,37 +0,0 @@ -[@celo/base](../README.md) › ["currencies"](../modules/_currencies_.md) › [CURRENCY_ENUM](_currencies_.currency_enum.md) - -# Enumeration: CURRENCY_ENUM - -**`deprecated`** use StableToken and Token - -## Index - -### Enumeration members - -* [DOLLAR](_currencies_.currency_enum.md#dollar) -* [EURO](_currencies_.currency_enum.md#euro) -* [GOLD](_currencies_.currency_enum.md#gold) - -## Enumeration members - -### DOLLAR - -• **DOLLAR**: = "Celo Dollar" - -*Defined in [packages/sdk/base/src/currencies.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L4)* - -___ - -### EURO - -• **EURO**: = "Celo Euro" - -*Defined in [packages/sdk/base/src/currencies.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L5)* - -___ - -### GOLD - -• **GOLD**: = "Celo Gold" - -*Defined in [packages/sdk/base/src/currencies.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L3)* diff --git a/packages/docs/sdk/docs/base/enums/_currencies_.short_currencies.md b/packages/docs/sdk/docs/base/enums/_currencies_.short_currencies.md deleted file mode 100644 index 7cf196ef517..00000000000 --- a/packages/docs/sdk/docs/base/enums/_currencies_.short_currencies.md +++ /dev/null @@ -1,37 +0,0 @@ -[@celo/base](../README.md) › ["currencies"](../modules/_currencies_.md) › [SHORT_CURRENCIES](_currencies_.short_currencies.md) - -# Enumeration: SHORT_CURRENCIES - -**`deprecated`** use StableToken and Token - -## Index - -### Enumeration members - -* [DOLLAR](_currencies_.short_currencies.md#dollar) -* [EURO](_currencies_.short_currencies.md#euro) -* [GOLD](_currencies_.short_currencies.md#gold) - -## Enumeration members - -### DOLLAR - -• **DOLLAR**: = "dollar" - -*Defined in [packages/sdk/base/src/currencies.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L62)* - -___ - -### EURO - -• **EURO**: = "euro" - -*Defined in [packages/sdk/base/src/currencies.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L64)* - -___ - -### GOLD - -• **GOLD**: = "gold" - -*Defined in [packages/sdk/base/src/currencies.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L63)* diff --git a/packages/docs/sdk/docs/base/enums/_currencies_.stabletoken.md b/packages/docs/sdk/docs/base/enums/_currencies_.stabletoken.md deleted file mode 100644 index 2c780f3b40a..00000000000 --- a/packages/docs/sdk/docs/base/enums/_currencies_.stabletoken.md +++ /dev/null @@ -1,35 +0,0 @@ -[@celo/base](../README.md) › ["currencies"](../modules/_currencies_.md) › [StableToken](_currencies_.stabletoken.md) - -# Enumeration: StableToken - -## Index - -### Enumeration members - -* [cEUR](_currencies_.stabletoken.md#ceur) -* [cREAL](_currencies_.stabletoken.md#creal) -* [cUSD](_currencies_.stabletoken.md#cusd) - -## Enumeration members - -### cEUR - -• **cEUR**: = "cEUR" - -*Defined in [packages/sdk/base/src/currencies.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L10)* - -___ - -### cREAL - -• **cREAL**: = "cREAL" - -*Defined in [packages/sdk/base/src/currencies.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L11)* - -___ - -### cUSD - -• **cUSD**: = "cUSD" - -*Defined in [packages/sdk/base/src/currencies.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L9)* diff --git a/packages/docs/sdk/docs/base/enums/_currencies_.token.md b/packages/docs/sdk/docs/base/enums/_currencies_.token.md deleted file mode 100644 index de5fecd401b..00000000000 --- a/packages/docs/sdk/docs/base/enums/_currencies_.token.md +++ /dev/null @@ -1,17 +0,0 @@ -[@celo/base](../README.md) › ["currencies"](../modules/_currencies_.md) › [Token](_currencies_.token.md) - -# Enumeration: Token - -## Index - -### Enumeration members - -* [CELO](_currencies_.token.md#celo) - -## Enumeration members - -### CELO - -• **CELO**: = "CELO" - -*Defined in [packages/sdk/base/src/currencies.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L15)* diff --git a/packages/docs/sdk/docs/base/enums/_inputvalidation_.validatorkind.md b/packages/docs/sdk/docs/base/enums/_inputvalidation_.validatorkind.md deleted file mode 100644 index 00b5ffbd046..00000000000 --- a/packages/docs/sdk/docs/base/enums/_inputvalidation_.validatorkind.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/base](../README.md) › ["inputValidation"](../modules/_inputvalidation_.md) › [ValidatorKind](_inputvalidation_.validatorkind.md) - -# Enumeration: ValidatorKind - -## Index - -### Enumeration members - -* [Custom](_inputvalidation_.validatorkind.md#custom) -* [Decimal](_inputvalidation_.validatorkind.md#decimal) -* [Integer](_inputvalidation_.validatorkind.md#integer) -* [Phone](_inputvalidation_.validatorkind.md#phone) - -## Enumeration members - -### Custom - -• **Custom**: = "custom" - -*Defined in [packages/sdk/base/src/inputValidation.ts:2](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L2)* - -___ - -### Decimal - -• **Decimal**: = "decimal" - -*Defined in [packages/sdk/base/src/inputValidation.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L3)* - -___ - -### Integer - -• **Integer**: = "integer" - -*Defined in [packages/sdk/base/src/inputValidation.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L4)* - -___ - -### Phone - -• **Phone**: = "phone" - -*Defined in [packages/sdk/base/src/inputValidation.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L5)* diff --git a/packages/docs/sdk/docs/base/interfaces/_account_.bip39.md b/packages/docs/sdk/docs/base/interfaces/_account_.bip39.md deleted file mode 100644 index a2d287f156e..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_account_.bip39.md +++ /dev/null @@ -1,93 +0,0 @@ -[@celo/base](../README.md) › ["account"](../modules/_account_.md) › [Bip39](_account_.bip39.md) - -# Interface: Bip39 - -## Hierarchy - -* **Bip39** - -## Index - -### Properties - -* [generateMnemonic](_account_.bip39.md#generatemnemonic) -* [mnemonicToSeed](_account_.bip39.md#mnemonictoseed) -* [mnemonicToSeedSync](_account_.bip39.md#mnemonictoseedsync) -* [validateMnemonic](_account_.bip39.md#validatemnemonic) - -## Properties - -### generateMnemonic - -• **generateMnemonic**: *function* - -*Defined in [packages/sdk/base/src/account.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L28)* - -#### Type declaration: - -▸ (`strength?`: undefined | number, `rng?`: [RandomNumberGenerator](../modules/_account_.md#randomnumbergenerator), `wordlist?`: string[]): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`strength?` | undefined | number | -`rng?` | [RandomNumberGenerator](../modules/_account_.md#randomnumbergenerator) | -`wordlist?` | string[] | - -___ - -### mnemonicToSeed - -• **mnemonicToSeed**: *function* - -*Defined in [packages/sdk/base/src/account.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L27)* - -#### Type declaration: - -▸ (`mnemonic`: string, `password?`: undefined | string): *Promise‹Buffer›* - -**Parameters:** - -Name | Type | ------- | ------ | -`mnemonic` | string | -`password?` | undefined | string | - -___ - -### mnemonicToSeedSync - -• **mnemonicToSeedSync**: *function* - -*Defined in [packages/sdk/base/src/account.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L26)* - -#### Type declaration: - -▸ (`mnemonic`: string, `password?`: undefined | string): *Buffer* - -**Parameters:** - -Name | Type | ------- | ------ | -`mnemonic` | string | -`password?` | undefined | string | - -___ - -### validateMnemonic - -• **validateMnemonic**: *function* - -*Defined in [packages/sdk/base/src/account.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L33)* - -#### Type declaration: - -▸ (`mnemonic`: string, `wordlist?`: string[]): *boolean* - -**Parameters:** - -Name | Type | ------- | ------ | -`mnemonic` | string | -`wordlist?` | string[] | diff --git a/packages/docs/sdk/docs/base/interfaces/_attestations_.attestationsstatus.md b/packages/docs/sdk/docs/base/interfaces/_attestations_.attestationsstatus.md deleted file mode 100644 index 4ddca15dde5..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_attestations_.attestationsstatus.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/base](../README.md) › ["attestations"](../modules/_attestations_.md) › [AttestationsStatus](_attestations_.attestationsstatus.md) - -# Interface: AttestationsStatus - -## Hierarchy - -* **AttestationsStatus** - -## Index - -### Properties - -* [completed](_attestations_.attestationsstatus.md#completed) -* [isVerified](_attestations_.attestationsstatus.md#isverified) -* [numAttestationsRemaining](_attestations_.attestationsstatus.md#numattestationsremaining) -* [total](_attestations_.attestationsstatus.md#total) - -## Properties - -### completed - -• **completed**: *number* - -*Defined in [packages/sdk/base/src/attestations.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L71)* - -___ - -### isVerified - -• **isVerified**: *boolean* - -*Defined in [packages/sdk/base/src/attestations.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L68)* - -___ - -### numAttestationsRemaining - -• **numAttestationsRemaining**: *number* - -*Defined in [packages/sdk/base/src/attestations.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L69)* - -___ - -### total - -• **total**: *number* - -*Defined in [packages/sdk/base/src/attestations.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L70)* diff --git a/packages/docs/sdk/docs/base/interfaces/_collections_.addresslistitem.md b/packages/docs/sdk/docs/base/interfaces/_collections_.addresslistitem.md deleted file mode 100644 index 87b43cbeebd..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_collections_.addresslistitem.md +++ /dev/null @@ -1,34 +0,0 @@ -[@celo/base](../README.md) › ["collections"](../modules/_collections_.md) › [AddressListItem](_collections_.addresslistitem.md) - -# Interface: AddressListItem <**T**> - -## Type parameters - -▪ **T** - -## Hierarchy - -* **AddressListItem** - -## Index - -### Properties - -* [address](_collections_.addresslistitem.md#address) -* [value](_collections_.addresslistitem.md#value) - -## Properties - -### address - -• **address**: *string* - -*Defined in [packages/sdk/base/src/collections.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L54)* - -___ - -### value - -• **value**: *T* - -*Defined in [packages/sdk/base/src/collections.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L55)* diff --git a/packages/docs/sdk/docs/base/interfaces/_contacts_.contactphonenumber.md b/packages/docs/sdk/docs/base/interfaces/_contacts_.contactphonenumber.md deleted file mode 100644 index 2d1f1b61a8b..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_contacts_.contactphonenumber.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/base](../README.md) › ["contacts"](../modules/_contacts_.md) › [ContactPhoneNumber](_contacts_.contactphonenumber.md) - -# Interface: ContactPhoneNumber - -## Hierarchy - -* **ContactPhoneNumber** - -## Index - -### Properties - -* [label](_contacts_.contactphonenumber.md#optional-label) -* [number](_contacts_.contactphonenumber.md#optional-number) - -## Properties - -### `Optional` label - -• **label**? : *undefined | string* - -*Defined in [packages/sdk/base/src/contacts.ts:2](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/contacts.ts#L2)* - -___ - -### `Optional` number - -• **number**? : *undefined | string* - -*Defined in [packages/sdk/base/src/contacts.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/contacts.ts#L3)* diff --git a/packages/docs/sdk/docs/base/interfaces/_contacts_.minimalcontact.md b/packages/docs/sdk/docs/base/interfaces/_contacts_.minimalcontact.md deleted file mode 100644 index 97d92d5199b..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_contacts_.minimalcontact.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/base](../README.md) › ["contacts"](../modules/_contacts_.md) › [MinimalContact](_contacts_.minimalcontact.md) - -# Interface: MinimalContact - -## Hierarchy - -* **MinimalContact** - -## Index - -### Properties - -* [displayName](_contacts_.minimalcontact.md#optional-displayname) -* [phoneNumbers](_contacts_.minimalcontact.md#optional-phonenumbers) -* [recordID](_contacts_.minimalcontact.md#recordid) -* [thumbnailPath](_contacts_.minimalcontact.md#optional-thumbnailpath) - -## Properties - -### `Optional` displayName - -• **displayName**? : *undefined | string* - -*Defined in [packages/sdk/base/src/contacts.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/contacts.ts#L8)* - -___ - -### `Optional` phoneNumbers - -• **phoneNumbers**? : *[ContactPhoneNumber](_contacts_.contactphonenumber.md)[]* - -*Defined in [packages/sdk/base/src/contacts.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/contacts.ts#L9)* - -___ - -### recordID - -• **recordID**: *string* - -*Defined in [packages/sdk/base/src/contacts.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/contacts.ts#L7)* - -___ - -### `Optional` thumbnailPath - -• **thumbnailPath**? : *undefined | string* - -*Defined in [packages/sdk/base/src/contacts.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/contacts.ts#L10)* diff --git a/packages/docs/sdk/docs/base/interfaces/_inputvalidation_.baseprops.md b/packages/docs/sdk/docs/base/interfaces/_inputvalidation_.baseprops.md deleted file mode 100644 index 8c15879fe8e..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_inputvalidation_.baseprops.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/base](../README.md) › ["inputValidation"](../modules/_inputvalidation_.md) › [BaseProps](_inputvalidation_.baseprops.md) - -# Interface: BaseProps - -## Hierarchy - -* **BaseProps** - -## Index - -### Properties - -* [countryCallingCode](_inputvalidation_.baseprops.md#optional-countrycallingcode) -* [customValidator](_inputvalidation_.baseprops.md#optional-customvalidator) -* [decimalSeparator](_inputvalidation_.baseprops.md#optional-decimalseparator) -* [validator](_inputvalidation_.baseprops.md#optional-validator) - -## Properties - -### `Optional` countryCallingCode - -• **countryCallingCode**? : *undefined | string* - -*Defined in [packages/sdk/base/src/inputValidation.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L11)* - -___ - -### `Optional` customValidator - -• **customValidator**? : *undefined | function* - -*Defined in [packages/sdk/base/src/inputValidation.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L10)* - -___ - -### `Optional` decimalSeparator - -• **decimalSeparator**? : *undefined | string* - -*Defined in [packages/sdk/base/src/inputValidation.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L12)* - -___ - -### `Optional` validator - -• **validator**? : *[ValidatorKind](../enums/_inputvalidation_.validatorkind.md)* - -*Defined in [packages/sdk/base/src/inputValidation.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L9)* diff --git a/packages/docs/sdk/docs/base/interfaces/_phonenumbers_.parsedphonenumber.md b/packages/docs/sdk/docs/base/interfaces/_phonenumbers_.parsedphonenumber.md deleted file mode 100644 index d4836e8439b..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_phonenumbers_.parsedphonenumber.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/base](../README.md) › ["phoneNumbers"](../modules/_phonenumbers_.md) › [ParsedPhoneNumber](_phonenumbers_.parsedphonenumber.md) - -# Interface: ParsedPhoneNumber - -## Hierarchy - -* **ParsedPhoneNumber** - -## Index - -### Properties - -* [countryCode](_phonenumbers_.parsedphonenumber.md#optional-countrycode) -* [displayNumber](_phonenumbers_.parsedphonenumber.md#displaynumber) -* [displayNumberInternational](_phonenumbers_.parsedphonenumber.md#displaynumberinternational) -* [e164Number](_phonenumbers_.parsedphonenumber.md#e164number) -* [regionCode](_phonenumbers_.parsedphonenumber.md#optional-regioncode) - -## Properties - -### `Optional` countryCode - -• **countryCode**? : *undefined | number* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L7)* - -___ - -### displayNumber - -• **displayNumber**: *string* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L5)* - -___ - -### displayNumberInternational - -• **displayNumberInternational**: *string* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L6)* - -___ - -### e164Number - -• **e164Number**: *string* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L4)* - -___ - -### `Optional` regionCode - -• **regionCode**? : *undefined | string* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L8)* diff --git a/packages/docs/sdk/docs/base/interfaces/_result_.baseerror.md b/packages/docs/sdk/docs/base/interfaces/_result_.baseerror.md deleted file mode 100644 index 542f7cc4083..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_result_.baseerror.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/base](../README.md) › ["result"](../modules/_result_.md) › [BaseError](_result_.baseerror.md) - -# Interface: BaseError <**T**> - -## Type parameters - -▪ **T** - -## Hierarchy - -* **BaseError** - -## Implemented by - -* [JSONParseError](../classes/_result_.jsonparseerror.md) -* [RootError](../classes/_result_.rooterror.md) - -## Index - -### Properties - -* [errorType](_result_.baseerror.md#errortype) - -## Properties - -### errorType - -• **errorType**: *T* - -*Defined in [packages/sdk/base/src/result.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L63)* diff --git a/packages/docs/sdk/docs/base/interfaces/_result_.errorresult.md b/packages/docs/sdk/docs/base/interfaces/_result_.errorresult.md deleted file mode 100644 index 5fc8f8be88a..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_result_.errorresult.md +++ /dev/null @@ -1,34 +0,0 @@ -[@celo/base](../README.md) › ["result"](../modules/_result_.md) › [ErrorResult](_result_.errorresult.md) - -# Interface: ErrorResult <**TError**> - -## Type parameters - -▪ **TError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -## Hierarchy - -* **ErrorResult** - -## Index - -### Properties - -* [error](_result_.errorresult.md#error) -* [ok](_result_.errorresult.md#ok) - -## Properties - -### error - -• **error**: *TError* - -*Defined in [packages/sdk/base/src/result.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L7)* - -___ - -### ok - -• **ok**: *false* - -*Defined in [packages/sdk/base/src/result.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L6)* diff --git a/packages/docs/sdk/docs/base/interfaces/_result_.okresult.md b/packages/docs/sdk/docs/base/interfaces/_result_.okresult.md deleted file mode 100644 index fc2974ec482..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_result_.okresult.md +++ /dev/null @@ -1,34 +0,0 @@ -[@celo/base](../README.md) › ["result"](../modules/_result_.md) › [OkResult](_result_.okresult.md) - -# Interface: OkResult <**TResult**> - -## Type parameters - -▪ **TResult** - -## Hierarchy - -* **OkResult** - -## Index - -### Properties - -* [ok](_result_.okresult.md#ok) -* [result](_result_.okresult.md#result) - -## Properties - -### ok - -• **ok**: *true* - -*Defined in [packages/sdk/base/src/result.ts:2](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L2)* - -___ - -### result - -• **result**: *TResult* - -*Defined in [packages/sdk/base/src/result.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L3)* diff --git a/packages/docs/sdk/docs/base/interfaces/_signatureutils_.signature.md b/packages/docs/sdk/docs/base/interfaces/_signatureutils_.signature.md deleted file mode 100644 index 3f1d897423f..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_signatureutils_.signature.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/base](../README.md) › ["signatureUtils"](../modules/_signatureutils_.md) › [Signature](_signatureutils_.signature.md) - -# Interface: Signature - -## Hierarchy - -* **Signature** - -## Index - -### Properties - -* [r](_signatureutils_.signature.md#r) -* [s](_signatureutils_.signature.md#s) -* [v](_signatureutils_.signature.md#v) - -## Properties - -### r - -• **r**: *string* - -*Defined in [packages/sdk/base/src/signatureUtils.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L21)* - -___ - -### s - -• **s**: *string* - -*Defined in [packages/sdk/base/src/signatureUtils.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L22)* - -___ - -### v - -• **v**: *number* - -*Defined in [packages/sdk/base/src/signatureUtils.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L20)* diff --git a/packages/docs/sdk/docs/base/interfaces/_signatureutils_.signer.md b/packages/docs/sdk/docs/base/interfaces/_signatureutils_.signer.md deleted file mode 100644 index c380b07126c..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_signatureutils_.signer.md +++ /dev/null @@ -1,31 +0,0 @@ -[@celo/base](../README.md) › ["signatureUtils"](../modules/_signatureutils_.md) › [Signer](_signatureutils_.signer.md) - -# Interface: Signer - -## Hierarchy - -* **Signer** - -## Index - -### Properties - -* [sign](_signatureutils_.signer.md#sign) - -## Properties - -### sign - -• **sign**: *function* - -*Defined in [packages/sdk/base/src/signatureUtils.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L4)* - -#### Type declaration: - -▸ (`message`: string): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | diff --git a/packages/docs/sdk/docs/base/interfaces/_task_.repeattaskcontext.md b/packages/docs/sdk/docs/base/interfaces/_task_.repeattaskcontext.md deleted file mode 100644 index ed58bc2a691..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_task_.repeattaskcontext.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/base](../README.md) › ["task"](../modules/_task_.md) › [RepeatTaskContext](_task_.repeattaskcontext.md) - -# Interface: RepeatTaskContext - -## Hierarchy - -* **RepeatTaskContext** - -## Index - -### Properties - -* [executionNumber](_task_.repeattaskcontext.md#executionnumber) - -### Methods - -* [stopTask](_task_.repeattaskcontext.md#stoptask) - -## Properties - -### executionNumber - -• **executionNumber**: *number* - -*Defined in [packages/sdk/base/src/task.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L45)* - -Number of times the task has been executed (starts in 1) - -## Methods - -### stopTask - -▸ **stopTask**(): *void* - -*Defined in [packages/sdk/base/src/task.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L47)* - -Flag task to be stopped. Might not be inmediate - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/base/interfaces/_task_.retrytaskoptions.md b/packages/docs/sdk/docs/base/interfaces/_task_.retrytaskoptions.md deleted file mode 100644 index 9f0b4ab11df..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_task_.retrytaskoptions.md +++ /dev/null @@ -1,81 +0,0 @@ -[@celo/base](../README.md) › ["task"](../modules/_task_.md) › [RetryTaskOptions](_task_.retrytaskoptions.md) - -# Interface: RetryTaskOptions <**A**> - -## Type parameters - -▪ **A** - -## Hierarchy - -* [TaskOptions](_task_.taskoptions.md) - - ↳ **RetryTaskOptions** - -## Index - -### Properties - -* [logger](_task_.retrytaskoptions.md#optional-logger) -* [maxAttemps](_task_.retrytaskoptions.md#maxattemps) -* [name](_task_.retrytaskoptions.md#name) -* [timeInBetweenMS](_task_.retrytaskoptions.md#timeinbetweenms) -* [tryGetValue](_task_.retrytaskoptions.md#trygetvalue) - -## Properties - -### `Optional` logger - -• **logger**? : *[Logger](../modules/_logger_.md#logger)* - -*Inherited from [TaskOptions](_task_.taskoptions.md).[logger](_task_.taskoptions.md#optional-logger)* - -*Defined in [packages/sdk/base/src/task.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L20)* - -Logger function - -___ - -### maxAttemps - -• **maxAttemps**: *number* - -*Defined in [packages/sdk/base/src/task.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L123)* - -Maximum number of attemps - -___ - -### name - -• **name**: *string* - -*Inherited from [TaskOptions](_task_.taskoptions.md).[name](_task_.taskoptions.md#name)* - -*Defined in [packages/sdk/base/src/task.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L18)* - -Name for the task. To be used in logging messages - -___ - -### timeInBetweenMS - -• **timeInBetweenMS**: *number* - -*Defined in [packages/sdk/base/src/task.ts:121](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L121)* - -seconds between repetition - -___ - -### tryGetValue - -• **tryGetValue**: *function* - -*Defined in [packages/sdk/base/src/task.ts:125](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L125)* - -Function that tries to obtain a value A or returns null - -#### Type declaration: - -▸ (): *Promise‹A | null›* diff --git a/packages/docs/sdk/docs/base/interfaces/_task_.runningtask.md b/packages/docs/sdk/docs/base/interfaces/_task_.runningtask.md deleted file mode 100644 index 1d3a3438155..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_task_.runningtask.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/base](../README.md) › ["task"](../modules/_task_.md) › [RunningTask](_task_.runningtask.md) - -# Interface: RunningTask - -Represent a running task that can be stopped - -Examples: A poller, a watcher. - -## Hierarchy - -* **RunningTask** - - ↳ [RunningTaskWithValue](_task_.runningtaskwithvalue.md) - -## Index - -### Methods - -* [isRunning](_task_.runningtask.md#isrunning) -* [stop](_task_.runningtask.md#stop) - -## Methods - -### isRunning - -▸ **isRunning**(): *boolean* - -*Defined in [packages/sdk/base/src/task.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L13)* - -Indicates wether the task is running - -**Returns:** *boolean* - -___ - -### stop - -▸ **stop**(): *void* - -*Defined in [packages/sdk/base/src/task.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L11)* - -Flag task to be stopped. Might not be inmediate - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/base/interfaces/_task_.runningtaskwithvalue.md b/packages/docs/sdk/docs/base/interfaces/_task_.runningtaskwithvalue.md deleted file mode 100644 index 00df9c89ecd..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_task_.runningtaskwithvalue.md +++ /dev/null @@ -1,59 +0,0 @@ -[@celo/base](../README.md) › ["task"](../modules/_task_.md) › [RunningTaskWithValue](_task_.runningtaskwithvalue.md) - -# Interface: RunningTaskWithValue <**A**> - -## Type parameters - -▪ **A** - -## Hierarchy - -* [RunningTask](_task_.runningtask.md) - - ↳ **RunningTaskWithValue** - -## Index - -### Methods - -* [isRunning](_task_.runningtaskwithvalue.md#isrunning) -* [onValue](_task_.runningtaskwithvalue.md#onvalue) -* [stop](_task_.runningtaskwithvalue.md#stop) - -## Methods - -### isRunning - -▸ **isRunning**(): *boolean* - -*Inherited from [RunningTask](_task_.runningtask.md).[isRunning](_task_.runningtask.md#isrunning)* - -*Defined in [packages/sdk/base/src/task.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L13)* - -Indicates wether the task is running - -**Returns:** *boolean* - -___ - -### onValue - -▸ **onValue**(): *Promise‹A›* - -*Defined in [packages/sdk/base/src/task.ts:116](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L116)* - -**Returns:** *Promise‹A›* - -___ - -### stop - -▸ **stop**(): *void* - -*Inherited from [RunningTask](_task_.runningtask.md).[stop](_task_.runningtask.md#stop)* - -*Defined in [packages/sdk/base/src/task.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L11)* - -Flag task to be stopped. Might not be inmediate - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/base/interfaces/_task_.taskoptions.md b/packages/docs/sdk/docs/base/interfaces/_task_.taskoptions.md deleted file mode 100644 index 6a865a290f3..00000000000 --- a/packages/docs/sdk/docs/base/interfaces/_task_.taskoptions.md +++ /dev/null @@ -1,36 +0,0 @@ -[@celo/base](../README.md) › ["task"](../modules/_task_.md) › [TaskOptions](_task_.taskoptions.md) - -# Interface: TaskOptions - -## Hierarchy - -* **TaskOptions** - - ↳ [RetryTaskOptions](_task_.retrytaskoptions.md) - -## Index - -### Properties - -* [logger](_task_.taskoptions.md#optional-logger) -* [name](_task_.taskoptions.md#name) - -## Properties - -### `Optional` logger - -• **logger**? : *[Logger](../modules/_logger_.md#logger)* - -*Defined in [packages/sdk/base/src/task.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L20)* - -Logger function - -___ - -### name - -• **name**: *string* - -*Defined in [packages/sdk/base/src/task.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L18)* - -Name for the task. To be used in logging messages diff --git a/packages/docs/sdk/docs/base/modules/_account_.md b/packages/docs/sdk/docs/base/modules/_account_.md deleted file mode 100644 index d10bb1eda26..00000000000 --- a/packages/docs/sdk/docs/base/modules/_account_.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/base](../README.md) › ["account"](_account_.md) - -# Module: "account" - -## Index - -### Enumerations - -* [MnemonicLanguages](../enums/_account_.mnemoniclanguages.md) -* [MnemonicStrength](../enums/_account_.mnemonicstrength.md) - -### Interfaces - -* [Bip39](../interfaces/_account_.bip39.md) - -### Type aliases - -* [RandomNumberGenerator](_account_.md#randomnumbergenerator) - -### Variables - -* [CELO_DERIVATION_PATH_BASE](_account_.md#const-celo_derivation_path_base) - -## Type aliases - -### RandomNumberGenerator - -Ƭ **RandomNumberGenerator**: *function* - -*Defined in [packages/sdk/base/src/account.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L20)* - -#### Type declaration: - -▸ (`size`: number, `callback`: function): *void* - -**Parameters:** - -▪ **size**: *number* - -▪ **callback**: *function* - -▸ (`err`: [Error](../classes/_result_.rooterror.md#static-error) | null, `buf`: Buffer): *void* - -**Parameters:** - -Name | Type | ------- | ------ | -`err` | [Error](../classes/_result_.rooterror.md#static-error) | null | -`buf` | Buffer | - -## Variables - -### `Const` CELO_DERIVATION_PATH_BASE - -• **CELO_DERIVATION_PATH_BASE**: *"m/44'/52752'/0'"* = "m/44'/52752'/0'" - -*Defined in [packages/sdk/base/src/account.ts:1](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/account.ts#L1)* diff --git a/packages/docs/sdk/docs/base/modules/_address_.md b/packages/docs/sdk/docs/base/modules/_address_.md deleted file mode 100644 index 51b7994481b..00000000000 --- a/packages/docs/sdk/docs/base/modules/_address_.md +++ /dev/null @@ -1,263 +0,0 @@ -[@celo/base](../README.md) › ["address"](_address_.md) - -# Module: "address" - -## Index - -### Type aliases - -* [Address](_address_.md#address) - -### Variables - -* [NULL_ADDRESS](_address_.md#const-null_address) - -### Functions - -* [bufferToHex](_address_.md#const-buffertohex) -* [ensureLeading0x](_address_.md#const-ensureleading0x) -* [eqAddress](_address_.md#const-eqaddress) -* [findAddressIndex](_address_.md#const-findaddressindex) -* [getAddressChunks](_address_.md#const-getaddresschunks) -* [hexToBuffer](_address_.md#const-hextobuffer) -* [isHexString](_address_.md#const-ishexstring) -* [isNullAddress](_address_.md#const-isnulladdress) -* [mapAddressListDataOnto](_address_.md#mapaddresslistdataonto) -* [mapAddressListOnto](_address_.md#const-mapaddresslistonto) -* [normalizeAddress](_address_.md#const-normalizeaddress) -* [normalizeAddressWith0x](_address_.md#const-normalizeaddresswith0x) -* [trimLeading0x](_address_.md#const-trimleading0x) - -## Type aliases - -### Address - -Ƭ **Address**: *string* - -*Defined in [packages/sdk/base/src/address.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L3)* - -## Variables - -### `Const` NULL_ADDRESS - -• **NULL_ADDRESS**: *"0x0000000000000000000000000000000000000000"* = "0x0000000000000000000000000000000000000000" - -*Defined in [packages/sdk/base/src/address.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L28)* - -## Functions - -### `Const` bufferToHex - -▸ **bufferToHex**(`buf`: Buffer): *string* - -*Defined in [packages/sdk/base/src/address.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L26)* - -**Parameters:** - -Name | Type | ------- | ------ | -`buf` | Buffer | - -**Returns:** *string* - -___ - -### `Const` ensureLeading0x - -▸ **ensureLeading0x**(`input`: string): *string* - -*Defined in [packages/sdk/base/src/address.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L15)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | - -**Returns:** *string* - -___ - -### `Const` eqAddress - -▸ **eqAddress**(`a`: [Address](_address_.md#address), `b`: [Address](_address_.md#address)): *boolean* - -*Defined in [packages/sdk/base/src/address.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L5)* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | [Address](_address_.md#address) | -`b` | [Address](_address_.md#address) | - -**Returns:** *boolean* - -___ - -### `Const` findAddressIndex - -▸ **findAddressIndex**(`address`: [Address](_address_.md#address), `addresses`: [Address](_address_.md#address)[]): *number* - -*Defined in [packages/sdk/base/src/address.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L30)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](_address_.md#address) | -`addresses` | [Address](_address_.md#address)[] | - -**Returns:** *number* - -___ - -### `Const` getAddressChunks - -▸ **getAddressChunks**(`input`: string): *string[]* - -*Defined in [packages/sdk/base/src/address.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L19)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | - -**Returns:** *string[]* - -___ - -### `Const` hexToBuffer - -▸ **hexToBuffer**(`input`: string): *Buffer‹›* - -*Defined in [packages/sdk/base/src/address.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L24)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | - -**Returns:** *Buffer‹›* - -___ - -### `Const` isHexString - -▸ **isHexString**(`input`: string): *boolean* - -*Defined in [packages/sdk/base/src/address.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L22)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | - -**Returns:** *boolean* - -___ - -### `Const` isNullAddress - -▸ **isNullAddress**(`a`: [Address](_address_.md#address)): *boolean* - -*Defined in [packages/sdk/base/src/address.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L9)* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | [Address](_address_.md#address) | - -**Returns:** *boolean* - -___ - -### mapAddressListDataOnto - -▸ **mapAddressListDataOnto**<**T**>(`data`: T[], `oldAddress`: [Address](_address_.md#address)[], `newAddress`: [Address](_address_.md#address)[], `initialValue`: T): *T[]* - -*Defined in [packages/sdk/base/src/address.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L67)* - -**Type parameters:** - -▪ **T** - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | T[] | -`oldAddress` | [Address](_address_.md#address)[] | -`newAddress` | [Address](_address_.md#address)[] | -`initialValue` | T | - -**Returns:** *T[]* - -___ - -### `Const` mapAddressListOnto - -▸ **mapAddressListOnto**(`oldAddress`: [Address](_address_.md#address)[], `newAddress`: [Address](_address_.md#address)[]): *any[]* - -*Defined in [packages/sdk/base/src/address.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L34)* - -**Parameters:** - -Name | Type | ------- | ------ | -`oldAddress` | [Address](_address_.md#address)[] | -`newAddress` | [Address](_address_.md#address)[] | - -**Returns:** *any[]* - -___ - -### `Const` normalizeAddress - -▸ **normalizeAddress**(`a`: [Address](_address_.md#address)): *string* - -*Defined in [packages/sdk/base/src/address.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L7)* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | [Address](_address_.md#address) | - -**Returns:** *string* - -___ - -### `Const` normalizeAddressWith0x - -▸ **normalizeAddressWith0x**(`a`: [Address](_address_.md#address)): *string* - -*Defined in [packages/sdk/base/src/address.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L11)* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | [Address](_address_.md#address) | - -**Returns:** *string* - -___ - -### `Const` trimLeading0x - -▸ **trimLeading0x**(`input`: string): *string* - -*Defined in [packages/sdk/base/src/address.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/address.ts#L13)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/base/modules/_async_.md b/packages/docs/sdk/docs/base/modules/_async_.md deleted file mode 100644 index b248e6f6449..00000000000 --- a/packages/docs/sdk/docs/base/modules/_async_.md +++ /dev/null @@ -1,254 +0,0 @@ -[@celo/base](../README.md) › ["async"](_async_.md) - -# Module: "async" - -## Index - -### Functions - -* [concurrentMap](_async_.md#concurrentmap) -* [concurrentValuesMap](_async_.md#concurrentvaluesmap) -* [retryAsync](_async_.md#const-retryasync) -* [retryAsyncWithBackOff](_async_.md#const-retryasyncwithbackoff) -* [retryAsyncWithBackOffAndTimeout](_async_.md#const-retryasyncwithbackoffandtimeout) -* [selectiveRetryAsyncWithBackOff](_async_.md#const-selectiveretryasyncwithbackoff) -* [sleep](_async_.md#sleep) -* [timeout](_async_.md#const-timeout) - -## Functions - -### concurrentMap - -▸ **concurrentMap**<**A**, **B**>(`concurrency`: number, `xs`: A[], `mapFn`: function): *Promise‹B[]›* - -*Defined in [packages/sdk/base/src/async.ts:128](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/async.ts#L128)* - -Map an async function over a list xs with a given concurrency level - -**Type parameters:** - -▪ **A** - -▪ **B** - -**Parameters:** - -▪ **concurrency**: *number* - -number of `mapFn` concurrent executions - -▪ **xs**: *A[]* - -list of value - -▪ **mapFn**: *function* - -mapping function - -▸ (`val`: A, `idx`: number): *Promise‹B›* - -**Parameters:** - -Name | Type | ------- | ------ | -`val` | A | -`idx` | number | - -**Returns:** *Promise‹B[]›* - -___ - -### concurrentValuesMap - -▸ **concurrentValuesMap**<**IN**, **OUT**>(`concurrency`: number, `x`: Record‹string, IN›, `mapFn`: function): *Promise‹Record‹string, OUT››* - -*Defined in [packages/sdk/base/src/async.ts:150](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/async.ts#L150)* - -Map an async function over the values in Object x with a given concurrency level - -**Type parameters:** - -▪ **IN**: *any* - -▪ **OUT**: *any* - -**Parameters:** - -▪ **concurrency**: *number* - -number of `mapFn` concurrent executions - -▪ **x**: *Record‹string, IN›* - -associative array of values - -▪ **mapFn**: *function* - -mapping function - -▸ (`val`: IN, `key`: string): *Promise‹OUT›* - -**Parameters:** - -Name | Type | ------- | ------ | -`val` | IN | -`key` | string | - -**Returns:** *Promise‹Record‹string, OUT››* - -___ - -### `Const` retryAsync - -▸ **retryAsync**<**T**, **U**>(`inFunction`: InFunction‹T, U›, `tries`: number, `params`: T, `delay`: number, `logger`: [Logger](_logger_.md#logger) | null): *Promise‹U›* - -*Defined in [packages/sdk/base/src/async.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/async.ts#L14)* - -**Type parameters:** - -▪ **T**: *any[]* - -▪ **U** - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`inFunction` | InFunction‹T, U› | - | -`tries` | number | - | -`params` | T | - | -`delay` | number | 100 | -`logger` | [Logger](_logger_.md#logger) | null | null | - -**Returns:** *Promise‹U›* - -___ - -### `Const` retryAsyncWithBackOff - -▸ **retryAsyncWithBackOff**<**T**, **U**>(`inFunction`: InFunction‹T, U›, `tries`: number, `params`: T, `delay`: number, `factor`: number, `logger`: [Logger](_logger_.md#logger) | null): *Promise‹U›* - -*Defined in [packages/sdk/base/src/async.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/async.ts#L40)* - -**Type parameters:** - -▪ **T**: *any[]* - -▪ **U** - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`inFunction` | InFunction‹T, U› | - | -`tries` | number | - | -`params` | T | - | -`delay` | number | 100 | -`factor` | number | 1.5 | -`logger` | [Logger](_logger_.md#logger) | null | null | - -**Returns:** *Promise‹U›* - -___ - -### `Const` retryAsyncWithBackOffAndTimeout - -▸ **retryAsyncWithBackOffAndTimeout**<**T**, **U**>(`inFunction`: InFunction‹T, U›, `tries`: number, `params`: T, `delayMs`: number, `factor`: number, `timeoutMs`: number, `logger`: [Logger](_logger_.md#logger) | null): *Promise‹U›* - -*Defined in [packages/sdk/base/src/async.ts:102](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/async.ts#L102)* - -**Type parameters:** - -▪ **T**: *any[]* - -▪ **U** - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`inFunction` | InFunction‹T, U› | - | -`tries` | number | - | -`params` | T | - | -`delayMs` | number | 100 | -`factor` | number | 1.5 | -`timeoutMs` | number | 2000 | -`logger` | [Logger](_logger_.md#logger) | null | null | - -**Returns:** *Promise‹U›* - -___ - -### `Const` selectiveRetryAsyncWithBackOff - -▸ **selectiveRetryAsyncWithBackOff**<**T**, **U**>(`inFunction`: InFunction‹T, U›, `tries`: number, `dontRetry`: string[], `params`: T, `delay`: number, `factor`: number, `logger`: [Logger](_logger_.md#logger) | null): *Promise‹U›* - -*Defined in [packages/sdk/base/src/async.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/async.ts#L68)* - -**Type parameters:** - -▪ **T**: *any[]* - -▪ **U** - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`inFunction` | InFunction‹T, U› | - | -`tries` | number | - | -`dontRetry` | string[] | - | -`params` | T | - | -`delay` | number | 100 | -`factor` | number | 1.5 | -`logger` | [Logger](_logger_.md#logger) | null | null | - -**Returns:** *Promise‹U›* - -___ - -### sleep - -▸ **sleep**(`ms`: number): *Promise‹void›* - -*Defined in [packages/sdk/base/src/async.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/async.ts#L6)* - -Sleep for a number of milliseconds - -**Parameters:** - -Name | Type | ------- | ------ | -`ms` | number | - -**Returns:** *Promise‹void›* - -___ - -### `Const` timeout - -▸ **timeout**<**T**, **U**>(`inFunction`: InFunction‹T, U›, `params`: T, `timeoutMs`: number, `timeoutError`: any, `timeoutLogMsg`: string | null, `logger`: [Logger](_logger_.md#logger) | null): *Promise‹U›* - -*Defined in [packages/sdk/base/src/async.ts:173](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/async.ts#L173)* - -Wraps an async function in a timeout before calling it. - -**Type parameters:** - -▪ **T**: *any[]* - -▪ **U** - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`inFunction` | InFunction‹T, U› | - | The async function to call | -`params` | T | - | The parameters of the async function | -`timeoutMs` | number | - | The timeout in milliseconds | -`timeoutError` | any | - | The value to which the returned Promise should reject to | -`timeoutLogMsg` | string | null | null | - | -`logger` | [Logger](_logger_.md#logger) | null | null | - | - -**Returns:** *Promise‹U›* diff --git a/packages/docs/sdk/docs/base/modules/_attestations_.md b/packages/docs/sdk/docs/base/modules/_attestations_.md deleted file mode 100644 index 0fbef3c5d22..00000000000 --- a/packages/docs/sdk/docs/base/modules/_attestations_.md +++ /dev/null @@ -1,212 +0,0 @@ -[@celo/base](../README.md) › ["attestations"](_attestations_.md) - -# Module: "attestations" - -## Index - -### Enumerations - -* [IdentifierType](../enums/_attestations_.identifiertype.md) - -### Interfaces - -* [AttestationsStatus](../interfaces/_attestations_.attestationsstatus.md) - -### Functions - -* [base64ToHex](_attestations_.md#base64tohex) -* [extractAttestationCodeFromMessage](_attestations_.md#extractattestationcodefrommessage) -* [getIdentifierPrefix](_attestations_.md#getidentifierprefix) -* [hashIdentifier](_attestations_.md#hashidentifier) -* [isAccountConsideredVerified](_attestations_.md#isaccountconsideredverified) -* [messageContainsAttestationCode](_attestations_.md#messagecontainsattestationcode) -* [sanitizeMessageBase64](_attestations_.md#sanitizemessagebase64) - -### Object literals - -* [AttestationBase](_attestations_.md#const-attestationbase) - -## Functions - -### base64ToHex - -▸ **base64ToHex**(`base64String`: string): *string* - -*Defined in [packages/sdk/base/src/attestations.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L36)* - -**Parameters:** - -Name | Type | ------- | ------ | -`base64String` | string | - -**Returns:** *string* - -___ - -### extractAttestationCodeFromMessage - -▸ **extractAttestationCodeFromMessage**(`message`: string): *null | string* - -*Defined in [packages/sdk/base/src/attestations.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L53)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | - -**Returns:** *null | string* - -___ - -### getIdentifierPrefix - -▸ **getIdentifierPrefix**(`type`: [IdentifierType](../enums/_attestations_.identifiertype.md)): *string* - -*Defined in [packages/sdk/base/src/attestations.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L13)* - -**Parameters:** - -Name | Type | ------- | ------ | -`type` | [IdentifierType](../enums/_attestations_.identifiertype.md) | - -**Returns:** *string* - -___ - -### hashIdentifier - -▸ **hashIdentifier**(`sha3`: function, `identifier`: string, `type`: [IdentifierType](../enums/_attestations_.identifiertype.md), `salt?`: undefined | string): *string* - -*Defined in [packages/sdk/base/src/attestations.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L22)* - -**Parameters:** - -▪ **sha3**: *function* - -▸ (`a`: string): *string | null* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | string | - -▪ **identifier**: *string* - -▪ **type**: *[IdentifierType](../enums/_attestations_.identifiertype.md)* - -▪`Optional` **salt**: *undefined | string* - -**Returns:** *string* - -___ - -### isAccountConsideredVerified - -▸ **isAccountConsideredVerified**(`stats`: AttestationStat | undefined, `numAttestationsRequired`: number, `attestationThreshold`: number): *[AttestationsStatus](../interfaces/_attestations_.attestationsstatus.md)* - -*Defined in [packages/sdk/base/src/attestations.ts:88](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L88)* - -Returns true if an AttestationStat is considered verified using the given factors, -or defaults if factors are ommited. - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`stats` | AttestationStat | undefined | - | AttestationStat of the account's attestation identitifer, retrievable via lookupIdentitfiers | -`numAttestationsRequired` | number | DEFAULT_NUM_ATTESTATIONS_REQUIRED | Optional number of attestations required. Will default to hardcoded value if absent. | -`attestationThreshold` | number | DEFAULT_ATTESTATION_THRESHOLD | Optional threshold for fraction attestations completed. Will default to hardcoded value if absent. | - -**Returns:** *[AttestationsStatus](../interfaces/_attestations_.attestationsstatus.md)* - -___ - -### messageContainsAttestationCode - -▸ **messageContainsAttestationCode**(`message`: string): *boolean* - -*Defined in [packages/sdk/base/src/attestations.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L49)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | - -**Returns:** *boolean* - -___ - -### sanitizeMessageBase64 - -▸ **sanitizeMessageBase64**(`base64String`: string): *string* - -*Defined in [packages/sdk/base/src/attestations.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L40)* - -**Parameters:** - -Name | Type | ------- | ------ | -`base64String` | string | - -**Returns:** *string* - -## Object literals - -### `Const` AttestationBase - -### ▪ **AttestationBase**: *object* - -*Defined in [packages/sdk/base/src/attestations.ts:115](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L115)* - -### IdentifierType - -• **IdentifierType**: *[IdentifierType](../enums/_attestations_.identifiertype.md)* - -*Defined in [packages/sdk/base/src/attestations.ts:116](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L116)* - -### base64ToHex - -• **base64ToHex**: *[base64ToHex](_attestations_.md#base64tohex)* - -*Defined in [packages/sdk/base/src/attestations.ts:119](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L119)* - -### extractAttestationCodeFromMessage - -• **extractAttestationCodeFromMessage**: *[extractAttestationCodeFromMessage](_attestations_.md#extractattestationcodefrommessage)* - -*Defined in [packages/sdk/base/src/attestations.ts:122](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L122)* - -### getIdentifierPrefix - -• **getIdentifierPrefix**: *[getIdentifierPrefix](_attestations_.md#getidentifierprefix)* - -*Defined in [packages/sdk/base/src/attestations.ts:117](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L117)* - -### hashIdentifier - -• **hashIdentifier**: *[hashIdentifier](_attestations_.md#hashidentifier)* - -*Defined in [packages/sdk/base/src/attestations.ts:118](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L118)* - -### isAccountConsideredVerified - -• **isAccountConsideredVerified**: *[isAccountConsideredVerified](_attestations_.md#isaccountconsideredverified)* - -*Defined in [packages/sdk/base/src/attestations.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L123)* - -### messageContainsAttestationCode - -• **messageContainsAttestationCode**: *[messageContainsAttestationCode](_attestations_.md#messagecontainsattestationcode)* - -*Defined in [packages/sdk/base/src/attestations.ts:121](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L121)* - -### sanitizeMessageBase64 - -• **sanitizeMessageBase64**: *[sanitizeMessageBase64](_attestations_.md#sanitizemessagebase64)* - -*Defined in [packages/sdk/base/src/attestations.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/attestations.ts#L120)* diff --git a/packages/docs/sdk/docs/base/modules/_collections_.md b/packages/docs/sdk/docs/base/modules/_collections_.md deleted file mode 100644 index d909e3a1864..00000000000 --- a/packages/docs/sdk/docs/base/modules/_collections_.md +++ /dev/null @@ -1,215 +0,0 @@ -[@celo/base](../README.md) › ["collections"](_collections_.md) - -# Module: "collections" - -## Index - -### Interfaces - -* [AddressListItem](../interfaces/_collections_.addresslistitem.md) - -### Type aliases - -* [Comparator](_collections_.md#comparator) - -### Functions - -* [intersection](_collections_.md#intersection) -* [linkedListChange](_collections_.md#linkedlistchange) -* [linkedListChanges](_collections_.md#linkedlistchanges) -* [notEmpty](_collections_.md#notempty) -* [zeroRange](_collections_.md#zerorange) -* [zip](_collections_.md#zip) -* [zip3](_collections_.md#zip3) - -## Type aliases - -### Comparator - -Ƭ **Comparator**: *function* - -*Defined in [packages/sdk/base/src/collections.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L50)* - -#### Type declaration: - -▸ (`a`: T, `b`: T): *boolean* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | T | -`b` | T | - -## Functions - -### intersection - -▸ **intersection**<**T**>(`arrays`: T[][]): *T[]* - -*Defined in [packages/sdk/base/src/collections.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L32)* - -**Type parameters:** - -▪ **T** - -**Parameters:** - -Name | Type | ------- | ------ | -`arrays` | T[][] | - -**Returns:** *T[]* - -___ - -### linkedListChange - -▸ **linkedListChange**<**T**>(`sortedList`: Array‹[AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T››, `change`: [AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T›, `comparator`: [Comparator](_collections_.md#comparator)‹T›): *object* - -*Defined in [packages/sdk/base/src/collections.ts:90](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L90)* - -**Type parameters:** - -▪ **T** - -**Parameters:** - -Name | Type | ------- | ------ | -`sortedList` | Array‹[AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T›› | -`change` | [AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T› | -`comparator` | [Comparator](_collections_.md#comparator)‹T› | - -**Returns:** *object* - -* **greater**: *string* - -* **lesser**: *string* - -* **list**: *Array‹[AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T››* - -___ - -### linkedListChanges - -▸ **linkedListChanges**<**T**>(`sortedList`: Array‹[AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T››, `changeList`: Array‹[AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T››, `comparator`: [Comparator](_collections_.md#comparator)‹T›): *object* - -*Defined in [packages/sdk/base/src/collections.ts:100](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L100)* - -**Type parameters:** - -▪ **T** - -**Parameters:** - -Name | Type | ------- | ------ | -`sortedList` | Array‹[AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T›› | -`changeList` | Array‹[AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T›› | -`comparator` | [Comparator](_collections_.md#comparator)‹T› | - -**Returns:** *object* - -* **greaters**: *string[]* - -* **lessers**: *string[]* - -* **list**: *Array‹[AddressListItem](../interfaces/_collections_.addresslistitem.md)‹T››* - -___ - -### notEmpty - -▸ **notEmpty**<**TValue**>(`value`: TValue | null | undefined): *value is TValue* - -*Defined in [packages/sdk/base/src/collections.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L28)* - -**Type parameters:** - -▪ **TValue** - -**Parameters:** - -Name | Type | ------- | ------ | -`value` | TValue | null | undefined | - -**Returns:** *value is TValue* - -___ - -### zeroRange - -▸ **zeroRange**(`to`: number): *number[]* - -*Defined in [packages/sdk/base/src/collections.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L23)* - -**Parameters:** - -Name | Type | ------- | ------ | -`to` | number | - -**Returns:** *number[]* - -___ - -### zip - -▸ **zip**<**A**, **B**, **C**>(`fn`: function, `as`: A[], `bs`: B[]): *C[]* - -*Defined in [packages/sdk/base/src/collections.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L3)* - -**Type parameters:** - -▪ **A** - -▪ **B** - -▪ **C** - -**Parameters:** - -▪ **fn**: *function* - -▸ (`a`: A, `b`: B): *C* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | A | -`b` | B | - -▪ **as**: *A[]* - -▪ **bs**: *B[]* - -**Returns:** *C[]* - -___ - -### zip3 - -▸ **zip3**<**A**, **B**, **C**>(`as`: A[], `bs`: B[], `cs`: C[]): *[A, B, C][]* - -*Defined in [packages/sdk/base/src/collections.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/collections.ts#L13)* - -**Type parameters:** - -▪ **A** - -▪ **B** - -▪ **C** - -**Parameters:** - -Name | Type | ------- | ------ | -`as` | A[] | -`bs` | B[] | -`cs` | C[] | - -**Returns:** *[A, B, C][]* diff --git a/packages/docs/sdk/docs/base/modules/_contacts_.md b/packages/docs/sdk/docs/base/modules/_contacts_.md deleted file mode 100644 index 33fe01733a7..00000000000 --- a/packages/docs/sdk/docs/base/modules/_contacts_.md +++ /dev/null @@ -1,47 +0,0 @@ -[@celo/base](../README.md) › ["contacts"](_contacts_.md) - -# Module: "contacts" - -## Index - -### Interfaces - -* [ContactPhoneNumber](../interfaces/_contacts_.contactphonenumber.md) -* [MinimalContact](../interfaces/_contacts_.minimalcontact.md) - -### Functions - -* [getContactPhoneNumber](_contacts_.md#const-getcontactphonenumber) -* [isContact](_contacts_.md#iscontact) - -## Functions - -### `Const` getContactPhoneNumber - -▸ **getContactPhoneNumber**(`contact`: [MinimalContact](../interfaces/_contacts_.minimalcontact.md)): *undefined | null | string* - -*Defined in [packages/sdk/base/src/contacts.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/contacts.ts#L13)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contact` | [MinimalContact](../interfaces/_contacts_.minimalcontact.md) | - -**Returns:** *undefined | null | string* - -___ - -### isContact - -▸ **isContact**(`contactOrNumber`: any): *contactOrNumber is MinimalContact* - -*Defined in [packages/sdk/base/src/contacts.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/contacts.ts#L26)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contactOrNumber` | any | - -**Returns:** *contactOrNumber is MinimalContact* diff --git a/packages/docs/sdk/docs/base/modules/_currencies_.md b/packages/docs/sdk/docs/base/modules/_currencies_.md deleted file mode 100644 index 026101b59a8..00000000000 --- a/packages/docs/sdk/docs/base/modules/_currencies_.md +++ /dev/null @@ -1,117 +0,0 @@ -[@celo/base](../README.md) › ["currencies"](_currencies_.md) - -# Module: "currencies" - -## Index - -### Enumerations - -* [CURRENCY_ENUM](../enums/_currencies_.currency_enum.md) -* [SHORT_CURRENCIES](../enums/_currencies_.short_currencies.md) -* [StableToken](../enums/_currencies_.stabletoken.md) -* [Token](../enums/_currencies_.token.md) - -### Type aliases - -* [CeloTokenType](_currencies_.md#celotokentype) - -### Functions - -* [resolveCurrency](_currencies_.md#const-resolvecurrency) - -### Object literals - -* [CURRENCIES](_currencies_.md#const-currencies) -* [currencyToShortMap](_currencies_.md#const-currencytoshortmap) - -## Type aliases - -### CeloTokenType - -Ƭ **CeloTokenType**: *[StableToken](../enums/_currencies_.stabletoken.md) | [Token](../enums/_currencies_.token.md)* - -*Defined in [packages/sdk/base/src/currencies.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L18)* - -## Functions - -### `Const` resolveCurrency - -▸ **resolveCurrency**(`label`: string): *[CURRENCY_ENUM](../enums/_currencies_.currency_enum.md)* - -*Defined in [packages/sdk/base/src/currencies.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L47)* - -**Parameters:** - -Name | Type | ------- | ------ | -`label` | string | - -**Returns:** *[CURRENCY_ENUM](../enums/_currencies_.currency_enum.md)* - -## Object literals - -### `Const` CURRENCIES - -### ▪ **CURRENCIES**: *object* - -*Defined in [packages/sdk/base/src/currencies.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L29)* - -**`deprecated`** - -▪ **[CURRENCY_ENUM.DOLLAR]**: *object* - -*Defined in [packages/sdk/base/src/currencies.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L35)* - -* **code**: *string* = "cUSD" - -* **displayDecimals**: *number* = 2 - -* **symbol**: *string* = "$" - -▪ **[CURRENCY_ENUM.EURO]**: *object* - -*Defined in [packages/sdk/base/src/currencies.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L40)* - -* **code**: *string* = "cEUR" - -* **displayDecimals**: *number* = 2 - -* **symbol**: *string* = "€" - -▪ **[CURRENCY_ENUM.GOLD]**: *object* - -*Defined in [packages/sdk/base/src/currencies.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L30)* - -* **code**: *string* = "cGLD" - -* **displayDecimals**: *number* = 3 - -* **symbol**: *string* = "" - -___ - -### `Const` currencyToShortMap - -### ▪ **currencyToShortMap**: *object* - -*Defined in [packages/sdk/base/src/currencies.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L68)* - -**`deprecated`** use StableToken and Token - -### [CURRENCY_ENUM.DOLLAR] - -• **[CURRENCY_ENUM.DOLLAR]**: *[SHORT_CURRENCIES](../enums/_currencies_.short_currencies.md)* = SHORT_CURRENCIES.DOLLAR - -*Defined in [packages/sdk/base/src/currencies.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L69)* - -### [CURRENCY_ENUM.EURO] - -• **[CURRENCY_ENUM.EURO]**: *[SHORT_CURRENCIES](../enums/_currencies_.short_currencies.md)* = SHORT_CURRENCIES.EURO - -*Defined in [packages/sdk/base/src/currencies.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L71)* - -### [CURRENCY_ENUM.GOLD] - -• **[CURRENCY_ENUM.GOLD]**: *[SHORT_CURRENCIES](../enums/_currencies_.short_currencies.md)* = SHORT_CURRENCIES.GOLD - -*Defined in [packages/sdk/base/src/currencies.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/currencies.ts#L70)* diff --git a/packages/docs/sdk/docs/base/modules/_displayformatting_.md b/packages/docs/sdk/docs/base/modules/_displayformatting_.md deleted file mode 100644 index 69c0f999f70..00000000000 --- a/packages/docs/sdk/docs/base/modules/_displayformatting_.md +++ /dev/null @@ -1,27 +0,0 @@ -[@celo/base](../README.md) › ["displayFormatting"](_displayformatting_.md) - -# Module: "displayFormatting" - -## Index - -### Functions - -* [getErrorMessage](_displayformatting_.md#geterrormessage) - -## Functions - -### getErrorMessage - -▸ **getErrorMessage**(`error`: [Error](../classes/_result_.rooterror.md#static-error)): *string* - -*Defined in [packages/sdk/base/src/displayFormatting.ts:2](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/displayFormatting.ts#L2)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`error` | [Error](../classes/_result_.rooterror.md#static-error) | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/base/modules/_future_.md b/packages/docs/sdk/docs/base/modules/_future_.md deleted file mode 100644 index a7fdc2efc2d..00000000000 --- a/packages/docs/sdk/docs/base/modules/_future_.md +++ /dev/null @@ -1,59 +0,0 @@ -[@celo/base](../README.md) › ["future"](_future_.md) - -# Module: "future" - -## Index - -### Classes - -* [Future](../classes/_future_.future.md) - -### Functions - -* [pipeToFuture](_future_.md#pipetofuture) -* [toFuture](_future_.md#tofuture) - -## Functions - -### pipeToFuture - -▸ **pipeToFuture**<**A**>(`p`: Promise‹A›, `future`: [Future](../classes/_future_.future.md)‹A›): *[Future](../classes/_future_.future.md)‹A›* - -*Defined in [packages/sdk/base/src/future.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/future.ts#L51)* - -**`internal`** - -**Type parameters:** - -▪ **A** - -**Parameters:** - -Name | Type | ------- | ------ | -`p` | Promise‹A› | -`future` | [Future](../classes/_future_.future.md)‹A› | - -**Returns:** *[Future](../classes/_future_.future.md)‹A›* - -___ - -### toFuture - -▸ **toFuture**<**A**>(`p`: Promise‹A›): *[Future](../classes/_future_.future.md)‹A›* - -*Defined in [packages/sdk/base/src/future.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/future.ts#L46)* - -**`internal`** - -**Type parameters:** - -▪ **A** - -**Parameters:** - -Name | Type | ------- | ------ | -`p` | Promise‹A› | - -**Returns:** *[Future](../classes/_future_.future.md)‹A›* diff --git a/packages/docs/sdk/docs/base/modules/_inputvalidation_.md b/packages/docs/sdk/docs/base/modules/_inputvalidation_.md deleted file mode 100644 index 06df97bb614..00000000000 --- a/packages/docs/sdk/docs/base/modules/_inputvalidation_.md +++ /dev/null @@ -1,51 +0,0 @@ -[@celo/base](../README.md) › ["inputValidation"](_inputvalidation_.md) - -# Module: "inputValidation" - -## Index - -### Enumerations - -* [ValidatorKind](../enums/_inputvalidation_.validatorkind.md) - -### Interfaces - -* [BaseProps](../interfaces/_inputvalidation_.baseprops.md) - -### Functions - -* [validateDecimal](_inputvalidation_.md#validatedecimal) -* [validateInteger](_inputvalidation_.md#validateinteger) - -## Functions - -### validateDecimal - -▸ **validateDecimal**(`input`: string, `decimalSeparator`: string): *string* - -*Defined in [packages/sdk/base/src/inputValidation.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L19)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`input` | string | - | -`decimalSeparator` | string | "." | - -**Returns:** *string* - -___ - -### validateInteger - -▸ **validateInteger**(`input`: string): *string* - -*Defined in [packages/sdk/base/src/inputValidation.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/inputValidation.ts#L15)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/base/modules/_io_.md b/packages/docs/sdk/docs/base/modules/_io_.md deleted file mode 100644 index fb639593849..00000000000 --- a/packages/docs/sdk/docs/base/modules/_io_.md +++ /dev/null @@ -1,41 +0,0 @@ -[@celo/base](../README.md) › ["io"](_io_.md) - -# Module: "io" - -## Index - -### Variables - -* [URL_REGEX](_io_.md#const-url_regex) - -### Functions - -* [isValidUrl](_io_.md#const-isvalidurl) - -## Variables - -### `Const` URL_REGEX - -• **URL_REGEX**: *RegExp‹›* = new RegExp( - /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/ -) - -*Defined in [packages/sdk/base/src/io.ts:2](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/io.ts#L2)* - -## Functions - -### `Const` isValidUrl - -▸ **isValidUrl**(`url`: string): *boolean* - -*Defined in [packages/sdk/base/src/io.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/io.ts#L6)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`url` | string | - -**Returns:** *boolean* diff --git a/packages/docs/sdk/docs/base/modules/_lock_.md b/packages/docs/sdk/docs/base/modules/_lock_.md deleted file mode 100644 index 61394106632..00000000000 --- a/packages/docs/sdk/docs/base/modules/_lock_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/base](../README.md) › ["lock"](_lock_.md) - -# Module: "lock" - -## Index - -### Classes - -* [Lock](../classes/_lock_.lock.md) diff --git a/packages/docs/sdk/docs/base/modules/_logger_.md b/packages/docs/sdk/docs/base/modules/_logger_.md deleted file mode 100644 index 7522851210f..00000000000 --- a/packages/docs/sdk/docs/base/modules/_logger_.md +++ /dev/null @@ -1,77 +0,0 @@ -[@celo/base](../README.md) › ["logger"](_logger_.md) - -# Module: "logger" - -## Index - -### Type aliases - -* [Logger](_logger_.md#logger) - -### Variables - -* [consoleLogger](_logger_.md#const-consolelogger) - -### Functions - -* [noopLogger](_logger_.md#const-nooplogger) -* [prefixLogger](_logger_.md#const-prefixlogger) - -## Type aliases - -### Logger - -Ƭ **Logger**: *function* - -*Defined in [packages/sdk/base/src/logger.ts:1](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/logger.ts#L1)* - -#### Type declaration: - -▸ (...`args`: any[]): *void* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | any[] | - -## Variables - -### `Const` consoleLogger - -• **consoleLogger**: *[Logger](_logger_.md#logger)* = console.log - -*Defined in [packages/sdk/base/src/logger.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/logger.ts#L15)* - -**`internal`** - -## Functions - -### `Const` noopLogger - -▸ **noopLogger**(): *void* - -*Defined in [packages/sdk/base/src/logger.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/logger.ts#L3)* - -**`internal`** - -**Returns:** *void* - -___ - -### `Const` prefixLogger - -▸ **prefixLogger**(`prefix`: string, `logger`: [Logger](_logger_.md#logger)): *[Logger](_logger_.md#logger)* - -*Defined in [packages/sdk/base/src/logger.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/logger.ts#L7)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`prefix` | string | -`logger` | [Logger](_logger_.md#logger) | - -**Returns:** *[Logger](_logger_.md#logger)* diff --git a/packages/docs/sdk/docs/base/modules/_parsing_.md b/packages/docs/sdk/docs/base/modules/_parsing_.md deleted file mode 100644 index a91ba814f9b..00000000000 --- a/packages/docs/sdk/docs/base/modules/_parsing_.md +++ /dev/null @@ -1,45 +0,0 @@ -[@celo/base](../README.md) › ["parsing"](_parsing_.md) - -# Module: "parsing" - -## Index - -### Functions - -* [parseSolidityStringArray](_parsing_.md#const-parsesoliditystringarray) -* [stringToBoolean](_parsing_.md#const-stringtoboolean) - -## Functions - -### `Const` parseSolidityStringArray - -▸ **parseSolidityStringArray**(`stringLengths`: number[], `data`: string): *string[]* - -*Defined in [packages/sdk/base/src/parsing.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/parsing.ts#L17)* - -Parses an "array of strings" that is returned from a Solidity function - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`stringLengths` | number[] | length of each string in bytes | -`data` | string | 0x-prefixed, hex-encoded string data in utf-8 bytes | - -**Returns:** *string[]* - -___ - -### `Const` stringToBoolean - -▸ **stringToBoolean**(`inputString`: string): *boolean* - -*Defined in [packages/sdk/base/src/parsing.ts:1](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/parsing.ts#L1)* - -**Parameters:** - -Name | Type | ------- | ------ | -`inputString` | string | - -**Returns:** *boolean* diff --git a/packages/docs/sdk/docs/base/modules/_phonenumbers_.md b/packages/docs/sdk/docs/base/modules/_phonenumbers_.md deleted file mode 100644 index 8d4ffef6be9..00000000000 --- a/packages/docs/sdk/docs/base/modules/_phonenumbers_.md +++ /dev/null @@ -1,97 +0,0 @@ -[@celo/base](../README.md) › ["phoneNumbers"](_phonenumbers_.md) - -# Module: "phoneNumbers" - -## Index - -### Interfaces - -* [ParsedPhoneNumber](../interfaces/_phonenumbers_.parsedphonenumber.md) - -### Functions - -* [anonymizedPhone](_phonenumbers_.md#anonymizedphone) -* [getPhoneHash](_phonenumbers_.md#const-getphonehash) -* [isE164Number](_phonenumbers_.md#ise164number) - -### Object literals - -* [PhoneNumberBase](_phonenumbers_.md#const-phonenumberbase) - -## Functions - -### anonymizedPhone - -▸ **anonymizedPhone**(`phoneNumber`: string): *string* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L31)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | - -**Returns:** *string* - -___ - -### `Const` getPhoneHash - -▸ **getPhoneHash**(`sha3`: function, `phoneNumber`: string, `salt?`: undefined | string): *string* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L14)* - -**Parameters:** - -▪ **sha3**: *function* - -▸ (`a`: string): *string | null* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | string | - -▪ **phoneNumber**: *string* - -▪`Optional` **salt**: *undefined | string* - -**Returns:** *string* - -___ - -### isE164Number - -▸ **isE164Number**(`phoneNumber`: string): *boolean* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L27)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | - -**Returns:** *boolean* - -## Object literals - -### `Const` PhoneNumberBase - -### ▪ **PhoneNumberBase**: *object* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L35)* - -### getPhoneHash - -• **getPhoneHash**: *getPhoneHash* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L36)* - -### isE164Number - -• **isE164Number**: *[isE164Number](_phonenumbers_.md#ise164number)* - -*Defined in [packages/sdk/base/src/phoneNumbers.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/phoneNumbers.ts#L37)* diff --git a/packages/docs/sdk/docs/base/modules/_result_.md b/packages/docs/sdk/docs/base/modules/_result_.md deleted file mode 100644 index 6903d33c62f..00000000000 --- a/packages/docs/sdk/docs/base/modules/_result_.md +++ /dev/null @@ -1,244 +0,0 @@ -[@celo/base](../README.md) › ["result"](_result_.md) - -# Module: "result" - -## Index - -### Classes - -* [JSONParseError](../classes/_result_.jsonparseerror.md) -* [RootError](../classes/_result_.rooterror.md) - -### Interfaces - -* [BaseError](../interfaces/_result_.baseerror.md) -* [ErrorResult](../interfaces/_result_.errorresult.md) -* [OkResult](../interfaces/_result_.okresult.md) - -### Type aliases - -* [Result](_result_.md#result) - -### Variables - -* [JSONParseErrorType](_result_.md#const-jsonparseerrortype) - -### Functions - -* [Err](_result_.md#const-err) -* [Ok](_result_.md#const-ok) -* [isErr](_result_.md#iserr) -* [isOk](_result_.md#isok) -* [makeAsyncThrowable](_result_.md#makeasyncthrowable) -* [makeThrowable](_result_.md#makethrowable) -* [parseJsonAsResult](_result_.md#parsejsonasresult) -* [throwIfError](_result_.md#throwiferror) - -## Type aliases - -### Result - -Ƭ **Result**: *[OkResult](../interfaces/_result_.okresult.md)‹TResult› | [ErrorResult](../interfaces/_result_.errorresult.md)‹TError›* - -*Defined in [packages/sdk/base/src/result.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L10)* - -## Variables - -### `Const` JSONParseErrorType - -• **JSONParseErrorType**: *"JsonParseError"* = "JsonParseError" - -*Defined in [packages/sdk/base/src/result.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L77)* - -## Functions - -### `Const` Err - -▸ **Err**<**TError**>(`error`: TError): *[ErrorResult](../interfaces/_result_.errorresult.md)‹TError›* - -*Defined in [packages/sdk/base/src/result.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L16)* - -**Type parameters:** - -▪ **TError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -**Parameters:** - -Name | Type | ------- | ------ | -`error` | TError | - -**Returns:** *[ErrorResult](../interfaces/_result_.errorresult.md)‹TError›* - -___ - -### `Const` Ok - -▸ **Ok**<**TResult**>(`result`: TResult): *[OkResult](../interfaces/_result_.okresult.md)‹TResult›* - -*Defined in [packages/sdk/base/src/result.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L12)* - -**Type parameters:** - -▪ **TResult** - -**Parameters:** - -Name | Type | ------- | ------ | -`result` | TResult | - -**Returns:** *[OkResult](../interfaces/_result_.okresult.md)‹TResult›* - -___ - -### isErr - -▸ **isErr**<**TResult**, **TError**>(`result`: [Result](_result_.md#result)‹TResult, TError›): *result is ErrorResult* - -*Defined in [packages/sdk/base/src/result.ts:98](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L98)* - -**Type parameters:** - -▪ **TResult** - -▪ **TError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -**Parameters:** - -Name | Type | ------- | ------ | -`result` | [Result](_result_.md#result)‹TResult, TError› | - -**Returns:** *result is ErrorResult* - -___ - -### isOk - -▸ **isOk**<**TResult**, **TError**>(`result`: [Result](_result_.md#result)‹TResult, TError›): *result is OkResult* - -*Defined in [packages/sdk/base/src/result.ts:92](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L92)* - -**Type parameters:** - -▪ **TResult** - -▪ **TError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -**Parameters:** - -Name | Type | ------- | ------ | -`result` | [Result](_result_.md#result)‹TResult, TError› | - -**Returns:** *result is OkResult* - -___ - -### makeAsyncThrowable - -▸ **makeAsyncThrowable**<**TArgs**, **TResult**, **TError**, **TModifiedError**>(`f`: function, `errorModifier?`: undefined | function): *(Anonymous function)* - -*Defined in [packages/sdk/base/src/result.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L47)* - -**Type parameters:** - -▪ **TArgs**: *any[]* - -▪ **TResult** - -▪ **TError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -▪ **TModifiedError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -**Parameters:** - -▪ **f**: *function* - -▸ (...`args`: TArgs): *Promise‹[Result](_result_.md#result)‹TResult, TError››* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -▪`Optional` **errorModifier**: *undefined | function* - -**Returns:** *(Anonymous function)* - -___ - -### makeThrowable - -▸ **makeThrowable**<**TArgs**, **TResult**, **TError**, **TModifiedError**>(`f`: function, `errorModifier?`: undefined | function): *(Anonymous function)* - -*Defined in [packages/sdk/base/src/result.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L35)* - -**Type parameters:** - -▪ **TArgs**: *any[]* - -▪ **TResult** - -▪ **TError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -▪ **TModifiedError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -**Parameters:** - -▪ **f**: *function* - -▸ (...`args`: TArgs): *[Result](_result_.md#result)‹TResult, TError›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -▪`Optional` **errorModifier**: *undefined | function* - -**Returns:** *(Anonymous function)* - -___ - -### parseJsonAsResult - -▸ **parseJsonAsResult**(`data`: string): *[OkResult](../interfaces/_result_.okresult.md)‹any› | [ErrorResult](../interfaces/_result_.errorresult.md)‹[JSONParseError](../classes/_result_.jsonparseerror.md)‹››* - -*Defined in [packages/sdk/base/src/result.ts:84](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L84)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | string | - -**Returns:** *[OkResult](../interfaces/_result_.okresult.md)‹any› | [ErrorResult](../interfaces/_result_.errorresult.md)‹[JSONParseError](../classes/_result_.jsonparseerror.md)‹››* - -___ - -### throwIfError - -▸ **throwIfError**<**TResult**, **TError**, **TModifiedError**>(`result`: [Result](_result_.md#result)‹TResult, TError›, `errorModifier?`: undefined | function): *TResult* - -*Defined in [packages/sdk/base/src/result.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/result.ts#L21)* - -**Type parameters:** - -▪ **TResult** - -▪ **TError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -▪ **TModifiedError**: *[Error](../classes/_result_.rooterror.md#static-error)* - -**Parameters:** - -Name | Type | ------- | ------ | -`result` | [Result](_result_.md#result)‹TResult, TError› | -`errorModifier?` | undefined | function | - -**Returns:** *TResult* diff --git a/packages/docs/sdk/docs/base/modules/_signatureutils_.md b/packages/docs/sdk/docs/base/modules/_signatureutils_.md deleted file mode 100644 index 2c06fe910db..00000000000 --- a/packages/docs/sdk/docs/base/modules/_signatureutils_.md +++ /dev/null @@ -1,92 +0,0 @@ -[@celo/base](../README.md) › ["signatureUtils"](_signatureutils_.md) - -# Module: "signatureUtils" - -## Index - -### Interfaces - -* [Signature](../interfaces/_signatureutils_.signature.md) -* [Signer](../interfaces/_signatureutils_.signer.md) - -### Variables - -* [POP_SIZE](_signatureutils_.md#const-pop_size) - -### Functions - -* [NativeSigner](_signatureutils_.md#nativesigner) -* [serializeSignature](_signatureutils_.md#serializesignature) - -### Object literals - -* [SignatureBase](_signatureutils_.md#const-signaturebase) - -## Variables - -### `Const` POP_SIZE - -• **POP_SIZE**: *65* = 65 - -*Defined in [packages/sdk/base/src/signatureUtils.ts:1](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L1)* - -## Functions - -### NativeSigner - -▸ **NativeSigner**(`signFn`: function, `signer`: string): *[Signer](../interfaces/_signatureutils_.signer.md)* - -*Defined in [packages/sdk/base/src/signatureUtils.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L8)* - -**Parameters:** - -▪ **signFn**: *function* - -▸ (`message`: string, `signer`: string): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | -`signer` | string | - -▪ **signer**: *string* - -**Returns:** *[Signer](../interfaces/_signatureutils_.signer.md)* - -___ - -### serializeSignature - -▸ **serializeSignature**(`signature`: [Signature](../interfaces/_signatureutils_.signature.md)): *string* - -*Defined in [packages/sdk/base/src/signatureUtils.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L25)* - -**Parameters:** - -Name | Type | ------- | ------ | -`signature` | [Signature](../interfaces/_signatureutils_.signature.md) | - -**Returns:** *string* - -## Object literals - -### `Const` SignatureBase - -### ▪ **SignatureBase**: *object* - -*Defined in [packages/sdk/base/src/signatureUtils.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L32)* - -### NativeSigner - -• **NativeSigner**: *[NativeSigner](_signatureutils_.md#nativesigner)* - -*Defined in [packages/sdk/base/src/signatureUtils.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L33)* - -### serializeSignature - -• **serializeSignature**: *[serializeSignature](_signatureutils_.md#serializesignature)* - -*Defined in [packages/sdk/base/src/signatureUtils.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/signatureUtils.ts#L34)* diff --git a/packages/docs/sdk/docs/base/modules/_string_.md b/packages/docs/sdk/docs/base/modules/_string_.md deleted file mode 100644 index ba23bf34722..00000000000 --- a/packages/docs/sdk/docs/base/modules/_string_.md +++ /dev/null @@ -1,67 +0,0 @@ -[@celo/base](../README.md) › ["string"](_string_.md) - -# Module: "string" - -## Index - -### Functions - -* [appendPath](_string_.md#appendpath) -* [normalizeAccents](_string_.md#normalizeaccents) - -### Object literals - -* [StringBase](_string_.md#const-stringbase) - -## Functions - -### appendPath - -▸ **appendPath**(`baseUrl`: string, `path`: string): *string* - -*Defined in [packages/sdk/base/src/string.ts:1](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/string.ts#L1)* - -**Parameters:** - -Name | Type | ------- | ------ | -`baseUrl` | string | -`path` | string | - -**Returns:** *string* - -___ - -### normalizeAccents - -▸ **normalizeAccents**(`str`: string): *string* - -*Defined in [packages/sdk/base/src/string.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/string.ts#L10)* - -**Parameters:** - -Name | Type | ------- | ------ | -`str` | string | - -**Returns:** *string* - -## Object literals - -### `Const` StringBase - -### ▪ **StringBase**: *object* - -*Defined in [packages/sdk/base/src/string.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/string.ts#L14)* - -### appendPath - -• **appendPath**: *[appendPath](_string_.md#appendpath)* - -*Defined in [packages/sdk/base/src/string.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/string.ts#L15)* - -### normalizeAccents - -• **normalizeAccents**: *[normalizeAccents](_string_.md#normalizeaccents)* - -*Defined in [packages/sdk/base/src/string.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/string.ts#L16)* diff --git a/packages/docs/sdk/docs/base/modules/_task_.md b/packages/docs/sdk/docs/base/modules/_task_.md deleted file mode 100644 index f8c00f291b7..00000000000 --- a/packages/docs/sdk/docs/base/modules/_task_.md +++ /dev/null @@ -1,83 +0,0 @@ -[@celo/base](../README.md) › ["task"](_task_.md) - -# Module: "task" - -## Index - -### Interfaces - -* [RepeatTaskContext](../interfaces/_task_.repeattaskcontext.md) -* [RetryTaskOptions](../interfaces/_task_.retrytaskoptions.md) -* [RunningTask](../interfaces/_task_.runningtask.md) -* [RunningTaskWithValue](../interfaces/_task_.runningtaskwithvalue.md) -* [TaskOptions](../interfaces/_task_.taskoptions.md) - -### Functions - -* [conditionWatcher](_task_.md#conditionwatcher) -* [repeatTask](_task_.md#repeattask) -* [tryObtainValueWithRetries](_task_.md#tryobtainvaluewithretries) - -## Functions - -### conditionWatcher - -▸ **conditionWatcher**(`opts`: RepeatTaskOptions & object): *[RunningTask](../interfaces/_task_.runningtask.md)* - -*Defined in [packages/sdk/base/src/task.ts:100](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L100)* - -**Parameters:** - -Name | Type | ------- | ------ | -`opts` | RepeatTaskOptions & object | - -**Returns:** *[RunningTask](../interfaces/_task_.runningtask.md)* - -___ - -### repeatTask - -▸ **repeatTask**(`opts`: RepeatTaskOptions, `fn`: function): *[RunningTask](../interfaces/_task_.runningtask.md)* - -*Defined in [packages/sdk/base/src/task.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L54)* - -Runs an async function eternally until stopped - -**Parameters:** - -▪ **opts**: *RepeatTaskOptions* - -▪ **fn**: *function* - -function to run - -▸ (`ctx`: [RepeatTaskContext](../interfaces/_task_.repeattaskcontext.md)): *Promise‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`ctx` | [RepeatTaskContext](../interfaces/_task_.repeattaskcontext.md) | - -**Returns:** *[RunningTask](../interfaces/_task_.runningtask.md)* - -___ - -### tryObtainValueWithRetries - -▸ **tryObtainValueWithRetries**<**A**>(`opts`: [RetryTaskOptions](../interfaces/_task_.retrytaskoptions.md)‹A›): *[RunningTaskWithValue](../interfaces/_task_.runningtaskwithvalue.md)‹A›* - -*Defined in [packages/sdk/base/src/task.ts:128](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/base/src/task.ts#L128)* - -**Type parameters:** - -▪ **A** - -**Parameters:** - -Name | Type | ------- | ------ | -`opts` | [RetryTaskOptions](../interfaces/_task_.retrytaskoptions.md)‹A› | - -**Returns:** *[RunningTaskWithValue](../interfaces/_task_.runningtaskwithvalue.md)‹A›* diff --git a/packages/docs/sdk/docs/connect/README.md b/packages/docs/sdk/docs/connect/README.md deleted file mode 100644 index 75f200323e2..00000000000 --- a/packages/docs/sdk/docs/connect/README.md +++ /dev/null @@ -1,37 +0,0 @@ -[@celo/connect](README.md) › [Globals](globals.md) - -# @celo/connect - -# @celo/connect - -*Connect to the Celo Blockchain.* `Connection` provides the core of what you need to interact with Celo blockchain. The Core Difference between it and ContractKit is that it provides zero Contract Wrappers, and therefore leaves out convenience methods for example for setting FeeCurrency, or getting configs. - -## Examples - -### Basic - -```typescript -import { Connection, CeloProvider } from '@celo/connect' - -const web3 = new Web3("YOUR_RPC_URL") -const connection = new Connection(web3) - -connection.setProvider() - -const connectedChainID = await connection.chainId() - -``` - -For a raw transaction: - -```ts -const oneCelo = connection.web3.utils.toWei('1', 'ether') - -const tx = connection.sendTransaction({ - from: myAddress, - to: someAddress, - value: oneCelo, -}) -const hash = await tx.getHash() -const receipt = await tx.waitReceipt() -``` diff --git a/packages/docs/sdk/docs/connect/classes/_celo_provider_.celoprovider.md b/packages/docs/sdk/docs/connect/classes/_celo_provider_.celoprovider.md deleted file mode 100644 index 14cd40b8b7a..00000000000 --- a/packages/docs/sdk/docs/connect/classes/_celo_provider_.celoprovider.md +++ /dev/null @@ -1,178 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["celo-provider"](../modules/_celo_provider_.md) › [CeloProvider](_celo_provider_.celoprovider.md) - -# Class: CeloProvider - -## Hierarchy - -* **CeloProvider** - -## Implements - -* [Provider](../interfaces/_types_.provider.md) - -## Index - -### Constructors - -* [constructor](_celo_provider_.celoprovider.md#constructor) - -### Properties - -* [connection](_celo_provider_.celoprovider.md#readonly-connection) -* [existingProvider](_celo_provider_.celoprovider.md#readonly-existingprovider) - -### Accessors - -* [connected](_celo_provider_.celoprovider.md#connected) - -### Methods - -* [addAccount](_celo_provider_.celoprovider.md#addaccount) -* [getAccounts](_celo_provider_.celoprovider.md#getaccounts) -* [isLocalAccount](_celo_provider_.celoprovider.md#islocalaccount) -* [removeAccount](_celo_provider_.celoprovider.md#removeaccount) -* [send](_celo_provider_.celoprovider.md#send) -* [stop](_celo_provider_.celoprovider.md#stop) -* [supportsSubscriptions](_celo_provider_.celoprovider.md#supportssubscriptions) - -## Constructors - -### constructor - -\+ **new CeloProvider**(`existingProvider`: [Provider](../interfaces/_types_.provider.md), `connection`: [Connection](_connection_.connection.md)): *[CeloProvider](_celo_provider_.celoprovider.md)* - -*Defined in [celo-provider.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L40)* - -**Parameters:** - -Name | Type | ------- | ------ | -`existingProvider` | [Provider](../interfaces/_types_.provider.md) | -`connection` | [Connection](_connection_.connection.md) | - -**Returns:** *[CeloProvider](_celo_provider_.celoprovider.md)* - -## Properties - -### `Readonly` connection - -• **connection**: *[Connection](_connection_.connection.md)* - -*Defined in [celo-provider.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L42)* - -___ - -### `Readonly` existingProvider - -• **existingProvider**: *[Provider](../interfaces/_types_.provider.md)* - -*Defined in [celo-provider.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L42)* - -## Accessors - -### connected - -• **get connected**(): *any* - -*Defined in [celo-provider.ts:245](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L245)* - -**Returns:** *any* - -## Methods - -### addAccount - -▸ **addAccount**(`privateKey`: string): *void* - -*Defined in [celo-provider.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L47)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | - -**Returns:** *void* - -___ - -### getAccounts - -▸ **getAccounts**(): *Promise‹string[]›* - -*Defined in [celo-provider.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L57)* - -**Returns:** *Promise‹string[]›* - -___ - -### isLocalAccount - -▸ **isLocalAccount**(`address?`: undefined | string): *boolean* - -*Defined in [celo-provider.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L61)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address?` | undefined | string | - -**Returns:** *boolean* - -___ - -### removeAccount - -▸ **removeAccount**(`address`: string): *void* - -*Defined in [celo-provider.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L52)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *void* - -___ - -### send - -▸ **send**(`payload`: [JsonRpcPayload](../interfaces/_types_.jsonrpcpayload.md), `callback`: [Callback](../modules/_types_.md#callback)‹[JsonRpcResponse](../interfaces/_types_.jsonrpcresponse.md)›): *void* - -*Implementation of [Provider](../interfaces/_types_.provider.md)* - -*Defined in [celo-provider.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L68)* - -Send method as expected by web3.js - -**Parameters:** - -Name | Type | ------- | ------ | -`payload` | [JsonRpcPayload](../interfaces/_types_.jsonrpcpayload.md) | -`callback` | [Callback](../modules/_types_.md#callback)‹[JsonRpcResponse](../interfaces/_types_.jsonrpcresponse.md)› | - -**Returns:** *void* - -___ - -### stop - -▸ **stop**(): *void* - -*Defined in [celo-provider.ts:143](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L143)* - -**Returns:** *void* - -___ - -### supportsSubscriptions - -▸ **supportsSubscriptions**(): *any* - -*Defined in [celo-provider.ts:249](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L249)* - -**Returns:** *any* diff --git a/packages/docs/sdk/docs/connect/classes/_connection_.connection.md b/packages/docs/sdk/docs/connect/classes/_connection_.connection.md deleted file mode 100644 index 965522cae63..00000000000 --- a/packages/docs/sdk/docs/connect/classes/_connection_.connection.md +++ /dev/null @@ -1,728 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["connection"](../modules/_connection_.md) › [Connection](_connection_.connection.md) - -# Class: Connection - -Connection is a Class for connecting to Celo, sending Transactions, etc - -**`param`** an instance of web3 - -**`optional`** wallet a child class of {@link WalletBase} - -**`optional`** handleRevert sets handleRevert on the web3.eth instance passed in - -## Hierarchy - -* **Connection** - -## Index - -### Constructors - -* [constructor](_connection_.connection.md#constructor) - -### Properties - -* [paramsPopulator](_connection_.connection.md#readonly-paramspopulator) -* [rpcCaller](_connection_.connection.md#rpccaller) -* [wallet](_connection_.connection.md#optional-wallet) -* [web3](_connection_.connection.md#readonly-web3) - -### Accessors - -* [defaultAccount](_connection_.connection.md#defaultaccount) -* [defaultFeeCurrency](_connection_.connection.md#defaultfeecurrency) -* [defaultGasInflationFactor](_connection_.connection.md#defaultgasinflationfactor) -* [defaultGasPrice](_connection_.connection.md#defaultgasprice) - -### Methods - -* [addAccount](_connection_.connection.md#addaccount) -* [chainId](_connection_.connection.md#chainid) -* [coinbase](_connection_.connection.md#coinbase) -* [estimateGas](_connection_.connection.md#estimategas) -* [estimateGasWithInflationFactor](_connection_.connection.md#estimategaswithinflationfactor) -* [fillGasPrice](_connection_.connection.md#fillgasprice) -* [gasPrice](_connection_.connection.md#gasprice) -* [getAbiCoder](_connection_.connection.md#getabicoder) -* [getAccounts](_connection_.connection.md#getaccounts) -* [getBalance](_connection_.connection.md#getbalance) -* [getBlock](_connection_.connection.md#getblock) -* [getBlockHeader](_connection_.connection.md#getblockheader) -* [getBlockNumber](_connection_.connection.md#getblocknumber) -* [getLocalAccounts](_connection_.connection.md#getlocalaccounts) -* [getNodeAccounts](_connection_.connection.md#getnodeaccounts) -* [getTransaction](_connection_.connection.md#gettransaction) -* [getTransactionCount](_connection_.connection.md#gettransactioncount) -* [getTransactionReceipt](_connection_.connection.md#gettransactionreceipt) -* [hexToAscii](_connection_.connection.md#hextoascii) -* [isListening](_connection_.connection.md#islistening) -* [isLocalAccount](_connection_.connection.md#islocalaccount) -* [isSyncing](_connection_.connection.md#issyncing) -* [keccak256](_connection_.connection.md#keccak256) -* [nonce](_connection_.connection.md#nonce) -* [removeAccount](_connection_.connection.md#removeaccount) -* [sendSignedTransaction](_connection_.connection.md#sendsignedtransaction) -* [sendTransaction](_connection_.connection.md#sendtransaction) -* [sendTransactionObject](_connection_.connection.md#sendtransactionobject) -* [setGasPriceForCurrency](_connection_.connection.md#setgaspriceforcurrency) -* [setProvider](_connection_.connection.md#setprovider) -* [sign](_connection_.connection.md#sign) -* [signTypedData](_connection_.connection.md#signtypeddata) -* [stop](_connection_.connection.md#stop) - -## Constructors - -### constructor - -\+ **new Connection**(`web3`: Web3, `wallet?`: [ReadOnlyWallet](../interfaces/_wallet_.readonlywallet.md), `handleRevert`: boolean): *[Connection](_connection_.connection.md)* - -*Defined in [connection.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L61)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`web3` | Web3 | - | -`wallet?` | [ReadOnlyWallet](../interfaces/_wallet_.readonlywallet.md) | - | -`handleRevert` | boolean | true | - -**Returns:** *[Connection](_connection_.connection.md)* - -## Properties - -### `Readonly` paramsPopulator - -• **paramsPopulator**: *[TxParamsNormalizer](_utils_tx_params_normalizer_.txparamsnormalizer.md)* - -*Defined in [connection.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L57)* - -___ - -### rpcCaller - -• **rpcCaller**: *[RpcCaller](../interfaces/_utils_rpc_caller_.rpccaller.md)* - -*Defined in [connection.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L58)* - -___ - -### `Optional` wallet - -• **wallet**? : *[ReadOnlyWallet](../interfaces/_wallet_.readonlywallet.md)* - -*Defined in [connection.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L63)* - -___ - -### `Readonly` web3 - -• **web3**: *Web3* - -*Defined in [connection.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L63)* - -## Accessors - -### defaultAccount - -• **get defaultAccount**(): *[Address](../modules/_types_.md#address) | undefined* - -*Defined in [connection.ts:115](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L115)* - -Default account for generated transactions (eg. tx.from) - -**Returns:** *[Address](../modules/_types_.md#address) | undefined* - -• **set defaultAccount**(`address`: [Address](../modules/_types_.md#address) | undefined): *void* - -*Defined in [connection.ts:107](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L107)* - -Set default account for generated transactions (eg. tx.from ) - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | undefined | - -**Returns:** *void* - -___ - -### defaultFeeCurrency - -• **get defaultFeeCurrency**(): *undefined | string* - -*Defined in [connection.ts:147](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L147)* - -Set the ERC20 address for the token to use to pay for transaction fees. -The ERC20 must be whitelisted for gas. - -Set to `null` to use CELO - -**Returns:** *undefined | string* - -• **set defaultFeeCurrency**(`address`: [Address](../modules/_types_.md#address) | undefined): *void* - -*Defined in [connection.ts:143](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L143)* - -Set the ERC20 address for the token to use to pay for transaction fees. -The ERC20 must be whitelisted for gas. - -Set to `null` to use CELO - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | [Address](../modules/_types_.md#address) | undefined | ERC20 address | - -**Returns:** *void* - -___ - -### defaultGasInflationFactor - -• **get defaultGasInflationFactor**(): *number* - -*Defined in [connection.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L123)* - -**Returns:** *number* - -• **set defaultGasInflationFactor**(`factor`: number): *void* - -*Defined in [connection.ts:119](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L119)* - -**Parameters:** - -Name | Type | ------- | ------ | -`factor` | number | - -**Returns:** *void* - -___ - -### defaultGasPrice - -• **get defaultGasPrice**(): *number* - -*Defined in [connection.ts:131](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L131)* - -**Returns:** *number* - -• **set defaultGasPrice**(`price`: number): *void* - -*Defined in [connection.ts:127](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L127)* - -**Parameters:** - -Name | Type | ------- | ------ | -`price` | number | - -**Returns:** *void* - -## Methods - -### addAccount - -▸ **addAccount**(`privateKey`: string): *void* - -*Defined in [connection.ts:155](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L155)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | - -**Returns:** *void* - -___ - -### chainId - -▸ **chainId**(): *Promise‹number›* - -*Defined in [connection.ts:388](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L388)* - -**Returns:** *Promise‹number›* - -___ - -### coinbase - -▸ **coinbase**(): *Promise‹string›* - -*Defined in [connection.ts:405](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L405)* - -**Returns:** *Promise‹string›* - -___ - -### estimateGas - -▸ **estimateGas**(`tx`: [CeloTx](../modules/_types_.md#celotx), `gasEstimator`: function, `caller`: function): *Promise‹number›* - -*Defined in [connection.ts:341](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L341)* - -**Parameters:** - -▪ **tx**: *[CeloTx](../modules/_types_.md#celotx)* - -▪`Default value` **gasEstimator**: *function*= this.web3.eth.estimateGas - -▸ (`tx`: [CeloTx](../modules/_types_.md#celotx)): *Promise‹number›* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | [CeloTx](../modules/_types_.md#celotx) | - -▪`Default value` **caller**: *function*= this.web3.eth.call - -▸ (`tx`: [CeloTx](../modules/_types_.md#celotx)): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | [CeloTx](../modules/_types_.md#celotx) | - -**Returns:** *Promise‹number›* - -___ - -### estimateGasWithInflationFactor - -▸ **estimateGasWithInflationFactor**(`tx`: [CeloTx](../modules/_types_.md#celotx), `gasEstimator?`: undefined | function, `caller?`: undefined | function): *Promise‹number›* - -*Defined in [connection.ts:372](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L372)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | [CeloTx](../modules/_types_.md#celotx) | -`gasEstimator?` | undefined | function | -`caller?` | undefined | function | - -**Returns:** *Promise‹number›* - -___ - -### fillGasPrice - -▸ **fillGasPrice**(`tx`: [CeloTx](../modules/_types_.md#celotx)): *[CeloTx](../modules/_types_.md#celotx)* - -*Defined in [connection.ts:327](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L327)* - -**`deprecated`** no longer needed since gasPrice is available on node rpc - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | [CeloTx](../modules/_types_.md#celotx) | - -**Returns:** *[CeloTx](../modules/_types_.md#celotx)* - -___ - -### gasPrice - -▸ **gasPrice**(`feeCurrency?`: [Address](../modules/_types_.md#address)): *Promise‹string›* - -*Defined in [connection.ts:411](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L411)* - -**Parameters:** - -Name | Type | ------- | ------ | -`feeCurrency?` | [Address](../modules/_types_.md#address) | - -**Returns:** *Promise‹string›* - -___ - -### getAbiCoder - -▸ **getAbiCoder**(): *[AbiCoder](../interfaces/_abi_types_.abicoder.md)* - -*Defined in [connection.ts:368](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L368)* - -**Returns:** *[AbiCoder](../interfaces/_abi_types_.abicoder.md)* - -___ - -### getAccounts - -▸ **getAccounts**(): *Promise‹string[]›* - -*Defined in [connection.ts:188](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L188)* - -**Returns:** *Promise‹string[]›* - -___ - -### getBalance - -▸ **getBalance**(`address`: [Address](../modules/_types_.md#address), `defaultBlock?`: [BlockNumber](../modules/_types_.md#blocknumber)): *Promise‹string›* - -*Defined in [connection.ts:458](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L458)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | -`defaultBlock?` | [BlockNumber](../modules/_types_.md#blocknumber) | - -**Returns:** *Promise‹string›* - -___ - -### getBlock - -▸ **getBlock**(`blockHashOrBlockNumber`: [BlockNumber](../modules/_types_.md#blocknumber), `fullTxObjects`: boolean): *Promise‹Block›* - -*Defined in [connection.ts:430](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L430)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`blockHashOrBlockNumber` | [BlockNumber](../modules/_types_.md#blocknumber) | - | -`fullTxObjects` | boolean | true | - -**Returns:** *Promise‹Block›* - -___ - -### getBlockHeader - -▸ **getBlockHeader**(`blockHashOrBlockNumber`: [BlockNumber](../modules/_types_.md#blocknumber)): *Promise‹BlockHeader›* - -*Defined in [connection.ts:446](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L446)* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockHashOrBlockNumber` | [BlockNumber](../modules/_types_.md#blocknumber) | - -**Returns:** *Promise‹BlockHeader›* - -___ - -### getBlockNumber - -▸ **getBlockNumber**(): *Promise‹number›* - -*Defined in [connection.ts:421](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L421)* - -**Returns:** *Promise‹number›* - -___ - -### getLocalAccounts - -▸ **getLocalAccounts**(): *string[]* - -*Defined in [connection.ts:184](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L184)* - -**Returns:** *string[]* - -___ - -### getNodeAccounts - -▸ **getNodeAccounts**(): *Promise‹string[]›* - -*Defined in [connection.ts:179](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L179)* - -**Returns:** *Promise‹string[]›* - -___ - -### getTransaction - -▸ **getTransaction**(`transactionHash`: string): *Promise‹[CeloTxPending](../modules/_types_.md#celotxpending)›* - -*Defined in [connection.ts:467](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L467)* - -**Parameters:** - -Name | Type | ------- | ------ | -`transactionHash` | string | - -**Returns:** *Promise‹[CeloTxPending](../modules/_types_.md#celotxpending)›* - -___ - -### getTransactionCount - -▸ **getTransactionCount**(`address`: [Address](../modules/_types_.md#address)): *Promise‹number›* - -*Defined in [connection.ts:394](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L394)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | - -**Returns:** *Promise‹number›* - -___ - -### getTransactionReceipt - -▸ **getTransactionReceipt**(`txhash`: string): *Promise‹[CeloTxReceipt](../modules/_types_.md#celotxreceipt) | null›* - -*Defined in [connection.ts:475](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L475)* - -**Parameters:** - -Name | Type | ------- | ------ | -`txhash` | string | - -**Returns:** *Promise‹[CeloTxReceipt](../modules/_types_.md#celotxreceipt) | null›* - -___ - -### hexToAscii - -▸ **hexToAscii**(`hex`: string): *string* - -*Defined in [connection.ts:100](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L100)* - -**Parameters:** - -Name | Type | ------- | ------ | -`hex` | string | - -**Returns:** *string* - -___ - -### isListening - -▸ **isListening**(): *Promise‹boolean›* - -*Defined in [connection.ts:196](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L196)* - -**Returns:** *Promise‹boolean›* - -___ - -### isLocalAccount - -▸ **isLocalAccount**(`address?`: [Address](../modules/_types_.md#address)): *boolean* - -*Defined in [connection.ts:151](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L151)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address?` | [Address](../modules/_types_.md#address) | - -**Returns:** *boolean* - -___ - -### isSyncing - -▸ **isSyncing**(): *Promise‹boolean›* - -*Defined in [connection.ts:200](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L200)* - -**Returns:** *Promise‹boolean›* - -___ - -### keccak256 - -▸ **keccak256**(`value`: string | BN): *string* - -*Defined in [connection.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L96)* - -**Parameters:** - -Name | Type | ------- | ------ | -`value` | string | BN | - -**Returns:** *string* - -___ - -### nonce - -▸ **nonce**(`address`: [Address](../modules/_types_.md#address)): *Promise‹number›* - -*Defined in [connection.ts:401](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L401)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | - -**Returns:** *Promise‹number›* - -___ - -### removeAccount - -▸ **removeAccount**(`address`: string): *void* - -*Defined in [connection.ts:167](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L167)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *void* - -___ - -### sendSignedTransaction - -▸ **sendSignedTransaction**(`signedTransactionData`: string): *Promise‹[TransactionResult](_utils_tx_result_.transactionresult.md)›* - -*Defined in [connection.ts:322](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L322)* - -**Parameters:** - -Name | Type | ------- | ------ | -`signedTransactionData` | string | - -**Returns:** *Promise‹[TransactionResult](_utils_tx_result_.transactionresult.md)›* - -___ - -### sendTransaction - -▸ **sendTransaction**(`tx`: [CeloTx](../modules/_types_.md#celotx)): *Promise‹[TransactionResult](_utils_tx_result_.transactionresult.md)›* - -*Defined in [connection.ts:224](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L224)* - -Send a transaction to celo-blockchain. - -Similar to `web3.eth.sendTransaction()` but with following differences: - - applies connections tx's defaults - - estimatesGas before sending - - returns a `TransactionResult` instead of `PromiEvent` - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | [CeloTx](../modules/_types_.md#celotx) | - -**Returns:** *Promise‹[TransactionResult](_utils_tx_result_.transactionresult.md)›* - -___ - -### sendTransactionObject - -▸ **sendTransactionObject**(`txObj`: [CeloTxObject](../interfaces/_types_.celotxobject.md)‹any›, `tx?`: Omit‹[CeloTx](../modules/_types_.md#celotx), "data"›): *Promise‹[TransactionResult](_utils_tx_result_.transactionresult.md)›* - -*Defined in [connection.ts:241](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L241)* - -**Parameters:** - -Name | Type | ------- | ------ | -`txObj` | [CeloTxObject](../interfaces/_types_.celotxobject.md)‹any› | -`tx?` | Omit‹[CeloTx](../modules/_types_.md#celotx), "data"› | - -**Returns:** *Promise‹[TransactionResult](_utils_tx_result_.transactionresult.md)›* - -___ - -### setGasPriceForCurrency - -▸ **setGasPriceForCurrency**(`address`: [Address](../modules/_types_.md#address), `gasPrice`: string): *Promise‹void›* - -*Defined in [connection.ts:337](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L337)* - -**`deprecated`** no longer needed since gasPrice is available on node rpc - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | -`gasPrice` | string | - -**Returns:** *Promise‹void›* - -___ - -### setProvider - -▸ **setProvider**(`provider`: [Provider](../interfaces/_types_.provider.md)): *boolean* - -*Defined in [connection.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L80)* - -**Parameters:** - -Name | Type | ------- | ------ | -`provider` | [Provider](../interfaces/_types_.provider.md) | - -**Returns:** *boolean* - -___ - -### sign - -▸ **sign**(`dataToSign`: string, `address`: [Address](../modules/_types_.md#address) | number): *Promise‹string›* - -*Defined in [connection.ts:295](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L295)* - -**Parameters:** - -Name | Type | ------- | ------ | -`dataToSign` | string | -`address` | [Address](../modules/_types_.md#address) | number | - -**Returns:** *Promise‹string›* - -___ - -### signTypedData - -▸ **signTypedData**(`signer`: string, `typedData`: EIP712TypedData): *Promise‹Signature›* - -*Defined in [connection.ts:267](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L267)* - -**Parameters:** - -Name | Type | ------- | ------ | -`signer` | string | -`typedData` | EIP712TypedData | - -**Returns:** *Promise‹Signature›* - -___ - -### stop - -▸ **stop**(): *void* - -*Defined in [connection.ts:501](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L501)* - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/connect/classes/_utils_celo_transaction_object_.celotransactionobject.md b/packages/docs/sdk/docs/connect/classes/_utils_celo_transaction_object_.celotransactionobject.md deleted file mode 100644 index 074965bcc3e..00000000000 --- a/packages/docs/sdk/docs/connect/classes/_utils_celo_transaction_object_.celotransactionobject.md +++ /dev/null @@ -1,97 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/celo-transaction-object"](../modules/_utils_celo_transaction_object_.md) › [CeloTransactionObject](_utils_celo_transaction_object_.celotransactionobject.md) - -# Class: CeloTransactionObject <**O**> - -## Type parameters - -▪ **O** - -## Hierarchy - -* **CeloTransactionObject** - -## Index - -### Constructors - -* [constructor](_utils_celo_transaction_object_.celotransactionobject.md#constructor) - -### Properties - -* [defaultParams](_utils_celo_transaction_object_.celotransactionobject.md#optional-readonly-defaultparams) -* [txo](_utils_celo_transaction_object_.celotransactionobject.md#readonly-txo) - -### Methods - -* [send](_utils_celo_transaction_object_.celotransactionobject.md#send) -* [sendAndWaitForReceipt](_utils_celo_transaction_object_.celotransactionobject.md#sendandwaitforreceipt) - -## Constructors - -### constructor - -\+ **new CeloTransactionObject**(`connection`: [Connection](_connection_.connection.md), `txo`: [CeloTxObject](../interfaces/_types_.celotxobject.md)‹O›, `defaultParams?`: [CeloTransactionParams](../modules/_utils_celo_transaction_object_.md#celotransactionparams)): *[CeloTransactionObject](_utils_celo_transaction_object_.celotransactionobject.md)* - -*Defined in [utils/celo-transaction-object.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/celo-transaction-object.ts#L15)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | [Connection](_connection_.connection.md) | -`txo` | [CeloTxObject](../interfaces/_types_.celotxobject.md)‹O› | -`defaultParams?` | [CeloTransactionParams](../modules/_utils_celo_transaction_object_.md#celotransactionparams) | - -**Returns:** *[CeloTransactionObject](_utils_celo_transaction_object_.celotransactionobject.md)* - -## Properties - -### `Optional` `Readonly` defaultParams - -• **defaultParams**? : *[CeloTransactionParams](../modules/_utils_celo_transaction_object_.md#celotransactionparams)* - -*Defined in [utils/celo-transaction-object.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/celo-transaction-object.ts#L19)* - -___ - -### `Readonly` txo - -• **txo**: *[CeloTxObject](../interfaces/_types_.celotxobject.md)‹O›* - -*Defined in [utils/celo-transaction-object.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/celo-transaction-object.ts#L18)* - -## Methods - -### send - -▸ **send**(`params?`: [CeloTransactionParams](../modules/_utils_celo_transaction_object_.md#celotransactionparams)): *Promise‹[TransactionResult](_utils_tx_result_.transactionresult.md)›* - -*Defined in [utils/celo-transaction-object.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/celo-transaction-object.ts#L23)* - -send the transaction to the chain - -**Parameters:** - -Name | Type | ------- | ------ | -`params?` | [CeloTransactionParams](../modules/_utils_celo_transaction_object_.md#celotransactionparams) | - -**Returns:** *Promise‹[TransactionResult](_utils_tx_result_.transactionresult.md)›* - -___ - -### sendAndWaitForReceipt - -▸ **sendAndWaitForReceipt**(`params?`: [CeloTransactionParams](../modules/_utils_celo_transaction_object_.md#celotransactionparams)): *Promise‹[CeloTxReceipt](../modules/_types_.md#celotxreceipt)›* - -*Defined in [utils/celo-transaction-object.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/celo-transaction-object.ts#L28)* - -send the transaction and waits for the receipt - -**Parameters:** - -Name | Type | ------- | ------ | -`params?` | [CeloTransactionParams](../modules/_utils_celo_transaction_object_.md#celotransactionparams) | - -**Returns:** *Promise‹[CeloTxReceipt](../modules/_types_.md#celotxreceipt)›* diff --git a/packages/docs/sdk/docs/connect/classes/_utils_rpc_caller_.defaultrpccaller.md b/packages/docs/sdk/docs/connect/classes/_utils_rpc_caller_.defaultrpccaller.md deleted file mode 100644 index 4f2f924288e..00000000000 --- a/packages/docs/sdk/docs/connect/classes/_utils_rpc_caller_.defaultrpccaller.md +++ /dev/null @@ -1,94 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/rpc-caller"](../modules/_utils_rpc_caller_.md) › [DefaultRpcCaller](_utils_rpc_caller_.defaultrpccaller.md) - -# Class: DefaultRpcCaller - -## Hierarchy - -* **DefaultRpcCaller** - -## Implements - -* [RpcCaller](../interfaces/_utils_rpc_caller_.rpccaller.md) - -## Index - -### Constructors - -* [constructor](_utils_rpc_caller_.defaultrpccaller.md#constructor) - -### Properties - -* [defaultProvider](_utils_rpc_caller_.defaultrpccaller.md#readonly-defaultprovider) -* [jsonrpcVersion](_utils_rpc_caller_.defaultrpccaller.md#readonly-jsonrpcversion) - -### Methods - -* [call](_utils_rpc_caller_.defaultrpccaller.md#call) -* [send](_utils_rpc_caller_.defaultrpccaller.md#send) - -## Constructors - -### constructor - -\+ **new DefaultRpcCaller**(`defaultProvider`: [Provider](../interfaces/_types_.provider.md), `jsonrpcVersion`: string): *[DefaultRpcCaller](_utils_rpc_caller_.defaultrpccaller.md)* - -*Defined in [utils/rpc-caller.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/rpc-caller.ts#L67)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`defaultProvider` | [Provider](../interfaces/_types_.provider.md) | - | -`jsonrpcVersion` | string | "2.0" | - -**Returns:** *[DefaultRpcCaller](_utils_rpc_caller_.defaultrpccaller.md)* - -## Properties - -### `Readonly` defaultProvider - -• **defaultProvider**: *[Provider](../interfaces/_types_.provider.md)* - -*Defined in [utils/rpc-caller.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/rpc-caller.ts#L68)* - -___ - -### `Readonly` jsonrpcVersion - -• **jsonrpcVersion**: *string* - -*Defined in [utils/rpc-caller.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/rpc-caller.ts#L68)* - -## Methods - -### call - -▸ **call**(`method`: string, `params`: any[]): *Promise‹[JsonRpcResponse](../interfaces/_types_.jsonrpcresponse.md)›* - -*Defined in [utils/rpc-caller.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/rpc-caller.ts#L70)* - -**Parameters:** - -Name | Type | ------- | ------ | -`method` | string | -`params` | any[] | - -**Returns:** *Promise‹[JsonRpcResponse](../interfaces/_types_.jsonrpcresponse.md)›* - -___ - -### send - -▸ **send**(`payload`: [JsonRpcPayload](../interfaces/_types_.jsonrpcpayload.md), `callback`: [Callback](../modules/_types_.md#callback)‹[JsonRpcResponse](../interfaces/_types_.jsonrpcresponse.md)›): *void* - -*Defined in [utils/rpc-caller.ts:88](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/rpc-caller.ts#L88)* - -**Parameters:** - -Name | Type | ------- | ------ | -`payload` | [JsonRpcPayload](../interfaces/_types_.jsonrpcpayload.md) | -`callback` | [Callback](../modules/_types_.md#callback)‹[JsonRpcResponse](../interfaces/_types_.jsonrpcresponse.md)› | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/connect/classes/_utils_tx_params_normalizer_.txparamsnormalizer.md b/packages/docs/sdk/docs/connect/classes/_utils_tx_params_normalizer_.txparamsnormalizer.md deleted file mode 100644 index 6c35330afd7..00000000000 --- a/packages/docs/sdk/docs/connect/classes/_utils_tx_params_normalizer_.txparamsnormalizer.md +++ /dev/null @@ -1,61 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/tx-params-normalizer"](../modules/_utils_tx_params_normalizer_.md) › [TxParamsNormalizer](_utils_tx_params_normalizer_.txparamsnormalizer.md) - -# Class: TxParamsNormalizer - -## Hierarchy - -* **TxParamsNormalizer** - -## Index - -### Constructors - -* [constructor](_utils_tx_params_normalizer_.txparamsnormalizer.md#constructor) - -### Properties - -* [connection](_utils_tx_params_normalizer_.txparamsnormalizer.md#readonly-connection) - -### Methods - -* [populate](_utils_tx_params_normalizer_.txparamsnormalizer.md#populate) - -## Constructors - -### constructor - -\+ **new TxParamsNormalizer**(`connection`: [Connection](_connection_.connection.md)): *[TxParamsNormalizer](_utils_tx_params_normalizer_.txparamsnormalizer.md)* - -*Defined in [utils/tx-params-normalizer.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/tx-params-normalizer.ts#L16)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | [Connection](_connection_.connection.md) | - -**Returns:** *[TxParamsNormalizer](_utils_tx_params_normalizer_.txparamsnormalizer.md)* - -## Properties - -### `Readonly` connection - -• **connection**: *[Connection](_connection_.connection.md)* - -*Defined in [utils/tx-params-normalizer.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/tx-params-normalizer.ts#L18)* - -## Methods - -### populate - -▸ **populate**(`celoTxParams`: [CeloTx](../modules/_types_.md#celotx)): *Promise‹[CeloTx](../modules/_types_.md#celotx)›* - -*Defined in [utils/tx-params-normalizer.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/tx-params-normalizer.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`celoTxParams` | [CeloTx](../modules/_types_.md#celotx) | - -**Returns:** *Promise‹[CeloTx](../modules/_types_.md#celotx)›* diff --git a/packages/docs/sdk/docs/connect/classes/_utils_tx_result_.transactionresult.md b/packages/docs/sdk/docs/connect/classes/_utils_tx_result_.transactionresult.md deleted file mode 100644 index 3f5260836bc..00000000000 --- a/packages/docs/sdk/docs/connect/classes/_utils_tx_result_.transactionresult.md +++ /dev/null @@ -1,62 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/tx-result"](../modules/_utils_tx_result_.md) › [TransactionResult](_utils_tx_result_.transactionresult.md) - -# Class: TransactionResult - -Replacement interface for web3's `PromiEvent`. Instead of emiting events -to signal different stages, eveything is exposed as a promise. Which ends -up being nicer when doing promise/async based programming. - -## Hierarchy - -* **TransactionResult** - -## Index - -### Constructors - -* [constructor](_utils_tx_result_.transactionresult.md#constructor) - -### Methods - -* [getHash](_utils_tx_result_.transactionresult.md#gethash) -* [waitReceipt](_utils_tx_result_.transactionresult.md#waitreceipt) - -## Constructors - -### constructor - -\+ **new TransactionResult**(`pe`: PromiEvent‹any›): *[TransactionResult](_utils_tx_result_.transactionresult.md)* - -*Defined in [utils/tx-result.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/tx-result.ts#L21)* - -**Parameters:** - -Name | Type | ------- | ------ | -`pe` | PromiEvent‹any› | - -**Returns:** *[TransactionResult](_utils_tx_result_.transactionresult.md)* - -## Methods - -### getHash - -▸ **getHash**(): *Promise‹string›* - -*Defined in [utils/tx-result.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/tx-result.ts#L45)* - -Get (& wait for) transaction hash - -**Returns:** *Promise‹string›* - -___ - -### waitReceipt - -▸ **waitReceipt**(): *Promise‹[CeloTxReceipt](../modules/_types_.md#celotxreceipt)›* - -*Defined in [utils/tx-result.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/tx-result.ts#L57)* - -Get (& wait for) transaction receipt - -**Returns:** *Promise‹[CeloTxReceipt](../modules/_types_.md#celotxreceipt)›* diff --git a/packages/docs/sdk/docs/connect/globals.md b/packages/docs/sdk/docs/connect/globals.md deleted file mode 100644 index f3d097ab4c1..00000000000 --- a/packages/docs/sdk/docs/connect/globals.md +++ /dev/null @@ -1,20 +0,0 @@ -[@celo/connect](README.md) › [Globals](globals.md) - -# @celo/connect - -## Index - -### Modules - -* ["abi-types"](modules/_abi_types_.md) -* ["celo-provider"](modules/_celo_provider_.md) -* ["connection"](modules/_connection_.md) -* ["types"](modules/_types_.md) -* ["utils/abi-utils"](modules/_utils_abi_utils_.md) -* ["utils/celo-transaction-object"](modules/_utils_celo_transaction_object_.md) -* ["utils/formatter"](modules/_utils_formatter_.md) -* ["utils/provider-utils"](modules/_utils_provider_utils_.md) -* ["utils/rpc-caller"](modules/_utils_rpc_caller_.md) -* ["utils/tx-params-normalizer"](modules/_utils_tx_params_normalizer_.md) -* ["utils/tx-result"](modules/_utils_tx_result_.md) -* ["wallet"](modules/_wallet_.md) diff --git a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abicoder.md b/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abicoder.md deleted file mode 100644 index 2f1cfd0f8d0..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abicoder.md +++ /dev/null @@ -1,170 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["abi-types"](../modules/_abi_types_.md) › [AbiCoder](_abi_types_.abicoder.md) - -# Interface: AbiCoder - -**`internal`** - -## Hierarchy - -* **AbiCoder** - -## Index - -### Methods - -* [decodeLog](_abi_types_.abicoder.md#decodelog) -* [decodeParameter](_abi_types_.abicoder.md#decodeparameter) -* [decodeParameters](_abi_types_.abicoder.md#decodeparameters) -* [encodeEventSignature](_abi_types_.abicoder.md#encodeeventsignature) -* [encodeFunctionCall](_abi_types_.abicoder.md#encodefunctioncall) -* [encodeFunctionSignature](_abi_types_.abicoder.md#encodefunctionsignature) -* [encodeParameter](_abi_types_.abicoder.md#encodeparameter) -* [encodeParameters](_abi_types_.abicoder.md#encodeparameters) - -## Methods - -### decodeLog - -▸ **decodeLog**(`inputs`: [AbiInput](_abi_types_.abiinput.md)[], `hexString`: string, `topics`: string[]): *EventLog* - -*Defined in [abi-types.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L55)* - -**Parameters:** - -Name | Type | ------- | ------ | -`inputs` | [AbiInput](_abi_types_.abiinput.md)[] | -`hexString` | string | -`topics` | string[] | - -**Returns:** *EventLog* - -___ - -### decodeParameter - -▸ **decodeParameter**(`type`: [ABIType](../modules/_abi_types_.md#abitype), `hex`: string): *any* - -*Defined in [abi-types.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L64)* - -**Parameters:** - -Name | Type | ------- | ------ | -`type` | [ABIType](../modules/_abi_types_.md#abitype) | -`hex` | string | - -**Returns:** *any* - -___ - -### decodeParameters - -▸ **decodeParameters**(`types`: [ABIType](../modules/_abi_types_.md#abitype)[], `hex`: string): *[DecodedParamsArray](_abi_types_.decodedparamsarray.md)* - -*Defined in [abi-types.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L66)* - -**Parameters:** - -Name | Type | ------- | ------ | -`types` | [ABIType](../modules/_abi_types_.md#abitype)[] | -`hex` | string | - -**Returns:** *[DecodedParamsArray](_abi_types_.decodedparamsarray.md)* - -▸ **decodeParameters**(`types`: [AbiInput](_abi_types_.abiinput.md)[], `hex`: string): *[DecodedParamsObject](_abi_types_.decodedparamsobject.md)* - -*Defined in [abi-types.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L67)* - -**Parameters:** - -Name | Type | ------- | ------ | -`types` | [AbiInput](_abi_types_.abiinput.md)[] | -`hex` | string | - -**Returns:** *[DecodedParamsObject](_abi_types_.decodedparamsobject.md)* - -___ - -### encodeEventSignature - -▸ **encodeEventSignature**(`name`: string | object): *string* - -*Defined in [abi-types.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L60)* - -**Parameters:** - -Name | Type | ------- | ------ | -`name` | string | object | - -**Returns:** *string* - -___ - -### encodeFunctionCall - -▸ **encodeFunctionCall**(`jsonInterface`: object, `parameters`: any[]): *string* - -*Defined in [abi-types.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L61)* - -**Parameters:** - -Name | Type | ------- | ------ | -`jsonInterface` | object | -`parameters` | any[] | - -**Returns:** *string* - -___ - -### encodeFunctionSignature - -▸ **encodeFunctionSignature**(`name`: string | object): *string* - -*Defined in [abi-types.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L62)* - -**Parameters:** - -Name | Type | ------- | ------ | -`name` | string | object | - -**Returns:** *string* - -___ - -### encodeParameter - -▸ **encodeParameter**(`type`: [ABIType](../modules/_abi_types_.md#abitype), `parameter`: any): *string* - -*Defined in [abi-types.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L57)* - -**Parameters:** - -Name | Type | ------- | ------ | -`type` | [ABIType](../modules/_abi_types_.md#abitype) | -`parameter` | any | - -**Returns:** *string* - -___ - -### encodeParameters - -▸ **encodeParameters**(`types`: [ABIType](../modules/_abi_types_.md#abitype)[], `paramaters`: any[]): *string* - -*Defined in [abi-types.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L58)* - -**Parameters:** - -Name | Type | ------- | ------ | -`types` | [ABIType](../modules/_abi_types_.md#abitype)[] | -`paramaters` | any[] | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abidefinition.md b/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abidefinition.md deleted file mode 100644 index b9e01e95921..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abidefinition.md +++ /dev/null @@ -1,124 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["abi-types"](../modules/_abi_types_.md) › [ABIDefinition](_abi_types_.abidefinition.md) - -# Interface: ABIDefinition - -**`internal`** - -## Hierarchy - -* [AbiItem](_abi_types_.abiitem.md) - - ↳ **ABIDefinition** - -## Index - -### Properties - -* [anonymous](_abi_types_.abidefinition.md#optional-anonymous) -* [constant](_abi_types_.abidefinition.md#optional-constant) -* [gas](_abi_types_.abidefinition.md#optional-gas) -* [inputs](_abi_types_.abidefinition.md#optional-inputs) -* [name](_abi_types_.abidefinition.md#optional-name) -* [outputs](_abi_types_.abidefinition.md#optional-outputs) -* [payable](_abi_types_.abidefinition.md#optional-payable) -* [signature](_abi_types_.abidefinition.md#signature) -* [stateMutability](_abi_types_.abidefinition.md#optional-statemutability) -* [type](_abi_types_.abidefinition.md#type) - -## Properties - -### `Optional` anonymous - -• **anonymous**? : *undefined | false | true* - -*Inherited from [AbiItem](_abi_types_.abiitem.md).[anonymous](_abi_types_.abiitem.md#optional-anonymous)* - -*Defined in [abi-types.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L39)* - -___ - -### `Optional` constant - -• **constant**? : *undefined | false | true* - -*Inherited from [AbiItem](_abi_types_.abiitem.md).[constant](_abi_types_.abiitem.md#optional-constant)* - -*Defined in [abi-types.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L40)* - -___ - -### `Optional` gas - -• **gas**? : *undefined | number* - -*Inherited from [AbiItem](_abi_types_.abiitem.md).[gas](_abi_types_.abiitem.md#optional-gas)* - -*Defined in [abi-types.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L47)* - -___ - -### `Optional` inputs - -• **inputs**? : *[AbiInput](_abi_types_.abiinput.md)[]* - -*Inherited from [AbiItem](_abi_types_.abiitem.md).[inputs](_abi_types_.abiitem.md#optional-inputs)* - -*Defined in [abi-types.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L41)* - -___ - -### `Optional` name - -• **name**? : *undefined | string* - -*Inherited from [AbiItem](_abi_types_.abiitem.md).[name](_abi_types_.abiitem.md#optional-name)* - -*Defined in [abi-types.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L42)* - -___ - -### `Optional` outputs - -• **outputs**? : *[AbiOutput](_abi_types_.abioutput.md)[]* - -*Inherited from [AbiItem](_abi_types_.abiitem.md).[outputs](_abi_types_.abiitem.md#optional-outputs)* - -*Defined in [abi-types.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L43)* - -___ - -### `Optional` payable - -• **payable**? : *undefined | false | true* - -*Inherited from [AbiItem](_abi_types_.abiitem.md).[payable](_abi_types_.abiitem.md#optional-payable)* - -*Defined in [abi-types.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L44)* - -___ - -### signature - -• **signature**: *string* - -*Defined in [abi-types.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L51)* - -___ - -### `Optional` stateMutability - -• **stateMutability**? : *StateMutabilityType* - -*Inherited from [AbiItem](_abi_types_.abiitem.md).[stateMutability](_abi_types_.abiitem.md#optional-statemutability)* - -*Defined in [abi-types.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L45)* - -___ - -### type - -• **type**: *AbiType* - -*Inherited from [AbiItem](_abi_types_.abiitem.md).[type](_abi_types_.abiitem.md#type)* - -*Defined in [abi-types.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L46)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abiinput.md b/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abiinput.md deleted file mode 100644 index 57c5cc4b585..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abiinput.md +++ /dev/null @@ -1,59 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["abi-types"](../modules/_abi_types_.md) › [AbiInput](_abi_types_.abiinput.md) - -# Interface: AbiInput - -**`internal`** - -## Hierarchy - -* **AbiInput** - -## Index - -### Properties - -* [components](_abi_types_.abiinput.md#optional-components) -* [indexed](_abi_types_.abiinput.md#optional-indexed) -* [internalType](_abi_types_.abiinput.md#optional-internaltype) -* [name](_abi_types_.abiinput.md#name) -* [type](_abi_types_.abiinput.md#type) - -## Properties - -### `Optional` components - -• **components**? : *[AbiInput](_abi_types_.abiinput.md)[]* - -*Defined in [abi-types.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L26)* - -___ - -### `Optional` indexed - -• **indexed**? : *undefined | false | true* - -*Defined in [abi-types.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L25)* - -___ - -### `Optional` internalType - -• **internalType**? : *undefined | string* - -*Defined in [abi-types.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L27)* - -___ - -### name - -• **name**: *string* - -*Defined in [abi-types.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L23)* - -___ - -### type - -• **type**: *string* - -*Defined in [abi-types.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L24)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abiitem.md b/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abiitem.md deleted file mode 100644 index 0cf8a278494..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abiitem.md +++ /dev/null @@ -1,97 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["abi-types"](../modules/_abi_types_.md) › [AbiItem](_abi_types_.abiitem.md) - -# Interface: AbiItem - -**`internal`** - -## Hierarchy - -* **AbiItem** - - ↳ [ABIDefinition](_abi_types_.abidefinition.md) - -## Index - -### Properties - -* [anonymous](_abi_types_.abiitem.md#optional-anonymous) -* [constant](_abi_types_.abiitem.md#optional-constant) -* [gas](_abi_types_.abiitem.md#optional-gas) -* [inputs](_abi_types_.abiitem.md#optional-inputs) -* [name](_abi_types_.abiitem.md#optional-name) -* [outputs](_abi_types_.abiitem.md#optional-outputs) -* [payable](_abi_types_.abiitem.md#optional-payable) -* [stateMutability](_abi_types_.abiitem.md#optional-statemutability) -* [type](_abi_types_.abiitem.md#type) - -## Properties - -### `Optional` anonymous - -• **anonymous**? : *undefined | false | true* - -*Defined in [abi-types.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L39)* - -___ - -### `Optional` constant - -• **constant**? : *undefined | false | true* - -*Defined in [abi-types.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L40)* - -___ - -### `Optional` gas - -• **gas**? : *undefined | number* - -*Defined in [abi-types.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L47)* - -___ - -### `Optional` inputs - -• **inputs**? : *[AbiInput](_abi_types_.abiinput.md)[]* - -*Defined in [abi-types.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L41)* - -___ - -### `Optional` name - -• **name**? : *undefined | string* - -*Defined in [abi-types.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L42)* - -___ - -### `Optional` outputs - -• **outputs**? : *[AbiOutput](_abi_types_.abioutput.md)[]* - -*Defined in [abi-types.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L43)* - -___ - -### `Optional` payable - -• **payable**? : *undefined | false | true* - -*Defined in [abi-types.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L44)* - -___ - -### `Optional` stateMutability - -• **stateMutability**? : *StateMutabilityType* - -*Defined in [abi-types.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L45)* - -___ - -### type - -• **type**: *AbiType* - -*Defined in [abi-types.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L46)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abioutput.md b/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abioutput.md deleted file mode 100644 index 2aef250322c..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.abioutput.md +++ /dev/null @@ -1,50 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["abi-types"](../modules/_abi_types_.md) › [AbiOutput](_abi_types_.abioutput.md) - -# Interface: AbiOutput - -**`internal`** - -## Hierarchy - -* **AbiOutput** - -## Index - -### Properties - -* [components](_abi_types_.abioutput.md#optional-components) -* [internalType](_abi_types_.abioutput.md#optional-internaltype) -* [name](_abi_types_.abioutput.md#name) -* [type](_abi_types_.abioutput.md#type) - -## Properties - -### `Optional` components - -• **components**? : *[AbiOutput](_abi_types_.abioutput.md)[]* - -*Defined in [abi-types.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L34)* - -___ - -### `Optional` internalType - -• **internalType**? : *undefined | string* - -*Defined in [abi-types.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L35)* - -___ - -### name - -• **name**: *string* - -*Defined in [abi-types.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L32)* - -___ - -### type - -• **type**: *string* - -*Defined in [abi-types.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L33)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.decodedparamsarray.md b/packages/docs/sdk/docs/connect/interfaces/_abi_types_.decodedparamsarray.md deleted file mode 100644 index 30b06105228..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.decodedparamsarray.md +++ /dev/null @@ -1,31 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["abi-types"](../modules/_abi_types_.md) › [DecodedParamsArray](_abi_types_.decodedparamsarray.md) - -# Interface: DecodedParamsArray - -**`internal`** - -## Hierarchy - -* **DecodedParamsArray** - - ↳ [DecodedParamsObject](_abi_types_.decodedparamsobject.md) - -## Indexable - -* \[ **index**: *number*\]: any - -**`internal`** - -## Index - -### Properties - -* [__length__](_abi_types_.decodedparamsarray.md#__length__) - -## Properties - -### __length__ - -• **__length__**: *number* - -*Defined in [abi-types.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L9)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.decodedparamsobject.md b/packages/docs/sdk/docs/connect/interfaces/_abi_types_.decodedparamsobject.md deleted file mode 100644 index e82f35628c2..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_abi_types_.decodedparamsobject.md +++ /dev/null @@ -1,33 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["abi-types"](../modules/_abi_types_.md) › [DecodedParamsObject](_abi_types_.decodedparamsobject.md) - -# Interface: DecodedParamsObject - -**`internal`** - -## Hierarchy - -* [DecodedParamsArray](_abi_types_.decodedparamsarray.md) - - ↳ **DecodedParamsObject** - -## Indexable - -* \[ **index**: *number*\]: any - -**`internal`** - -## Index - -### Properties - -* [__length__](_abi_types_.decodedparamsobject.md#__length__) - -## Properties - -### __length__ - -• **__length__**: *number* - -*Inherited from [DecodedParamsArray](_abi_types_.decodedparamsarray.md).[__length__](_abi_types_.decodedparamsarray.md#__length__)* - -*Defined in [abi-types.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L9)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_connection_.connectionoptions.md b/packages/docs/sdk/docs/connect/interfaces/_connection_.connectionoptions.md deleted file mode 100644 index b50879425b4..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_connection_.connectionoptions.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["connection"](../modules/_connection_.md) › [ConnectionOptions](_connection_.connectionoptions.md) - -# Interface: ConnectionOptions - -## Hierarchy - -* **ConnectionOptions** - -## Index - -### Properties - -* [feeCurrency](_connection_.connectionoptions.md#optional-feecurrency) -* [from](_connection_.connectionoptions.md#optional-from) -* [gasInflationFactor](_connection_.connectionoptions.md#gasinflationfactor) -* [gasPrice](_connection_.connectionoptions.md#gasprice) - -## Properties - -### `Optional` feeCurrency - -• **feeCurrency**? : *[Address](../modules/_types_.md#address)* - -*Defined in [connection.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L45)* - -___ - -### `Optional` from - -• **from**? : *[Address](../modules/_types_.md#address)* - -*Defined in [connection.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L46)* - -___ - -### gasInflationFactor - -• **gasInflationFactor**: *number* - -*Defined in [connection.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L43)* - -___ - -### gasPrice - -• **gasPrice**: *string* - -*Defined in [connection.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/connection.ts#L44)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_types_.celoparams.md b/packages/docs/sdk/docs/connect/interfaces/_types_.celoparams.md deleted file mode 100644 index 1b0aade03f3..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_types_.celoparams.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["types"](../modules/_types_.md) › [CeloParams](_types_.celoparams.md) - -# Interface: CeloParams - -## Hierarchy - -* **CeloParams** - -## Index - -### Properties - -* [feeCurrency](_types_.celoparams.md#feecurrency) -* [gatewayFee](_types_.celoparams.md#gatewayfee) -* [gatewayFeeRecipient](_types_.celoparams.md#gatewayfeerecipient) - -## Properties - -### feeCurrency - -• **feeCurrency**: *string* - -*Defined in [types.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L7)* - -___ - -### gatewayFee - -• **gatewayFee**: *string* - -*Defined in [types.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L9)* - -___ - -### gatewayFeeRecipient - -• **gatewayFeeRecipient**: *string* - -*Defined in [types.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L8)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_types_.celotxobject.md b/packages/docs/sdk/docs/connect/interfaces/_types_.celotxobject.md deleted file mode 100644 index 8b4444e73be..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_types_.celotxobject.md +++ /dev/null @@ -1,99 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["types"](../modules/_types_.md) › [CeloTxObject](_types_.celotxobject.md) - -# Interface: CeloTxObject <**T**> - -## Type parameters - -▪ **T** - -## Hierarchy - -* **CeloTxObject** - -## Index - -### Properties - -* [_parent](_types_.celotxobject.md#_parent) -* [arguments](_types_.celotxobject.md#arguments) - -### Methods - -* [call](_types_.celotxobject.md#call) -* [encodeABI](_types_.celotxobject.md#encodeabi) -* [estimateGas](_types_.celotxobject.md#estimategas) -* [send](_types_.celotxobject.md#send) - -## Properties - -### _parent - -• **_parent**: *Contract* - -*Defined in [types.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L20)* - -___ - -### arguments - -• **arguments**: *any[]* - -*Defined in [types.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L15)* - -## Methods - -### call - -▸ **call**(`tx?`: [CeloTx](../modules/_types_.md#celotx)): *Promise‹T›* - -*Defined in [types.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L16)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx?` | [CeloTx](../modules/_types_.md#celotx) | - -**Returns:** *Promise‹T›* - -___ - -### encodeABI - -▸ **encodeABI**(): *string* - -*Defined in [types.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L19)* - -**Returns:** *string* - -___ - -### estimateGas - -▸ **estimateGas**(`tx?`: [CeloTx](../modules/_types_.md#celotx)): *Promise‹number›* - -*Defined in [types.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L18)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx?` | [CeloTx](../modules/_types_.md#celotx) | - -**Returns:** *Promise‹number›* - -___ - -### send - -▸ **send**(`tx?`: [CeloTx](../modules/_types_.md#celotx)): *PromiEvent‹[CeloTxReceipt](../modules/_types_.md#celotxreceipt)›* - -*Defined in [types.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L17)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx?` | [CeloTx](../modules/_types_.md#celotx) | - -**Returns:** *PromiEvent‹[CeloTxReceipt](../modules/_types_.md#celotxreceipt)›* diff --git a/packages/docs/sdk/docs/connect/interfaces/_types_.encodedtransaction.md b/packages/docs/sdk/docs/connect/interfaces/_types_.encodedtransaction.md deleted file mode 100644 index 9a7f6658358..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_types_.encodedtransaction.md +++ /dev/null @@ -1,58 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["types"](../modules/_types_.md) › [EncodedTransaction](_types_.encodedtransaction.md) - -# Interface: EncodedTransaction - -## Hierarchy - -* **EncodedTransaction** - -## Index - -### Properties - -* [raw](_types_.encodedtransaction.md#raw) -* [tx](_types_.encodedtransaction.md#tx) - -## Properties - -### raw - -• **raw**: *string* - -*Defined in [types.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L28)* - -___ - -### tx - -• **tx**: *object* - -*Defined in [types.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L29)* - -#### Type declaration: - -* **feeCurrency**: *string* - -* **gas**: *string* - -* **gasPrice**: *string* - -* **gatewayFee**: *string* - -* **gatewayFeeRecipient**: *string* - -* **hash**: *string* - -* **input**: *string* - -* **nonce**: *string* - -* **r**: *string* - -* **s**: *string* - -* **to**: *string* - -* **v**: *string* - -* **value**: *string* diff --git a/packages/docs/sdk/docs/connect/interfaces/_types_.jsonrpcpayload.md b/packages/docs/sdk/docs/connect/interfaces/_types_.jsonrpcpayload.md deleted file mode 100644 index 9745182b944..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_types_.jsonrpcpayload.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["types"](../modules/_types_.md) › [JsonRpcPayload](_types_.jsonrpcpayload.md) - -# Interface: JsonRpcPayload - -## Hierarchy - -* **JsonRpcPayload** - -## Index - -### Properties - -* [id](_types_.jsonrpcpayload.md#optional-id) -* [jsonrpc](_types_.jsonrpcpayload.md#jsonrpc) -* [method](_types_.jsonrpcpayload.md#method) -* [params](_types_.jsonrpcpayload.md#params) - -## Properties - -### `Optional` id - -• **id**? : *string | number* - -*Defined in [types.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L62)* - -___ - -### jsonrpc - -• **jsonrpc**: *string* - -*Defined in [types.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L59)* - -___ - -### method - -• **method**: *string* - -*Defined in [types.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L60)* - -___ - -### params - -• **params**: *any[]* - -*Defined in [types.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L61)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_types_.jsonrpcresponse.md b/packages/docs/sdk/docs/connect/interfaces/_types_.jsonrpcresponse.md deleted file mode 100644 index de9b74b3a73..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_types_.jsonrpcresponse.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["types"](../modules/_types_.md) › [JsonRpcResponse](_types_.jsonrpcresponse.md) - -# Interface: JsonRpcResponse - -## Hierarchy - -* **JsonRpcResponse** - -## Index - -### Properties - -* [error](_types_.jsonrpcresponse.md#optional-error) -* [id](_types_.jsonrpcresponse.md#id) -* [jsonrpc](_types_.jsonrpcresponse.md#jsonrpc) -* [result](_types_.jsonrpcresponse.md#optional-result) - -## Properties - -### `Optional` error - -• **error**? : *string | object* - -*Defined in [types.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L55)* - -___ - -### id - -• **id**: *number* - -*Defined in [types.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L53)* - -___ - -### jsonrpc - -• **jsonrpc**: *string* - -*Defined in [types.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L52)* - -___ - -### `Optional` result - -• **result**? : *any* - -*Defined in [types.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L54)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_types_.provider.md b/packages/docs/sdk/docs/connect/interfaces/_types_.provider.md deleted file mode 100644 index 87a5adb2052..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_types_.provider.md +++ /dev/null @@ -1,34 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["types"](../modules/_types_.md) › [Provider](_types_.provider.md) - -# Interface: Provider - -## Hierarchy - -* **Provider** - -## Implemented by - -* [CeloProvider](../classes/_celo_provider_.celoprovider.md) - -## Index - -### Methods - -* [send](_types_.provider.md#send) - -## Methods - -### send - -▸ **send**(`payload`: [JsonRpcPayload](_types_.jsonrpcpayload.md), `callback`: [Callback](../modules/_types_.md#callback)‹[JsonRpcResponse](_types_.jsonrpcresponse.md)›): *void* - -*Defined in [types.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L66)* - -**Parameters:** - -Name | Type | ------- | ------ | -`payload` | [JsonRpcPayload](_types_.jsonrpcpayload.md) | -`callback` | [Callback](../modules/_types_.md#callback)‹[JsonRpcResponse](_types_.jsonrpcresponse.md)› | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/connect/interfaces/_types_.rlpencodedtx.md b/packages/docs/sdk/docs/connect/interfaces/_types_.rlpencodedtx.md deleted file mode 100644 index 90afe21f1b7..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_types_.rlpencodedtx.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["types"](../modules/_types_.md) › [RLPEncodedTx](_types_.rlpencodedtx.md) - -# Interface: RLPEncodedTx - -## Hierarchy - -* **RLPEncodedTx** - -## Index - -### Properties - -* [rlpEncode](_types_.rlpencodedtx.md#rlpencode) -* [transaction](_types_.rlpencodedtx.md#transaction) - -## Properties - -### rlpEncode - -• **rlpEncode**: *string* - -*Defined in [types.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L71)* - -___ - -### transaction - -• **transaction**: *[CeloTx](../modules/_types_.md#celotx)* - -*Defined in [types.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L70)* diff --git a/packages/docs/sdk/docs/connect/interfaces/_utils_rpc_caller_.rpccaller.md b/packages/docs/sdk/docs/connect/interfaces/_utils_rpc_caller_.rpccaller.md deleted file mode 100644 index 2641f98ab64..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_utils_rpc_caller_.rpccaller.md +++ /dev/null @@ -1,56 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/rpc-caller"](../modules/_utils_rpc_caller_.md) › [RpcCaller](_utils_rpc_caller_.rpccaller.md) - -# Interface: RpcCaller - -## Hierarchy - -* **RpcCaller** - -## Implemented by - -* [DefaultRpcCaller](../classes/_utils_rpc_caller_.defaultrpccaller.md) - -## Index - -### Properties - -* [call](_utils_rpc_caller_.rpccaller.md#call) -* [send](_utils_rpc_caller_.rpccaller.md#send) - -## Properties - -### call - -• **call**: *function* - -*Defined in [utils/rpc-caller.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/rpc-caller.ts#L64)* - -#### Type declaration: - -▸ (`method`: string, `params`: any[]): *Promise‹[JsonRpcResponse](_types_.jsonrpcresponse.md)›* - -**Parameters:** - -Name | Type | ------- | ------ | -`method` | string | -`params` | any[] | - -___ - -### send - -• **send**: *function* - -*Defined in [utils/rpc-caller.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/rpc-caller.ts#L65)* - -#### Type declaration: - -▸ (`payload`: [JsonRpcPayload](_types_.jsonrpcpayload.md), `callback`: [Callback](../modules/_types_.md#callback)‹[JsonRpcResponse](_types_.jsonrpcresponse.md)›): *void* - -**Parameters:** - -Name | Type | ------- | ------ | -`payload` | [JsonRpcPayload](_types_.jsonrpcpayload.md) | -`callback` | [Callback](../modules/_types_.md#callback)‹[JsonRpcResponse](_types_.jsonrpcresponse.md)› | diff --git a/packages/docs/sdk/docs/connect/interfaces/_wallet_.readonlywallet.md b/packages/docs/sdk/docs/connect/interfaces/_wallet_.readonlywallet.md deleted file mode 100644 index a8a095a648d..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_wallet_.readonlywallet.md +++ /dev/null @@ -1,162 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["wallet"](../modules/_wallet_.md) › [ReadOnlyWallet](_wallet_.readonlywallet.md) - -# Interface: ReadOnlyWallet - -## Hierarchy - -* **ReadOnlyWallet** - -## Index - -### Properties - -* [computeSharedSecret](_wallet_.readonlywallet.md#computesharedsecret) -* [decrypt](_wallet_.readonlywallet.md#decrypt) -* [getAccounts](_wallet_.readonlywallet.md#getaccounts) -* [hasAccount](_wallet_.readonlywallet.md#hasaccount) -* [removeAccount](_wallet_.readonlywallet.md#removeaccount) -* [signPersonalMessage](_wallet_.readonlywallet.md#signpersonalmessage) -* [signTransaction](_wallet_.readonlywallet.md#signtransaction) -* [signTypedData](_wallet_.readonlywallet.md#signtypeddata) - -## Properties - -### computeSharedSecret - -• **computeSharedSecret**: *function* - -*Defined in [wallet.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L12)* - -#### Type declaration: - -▸ (`address`: [Address](../modules/_types_.md#address), `publicKey`: string): *Promise‹Buffer›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | -`publicKey` | string | - -___ - -### decrypt - -• **decrypt**: *function* - -*Defined in [wallet.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L11)* - -#### Type declaration: - -▸ (`address`: [Address](../modules/_types_.md#address), `ciphertext`: Buffer): *Promise‹Buffer›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | -`ciphertext` | Buffer | - -___ - -### getAccounts - -• **getAccounts**: *function* - -*Defined in [wallet.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L5)* - -#### Type declaration: - -▸ (): *[Address](../modules/_types_.md#address)[]* - -___ - -### hasAccount - -• **hasAccount**: *function* - -*Defined in [wallet.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L7)* - -#### Type declaration: - -▸ (`address?`: [Address](../modules/_types_.md#address)): *boolean* - -**Parameters:** - -Name | Type | ------- | ------ | -`address?` | [Address](../modules/_types_.md#address) | - -___ - -### removeAccount - -• **removeAccount**: *function* - -*Defined in [wallet.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L6)* - -#### Type declaration: - -▸ (`address`: [Address](../modules/_types_.md#address)): *void* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | - -___ - -### signPersonalMessage - -• **signPersonalMessage**: *function* - -*Defined in [wallet.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L10)* - -#### Type declaration: - -▸ (`address`: [Address](../modules/_types_.md#address), `data`: string): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | -`data` | string | - -___ - -### signTransaction - -• **signTransaction**: *function* - -*Defined in [wallet.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L8)* - -#### Type declaration: - -▸ (`txParams`: [CeloTx](../modules/_types_.md#celotx)): *Promise‹[EncodedTransaction](_types_.encodedtransaction.md)›* - -**Parameters:** - -Name | Type | ------- | ------ | -`txParams` | [CeloTx](../modules/_types_.md#celotx) | - -___ - -### signTypedData - -• **signTypedData**: *function* - -*Defined in [wallet.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L9)* - -#### Type declaration: - -▸ (`address`: [Address](../modules/_types_.md#address), `typedData`: EIP712TypedData): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | [Address](../modules/_types_.md#address) | -`typedData` | EIP712TypedData | diff --git a/packages/docs/sdk/docs/connect/interfaces/_wallet_.signer.md b/packages/docs/sdk/docs/connect/interfaces/_wallet_.signer.md deleted file mode 100644 index 2f056796985..00000000000 --- a/packages/docs/sdk/docs/connect/interfaces/_wallet_.signer.md +++ /dev/null @@ -1,127 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["wallet"](../modules/_wallet_.md) › [Signer](_wallet_.signer.md) - -# Interface: Signer - -## Hierarchy - -* **Signer** - -## Index - -### Properties - -* [computeSharedSecret](_wallet_.signer.md#computesharedsecret) -* [decrypt](_wallet_.signer.md#decrypt) -* [getNativeKey](_wallet_.signer.md#getnativekey) -* [signPersonalMessage](_wallet_.signer.md#signpersonalmessage) -* [signTransaction](_wallet_.signer.md#signtransaction) -* [signTypedData](_wallet_.signer.md#signtypeddata) - -## Properties - -### computeSharedSecret - -• **computeSharedSecret**: *function* - -*Defined in [wallet.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L29)* - -#### Type declaration: - -▸ (`publicKey`: string): *Promise‹Buffer›* - -**Parameters:** - -Name | Type | ------- | ------ | -`publicKey` | string | - -___ - -### decrypt - -• **decrypt**: *function* - -*Defined in [wallet.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L28)* - -#### Type declaration: - -▸ (`ciphertext`: Buffer): *Promise‹Buffer›* - -**Parameters:** - -Name | Type | ------- | ------ | -`ciphertext` | Buffer | - -___ - -### getNativeKey - -• **getNativeKey**: *function* - -*Defined in [wallet.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L27)* - -#### Type declaration: - -▸ (): *string* - -___ - -### signPersonalMessage - -• **signPersonalMessage**: *function* - -*Defined in [wallet.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L25)* - -#### Type declaration: - -▸ (`data`: string): *Promise‹object›* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | string | - -___ - -### signTransaction - -• **signTransaction**: *function* - -*Defined in [wallet.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L21)* - -Signs the message and returns an EVM transaction - -**`param`** represents the chainId and is added to the recoveryId to prevent replay - -**`param`** is the RLPEncoded transaction object - -#### Type declaration: - -▸ (`addToV`: number, `encodedTx`: [RLPEncodedTx](_types_.rlpencodedtx.md)): *Promise‹object›* - -**Parameters:** - -Name | Type | ------- | ------ | -`addToV` | number | -`encodedTx` | [RLPEncodedTx](_types_.rlpencodedtx.md) | - -___ - -### signTypedData - -• **signTypedData**: *function* - -*Defined in [wallet.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/wallet.ts#L26)* - -#### Type declaration: - -▸ (`typedData`: EIP712TypedData): *Promise‹object›* - -**Parameters:** - -Name | Type | ------- | ------ | -`typedData` | EIP712TypedData | diff --git a/packages/docs/sdk/docs/connect/modules/_abi_types_.md b/packages/docs/sdk/docs/connect/modules/_abi_types_.md deleted file mode 100644 index 97f0bbb4ca3..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_abi_types_.md +++ /dev/null @@ -1,29 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["abi-types"](_abi_types_.md) - -# Module: "abi-types" - -## Index - -### Interfaces - -* [ABIDefinition](../interfaces/_abi_types_.abidefinition.md) -* [AbiCoder](../interfaces/_abi_types_.abicoder.md) -* [AbiInput](../interfaces/_abi_types_.abiinput.md) -* [AbiItem](../interfaces/_abi_types_.abiitem.md) -* [AbiOutput](../interfaces/_abi_types_.abioutput.md) -* [DecodedParamsArray](../interfaces/_abi_types_.decodedparamsarray.md) -* [DecodedParamsObject](../interfaces/_abi_types_.decodedparamsobject.md) - -### Type aliases - -* [ABIType](_abi_types_.md#abitype) - -## Type aliases - -### ABIType - -Ƭ **ABIType**: *"uint256" | "boolean" | "string" | "bytes" | string* - -*Defined in [abi-types.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/abi-types.ts#L4)* - -**`internal`** diff --git a/packages/docs/sdk/docs/connect/modules/_celo_provider_.md b/packages/docs/sdk/docs/connect/modules/_celo_provider_.md deleted file mode 100644 index a4408ad4aad..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_celo_provider_.md +++ /dev/null @@ -1,29 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["celo-provider"](_celo_provider_.md) - -# Module: "celo-provider" - -## Index - -### Classes - -* [CeloProvider](../classes/_celo_provider_.celoprovider.md) - -### Functions - -* [assertIsCeloProvider](_celo_provider_.md#assertisceloprovider) - -## Functions - -### assertIsCeloProvider - -▸ **assertIsCeloProvider**(`provider`: any): *asserts provider is CeloProvider* - -*Defined in [celo-provider.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/celo-provider.ts#L23)* - -**Parameters:** - -Name | Type | ------- | ------ | -`provider` | any | - -**Returns:** *asserts provider is CeloProvider* diff --git a/packages/docs/sdk/docs/connect/modules/_connection_.md b/packages/docs/sdk/docs/connect/modules/_connection_.md deleted file mode 100644 index 4577fd7c45e..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_connection_.md +++ /dev/null @@ -1,13 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["connection"](_connection_.md) - -# Module: "connection" - -## Index - -### Classes - -* [Connection](../classes/_connection_.connection.md) - -### Interfaces - -* [ConnectionOptions](../interfaces/_connection_.connectionoptions.md) diff --git a/packages/docs/sdk/docs/connect/modules/_types_.md b/packages/docs/sdk/docs/connect/modules/_types_.md deleted file mode 100644 index 1cac1de5ff2..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_types_.md +++ /dev/null @@ -1,154 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["types"](_types_.md) - -# Module: "types" - -## Index - -### References - -* [Block](_types_.md#block) -* [BlockHeader](_types_.md#blockheader) -* [BlockNumber](_types_.md#blocknumber) -* [Contract](_types_.md#contract) -* [ContractSendMethod](_types_.md#contractsendmethod) -* [EventLog](_types_.md#eventlog) -* [Log](_types_.md#log) -* [PastEventOptions](_types_.md#pasteventoptions) -* [PromiEvent](_types_.md#promievent) -* [Sign](_types_.md#sign) -* [Syncing](_types_.md#syncing) - -### Interfaces - -* [CeloParams](../interfaces/_types_.celoparams.md) -* [CeloTxObject](../interfaces/_types_.celotxobject.md) -* [EncodedTransaction](../interfaces/_types_.encodedtransaction.md) -* [JsonRpcPayload](../interfaces/_types_.jsonrpcpayload.md) -* [JsonRpcResponse](../interfaces/_types_.jsonrpcresponse.md) -* [Provider](../interfaces/_types_.provider.md) -* [RLPEncodedTx](../interfaces/_types_.rlpencodedtx.md) - -### Type aliases - -* [Address](_types_.md#address) -* [Callback](_types_.md#callback) -* [CeloTx](_types_.md#celotx) -* [CeloTxPending](_types_.md#celotxpending) -* [CeloTxReceipt](_types_.md#celotxreceipt) - -## References - -### Block - -• **Block**: - -___ - -### BlockHeader - -• **BlockHeader**: - -___ - -### BlockNumber - -• **BlockNumber**: - -___ - -### Contract - -• **Contract**: - -___ - -### ContractSendMethod - -• **ContractSendMethod**: - -___ - -### EventLog - -• **EventLog**: - -___ - -### Log - -• **Log**: - -___ - -### PastEventOptions - -• **PastEventOptions**: - -___ - -### PromiEvent - -• **PromiEvent**: - -___ - -### Sign - -• **Sign**: - -___ - -### Syncing - -• **Syncing**: - -## Type aliases - -### Address - -Ƭ **Address**: *string* - -*Defined in [types.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L4)* - -___ - -### Callback - -Ƭ **Callback**: *function* - -*Defined in [types.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L49)* - -#### Type declaration: - -▸ (`error`: Error | null, `result?`: T): *void* - -**Parameters:** - -Name | Type | ------- | ------ | -`error` | Error | null | -`result?` | T | - -___ - -### CeloTx - -Ƭ **CeloTx**: *TransactionConfig & Partial‹[CeloParams](../interfaces/_types_.celoparams.md)›* - -*Defined in [types.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L12)* - -___ - -### CeloTxPending - -Ƭ **CeloTxPending**: *Transaction & Partial‹[CeloParams](../interfaces/_types_.celoparams.md)›* - -*Defined in [types.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L46)* - -___ - -### CeloTxReceipt - -Ƭ **CeloTxReceipt**: *TransactionReceipt & Partial‹[CeloParams](../interfaces/_types_.celoparams.md)›* - -*Defined in [types.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/types.ts#L47)* diff --git a/packages/docs/sdk/docs/connect/modules/_utils_abi_utils_.md b/packages/docs/sdk/docs/connect/modules/_utils_abi_utils_.md deleted file mode 100644 index 8c8ac40bce9..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_utils_abi_utils_.md +++ /dev/null @@ -1,71 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/abi-utils"](_utils_abi_utils_.md) - -# Module: "utils/abi-utils" - -## Index - -### Functions - -* [decodeStringParameter](_utils_abi_utils_.md#const-decodestringparameter) -* [getAbiByName](_utils_abi_utils_.md#const-getabibyname) -* [parseDecodedParams](_utils_abi_utils_.md#const-parsedecodedparams) - -## Functions - -### `Const` decodeStringParameter - -▸ **decodeStringParameter**(`ethAbi`: [AbiCoder](../interfaces/_abi_types_.abicoder.md), `str`: string): *any* - -*Defined in [utils/abi-utils.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/abi-utils.ts#L25)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`ethAbi` | [AbiCoder](../interfaces/_abi_types_.abicoder.md) | -`str` | string | - -**Returns:** *any* - -___ - -### `Const` getAbiByName - -▸ **getAbiByName**(`abi`: [AbiItem](../interfaces/_abi_types_.abiitem.md)[], `methodName`: string): *[AbiItem](../interfaces/_abi_types_.abiitem.md)* - -*Defined in [utils/abi-utils.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/abi-utils.ts#L5)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`abi` | [AbiItem](../interfaces/_abi_types_.abiitem.md)[] | -`methodName` | string | - -**Returns:** *[AbiItem](../interfaces/_abi_types_.abiitem.md)* - -___ - -### `Const` parseDecodedParams - -▸ **parseDecodedParams**(`params`: [DecodedParamsObject](../interfaces/_abi_types_.decodedparamsobject.md)): *object* - -*Defined in [utils/abi-utils.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/abi-utils.ts#L9)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`params` | [DecodedParamsObject](../interfaces/_abi_types_.decodedparamsobject.md) | - -**Returns:** *object* - -* **args**: *any[]* - -* **params**: *[DecodedParamsObject](../interfaces/_abi_types_.decodedparamsobject.md)* diff --git a/packages/docs/sdk/docs/connect/modules/_utils_celo_transaction_object_.md b/packages/docs/sdk/docs/connect/modules/_utils_celo_transaction_object_.md deleted file mode 100644 index ef705363bbe..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_utils_celo_transaction_object_.md +++ /dev/null @@ -1,47 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/celo-transaction-object"](_utils_celo_transaction_object_.md) - -# Module: "utils/celo-transaction-object" - -## Index - -### Classes - -* [CeloTransactionObject](../classes/_utils_celo_transaction_object_.celotransactionobject.md) - -### Type aliases - -* [CeloTransactionParams](_utils_celo_transaction_object_.md#celotransactionparams) - -### Functions - -* [toTransactionObject](_utils_celo_transaction_object_.md#totransactionobject) - -## Type aliases - -### CeloTransactionParams - -Ƭ **CeloTransactionParams**: *Omit‹[CeloTx](_types_.md#celotx), "data"›* - -*Defined in [utils/celo-transaction-object.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/celo-transaction-object.ts#L5)* - -## Functions - -### toTransactionObject - -▸ **toTransactionObject**<**O**>(`connection`: [Connection](../classes/_connection_.connection.md), `txo`: [CeloTxObject](../interfaces/_types_.celotxobject.md)‹O›, `defaultParams?`: [CeloTransactionParams](_utils_celo_transaction_object_.md#celotransactionparams)): *[CeloTransactionObject](../classes/_utils_celo_transaction_object_.celotransactionobject.md)‹O›* - -*Defined in [utils/celo-transaction-object.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/celo-transaction-object.ts#L7)* - -**Type parameters:** - -▪ **O** - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | [Connection](../classes/_connection_.connection.md) | -`txo` | [CeloTxObject](../interfaces/_types_.celotxobject.md)‹O› | -`defaultParams?` | [CeloTransactionParams](_utils_celo_transaction_object_.md#celotransactionparams) | - -**Returns:** *[CeloTransactionObject](../classes/_utils_celo_transaction_object_.celotransactionobject.md)‹O›* diff --git a/packages/docs/sdk/docs/connect/modules/_utils_formatter_.md b/packages/docs/sdk/docs/connect/modules/_utils_formatter_.md deleted file mode 100644 index f210f7ed9c2..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_utils_formatter_.md +++ /dev/null @@ -1,214 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/formatter"](_utils_formatter_.md) - -# Module: "utils/formatter" - -## Index - -### Functions - -* [hexToNumber](_utils_formatter_.md#hextonumber) -* [inputAddressFormatter](_utils_formatter_.md#inputaddressformatter) -* [inputBlockNumberFormatter](_utils_formatter_.md#inputblocknumberformatter) -* [inputCeloTxFormatter](_utils_formatter_.md#inputcelotxformatter) -* [inputDefaultBlockNumberFormatter](_utils_formatter_.md#inputdefaultblocknumberformatter) -* [inputSignFormatter](_utils_formatter_.md#inputsignformatter) -* [outputBigNumberFormatter](_utils_formatter_.md#outputbignumberformatter) -* [outputBlockFormatter](_utils_formatter_.md#outputblockformatter) -* [outputBlockHeaderFormatter](_utils_formatter_.md#outputblockheaderformatter) -* [outputCeloTxFormatter](_utils_formatter_.md#outputcelotxformatter) -* [outputCeloTxReceiptFormatter](_utils_formatter_.md#outputcelotxreceiptformatter) -* [outputLogFormatter](_utils_formatter_.md#outputlogformatter) - -## Functions - -### hexToNumber - -▸ **hexToNumber**(`hex?`: undefined | string): *number | undefined* - -*Defined in [utils/formatter.ts:171](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L171)* - -**Parameters:** - -Name | Type | ------- | ------ | -`hex?` | undefined | string | - -**Returns:** *number | undefined* - -___ - -### inputAddressFormatter - -▸ **inputAddressFormatter**(`address?`: undefined | string): *string | undefined* - -*Defined in [utils/formatter.ts:216](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L216)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address?` | undefined | string | - -**Returns:** *string | undefined* - -___ - -### inputBlockNumberFormatter - -▸ **inputBlockNumberFormatter**(`blockNumber`: [BlockNumber](_types_.md#blocknumber)): *undefined | string | number | BN‹› | BigNumber‹›* - -*Defined in [utils/formatter.ts:117](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L117)* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockNumber` | [BlockNumber](_types_.md#blocknumber) | - -**Returns:** *undefined | string | number | BN‹› | BigNumber‹›* - -___ - -### inputCeloTxFormatter - -▸ **inputCeloTxFormatter**(`tx`: [CeloTx](_types_.md#celotx)): *[CeloTx](_types_.md#celotx)* - -*Defined in [utils/formatter.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L19)* - -Formats the input of a transaction and converts all values to HEX - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | [CeloTx](_types_.md#celotx) | - -**Returns:** *[CeloTx](_types_.md#celotx)* - -___ - -### inputDefaultBlockNumberFormatter - -▸ **inputDefaultBlockNumberFormatter**(`blockNumber`: [BlockNumber](_types_.md#blocknumber) | null | undefined): *undefined | string | number | BN‹› | BigNumber‹›* - -*Defined in [utils/formatter.ts:109](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L109)* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockNumber` | [BlockNumber](_types_.md#blocknumber) | null | undefined | - -**Returns:** *undefined | string | number | BN‹› | BigNumber‹›* - -___ - -### inputSignFormatter - -▸ **inputSignFormatter**(`data`: string): *string* - -*Defined in [utils/formatter.ts:226](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L226)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | string | - -**Returns:** *string* - -___ - -### outputBigNumberFormatter - -▸ **outputBigNumberFormatter**(`hex`: string): *string* - -*Defined in [utils/formatter.ts:212](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L212)* - -**Parameters:** - -Name | Type | ------- | ------ | -`hex` | string | - -**Returns:** *string* - -___ - -### outputBlockFormatter - -▸ **outputBlockFormatter**(`block`: any): *Block* - -*Defined in [utils/formatter.ts:150](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L150)* - -**Parameters:** - -Name | Type | ------- | ------ | -`block` | any | - -**Returns:** *Block* - -___ - -### outputBlockHeaderFormatter - -▸ **outputBlockHeaderFormatter**(`blockHeader`: any): *BlockHeader* - -*Defined in [utils/formatter.ts:135](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L135)* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockHeader` | any | - -**Returns:** *BlockHeader* - -___ - -### outputCeloTxFormatter - -▸ **outputCeloTxFormatter**(`tx`: any): *[CeloTxPending](_types_.md#celotxpending)* - -*Defined in [utils/formatter.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L46)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | any | - -**Returns:** *[CeloTxPending](_types_.md#celotxpending)* - -___ - -### outputCeloTxReceiptFormatter - -▸ **outputCeloTxReceiptFormatter**(`receipt`: any): *[CeloTxReceipt](_types_.md#celotxreceipt)* - -*Defined in [utils/formatter.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L80)* - -**Parameters:** - -Name | Type | ------- | ------ | -`receipt` | any | - -**Returns:** *[CeloTxReceipt](_types_.md#celotxreceipt)* - -___ - -### outputLogFormatter - -▸ **outputLogFormatter**(`log`: any): *Log* - -*Defined in [utils/formatter.ts:178](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/formatter.ts#L178)* - -**Parameters:** - -Name | Type | ------- | ------ | -`log` | any | - -**Returns:** *Log* diff --git a/packages/docs/sdk/docs/connect/modules/_utils_provider_utils_.md b/packages/docs/sdk/docs/connect/modules/_utils_provider_utils_.md deleted file mode 100644 index 8265784ec64..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_utils_provider_utils_.md +++ /dev/null @@ -1,51 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/provider-utils"](_utils_provider_utils_.md) - -# Module: "utils/provider-utils" - -## Index - -### Functions - -* [hasProperty](_utils_provider_utils_.md#hasproperty) -* [stopProvider](_utils_provider_utils_.md#stopprovider) - -## Functions - -### hasProperty - -▸ **hasProperty**<**T**>(`object`: any, `property`: string): *object is T* - -*Defined in [utils/provider-utils.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/provider-utils.ts#L4)* - -**`internal`** - -**Type parameters:** - -▪ **T** - -**Parameters:** - -Name | Type | ------- | ------ | -`object` | any | -`property` | string | - -**Returns:** *object is T* - -___ - -### stopProvider - -▸ **stopProvider**(`defaultProvider`: [Provider](../interfaces/_types_.provider.md)): *void* - -*Defined in [utils/provider-utils.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/provider-utils.ts#L9)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`defaultProvider` | [Provider](../interfaces/_types_.provider.md) | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/connect/modules/_utils_rpc_caller_.md b/packages/docs/sdk/docs/connect/modules/_utils_rpc_caller_.md deleted file mode 100644 index c9466afc588..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_utils_rpc_caller_.md +++ /dev/null @@ -1,54 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/rpc-caller"](_utils_rpc_caller_.md) - -# Module: "utils/rpc-caller" - -## Index - -### Classes - -* [DefaultRpcCaller](../classes/_utils_rpc_caller_.defaultrpccaller.md) - -### Interfaces - -* [RpcCaller](../interfaces/_utils_rpc_caller_.rpccaller.md) - -### Functions - -* [getRandomId](_utils_rpc_caller_.md#getrandomid) -* [rpcCallHandler](_utils_rpc_caller_.md#rpccallhandler) - -## Functions - -### getRandomId - -▸ **getRandomId**(): *number* - -*Defined in [utils/rpc-caller.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/rpc-caller.ts#L36)* - -**Returns:** *number* - -___ - -### rpcCallHandler - -▸ **rpcCallHandler**(`payload`: [JsonRpcPayload](../interfaces/_types_.jsonrpcpayload.md), `handler`: function, `callback`: [Callback](_types_.md#callback)‹[JsonRpcResponse](../interfaces/_types_.jsonrpcresponse.md)›): *void* - -*Defined in [utils/rpc-caller.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/rpc-caller.ts#L8)* - -**Parameters:** - -▪ **payload**: *[JsonRpcPayload](../interfaces/_types_.jsonrpcpayload.md)* - -▪ **handler**: *function* - -▸ (`p`: [JsonRpcPayload](../interfaces/_types_.jsonrpcpayload.md)): *Promise‹any›* - -**Parameters:** - -Name | Type | ------- | ------ | -`p` | [JsonRpcPayload](../interfaces/_types_.jsonrpcpayload.md) | - -▪ **callback**: *[Callback](_types_.md#callback)‹[JsonRpcResponse](../interfaces/_types_.jsonrpcresponse.md)›* - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/connect/modules/_utils_tx_params_normalizer_.md b/packages/docs/sdk/docs/connect/modules/_utils_tx_params_normalizer_.md deleted file mode 100644 index e2563b2ef27..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_utils_tx_params_normalizer_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/tx-params-normalizer"](_utils_tx_params_normalizer_.md) - -# Module: "utils/tx-params-normalizer" - -## Index - -### Classes - -* [TxParamsNormalizer](../classes/_utils_tx_params_normalizer_.txparamsnormalizer.md) diff --git a/packages/docs/sdk/docs/connect/modules/_utils_tx_result_.md b/packages/docs/sdk/docs/connect/modules/_utils_tx_result_.md deleted file mode 100644 index 73f65763a5b..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_utils_tx_result_.md +++ /dev/null @@ -1,31 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["utils/tx-result"](_utils_tx_result_.md) - -# Module: "utils/tx-result" - -## Index - -### Classes - -* [TransactionResult](../classes/_utils_tx_result_.transactionresult.md) - -### Functions - -* [toTxResult](_utils_tx_result_.md#totxresult) - -## Functions - -### toTxResult - -▸ **toTxResult**(`pe`: PromiEvent‹any›): *[TransactionResult](../classes/_utils_tx_result_.transactionresult.md)‹›* - -*Defined in [utils/tx-result.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/connect/src/utils/tx-result.ts#L10)* - -Transforms a `PromiEvent` to a `TransactionResult`. - -**Parameters:** - -Name | Type | ------- | ------ | -`pe` | PromiEvent‹any› | - -**Returns:** *[TransactionResult](../classes/_utils_tx_result_.transactionresult.md)‹›* diff --git a/packages/docs/sdk/docs/connect/modules/_wallet_.md b/packages/docs/sdk/docs/connect/modules/_wallet_.md deleted file mode 100644 index 5b60d29f23b..00000000000 --- a/packages/docs/sdk/docs/connect/modules/_wallet_.md +++ /dev/null @@ -1,10 +0,0 @@ -[@celo/connect](../README.md) › [Globals](../globals.md) › ["wallet"](_wallet_.md) - -# Module: "wallet" - -## Index - -### Interfaces - -* [ReadOnlyWallet](../interfaces/_wallet_.readonlywallet.md) -* [Signer](../interfaces/_wallet_.signer.md) diff --git a/packages/docs/sdk/docs/contractkit/README.md b/packages/docs/sdk/docs/contractkit/README.md deleted file mode 100644 index bc3426c4599..00000000000 --- a/packages/docs/sdk/docs/contractkit/README.md +++ /dev/null @@ -1,290 +0,0 @@ -[@celo/contractkit](README.md) › [Globals](globals.md) - -# @celo/contractkit - -# ContractKit - -Celo's ContractKit is a library to help developers and validators to interact with the Celo blockchain. - -ContractKit supports the following functionality: - -- Connect to a node -- Access web3 object to interact with node's Json RPC API -- Send Transaction with celo's extra fields: (feeCurrency) -- Simple interface to interact with CELO and cUSD -- Simple interface to interact with Celo Core contracts -- Utilities - -## User Guide - -:::tip - -You might not need the full ContractKit. Consider using `@celo/connect` which powers much of ContractKit such as building and sending Transactions, signing, etc, but does not give access to any celo Contract Wrappers. Or if a subset of Wrappers, setting the feeCurrency and account info is all your dapp needs consider replacing your imports of Contractkit with `@celo/contractkit/lib/mini-kit` - -::: - -### Getting Started - -To install: - -```bash -npm install @celo/contractkit -// or -yarn add @celo/contractkit -``` - -You will need Node.js v18.14.2. or greater. - -To start working with contractkit you need a `kit` instance: - -```ts -import { newKit } from '@celo/contractkit' // or import { newKit } from '@celo/contractkit/lib/mini-kit' - -// Remotely connect to the Alfajores testnet -const kit = newKit('https://alfajores-forno.celo-testnet.org') -``` - -To access balances: - -```ts -// returns an object with {lockedGold, pending, cUSD, cEUR, cREAL} - -const balances = await kit.getTotalBalance() - -// returns an object with {cUSD, cEUR, cREAL} -const balances = await miniKit.getTotalBalance() - -``` - -If you don't need the balances of all tokens use the balanceOf method -```ts - -const stableTokenWrapper = await kit.getStableToken(StableToken.cREAL) - -const cRealBalance = stableTokenWrapper.balanceOf(accountAddress) - -``` - -### Setting Default Tx Options - -`kit` allows you to set default transaction options: - -```ts -import { newKit, CeloContract } from '@celo/contractkit/lib/mini-kit' - -async function getKit(myAddress: string, privateKey: string) { - const kit = newKit('https://alfajores-forno.celo-testnet.org') - - // default from account - kit.defaultAccount = myAddress - - // add the account private key for tx signing when connecting to a remote node - kit.connection.addAccount(privateKey) - - // paid gas in celo dollars - await kit.setFeeCurrency(CeloContract.StableToken) - - return kit -} -``` - -### Interacting with CELO & cUSD - -Celo has two initial coins: CELO and cUSD (stableToken). -Both implement the ERC20 standard, and to interact with them is as simple as: - -```ts -// get the CELO contract -const celoToken = await kit.contracts.getGoldToken() - -// get the cUSD contract -const stableToken = await kit.contracts.getStableToken() - -const celoBalance = await celoToken.balanceOf(someAddress) -const cusdBalance = await stableToken.balanceOf(someAddress) -``` - -To send funds: - -```ts -const oneGold = kit.connection.web3.utils.toWei('1', 'ether') -const tx = await goldToken.transfer(someAddress, oneGold).send({ - from: myAddress -}) - -const hash = await tx.getHash() -const receipt = await tx.waitReceipt() -``` - -If you would like to pay fees in cUSD, (or other cStables like cEUR, cUSD). - -```ts - -kit.setFeeCurrency(CeloContract.StableToken) // Default to paying fees in cUSD - -const stableTokenContract = kit.contracts.getStableToken() - -const tx = await stableTokenContract - .transfer(recipient, weiTransferAmount) - .send({ from: myAddress, gasPrice }) - -const hash = await tx.getHash() - -const receipt = await tx.waitReceipt() - -``` - -### Interacting with Core Contracts - -There are many core contracts. - -- AccountsWrapper -- AttestationsWrapper -- BlockchainParametersWrapper -- DoubleSigningSlasherWrapper -- DowntimeSlasherWrapper -- ElectionWrapper -- EpochRewardsWrapper -- Erc20Wrapper -- EscrowWrapper -- ExchangeWrapper -- FreezerWrapper -- GasPriceMinimumWrapper -- GoldTokenWrapper -- GovernanceWrapper -- GrandaMentoWrapper -- LockedGoldWrapper -- MetaTransactionWalletWrapper -- MetaTransactionWalletDeployerWrapper -- MultiSigWrapper -- ReserveWrapper -- SortedOraclesWrapper -- StableTokenWrapper -- ValidatorsWrapper - -#### Wrappers Through Kit - -When using the `kit` you can access core contracts like - -`kit.contracts.get{ContractName}` - -E.G. `kit.contracts.getAccounts()`, `kit.contracts.getValidators()` - -#### Stand Alone Wrappers - -You can also initialize contracts wrappers directly. They require a `Connection` and their contract: - -```typescript -// MiniContractKit only gives access to a limited set of Contracts, so we import Multisig - -import { newKit } from "@celo/contractkit/lib/mini-kit" -import { MultiSigWrapper } from '@celo/contractkit/lib/wrappers/MultiSig' -import { newMultiSig } from '@celo/contractkit/lib/generated/MultiSig' - -const miniKit = newKit("https://alfajores-forno.celo-testnet.org/") - -// Alternatively import { Connection } from '@celo/connect' -// const connection = new Connection(web3) - -const contract = newMultiSig(web3) - -const multisigWrapper = new MultiSigWrapper(miniKit.connection, contract) -``` - -### Accessing web3 contract wrappers - -`MiniContractKit` *does not provide access to the web3 contracts* - -Some user might want to access web3 native contract wrappers. - -To do so, you can: - -```ts -const web3Exchange = await kit._web3Contracts.getExchange() -``` - -We expose native wrappers for all Celo core contracts. - -The complete list of Celo Core contracts is: - -- Accounts -- Attestations -- LockedGold -- Escrow -- Exchange -- FeeCurrencyWhitelist -- GasPriceMinimum -- GoldToken -- Governance -- MultiSig -- Random -- Registry -- Reserve -- SortedOracles -- StableToken -- Validators - -### A Note About Contract Addresses - -Celo Core Contracts addresses, can be obtained by looking at the `Registry` contract. -That's how `kit` obtains them. - -We expose the registry API, which can be accessed by: - -```ts -const goldTokenAddress = await kit.registry.addressFor(CeloContract.GoldToken) -``` - -### Sending Custom Transactions - -Celo transaction object is not the same as Ethereum's. There are three new fields present: - -- feeCurrency (address of the ERC20 contract to use to pay for gas and the gateway fee) -- gatewayFeeRecipient (coinbase address of the full serving the light client's trasactions) -- gatewayFee (value paid to the gateway fee recipient, denominated in the fee currency) - -:::note -The `gatewayFeeRecipient`, and `gatewayFee` fields are currently not used by the protocol. -::: - -This means that using `web3.eth.sendTransaction` or `myContract.methods.transfer().send()` should be avoided to take advantage of paying transaction fees in alternative currencies. - -Instead, `kit` provides an utility method to send transaction in both scenarios. **If you use contract wrappers, there is no need to use this.** - -For a raw transaction: - -```ts -const tx = kit.sendTransaction({ - from: myAddress, - to: someAddress, - value: oneGold, -}) -const hash = await tx.getHash() -const receipt = await tx.waitReceipt() -``` - -When interacting with a web3 contract object: - -```ts -const celoNativeToken = await kit._web3Contracts.getGoldToken() -const oneGold = kit.connection.web3.utils.toWei('1', 'ether') - -const txo = await celoNativeToken.methods.transfer(someAddress, oneGold) -const tx = await kit.sendTransactionObject(txo, { from: myAddress }) -const hash = await tx.getHash() -const receipt = await tx.waitReceipt() -``` - -### More Information - -You can find more information about the ContractKit in the Celo docs at [https://docs.celo.org/developer-guide/contractkit](https://docs.celo.org/developer-guide/contractkit). - -### Debugging - -If you need to debug `kit`, we use the well known [debug](https://github.com/visionmedia/debug) node library. - -So set the environment variable `DEBUG` as: - -```bash -DEBUG="kit:*, -``` diff --git a/packages/docs/sdk/docs/contractkit/classes/_address_registry_.addressregistry.md b/packages/docs/sdk/docs/contractkit/classes/_address_registry_.addressregistry.md deleted file mode 100644 index d65dd41934c..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_address_registry_.addressregistry.md +++ /dev/null @@ -1,80 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["address-registry"](../modules/_address_registry_.md) › [AddressRegistry](_address_registry_.addressregistry.md) - -# Class: AddressRegistry - -Celo Core Contract's Address Registry - -**`param`** – an instance of @celo/connect {@link Connection} - -## Hierarchy - -* **AddressRegistry** - -## Index - -### Constructors - -* [constructor](_address_registry_.addressregistry.md#constructor) - -### Properties - -* [connection](_address_registry_.addressregistry.md#readonly-connection) - -### Methods - -* [addressFor](_address_registry_.addressregistry.md#addressfor) -* [addressMapping](_address_registry_.addressregistry.md#addressmapping) - -## Constructors - -### constructor - -\+ **new AddressRegistry**(`connection`: Connection): *[AddressRegistry](_address_registry_.addressregistry.md)* - -*Defined in [packages/sdk/contractkit/src/address-registry.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/address-registry.ts#L25)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | - -**Returns:** *[AddressRegistry](_address_registry_.addressregistry.md)* - -## Properties - -### `Readonly` connection - -• **connection**: *Connection* - -*Defined in [packages/sdk/contractkit/src/address-registry.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/address-registry.ts#L27)* - -## Methods - -### addressFor - -▸ **addressFor**(`contract`: [CeloContract](../enums/_base_.celocontract.md)): *Promise‹Address›* - -*Defined in [packages/sdk/contractkit/src/address-registry.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/address-registry.ts#L35)* - -Get the address for a `CeloContract` - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | [CeloContract](../enums/_base_.celocontract.md) | - -**Returns:** *Promise‹Address›* - -___ - -### addressMapping - -▸ **addressMapping**(): *Promise‹Map‹[CeloContract](../enums/_base_.celocontract.md), string››* - -*Defined in [packages/sdk/contractkit/src/address-registry.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/address-registry.ts#L53)* - -Get the address mapping for known registered contracts - -**Returns:** *Promise‹Map‹[CeloContract](../enums/_base_.celocontract.md), string››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_address_registry_.unregisterederror.md b/packages/docs/sdk/docs/contractkit/classes/_address_registry_.unregisterederror.md deleted file mode 100644 index 4fc3b69ba64..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_address_registry_.unregisterederror.md +++ /dev/null @@ -1,76 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["address-registry"](../modules/_address_registry_.md) › [UnregisteredError](_address_registry_.unregisterederror.md) - -# Class: UnregisteredError - -## Hierarchy - -* [Error](_address_registry_.unregisterederror.md#static-error) - - ↳ **UnregisteredError** - -## Index - -### Constructors - -* [constructor](_address_registry_.unregisterederror.md#constructor) - -### Properties - -* [message](_address_registry_.unregisterederror.md#message) -* [name](_address_registry_.unregisterederror.md#name) -* [stack](_address_registry_.unregisterederror.md#optional-stack) -* [Error](_address_registry_.unregisterederror.md#static-error) - -## Constructors - -### constructor - -\+ **new UnregisteredError**(`contract`: [CeloContract](../enums/_base_.celocontract.md)): *[UnregisteredError](_address_registry_.unregisterederror.md)* - -*Defined in [packages/sdk/contractkit/src/address-registry.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/address-registry.ts#L12)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | [CeloContract](../enums/_base_.celocontract.md) | - -**Returns:** *[UnregisteredError](_address_registry_.unregisterederror.md)* - -## Properties - -### message - -• **message**: *string* - -*Inherited from [UnregisteredError](_address_registry_.unregisterederror.md).[message](_address_registry_.unregisterederror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [UnregisteredError](_address_registry_.unregisterederror.md).[name](_address_registry_.unregisterederror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [UnregisteredError](_address_registry_.unregisterederror.md).[stack](_address_registry_.unregisterederror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 - -___ - -### `Static` Error - -▪ **Error**: *ErrorConstructor* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:984 diff --git a/packages/docs/sdk/docs/contractkit/classes/_celo_tokens_.celotokens.md b/packages/docs/sdk/docs/contractkit/classes/_celo_tokens_.celotokens.md deleted file mode 100644 index c2271d21fca..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_celo_tokens_.celotokens.md +++ /dev/null @@ -1,394 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["celo-tokens"](../modules/_celo_tokens_.md) › [CeloTokens](_celo_tokens_.celotokens.md) - -# Class: CeloTokens - -A helper class to interact with all Celo tokens, ie CELO and stable tokens - -## Hierarchy - -* **CeloTokens** - -## Index - -### Constructors - -* [constructor](_celo_tokens_.celotokens.md#constructor) - -### Properties - -* [contracts](_celo_tokens_.celotokens.md#readonly-contracts) -* [isStableTokenContract](_celo_tokens_.celotokens.md#isstabletokencontract) -* [registry](_celo_tokens_.celotokens.md#readonly-registry) - -### Methods - -* [balancesOf](_celo_tokens_.celotokens.md#balancesof) -* [forEachCeloToken](_celo_tokens_.celotokens.md#foreachcelotoken) -* [forStableCeloToken](_celo_tokens_.celotokens.md#forstablecelotoken) -* [getAddress](_celo_tokens_.celotokens.md#getaddress) -* [getAddresses](_celo_tokens_.celotokens.md#getaddresses) -* [getContract](_celo_tokens_.celotokens.md#getcontract) -* [getExchangeContract](_celo_tokens_.celotokens.md#getexchangecontract) -* [getExchangesConfigs](_celo_tokens_.celotokens.md#getexchangesconfigs) -* [getFeeCurrencyAddress](_celo_tokens_.celotokens.md#getfeecurrencyaddress) -* [getStablesConfigs](_celo_tokens_.celotokens.md#getstablesconfigs) -* [getWrapper](_celo_tokens_.celotokens.md#getwrapper) -* [getWrappers](_celo_tokens_.celotokens.md#getwrappers) -* [isStableToken](_celo_tokens_.celotokens.md#isstabletoken) -* [validCeloTokenInfos](_celo_tokens_.celotokens.md#validcelotokeninfos) -* [validStableTokenInfos](_celo_tokens_.celotokens.md#validstabletokeninfos) - -## Constructors - -### constructor - -\+ **new CeloTokens**(`contracts`: [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md), `registry`: [AddressRegistry](_address_registry_.addressregistry.md)): *[CeloTokens](_celo_tokens_.celotokens.md)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L61)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contracts` | [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md) | -`registry` | [AddressRegistry](_address_registry_.addressregistry.md) | - -**Returns:** *[CeloTokens](_celo_tokens_.celotokens.md)* - -## Properties - -### `Readonly` contracts - -• **contracts**: *[ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L62)* - -___ - -### isStableTokenContract - -• **isStableTokenContract**: *[isStableTokenContract](../modules/_celo_tokens_.md#isstabletokencontract)* = isStableTokenContract - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:272](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L272)* - -___ - -### `Readonly` registry - -• **registry**: *[AddressRegistry](_address_registry_.addressregistry.md)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L62)* - -## Methods - -### balancesOf - -▸ **balancesOf**(`address`: string): *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹BigNumber››* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L70)* - -Gets an address's balance for each celo token. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | the address to look up the balances for | - -**Returns:** *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹BigNumber››* - -a promise resolving to an object containing the address's balance - for each celo token - -___ - -### forEachCeloToken - -▸ **forEachCeloToken**<**T**>(`fn`: function): *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹T››* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L120)* - -Runs fn for each celo token found in celoTokenInfos, and returns the -value of each call in an object keyed by the token. - -**Type parameters:** - -▪ **T** - -**Parameters:** - -▪ **fn**: *function* - -the function to be called for each CeloTokenInfo. - -▸ (`info`: [CeloTokenInfo](../interfaces/_celo_tokens_.celotokeninfo.md)): *T | Promise‹T›* - -**Parameters:** - -Name | Type | ------- | ------ | -`info` | [CeloTokenInfo](../interfaces/_celo_tokens_.celotokeninfo.md) | - -**Returns:** *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹T››* - -an object containing the resolved value the call to fn for each - celo token. - -___ - -### forStableCeloToken - -▸ **forStableCeloToken**<**T**>(`fn`: function): *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹T››* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:143](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L143)* - -Runs fn for each stable token found in stableTokenInfos, and returns the -value of each call in an object keyed by the token. - -**Type parameters:** - -▪ **T** - -**Parameters:** - -▪ **fn**: *function* - -the function to be called for each StableTokenInfo. - -▸ (`info`: [StableTokenInfo](../interfaces/_celo_tokens_.stabletokeninfo.md)): *T | Promise‹T›* - -**Parameters:** - -Name | Type | ------- | ------ | -`info` | [StableTokenInfo](../interfaces/_celo_tokens_.stabletokeninfo.md) | - -**Returns:** *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹T››* - -an object containing the resolved value the call to fn for each - celo token. - -___ - -### getAddress - -▸ **getAddress**(`token`: [CeloTokenType](../modules/_celo_tokens_.md#celotokentype)): *Promise‹string›* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:247](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L247)* - -Gets the address of the contract for the provided token. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`token` | [CeloTokenType](../modules/_celo_tokens_.md#celotokentype) | the token to get the (proxy) contract address for | - -**Returns:** *Promise‹string›* - -A promise resolving to the address of the token's contract - -___ - -### getAddresses - -▸ **getAddresses**(): *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹string››* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:89](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L89)* - -Gets the address for each celo token proxy contract. - -**Returns:** *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹string››* - -an promise resolving to an object containing the address for each celo token proxy. - -___ - -### getContract - -▸ **getContract**(`token`: [StableToken](../modules/_celo_tokens_.md#stabletoken)): *[StableTokenContract](../modules/_base_.md#stabletokencontract)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:228](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L228)* - -Gets the contract for the provided token - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`token` | [StableToken](../modules/_celo_tokens_.md#stabletoken) | the token to get the contract of | - -**Returns:** *[StableTokenContract](../modules/_base_.md#stabletokencontract)* - -The contract for the token - -___ - -### getExchangeContract - -▸ **getExchangeContract**(`token`: [StableToken](../modules/_celo_tokens_.md#stabletoken)): *[ExchangeContract](../modules/_base_.md#exchangecontract)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:238](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L238)* - -Gets the exchange contract for the provided stable token - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`token` | [StableToken](../modules/_celo_tokens_.md#stabletoken) | the stable token to get exchange contract of | - -**Returns:** *[ExchangeContract](../modules/_base_.md#exchangecontract)* - -The exchange contract for the token - -___ - -### getExchangesConfigs - -▸ **getExchangesConfigs**(`humanReadable`: boolean): *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹[ExchangeConfig](../interfaces/_wrappers_exchange_.exchangeconfig.md) | object››* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:103](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L103)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`humanReadable` | boolean | false | - -**Returns:** *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹[ExchangeConfig](../interfaces/_wrappers_exchange_.exchangeconfig.md) | object››* - -___ - -### getFeeCurrencyAddress - -▸ **getFeeCurrencyAddress**(`token`: [CeloTokenType](../modules/_celo_tokens_.md#celotokentype)): *undefined | Promise‹string›* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:255](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L255)* - -Gets the address to use as the feeCurrency when paying for gas with the - provided token. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`token` | [CeloTokenType](../modules/_celo_tokens_.md#celotokentype) | the token to get the feeCurrency address for | - -**Returns:** *undefined | Promise‹string›* - -If not CELO, the address of the token's contract. If CELO, undefined. - -___ - -### getStablesConfigs - -▸ **getStablesConfigs**(`humanReadable`: boolean): *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹[StableTokenConfig](../interfaces/_wrappers_stabletokenwrapper_.stabletokenconfig.md) | object››* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:93](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L93)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`humanReadable` | boolean | false | - -**Returns:** *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹[StableTokenConfig](../interfaces/_wrappers_stabletokenwrapper_.stabletokenconfig.md) | object››* - -___ - -### getWrapper - -▸ **getWrapper**(`token`: [StableToken](../modules/_celo_tokens_.md#stabletoken)): *Promise‹[StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md)›* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:216](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L216)* - -Gets the wrapper for a given celo token. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`token` | [StableToken](../modules/_celo_tokens_.md#stabletoken) | the token to get the appropriate wrapper for | - -**Returns:** *Promise‹[StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md)›* - -an promise resolving to the wrapper for the token - -▸ **getWrapper**(`token`: [Token](../modules/_celo_tokens_.md#token)): *Promise‹[GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md)›* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:217](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L217)* - -**Parameters:** - -Name | Type | ------- | ------ | -`token` | [Token](../modules/_celo_tokens_.md#token) | - -**Returns:** *Promise‹[GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md)›* - -▸ **getWrapper**(`token`: [CeloTokenType](../modules/_celo_tokens_.md#celotokentype)): *Promise‹[CeloTokenWrapper](../modules/_celo_tokens_.md#celotokenwrapper)›* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:218](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L218)* - -**Parameters:** - -Name | Type | ------- | ------ | -`token` | [CeloTokenType](../modules/_celo_tokens_.md#celotokentype) | - -**Returns:** *Promise‹[CeloTokenWrapper](../modules/_celo_tokens_.md#celotokenwrapper)›* - -___ - -### getWrappers - -▸ **getWrappers**(): *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹[CeloTokenWrapper](../modules/_celo_tokens_.md#celotokenwrapper)››* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L81)* - -Gets the wrapper for each celo token. - -**Returns:** *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹[CeloTokenWrapper](../modules/_celo_tokens_.md#celotokenwrapper)››* - -an promise resolving to an object containing the wrapper for each celo token. - -___ - -### isStableToken - -▸ **isStableToken**(`token`: [CeloTokenType](../modules/_celo_tokens_.md#celotokentype)): *boolean* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:267](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L267)* - -Returns if the provided token is a StableToken - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`token` | [CeloTokenType](../modules/_celo_tokens_.md#celotokentype) | the token | - -**Returns:** *boolean* - -if token is a StableToken - -___ - -### validCeloTokenInfos - -▸ **validCeloTokenInfos**(): *Promise‹[CeloTokenInfo](../interfaces/_celo_tokens_.celotokeninfo.md)[]›* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:176](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L176)* - -**Returns:** *Promise‹[CeloTokenInfo](../interfaces/_celo_tokens_.celotokeninfo.md)[]›* - -___ - -### validStableTokenInfos - -▸ **validStableTokenInfos**(): *Promise‹[StableTokenInfo](../interfaces/_celo_tokens_.stabletokeninfo.md)[]›* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:193](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L193)* - -**Returns:** *Promise‹[StableTokenInfo](../interfaces/_celo_tokens_.stabletokeninfo.md)[]›* diff --git a/packages/docs/sdk/docs/contractkit/classes/_contract_cache_.wrappercache.md b/packages/docs/sdk/docs/contractkit/classes/_contract_cache_.wrappercache.md deleted file mode 100644 index b8948ff692c..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_contract_cache_.wrappercache.md +++ /dev/null @@ -1,419 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["contract-cache"](../modules/_contract_cache_.md) › [WrapperCache](_contract_cache_.wrappercache.md) - -# Class: WrapperCache - -Kit ContractWrappers factory & cache. - -Provides access to all contract wrappers for celo core contracts - -**`remarks`** - -Because it provides access to all contract wrappers it must load all wrappers and the contract ABIs for them -Consider Using {@link MiniWrapperCache}, building your own, or if you only need one Wrapper using it directly - -## Hierarchy - -* **WrapperCache** - -## Implements - -* [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md) - -## Index - -### Constructors - -* [constructor](_contract_cache_.wrappercache.md#constructor) - -### Properties - -* [_web3Contracts](_contract_cache_.wrappercache.md#readonly-_web3contracts) -* [connection](_contract_cache_.wrappercache.md#readonly-connection) -* [registry](_contract_cache_.wrappercache.md#readonly-registry) - -### Methods - -* [getAccounts](_contract_cache_.wrappercache.md#getaccounts) -* [getAttestations](_contract_cache_.wrappercache.md#getattestations) -* [getBlockchainParameters](_contract_cache_.wrappercache.md#getblockchainparameters) -* [getContract](_contract_cache_.wrappercache.md#getcontract) -* [getDoubleSigningSlasher](_contract_cache_.wrappercache.md#getdoublesigningslasher) -* [getDowntimeSlasher](_contract_cache_.wrappercache.md#getdowntimeslasher) -* [getElection](_contract_cache_.wrappercache.md#getelection) -* [getEpochRewards](_contract_cache_.wrappercache.md#getepochrewards) -* [getErc20](_contract_cache_.wrappercache.md#geterc20) -* [getEscrow](_contract_cache_.wrappercache.md#getescrow) -* [getExchange](_contract_cache_.wrappercache.md#getexchange) -* [getFreezer](_contract_cache_.wrappercache.md#getfreezer) -* [getGasPriceMinimum](_contract_cache_.wrappercache.md#getgaspriceminimum) -* [getGoldToken](_contract_cache_.wrappercache.md#getgoldtoken) -* [getGovernance](_contract_cache_.wrappercache.md#getgovernance) -* [getGrandaMento](_contract_cache_.wrappercache.md#getgrandamento) -* [getLockedGold](_contract_cache_.wrappercache.md#getlockedgold) -* [getMetaTransactionWallet](_contract_cache_.wrappercache.md#getmetatransactionwallet) -* [getMetaTransactionWalletDeployer](_contract_cache_.wrappercache.md#getmetatransactionwalletdeployer) -* [getMultiSig](_contract_cache_.wrappercache.md#getmultisig) -* [getReserve](_contract_cache_.wrappercache.md#getreserve) -* [getSortedOracles](_contract_cache_.wrappercache.md#getsortedoracles) -* [getStableToken](_contract_cache_.wrappercache.md#getstabletoken) -* [getValidators](_contract_cache_.wrappercache.md#getvalidators) -* [invalidateContract](_contract_cache_.wrappercache.md#invalidatecontract) - -## Constructors - -### constructor - -\+ **new WrapperCache**(`connection`: Connection, `_web3Contracts`: [Web3ContractCache](_web3_contract_cache_.web3contractcache.md), `registry`: [AddressRegistry](_address_registry_.addressregistry.md)): *[WrapperCache](_contract_cache_.wrappercache.md)* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:126](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L126)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`_web3Contracts` | [Web3ContractCache](_web3_contract_cache_.web3contractcache.md) | -`registry` | [AddressRegistry](_address_registry_.addressregistry.md) | - -**Returns:** *[WrapperCache](_contract_cache_.wrappercache.md)* - -## Properties - -### `Readonly` _web3Contracts - -• **_web3Contracts**: *[Web3ContractCache](_web3_contract_cache_.web3contractcache.md)* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:129](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L129)* - -___ - -### `Readonly` connection - -• **connection**: *Connection* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:128](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L128)* - -___ - -### `Readonly` registry - -• **registry**: *[AddressRegistry](_address_registry_.addressregistry.md)* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:130](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L130)* - -## Methods - -### getAccounts - -▸ **getAccounts**(): *Promise‹[AccountsWrapper](_wrappers_accounts_.accountswrapper.md)‹››* - -*Implementation of [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md)* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:133](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L133)* - -**Returns:** *Promise‹[AccountsWrapper](_wrappers_accounts_.accountswrapper.md)‹››* - -___ - -### getAttestations - -▸ **getAttestations**(): *Promise‹[AttestationsWrapper](_wrappers_attestations_.attestationswrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:136](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L136)* - -**Returns:** *Promise‹[AttestationsWrapper](_wrappers_attestations_.attestationswrapper.md)‹››* - -___ - -### getBlockchainParameters - -▸ **getBlockchainParameters**(): *Promise‹[BlockchainParametersWrapper](_wrappers_blockchainparameters_.blockchainparameterswrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:139](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L139)* - -**Returns:** *Promise‹[BlockchainParametersWrapper](_wrappers_blockchainparameters_.blockchainparameterswrapper.md)‹››* - -___ - -### getContract - -▸ **getContract**<**C**>(`contract`: C, `address?`: undefined | string): *Promise‹NonNullable‹WrapperCacheMap[C]››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:210](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L210)* - -Get Contract wrapper - -**Type parameters:** - -▪ **C**: *[ValidWrappers](../modules/_contract_cache_.md#validwrappers)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | C | -`address?` | undefined | string | - -**Returns:** *Promise‹NonNullable‹WrapperCacheMap[C]››* - -___ - -### getDoubleSigningSlasher - -▸ **getDoubleSigningSlasher**(): *Promise‹[DoubleSigningSlasherWrapper](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:142](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L142)* - -**Returns:** *Promise‹[DoubleSigningSlasherWrapper](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md)‹››* - -___ - -### getDowntimeSlasher - -▸ **getDowntimeSlasher**(): *Promise‹[DowntimeSlasherWrapper](_wrappers_downtimeslasher_.downtimeslasherwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:145](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L145)* - -**Returns:** *Promise‹[DowntimeSlasherWrapper](_wrappers_downtimeslasher_.downtimeslasherwrapper.md)‹››* - -___ - -### getElection - -▸ **getElection**(): *Promise‹[ElectionWrapper](_wrappers_election_.electionwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:148](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L148)* - -**Returns:** *Promise‹[ElectionWrapper](_wrappers_election_.electionwrapper.md)‹››* - -___ - -### getEpochRewards - -▸ **getEpochRewards**(): *Promise‹[EpochRewardsWrapper](_wrappers_epochrewards_.epochrewardswrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:151](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L151)* - -**Returns:** *Promise‹[EpochRewardsWrapper](_wrappers_epochrewards_.epochrewardswrapper.md)‹››* - -___ - -### getErc20 - -▸ **getErc20**(`address`: string): *Promise‹[Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md)‹Ierc20‹›››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:154](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L154)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹[Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md)‹Ierc20‹›››* - -___ - -### getEscrow - -▸ **getEscrow**(): *Promise‹[EscrowWrapper](_wrappers_escrow_.escrowwrapper.md)›* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:157](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L157)* - -**Returns:** *Promise‹[EscrowWrapper](_wrappers_escrow_.escrowwrapper.md)›* - -___ - -### getExchange - -▸ **getExchange**(`stableToken`: [StableToken](../enums/_base_.celocontract.md#stabletoken)): *Promise‹[ExchangeWrapper](_wrappers_exchange_.exchangewrapper.md)‹››* - -*Implementation of [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md)* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:161](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L161)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`stableToken` | [StableToken](../enums/_base_.celocontract.md#stabletoken) | StableToken.cUSD | - -**Returns:** *Promise‹[ExchangeWrapper](_wrappers_exchange_.exchangewrapper.md)‹››* - -___ - -### getFreezer - -▸ **getFreezer**(): *Promise‹[FreezerWrapper](_wrappers_freezer_.freezerwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:165](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L165)* - -**Returns:** *Promise‹[FreezerWrapper](_wrappers_freezer_.freezerwrapper.md)‹››* - -___ - -### getGasPriceMinimum - -▸ **getGasPriceMinimum**(): *Promise‹[GasPriceMinimumWrapper](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:169](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L169)* - -**Returns:** *Promise‹[GasPriceMinimumWrapper](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md)‹››* - -___ - -### getGoldToken - -▸ **getGoldToken**(): *Promise‹[GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md)‹››* - -*Implementation of [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md)* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:172](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L172)* - -**Returns:** *Promise‹[GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md)‹››* - -___ - -### getGovernance - -▸ **getGovernance**(): *Promise‹[GovernanceWrapper](_wrappers_governance_.governancewrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:175](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L175)* - -**Returns:** *Promise‹[GovernanceWrapper](_wrappers_governance_.governancewrapper.md)‹››* - -___ - -### getGrandaMento - -▸ **getGrandaMento**(): *Promise‹[GrandaMentoWrapper](_wrappers_grandamento_.grandamentowrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:178](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L178)* - -**Returns:** *Promise‹[GrandaMentoWrapper](_wrappers_grandamento_.grandamentowrapper.md)‹››* - -___ - -### getLockedGold - -▸ **getLockedGold**(): *Promise‹[LockedGoldWrapper](_wrappers_lockedgold_.lockedgoldwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:181](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L181)* - -**Returns:** *Promise‹[LockedGoldWrapper](_wrappers_lockedgold_.lockedgoldwrapper.md)‹››* - -___ - -### getMetaTransactionWallet - -▸ **getMetaTransactionWallet**(`address`: string): *Promise‹[MetaTransactionWalletWrapper](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:184](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L184)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹[MetaTransactionWalletWrapper](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md)‹››* - -___ - -### getMetaTransactionWalletDeployer - -▸ **getMetaTransactionWalletDeployer**(`address`: string): *Promise‹[MetaTransactionWalletDeployerWrapper](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:187](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L187)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹[MetaTransactionWalletDeployerWrapper](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md)‹››* - -___ - -### getMultiSig - -▸ **getMultiSig**(`address`: string): *Promise‹[MultiSigWrapper](_wrappers_multisig_.multisigwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:190](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L190)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹[MultiSigWrapper](_wrappers_multisig_.multisigwrapper.md)‹››* - -___ - -### getReserve - -▸ **getReserve**(): *Promise‹[ReserveWrapper](_wrappers_reserve_.reservewrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:193](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L193)* - -**Returns:** *Promise‹[ReserveWrapper](_wrappers_reserve_.reservewrapper.md)‹››* - -___ - -### getSortedOracles - -▸ **getSortedOracles**(): *Promise‹[SortedOraclesWrapper](_wrappers_sortedoracles_.sortedoracleswrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:196](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L196)* - -**Returns:** *Promise‹[SortedOraclesWrapper](_wrappers_sortedoracles_.sortedoracleswrapper.md)‹››* - -___ - -### getStableToken - -▸ **getStableToken**(`stableToken`: [StableToken](../enums/_base_.celocontract.md#stabletoken)): *Promise‹[StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md)‹››* - -*Implementation of [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md)* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:200](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L200)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`stableToken` | [StableToken](../enums/_base_.celocontract.md#stabletoken) | StableToken.cUSD | - -**Returns:** *Promise‹[StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md)‹››* - -___ - -### getValidators - -▸ **getValidators**(): *Promise‹[ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:203](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L203)* - -**Returns:** *Promise‹[ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md)‹››* - -___ - -### invalidateContract - -▸ **invalidateContract**<**C**>(`contract`: C): *void* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:234](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L234)* - -**Type parameters:** - -▪ **C**: *[ValidWrappers](../modules/_contract_cache_.md#validwrappers)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | C | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/contractkit/classes/_identity_metadata_.identitymetadatawrapper.md b/packages/docs/sdk/docs/contractkit/classes/_identity_metadata_.identitymetadatawrapper.md deleted file mode 100644 index b6e5f2607b9..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_identity_metadata_.identitymetadatawrapper.md +++ /dev/null @@ -1,252 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["identity/metadata"](../modules/_identity_metadata_.md) › [IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md) - -# Class: IdentityMetadataWrapper - -## Hierarchy - -* **IdentityMetadataWrapper** - -## Index - -### Constructors - -* [constructor](_identity_metadata_.identitymetadatawrapper.md#constructor) - -### Properties - -* [data](_identity_metadata_.identitymetadatawrapper.md#data) - -### Accessors - -* [claims](_identity_metadata_.identitymetadatawrapper.md#claims) - -### Methods - -* [addClaim](_identity_metadata_.identitymetadatawrapper.md#addclaim) -* [filterClaims](_identity_metadata_.identitymetadatawrapper.md#filterclaims) -* [findClaim](_identity_metadata_.identitymetadatawrapper.md#findclaim) -* [hashOfClaims](_identity_metadata_.identitymetadatawrapper.md#hashofclaims) -* [toString](_identity_metadata_.identitymetadatawrapper.md#tostring) -* [fetchFromURL](_identity_metadata_.identitymetadatawrapper.md#static-fetchfromurl) -* [fromEmpty](_identity_metadata_.identitymetadatawrapper.md#static-fromempty) -* [fromFile](_identity_metadata_.identitymetadatawrapper.md#static-fromfile) -* [fromRawString](_identity_metadata_.identitymetadatawrapper.md#static-fromrawstring) -* [verifySigner](_identity_metadata_.identitymetadatawrapper.md#static-verifysigner) -* [verifySignerForAddress](_identity_metadata_.identitymetadatawrapper.md#static-verifysignerforaddress) - -## Constructors - -### constructor - -\+ **new IdentityMetadataWrapper**(`data`: [IdentityMetadata](../modules/_identity_metadata_.md#identitymetadata)): *[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:146](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L146)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | [IdentityMetadata](../modules/_identity_metadata_.md#identitymetadata) | - -**Returns:** *[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)* - -## Properties - -### data - -• **data**: *[IdentityMetadata](../modules/_identity_metadata_.md#identitymetadata)* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L33)* - -## Accessors - -### claims - -• **get claims**(): *object | object | object | object | object | object[]* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:152](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L152)* - -**Returns:** *object | object | object | object | object | object[]* - -## Methods - -### addClaim - -▸ **addClaim**(`claim`: [Claim](../modules/_identity_claims_claim_.md#claim), `signer`: Signer): *Promise‹[Claim](../modules/_identity_claims_claim_.md#claim)›* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:167](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L167)* - -**Parameters:** - -Name | Type | ------- | ------ | -`claim` | [Claim](../modules/_identity_claims_claim_.md#claim) | -`signer` | Signer | - -**Returns:** *Promise‹[Claim](../modules/_identity_claims_claim_.md#claim)›* - -___ - -### filterClaims - -▸ **filterClaims**<**K**>(`type`: K): *Array‹[ClaimPayload](../modules/_identity_claims_claim_.md#claimpayload)‹K››* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:207](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L207)* - -**Type parameters:** - -▪ **K**: *[ClaimTypes](../modules/_identity_metadata_.md#claimtypes)* - -**Parameters:** - -Name | Type | ------- | ------ | -`type` | K | - -**Returns:** *Array‹[ClaimPayload](../modules/_identity_claims_claim_.md#claimpayload)‹K››* - -___ - -### findClaim - -▸ **findClaim**<**K**>(`type`: K): *[ClaimPayload](../modules/_identity_claims_claim_.md#claimpayload)‹K› | undefined* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:203](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L203)* - -**Type parameters:** - -▪ **K**: *[ClaimTypes](../modules/_identity_metadata_.md#claimtypes)* - -**Parameters:** - -Name | Type | ------- | ------ | -`type` | K | - -**Returns:** *[ClaimPayload](../modules/_identity_claims_claim_.md#claimpayload)‹K› | undefined* - -___ - -### hashOfClaims - -▸ **hashOfClaims**(): *string* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:156](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L156)* - -**Returns:** *string* - -___ - -### toString - -▸ **toString**(): *string* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:160](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L160)* - -**Returns:** *string* - -___ - -### `Static` fetchFromURL - -▸ **fetchFromURL**(`contractKitOrAccountsWrapper`: KitOrAccountsWrapper, `url`: string, `tries`: number): *Promise‹[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L45)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`contractKitOrAccountsWrapper` | KitOrAccountsWrapper | - | -`url` | string | - | -`tries` | number | 3 | - -**Returns:** *Promise‹[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)‹››* - -___ - -### `Static` fromEmpty - -▸ **fromEmpty**(`address`: Address): *[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)‹›* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L35)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | - -**Returns:** *[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)‹›* - -___ - -### `Static` fromFile - -▸ **fromFile**(`contractKitOrAccountsWrapper`: KitOrAccountsWrapper, `path`: string): *Promise‹[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L64)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contractKitOrAccountsWrapper` | KitOrAccountsWrapper | -`path` | string | - -**Returns:** *Promise‹[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)‹››* - -___ - -### `Static` fromRawString - -▸ **fromRawString**(`contractKitOrAccountsWrapper`: KitOrAccountsWrapper, `rawData`: string): *Promise‹[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L105)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contractKitOrAccountsWrapper` | KitOrAccountsWrapper | -`rawData` | string | - -**Returns:** *Promise‹[IdentityMetadataWrapper](_identity_metadata_.identitymetadatawrapper.md)‹››* - -___ - -### `Static` verifySigner - -▸ **verifySigner**(`contractKitOrAccountsWrapper`: KitOrAccountsWrapper, `hash`: any, `signature`: any, `metadata`: any): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L68)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contractKitOrAccountsWrapper` | KitOrAccountsWrapper | -`hash` | any | -`signature` | any | -`metadata` | any | - -**Returns:** *Promise‹boolean›* - -___ - -### `Static` verifySignerForAddress - -▸ **verifySignerForAddress**(`contractKitOrAccountsWrapper`: KitOrAccountsWrapper, `hash`: any, `signature`: any, `address`: Address): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L82)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contractKitOrAccountsWrapper` | KitOrAccountsWrapper | -`hash` | any | -`signature` | any | -`address` | Address | - -**Returns:** *Promise‹boolean›* diff --git a/packages/docs/sdk/docs/contractkit/classes/_kit_.contractkit.md b/packages/docs/sdk/docs/contractkit/classes/_kit_.contractkit.md deleted file mode 100644 index 1f6d72ea7b8..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_kit_.contractkit.md +++ /dev/null @@ -1,483 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["kit"](../modules/_kit_.md) › [ContractKit](_kit_.contractkit.md) - -# Class: ContractKit - -## Hierarchy - -* **ContractKit** - -## Index - -### Constructors - -* [constructor](_kit_.contractkit.md#constructor) - -### Properties - -* [_web3Contracts](_kit_.contractkit.md#readonly-_web3contracts) -* [celoTokens](_kit_.contractkit.md#readonly-celotokens) -* [connection](_kit_.contractkit.md#readonly-connection) -* [contracts](_kit_.contractkit.md#readonly-contracts) -* [gasPriceSuggestionMultiplier](_kit_.contractkit.md#gaspricesuggestionmultiplier) -* [registry](_kit_.contractkit.md#readonly-registry) - -### Accessors - -* [defaultAccount](_kit_.contractkit.md#defaultaccount) -* [defaultFeeCurrency](_kit_.contractkit.md#defaultfeecurrency) -* [gasInflationFactor](_kit_.contractkit.md#gasinflationfactor) -* [gasPrice](_kit_.contractkit.md#gasprice) -* [web3](_kit_.contractkit.md#web3) - -### Methods - -* [addAccount](_kit_.contractkit.md#addaccount) -* [fillGasPrice](_kit_.contractkit.md#fillgasprice) -* [getEpochNumberOfBlock](_kit_.contractkit.md#getepochnumberofblock) -* [getEpochSize](_kit_.contractkit.md#getepochsize) -* [getFirstBlockNumberForEpoch](_kit_.contractkit.md#getfirstblocknumberforepoch) -* [getHumanReadableNetworkConfig](_kit_.contractkit.md#gethumanreadablenetworkconfig) -* [getLastBlockNumberForEpoch](_kit_.contractkit.md#getlastblocknumberforepoch) -* [getNetworkConfig](_kit_.contractkit.md#getnetworkconfig) -* [getTotalBalance](_kit_.contractkit.md#gettotalbalance) -* [getWallet](_kit_.contractkit.md#getwallet) -* [isListening](_kit_.contractkit.md#islistening) -* [isSyncing](_kit_.contractkit.md#issyncing) -* [sendTransaction](_kit_.contractkit.md#sendtransaction) -* [sendTransactionObject](_kit_.contractkit.md#sendtransactionobject) -* [setFeeCurrency](_kit_.contractkit.md#setfeecurrency) -* [signTypedData](_kit_.contractkit.md#signtypeddata) -* [stop](_kit_.contractkit.md#stop) -* [updateGasPriceInConnectionLayer](_kit_.contractkit.md#updategaspriceinconnectionlayer) - -## Constructors - -### constructor - -\+ **new ContractKit**(`connection`: Connection): *[ContractKit](_kit_.contractkit.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:113](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L113)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | - -**Returns:** *[ContractKit](_kit_.contractkit.md)* - -## Properties - -### `Readonly` _web3Contracts - -• **_web3Contracts**: *[Web3ContractCache](_web3_contract_cache_.web3contractcache.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L106)* - -factory for core contract's native web3 wrappers - -___ - -### `Readonly` celoTokens - -• **celoTokens**: *[CeloTokens](_celo_tokens_.celotokens.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:110](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L110)* - -helper for interacting with CELO & stable tokens - -___ - -### `Readonly` connection - -• **connection**: *Connection* - -*Defined in [packages/sdk/contractkit/src/kit.ts:115](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L115)* - -___ - -### `Readonly` contracts - -• **contracts**: *[WrapperCache](_contract_cache_.wrappercache.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:108](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L108)* - -factory for core contract's kit wrappers - -___ - -### gasPriceSuggestionMultiplier - -• **gasPriceSuggestionMultiplier**: *number* = 5 - -*Defined in [packages/sdk/contractkit/src/kit.ts:113](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L113)* - -**`deprecated`** no longer needed since gasPrice is available on node rpc - -___ - -### `Readonly` registry - -• **registry**: *[AddressRegistry](_address_registry_.addressregistry.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:104](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L104)* - -core contract's address registry - -## Accessors - -### defaultAccount - -• **get defaultAccount**(): *Address | undefined* - -*Defined in [packages/sdk/contractkit/src/kit.ts:249](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L249)* - -**Returns:** *Address | undefined* - -• **set defaultAccount**(`address`: Address | undefined): *void* - -*Defined in [packages/sdk/contractkit/src/kit.ts:245](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L245)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | undefined | - -**Returns:** *void* - -___ - -### defaultFeeCurrency - -• **get defaultFeeCurrency**(): *undefined | string* - -*Defined in [packages/sdk/contractkit/src/kit.ts:273](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L273)* - -**Returns:** *undefined | string* - -• **set defaultFeeCurrency**(`address`: Address | undefined): *void* - -*Defined in [packages/sdk/contractkit/src/kit.ts:269](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L269)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | undefined | - -**Returns:** *void* - -___ - -### gasInflationFactor - -• **get gasInflationFactor**(): *number* - -*Defined in [packages/sdk/contractkit/src/kit.ts:257](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L257)* - -**Returns:** *number* - -• **set gasInflationFactor**(`factor`: number): *void* - -*Defined in [packages/sdk/contractkit/src/kit.ts:253](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L253)* - -**Parameters:** - -Name | Type | ------- | ------ | -`factor` | number | - -**Returns:** *void* - -___ - -### gasPrice - -• **get gasPrice**(): *number* - -*Defined in [packages/sdk/contractkit/src/kit.ts:265](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L265)* - -**Returns:** *number* - -• **set gasPrice**(`price`: number): *void* - -*Defined in [packages/sdk/contractkit/src/kit.ts:261](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L261)* - -**Parameters:** - -Name | Type | ------- | ------ | -`price` | number | - -**Returns:** *void* - -___ - -### web3 - -• **get web3**(): *Web3‹›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:311](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L311)* - -**Returns:** *Web3‹›* - -## Methods - -### addAccount - -▸ **addAccount**(`privateKey`: string): *void* - -*Defined in [packages/sdk/contractkit/src/kit.ts:241](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L241)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | - -**Returns:** *void* - -___ - -### fillGasPrice - -▸ **fillGasPrice**(`tx`: CeloTx): *Promise‹CeloTx›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:285](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L285)* - -**`deprecated`** no longer needed since gasPrice is available on node rpc - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | CeloTx | - -**Returns:** *Promise‹CeloTx›* - -___ - -### getEpochNumberOfBlock - -▸ **getEpochNumberOfBlock**(`blockNumber`: number): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:232](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L232)* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockNumber` | number | - -**Returns:** *Promise‹number›* - -___ - -### getEpochSize - -▸ **getEpochSize**(): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:217](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L217)* - -**Returns:** *Promise‹number›* - -___ - -### getFirstBlockNumberForEpoch - -▸ **getFirstBlockNumberForEpoch**(`epochNumber`: number): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:222](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L222)* - -**Parameters:** - -Name | Type | ------- | ------ | -`epochNumber` | number | - -**Returns:** *Promise‹number›* - -___ - -### getHumanReadableNetworkConfig - -▸ **getHumanReadableNetworkConfig**(): *Promise‹[NetworkConfig](../interfaces/_kit_.networkconfig.md) | Record‹never, unknown››* - -*Defined in [packages/sdk/contractkit/src/kit.ts:192](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L192)* - -**Returns:** *Promise‹[NetworkConfig](../interfaces/_kit_.networkconfig.md) | Record‹never, unknown››* - -___ - -### getLastBlockNumberForEpoch - -▸ **getLastBlockNumberForEpoch**(`epochNumber`: number): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:227](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L227)* - -**Parameters:** - -Name | Type | ------- | ------ | -`epochNumber` | number | - -**Returns:** *Promise‹number›* - -___ - -### getNetworkConfig - -▸ **getNetworkConfig**(`humanReadable`: boolean): *Promise‹[NetworkConfig](../interfaces/_kit_.networkconfig.md) | Record‹[CeloContract](../enums/_base_.celocontract.md) & "exchanges" & "stableTokens", unknown››* - -*Defined in [packages/sdk/contractkit/src/kit.ts:143](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L143)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`humanReadable` | boolean | false | - -**Returns:** *Promise‹[NetworkConfig](../interfaces/_kit_.networkconfig.md) | Record‹[CeloContract](../enums/_base_.celocontract.md) & "exchanges" & "stableTokens", unknown››* - -___ - -### getTotalBalance - -▸ **getTotalBalance**(`address`: string): *Promise‹AccountBalance›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:126](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L126)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹AccountBalance›* - -___ - -### getWallet - -▸ **getWallet**(): *undefined | ReadOnlyWallet* - -*Defined in [packages/sdk/contractkit/src/kit.ts:122](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L122)* - -**Returns:** *undefined | ReadOnlyWallet* - -___ - -### isListening - -▸ **isListening**(): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:277](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L277)* - -**Returns:** *Promise‹boolean›* - -___ - -### isSyncing - -▸ **isSyncing**(): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:281](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L281)* - -**Returns:** *Promise‹boolean›* - -___ - -### sendTransaction - -▸ **sendTransaction**(`tx`: CeloTx): *Promise‹TransactionResult›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:292](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L292)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | CeloTx | - -**Returns:** *Promise‹TransactionResult›* - -___ - -### sendTransactionObject - -▸ **sendTransactionObject**(`txObj`: CeloTxObject‹any›, `tx?`: Omit‹CeloTx, "data"›): *Promise‹TransactionResult›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:296](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L296)* - -**Parameters:** - -Name | Type | ------- | ------ | -`txObj` | CeloTxObject‹any› | -`tx?` | Omit‹CeloTx, "data"› | - -**Returns:** *Promise‹TransactionResult›* - -___ - -### setFeeCurrency - -▸ **setFeeCurrency**(`tokenContract`: [CeloTokenContract](../modules/_base_.md#celotokencontract)): *Promise‹void›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:198](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L198)* - -Set CeloToken to use to pay for gas fees - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tokenContract` | [CeloTokenContract](../modules/_base_.md#celotokencontract) | CELO (GoldToken) or a supported StableToken contract | - -**Returns:** *Promise‹void›* - -___ - -### signTypedData - -▸ **signTypedData**(`signer`: string, `typedData`: EIP712TypedData): *Promise‹Signature›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:303](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L303)* - -**Parameters:** - -Name | Type | ------- | ------ | -`signer` | string | -`typedData` | EIP712TypedData | - -**Returns:** *Promise‹Signature›* - -___ - -### stop - -▸ **stop**(): *void* - -*Defined in [packages/sdk/contractkit/src/kit.ts:307](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L307)* - -**Returns:** *void* - -___ - -### updateGasPriceInConnectionLayer - -▸ **updateGasPriceInConnectionLayer**(`currency`: Address): *Promise‹void›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:210](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L210)* - -**`deprecated`** no longer needed since gasPrice is available on node rpc - -**Parameters:** - -Name | Type | ------- | ------ | -`currency` | Address | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/contractkit/classes/_mini_contract_cache_.minicontractcache.md b/packages/docs/sdk/docs/contractkit/classes/_mini_contract_cache_.minicontractcache.md deleted file mode 100644 index 91e5e3e494d..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_mini_contract_cache_.minicontractcache.md +++ /dev/null @@ -1,177 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["mini-contract-cache"](../modules/_mini_contract_cache_.md) › [MiniContractCache](_mini_contract_cache_.minicontractcache.md) - -# Class: MiniContractCache - -Alternative Contract Cache with Minimal Contracts - -Provides access to a subset of wrappers: [AccountsWrapper](_wrappers_accounts_.accountswrapper.md), [ExchangeWrapper](_wrappers_exchange_.exchangewrapper.md), [GasPriceMinimumWrapper](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md) and Celo Token contracts -Used internally by [MiniContractKit](_mini_kit_.minicontractkit.md) - -**`param`** – {@link Connection} - -**`param`** – [AddressRegistry](_address_registry_.addressregistry.md) - -## Hierarchy - -* **MiniContractCache** - -## Implements - -* [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md) - -## Index - -### Constructors - -* [constructor](_mini_contract_cache_.minicontractcache.md#constructor) - -### Properties - -* [connection](_mini_contract_cache_.minicontractcache.md#readonly-connection) -* [registry](_mini_contract_cache_.minicontractcache.md#readonly-registry) - -### Methods - -* [getAccounts](_mini_contract_cache_.minicontractcache.md#getaccounts) -* [getContract](_mini_contract_cache_.minicontractcache.md#getcontract) -* [getExchange](_mini_contract_cache_.minicontractcache.md#getexchange) -* [getGoldToken](_mini_contract_cache_.minicontractcache.md#getgoldtoken) -* [getStableToken](_mini_contract_cache_.minicontractcache.md#getstabletoken) -* [invalidateContract](_mini_contract_cache_.minicontractcache.md#invalidatecontract) - -## Constructors - -### constructor - -\+ **new MiniContractCache**(`connection`: Connection, `registry`: [AddressRegistry](_address_registry_.addressregistry.md), `contractClasses`: [ContractsBroughtBase](../modules/_mini_contract_cache_.md#contractsbroughtbase)): *[MiniContractCache](_mini_contract_cache_.minicontractcache.md)* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:88](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L88)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`connection` | Connection | - | -`registry` | [AddressRegistry](_address_registry_.addressregistry.md) | - | -`contractClasses` | [ContractsBroughtBase](../modules/_mini_contract_cache_.md#contractsbroughtbase) | MINIMUM_CONTRACTS | - -**Returns:** *[MiniContractCache](_mini_contract_cache_.minicontractcache.md)* - -## Properties - -### `Readonly` connection - -• **connection**: *Connection* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:91](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L91)* - -___ - -### `Readonly` registry - -• **registry**: *[AddressRegistry](_address_registry_.addressregistry.md)* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:92](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L92)* - -## Methods - -### getAccounts - -▸ **getAccounts**(): *Promise‹[AccountsWrapper](_wrappers_accounts_.accountswrapper.md)›* - -*Implementation of [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md)* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L96)* - -**Returns:** *Promise‹[AccountsWrapper](_wrappers_accounts_.accountswrapper.md)›* - -___ - -### getContract - -▸ **getContract**<**ContractKey**>(`contract`: ContractKey, `address?`: undefined | string): *Promise‹Wrappers‹ContractKey››* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:114](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L114)* - -Get Contract wrapper - -**Type parameters:** - -▪ **ContractKey**: *keyof ContractsBroughtBase* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | ContractKey | -`address?` | undefined | string | - -**Returns:** *Promise‹Wrappers‹ContractKey››* - -___ - -### getExchange - -▸ **getExchange**(`stableToken`: [StableToken](../enums/_base_.celocontract.md#stabletoken)): *Promise‹[ExchangeWrapper](_wrappers_exchange_.exchangewrapper.md)›* - -*Implementation of [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md)* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:99](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L99)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`stableToken` | [StableToken](../enums/_base_.celocontract.md#stabletoken) | StableToken.cUSD | - -**Returns:** *Promise‹[ExchangeWrapper](_wrappers_exchange_.exchangewrapper.md)›* - -___ - -### getGoldToken - -▸ **getGoldToken**(): *Promise‹[GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md)›* - -*Implementation of [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md)* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:103](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L103)* - -**Returns:** *Promise‹[GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md)›* - -___ - -### getStableToken - -▸ **getStableToken**(`stableToken`: [StableToken](../enums/_base_.celocontract.md#stabletoken)): *Promise‹[StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md)›* - -*Implementation of [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md)* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:107](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L107)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`stableToken` | [StableToken](../enums/_base_.celocontract.md#stabletoken) | StableToken.cUSD | - -**Returns:** *Promise‹[StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md)›* - -___ - -### invalidateContract - -▸ **invalidateContract**<**C**>(`contract`: C): *void* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:154](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L154)* - -**Type parameters:** - -▪ **C**: *keyof ContractsBroughtBase* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | C | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/contractkit/classes/_mini_kit_.minicontractkit.md b/packages/docs/sdk/docs/contractkit/classes/_mini_kit_.minicontractkit.md deleted file mode 100644 index acdc6ca06d2..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_mini_kit_.minicontractkit.md +++ /dev/null @@ -1,113 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["mini-kit"](../modules/_mini_kit_.md) › [MiniContractKit](_mini_kit_.minicontractkit.md) - -# Class: MiniContractKit - -MiniContractKit provides a core subset of [ContractKit](../modules/_mini_kit_.md#const-contractkit)'s functionality - -**`remarks`** - -It is recommended to use this over ContractKit for dApps as it is lighter - -**`param`** – an instance of @celo/connect {@link Connection} - -## Hierarchy - -* **MiniContractKit** - -## Index - -### Constructors - -* [constructor](_mini_kit_.minicontractkit.md#constructor) - -### Properties - -* [celoTokens](_mini_kit_.minicontractkit.md#readonly-celotokens) -* [connection](_mini_kit_.minicontractkit.md#readonly-connection) -* [contracts](_mini_kit_.minicontractkit.md#readonly-contracts) -* [registry](_mini_kit_.minicontractkit.md#readonly-registry) - -### Methods - -* [getTotalBalance](_mini_kit_.minicontractkit.md#gettotalbalance) -* [getWallet](_mini_kit_.minicontractkit.md#getwallet) - -## Constructors - -### constructor - -\+ **new MiniContractKit**(`connection`: Connection): *[MiniContractKit](_mini_kit_.minicontractkit.md)* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L61)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | - -**Returns:** *[MiniContractKit](_mini_kit_.minicontractkit.md)* - -## Properties - -### `Readonly` celoTokens - -• **celoTokens**: *[CeloTokens](_celo_tokens_.celotokens.md)* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L61)* - -helper for interacting with CELO & stable tokens - -___ - -### `Readonly` connection - -• **connection**: *Connection* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L63)* - -___ - -### `Readonly` contracts - -• **contracts**: *[MiniContractCache](_mini_contract_cache_.minicontractcache.md)* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L59)* - -factory for subset of core contract's kit wrappers - -___ - -### `Readonly` registry - -• **registry**: *[AddressRegistry](_address_registry_.addressregistry.md)* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L57)* - -core contract's address registry - -## Methods - -### getTotalBalance - -▸ **getTotalBalance**(`address`: string): *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹BigNumber››* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L74)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹BigNumber››* - -___ - -### getWallet - -▸ **getWallet**(): *undefined | ReadOnlyWallet* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L69)* - -**Returns:** *undefined | ReadOnlyWallet* diff --git a/packages/docs/sdk/docs/contractkit/classes/_versions_.contractversion.md b/packages/docs/sdk/docs/contractkit/classes/_versions_.contractversion.md deleted file mode 100644 index 6f570b8221a..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_versions_.contractversion.md +++ /dev/null @@ -1,132 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["versions"](../modules/_versions_.md) › [ContractVersion](_versions_.contractversion.md) - -# Class: ContractVersion - -**`internal`** - -## Hierarchy - -* **ContractVersion** - -## Index - -### Constructors - -* [constructor](_versions_.contractversion.md#constructor) - -### Properties - -* [major](_versions_.contractversion.md#readonly-major) -* [minor](_versions_.contractversion.md#readonly-minor) -* [patch](_versions_.contractversion.md#readonly-patch) -* [storage](_versions_.contractversion.md#readonly-storage) - -### Methods - -* [isAtLeast](_versions_.contractversion.md#isatleast) -* [toRaw](_versions_.contractversion.md#toraw) -* [toString](_versions_.contractversion.md#tostring) -* [fromRaw](_versions_.contractversion.md#static-fromraw) - -## Constructors - -### constructor - -\+ **new ContractVersion**(`storage`: number | string, `major`: number | string, `minor`: number | string, `patch`: number | string): *[ContractVersion](_versions_.contractversion.md)* - -*Defined in [packages/sdk/contractkit/src/versions.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L4)* - -**Parameters:** - -Name | Type | ------- | ------ | -`storage` | number | string | -`major` | number | string | -`minor` | number | string | -`patch` | number | string | - -**Returns:** *[ContractVersion](_versions_.contractversion.md)* - -## Properties - -### `Readonly` major - -• **major**: *number | string* - -*Defined in [packages/sdk/contractkit/src/versions.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L7)* - -___ - -### `Readonly` minor - -• **minor**: *number | string* - -*Defined in [packages/sdk/contractkit/src/versions.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L8)* - -___ - -### `Readonly` patch - -• **patch**: *number | string* - -*Defined in [packages/sdk/contractkit/src/versions.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L9)* - -___ - -### `Readonly` storage - -• **storage**: *number | string* - -*Defined in [packages/sdk/contractkit/src/versions.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L6)* - -## Methods - -### isAtLeast - -▸ **isAtLeast**(`other`: [ContractVersion](_versions_.contractversion.md)): *any* - -*Defined in [packages/sdk/contractkit/src/versions.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L12)* - -**Parameters:** - -Name | Type | ------- | ------ | -`other` | [ContractVersion](_versions_.contractversion.md) | - -**Returns:** *any* - -___ - -### toRaw - -▸ **toRaw**(): *string | number[]* - -*Defined in [packages/sdk/contractkit/src/versions.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L14)* - -**Returns:** *string | number[]* - -___ - -### toString - -▸ **toString**(): *string* - -*Defined in [packages/sdk/contractkit/src/versions.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L13)* - -**Returns:** *string* - -___ - -### `Static` fromRaw - -▸ **fromRaw**(`raw`: ReturnType‹ContractVersion["toRaw"]›): *[ContractVersion](_versions_.contractversion.md)‹›* - -*Defined in [packages/sdk/contractkit/src/versions.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L15)* - -**Parameters:** - -Name | Type | ------- | ------ | -`raw` | ReturnType‹ContractVersion["toRaw"]› | - -**Returns:** *[ContractVersion](_versions_.contractversion.md)‹›* diff --git a/packages/docs/sdk/docs/contractkit/classes/_web3_contract_cache_.web3contractcache.md b/packages/docs/sdk/docs/contractkit/classes/_web3_contract_cache_.web3contractcache.md deleted file mode 100644 index ff6717833a5..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_web3_contract_cache_.web3contractcache.md +++ /dev/null @@ -1,431 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["web3-contract-cache"](../modules/_web3_contract_cache_.md) › [Web3ContractCache](_web3_contract_cache_.web3contractcache.md) - -# Class: Web3ContractCache - -Native Web3 contracts factory and cache. - -Exposes accessors to all `CeloContract` web3 contracts. - -Mostly a private cache, kit users would normally use -a contract wrapper - -## Hierarchy - -* **Web3ContractCache** - -## Index - -### Constructors - -* [constructor](_web3_contract_cache_.web3contractcache.md#constructor) - -### Properties - -* [registry](_web3_contract_cache_.web3contractcache.md#readonly-registry) - -### Methods - -* [getAccounts](_web3_contract_cache_.web3contractcache.md#getaccounts) -* [getAttestations](_web3_contract_cache_.web3contractcache.md#getattestations) -* [getBlockchainParameters](_web3_contract_cache_.web3contractcache.md#getblockchainparameters) -* [getContract](_web3_contract_cache_.web3contractcache.md#getcontract) -* [getDoubleSigningSlasher](_web3_contract_cache_.web3contractcache.md#getdoublesigningslasher) -* [getDowntimeSlasher](_web3_contract_cache_.web3contractcache.md#getdowntimeslasher) -* [getElection](_web3_contract_cache_.web3contractcache.md#getelection) -* [getEpochRewards](_web3_contract_cache_.web3contractcache.md#getepochrewards) -* [getErc20](_web3_contract_cache_.web3contractcache.md#geterc20) -* [getEscrow](_web3_contract_cache_.web3contractcache.md#getescrow) -* [getExchange](_web3_contract_cache_.web3contractcache.md#getexchange) -* [getFeeCurrencyWhitelist](_web3_contract_cache_.web3contractcache.md#getfeecurrencywhitelist) -* [getFreezer](_web3_contract_cache_.web3contractcache.md#getfreezer) -* [getGasPriceMinimum](_web3_contract_cache_.web3contractcache.md#getgaspriceminimum) -* [getGoldToken](_web3_contract_cache_.web3contractcache.md#getgoldtoken) -* [getGovernance](_web3_contract_cache_.web3contractcache.md#getgovernance) -* [getGrandaMento](_web3_contract_cache_.web3contractcache.md#getgrandamento) -* [getLockedGold](_web3_contract_cache_.web3contractcache.md#getlockedgold) -* [getMetaTransactionWallet](_web3_contract_cache_.web3contractcache.md#getmetatransactionwallet) -* [getMetaTransactionWalletDeployer](_web3_contract_cache_.web3contractcache.md#getmetatransactionwalletdeployer) -* [getMultiSig](_web3_contract_cache_.web3contractcache.md#getmultisig) -* [getRandom](_web3_contract_cache_.web3contractcache.md#getrandom) -* [getRegistry](_web3_contract_cache_.web3contractcache.md#getregistry) -* [getReserve](_web3_contract_cache_.web3contractcache.md#getreserve) -* [getSortedOracles](_web3_contract_cache_.web3contractcache.md#getsortedoracles) -* [getStableToken](_web3_contract_cache_.web3contractcache.md#getstabletoken) -* [getTransferWhitelist](_web3_contract_cache_.web3contractcache.md#gettransferwhitelist) -* [getValidators](_web3_contract_cache_.web3contractcache.md#getvalidators) -* [invalidateContract](_web3_contract_cache_.web3contractcache.md#invalidatecontract) - -## Constructors - -### constructor - -\+ **new Web3ContractCache**(`registry`: [AddressRegistry](_address_registry_.addressregistry.md)): *[Web3ContractCache](_web3_contract_cache_.web3contractcache.md)* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L96)* - -core contract's address registry - -**Parameters:** - -Name | Type | ------- | ------ | -`registry` | [AddressRegistry](_address_registry_.addressregistry.md) | - -**Returns:** *[Web3ContractCache](_web3_contract_cache_.web3contractcache.md)* - -## Properties - -### `Readonly` registry - -• **registry**: *[AddressRegistry](_address_registry_.addressregistry.md)* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:98](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L98)* - -## Methods - -### getAccounts - -▸ **getAccounts**(): *Promise‹Accounts‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:99](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L99)* - -**Returns:** *Promise‹Accounts‹››* - -___ - -### getAttestations - -▸ **getAttestations**(): *Promise‹Attestations‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:102](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L102)* - -**Returns:** *Promise‹Attestations‹››* - -___ - -### getBlockchainParameters - -▸ **getBlockchainParameters**(): *Promise‹BlockchainParameters‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L105)* - -**Returns:** *Promise‹BlockchainParameters‹››* - -___ - -### getContract - -▸ **getContract**<**C**>(`contract`: C, `address?`: undefined | string): *Promise‹NonNullable‹ContractCacheMap[C]››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:184](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L184)* - -Get native web3 contract wrapper - -**Type parameters:** - -▪ **C**: *keyof typeof ContractFactories* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | C | -`address?` | undefined | string | - -**Returns:** *Promise‹NonNullable‹ContractCacheMap[C]››* - -___ - -### getDoubleSigningSlasher - -▸ **getDoubleSigningSlasher**(): *Promise‹DoubleSigningSlasher‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:108](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L108)* - -**Returns:** *Promise‹DoubleSigningSlasher‹››* - -___ - -### getDowntimeSlasher - -▸ **getDowntimeSlasher**(): *Promise‹DowntimeSlasher‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:111](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L111)* - -**Returns:** *Promise‹DowntimeSlasher‹››* - -___ - -### getElection - -▸ **getElection**(): *Promise‹Election‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:114](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L114)* - -**Returns:** *Promise‹Election‹››* - -___ - -### getEpochRewards - -▸ **getEpochRewards**(): *Promise‹EpochRewards‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:117](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L117)* - -**Returns:** *Promise‹EpochRewards‹››* - -___ - -### getErc20 - -▸ **getErc20**(`address`: string): *Promise‹Ierc20‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L120)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹Ierc20‹››* - -___ - -### getEscrow - -▸ **getEscrow**(): *Promise‹Escrow‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L123)* - -**Returns:** *Promise‹Escrow‹››* - -___ - -### getExchange - -▸ **getExchange**(`stableToken`: [StableToken](../enums/_base_.celocontract.md#stabletoken)): *Promise‹Registry‹› | Accounts‹› | Exchange‹› | Ierc20‹› | GoldToken‹› | StableToken‹› | Attestations‹› | BlockchainParameters‹› | DoubleSigningSlasher‹› | DowntimeSlasher‹› | Election‹› | EpochRewards‹› | Escrow‹› | ExchangeEur‹› | ExchangeBrl‹› | FeeCurrencyWhitelist‹› | Freezer‹› | GasPriceMinimum‹› | Governance‹› | GrandaMento‹› | LockedGold‹› | MetaTransactionWallet‹› | MetaTransactionWalletDeployer‹› | MultiSig‹› | Random‹› | Reserve‹› | SortedOracles‹› | TransferWhitelist‹› | Validators‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:126](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L126)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`stableToken` | [StableToken](../enums/_base_.celocontract.md#stabletoken) | StableToken.cUSD | - -**Returns:** *Promise‹Registry‹› | Accounts‹› | Exchange‹› | Ierc20‹› | GoldToken‹› | StableToken‹› | Attestations‹› | BlockchainParameters‹› | DoubleSigningSlasher‹› | DowntimeSlasher‹› | Election‹› | EpochRewards‹› | Escrow‹› | ExchangeEur‹› | ExchangeBrl‹› | FeeCurrencyWhitelist‹› | Freezer‹› | GasPriceMinimum‹› | Governance‹› | GrandaMento‹› | LockedGold‹› | MetaTransactionWallet‹› | MetaTransactionWalletDeployer‹› | MultiSig‹› | Random‹› | Reserve‹› | SortedOracles‹› | TransferWhitelist‹› | Validators‹››* - -___ - -### getFeeCurrencyWhitelist - -▸ **getFeeCurrencyWhitelist**(): *Promise‹FeeCurrencyWhitelist‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:129](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L129)* - -**Returns:** *Promise‹FeeCurrencyWhitelist‹››* - -___ - -### getFreezer - -▸ **getFreezer**(): *Promise‹Freezer‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L132)* - -**Returns:** *Promise‹Freezer‹››* - -___ - -### getGasPriceMinimum - -▸ **getGasPriceMinimum**(): *Promise‹GasPriceMinimum‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:135](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L135)* - -**Returns:** *Promise‹GasPriceMinimum‹››* - -___ - -### getGoldToken - -▸ **getGoldToken**(): *Promise‹GoldToken‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:138](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L138)* - -**Returns:** *Promise‹GoldToken‹››* - -___ - -### getGovernance - -▸ **getGovernance**(): *Promise‹Governance‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:141](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L141)* - -**Returns:** *Promise‹Governance‹››* - -___ - -### getGrandaMento - -▸ **getGrandaMento**(): *Promise‹GrandaMento‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:144](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L144)* - -**Returns:** *Promise‹GrandaMento‹››* - -___ - -### getLockedGold - -▸ **getLockedGold**(): *Promise‹LockedGold‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:147](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L147)* - -**Returns:** *Promise‹LockedGold‹››* - -___ - -### getMetaTransactionWallet - -▸ **getMetaTransactionWallet**(`address`: string): *Promise‹MetaTransactionWallet‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:150](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L150)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹MetaTransactionWallet‹››* - -___ - -### getMetaTransactionWalletDeployer - -▸ **getMetaTransactionWalletDeployer**(`address`: string): *Promise‹MetaTransactionWalletDeployer‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:153](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L153)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹MetaTransactionWalletDeployer‹››* - -___ - -### getMultiSig - -▸ **getMultiSig**(`address`: string): *Promise‹MultiSig‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:156](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L156)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹MultiSig‹››* - -___ - -### getRandom - -▸ **getRandom**(): *Promise‹Random‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:159](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L159)* - -**Returns:** *Promise‹Random‹››* - -___ - -### getRegistry - -▸ **getRegistry**(): *Promise‹Registry‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:162](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L162)* - -**Returns:** *Promise‹Registry‹››* - -___ - -### getReserve - -▸ **getReserve**(): *Promise‹Reserve‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:165](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L165)* - -**Returns:** *Promise‹Reserve‹››* - -___ - -### getSortedOracles - -▸ **getSortedOracles**(): *Promise‹SortedOracles‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:168](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L168)* - -**Returns:** *Promise‹SortedOracles‹››* - -___ - -### getStableToken - -▸ **getStableToken**(`stableToken`: [StableToken](../enums/_base_.celocontract.md#stabletoken)): *Promise‹Registry‹› | Accounts‹› | Exchange‹› | Ierc20‹› | GoldToken‹› | StableToken‹› | Attestations‹› | BlockchainParameters‹› | DoubleSigningSlasher‹› | DowntimeSlasher‹› | Election‹› | EpochRewards‹› | Escrow‹› | ExchangeEur‹› | ExchangeBrl‹› | FeeCurrencyWhitelist‹› | Freezer‹› | GasPriceMinimum‹› | Governance‹› | GrandaMento‹› | LockedGold‹› | MetaTransactionWallet‹› | MetaTransactionWalletDeployer‹› | MultiSig‹› | Random‹› | Reserve‹› | SortedOracles‹› | TransferWhitelist‹› | Validators‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:171](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L171)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`stableToken` | [StableToken](../enums/_base_.celocontract.md#stabletoken) | StableToken.cUSD | - -**Returns:** *Promise‹Registry‹› | Accounts‹› | Exchange‹› | Ierc20‹› | GoldToken‹› | StableToken‹› | Attestations‹› | BlockchainParameters‹› | DoubleSigningSlasher‹› | DowntimeSlasher‹› | Election‹› | EpochRewards‹› | Escrow‹› | ExchangeEur‹› | ExchangeBrl‹› | FeeCurrencyWhitelist‹› | Freezer‹› | GasPriceMinimum‹› | Governance‹› | GrandaMento‹› | LockedGold‹› | MetaTransactionWallet‹› | MetaTransactionWalletDeployer‹› | MultiSig‹› | Random‹› | Reserve‹› | SortedOracles‹› | TransferWhitelist‹› | Validators‹››* - -___ - -### getTransferWhitelist - -▸ **getTransferWhitelist**(): *Promise‹TransferWhitelist‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:174](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L174)* - -**Returns:** *Promise‹TransferWhitelist‹››* - -___ - -### getValidators - -▸ **getValidators**(): *Promise‹Validators‹››* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:177](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L177)* - -**Returns:** *Promise‹Validators‹››* - -___ - -### invalidateContract - -▸ **invalidateContract**<**C**>(`contract`: C): *void* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:201](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L201)* - -**Type parameters:** - -▪ **C**: *keyof typeof ContractFactories* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | C | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_accounts_.accountswrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_accounts_.accountswrapper.md deleted file mode 100644 index cb14b4f9354..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_accounts_.accountswrapper.md +++ /dev/null @@ -1,861 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Accounts"](../modules/_wrappers_accounts_.md) › [AccountsWrapper](_wrappers_accounts_.accountswrapper.md) - -# Class: AccountsWrapper - -Contract for handling deposits needed for voting. - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹Accounts› - - ↳ **AccountsWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_accounts_.accountswrapper.md#constructor) - -### Properties - -* [createAccount](_wrappers_accounts_.accountswrapper.md#createaccount) -* [eventTypes](_wrappers_accounts_.accountswrapper.md#eventtypes) -* [events](_wrappers_accounts_.accountswrapper.md#events) -* [getAttestationSigner](_wrappers_accounts_.accountswrapper.md#getattestationsigner) -* [getDataEncryptionKey](_wrappers_accounts_.accountswrapper.md#getdataencryptionkey) -* [getMetadataURL](_wrappers_accounts_.accountswrapper.md#getmetadataurl) -* [getValidatorSigner](_wrappers_accounts_.accountswrapper.md#getvalidatorsigner) -* [getVoteSigner](_wrappers_accounts_.accountswrapper.md#getvotesigner) -* [getWalletAddress](_wrappers_accounts_.accountswrapper.md#getwalletaddress) -* [hasAuthorizedAttestationSigner](_wrappers_accounts_.accountswrapper.md#hasauthorizedattestationsigner) -* [isAccount](_wrappers_accounts_.accountswrapper.md#isaccount) -* [isSigner](_wrappers_accounts_.accountswrapper.md#issigner) -* [methodIds](_wrappers_accounts_.accountswrapper.md#methodids) -* [setAccountDataEncryptionKey](_wrappers_accounts_.accountswrapper.md#setaccountdataencryptionkey) -* [setMetadataURL](_wrappers_accounts_.accountswrapper.md#setmetadataurl) -* [setName](_wrappers_accounts_.accountswrapper.md#setname) -* [signerToAccount](_wrappers_accounts_.accountswrapper.md#signertoaccount) -* [validatorSignerToAccount](_wrappers_accounts_.accountswrapper.md#validatorsignertoaccount) -* [voteSignerToAccount](_wrappers_accounts_.accountswrapper.md#votesignertoaccount) - -### Accessors - -* [address](_wrappers_accounts_.accountswrapper.md#address) - -### Methods - -* [authorizeAttestationSigner](_wrappers_accounts_.accountswrapper.md#authorizeattestationsigner) -* [authorizeSigner](_wrappers_accounts_.accountswrapper.md#authorizesigner) -* [authorizeValidatorSigner](_wrappers_accounts_.accountswrapper.md#authorizevalidatorsigner) -* [authorizeValidatorSignerAndBls](_wrappers_accounts_.accountswrapper.md#authorizevalidatorsignerandbls) -* [authorizeVoteSigner](_wrappers_accounts_.accountswrapper.md#authorizevotesigner) -* [completeSignerAuthorization](_wrappers_accounts_.accountswrapper.md#completesignerauthorization) -* [generateProofOfKeyPossession](_wrappers_accounts_.accountswrapper.md#generateproofofkeypossession) -* [generateProofOfKeyPossessionLocally](_wrappers_accounts_.accountswrapper.md#generateproofofkeypossessionlocally) -* [getAccountSummary](_wrappers_accounts_.accountswrapper.md#getaccountsummary) -* [getCurrentSigners](_wrappers_accounts_.accountswrapper.md#getcurrentsigners) -* [getName](_wrappers_accounts_.accountswrapper.md#getname) -* [getPastEvents](_wrappers_accounts_.accountswrapper.md#getpastevents) -* [parseSignatureOfAddress](_wrappers_accounts_.accountswrapper.md#parsesignatureofaddress) -* [setAccount](_wrappers_accounts_.accountswrapper.md#setaccount) -* [setWalletAddress](_wrappers_accounts_.accountswrapper.md#setwalletaddress) -* [startSignerAuthorization](_wrappers_accounts_.accountswrapper.md#startsignerauthorization) -* [version](_wrappers_accounts_.accountswrapper.md#version) - -## Constructors - -### constructor - -\+ **new AccountsWrapper**(`connection`: Connection, `contract`: Accounts): *[AccountsWrapper](_wrappers_accounts_.accountswrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | Accounts | - -**Returns:** *[AccountsWrapper](_wrappers_accounts_.accountswrapper.md)* - -## Properties - -### createAccount - -• **createAccount**: *function* = proxySend(this.connection, this.contract.methods.createAccount) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L43)* - -Creates an account. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *Accounts["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getAttestationSigner - -• **getAttestationSigner**: *function* = proxyCall( - this.contract.methods.getAttestationSigner - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L50)* - -Returns the attestation signer for the specified account. - -**`param`** The address of the account. - -**`returns`** The address with which the account can vote. - -#### Type declaration: - -▸ (`account`: string): *Promise‹Address›* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | - -___ - -### getDataEncryptionKey - -• **getDataEncryptionKey**: *function* = proxyCall(this.contract.methods.getDataEncryptionKey, undefined, (res) => - solidityBytesToString(res) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:353](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L353)* - -Returns the set data encryption key for the account - -**`param`** Account - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getMetadataURL - -• **getMetadataURL**: *function* = proxyCall(this.contract.methods.getMetadataURL) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:367](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L367)* - -Returns the metadataURL for the account - -**`param`** Account - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getValidatorSigner - -• **getValidatorSigner**: *function* = proxyCall( - this.contract.methods.getValidatorSigner - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:76](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L76)* - -Returns the validator signer for the specified account. - -**`param`** The address of the account. - -**`returns`** The address with which the account can register a validator or group. - -#### Type declaration: - -▸ (`account`: string): *Promise‹Address›* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | - -___ - -### getVoteSigner - -• **getVoteSigner**: *function* = proxyCall( - this.contract.methods.getVoteSigner - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L68)* - -Returns the vote signer for the specified account. - -**`param`** The address of the account. - -**`returns`** The address with which the account can vote. - -#### Type declaration: - -▸ (`account`: string): *Promise‹Address›* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | - -___ - -### getWalletAddress - -• **getWalletAddress**: *function* = proxyCall(this.contract.methods.getWalletAddress) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:361](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L361)* - -Returns the set wallet address for the account - -**`param`** Account - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### hasAuthorizedAttestationSigner - -• **hasAuthorizedAttestationSigner**: *function* = proxyCall( - this.contract.methods.hasAuthorizedAttestationSigner - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L59)* - -Returns if the account has authorized an attestation signer - -**`param`** The address of the account. - -**`returns`** If the account has authorized an attestation signer - -#### Type declaration: - -▸ (`account`: string): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | - -___ - -### isAccount - -• **isAccount**: *function* = proxyCall(this.contract.methods.isAccount) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:113](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L113)* - -Check if an account already exists. - -**`param`** The address of the account - -**`returns`** Returns `true` if account exists. Returns `false` otherwise. - -#### Type declaration: - -▸ (`account`: string): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | - -___ - -### isSigner - -• **isSigner**: *function* = proxyCall( - this.contract.methods.isAuthorizedSigner - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L120)* - -Check if an address is a signer address - -**`param`** The address of the account - -**`returns`** Returns `true` if account exists. Returns `false` otherwise. - -#### Type declaration: - -▸ (`address`: string): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### setAccountDataEncryptionKey - -• **setAccountDataEncryptionKey**: *function* = proxySend( - this.connection, - this.contract.methods.setAccountDataEncryptionKey - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:373](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L373)* - -Sets the data encryption of the account - -**`param`** The key to set - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setMetadataURL - -• **setMetadataURL**: *function* = proxySend(this.connection, this.contract.methods.setMetadataURL) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:430](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L430)* - -Sets the metadataURL for the account - -**`param`** The url to set - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setName - -• **setName**: *function* = proxySend(this.connection, this.contract.methods.setName) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:424](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L424)* - -Sets the name for the account - -**`param`** The name to set - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### signerToAccount - -• **signerToAccount**: *function* = proxyCall( - this.contract.methods.signerToAccount - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:104](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L104)* - -Returns the account associated with `signer`. - -**`param`** The address of the account or previously authorized signer. - -**`dev`** Fails if the `signer` is not an account or previously authorized signer. - -**`returns`** The associated account. - -#### Type declaration: - -▸ (`signer`: Address): *Promise‹Address›* - -**Parameters:** - -Name | Type | ------- | ------ | -`signer` | Address | - -___ - -### validatorSignerToAccount - -• **validatorSignerToAccount**: *function* = proxyCall( - this.contract.methods.validatorSignerToAccount - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:94](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L94)* - -Returns the account address given the signer for validating - -**`param`** Address that is authorized to sign the tx as validator - -**`returns`** The Account address - -#### Type declaration: - -▸ (`signer`: Address): *Promise‹Address›* - -**Parameters:** - -Name | Type | ------- | ------ | -`signer` | Address | - -___ - -### voteSignerToAccount - -• **voteSignerToAccount**: *function* = proxyCall( - this.contract.methods.voteSignerToAccount - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:85](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L85)* - -Returns the account address given the signer for voting - -**`param`** Address that is authorized to sign the tx as voter - -**`returns`** The Account address - -#### Type declaration: - -▸ (`signer`: Address): *Promise‹Address›* - -**Parameters:** - -Name | Type | ------- | ------ | -`signer` | Address | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### authorizeAttestationSigner - -▸ **authorizeAttestationSigner**(`signer`: Address, `proofOfSigningKeyPossession`: Signature): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:162](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L162)* - -Authorize an attestation signing key on behalf of this account to another address. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`signer` | Address | The address of the signing key to authorize. | -`proofOfSigningKeyPossession` | Signature | The account address signed by the signer address. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -A CeloTransactionObject - -___ - -### authorizeSigner - -▸ **authorizeSigner**(`signer`: Address, `role`: string): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:286](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L286)* - -**Parameters:** - -Name | Type | ------- | ------ | -`signer` | Address | -`role` | string | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### authorizeValidatorSigner - -▸ **authorizeValidatorSigner**(`signer`: Address, `proofOfSigningKeyPossession`: Signature, `validatorsWrapper`: object): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:203](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L203)* - -Authorizes an address to sign consensus messages on behalf of the account. - -**Parameters:** - -▪ **signer**: *Address* - -The address of the signing key to authorize. - -▪ **proofOfSigningKeyPossession**: *Signature* - -The account address signed by the signer address. - -▪ **validatorsWrapper**: *object* - -Name | Type | ------- | ------ | -`isValidator` | function | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -A CeloTransactionObject - -___ - -### authorizeValidatorSignerAndBls - -▸ **authorizeValidatorSignerAndBls**(`signer`: Address, `proofOfSigningKeyPossession`: Signature, `blsPublicKey`: string, `blsPop`: string): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:254](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L254)* - -Authorizes an address to sign consensus messages on behalf of the account. Also switch BLS key at the same time. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`signer` | Address | The address of the signing key to authorize. | -`proofOfSigningKeyPossession` | Signature | The account address signed by the signer address. | -`blsPublicKey` | string | The BLS public key that the validator is using for consensus, should pass proof of possession. 48 bytes. | -`blsPop` | string | The BLS public key proof-of-possession, which consists of a signature on the account address. 96 bytes. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -A CeloTransactionObject - -___ - -### authorizeVoteSigner - -▸ **authorizeVoteSigner**(`signer`: Address, `proofOfSigningKeyPossession`: Signature): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:182](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L182)* - -Authorizes an address to sign votes on behalf of the account. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`signer` | Address | The address of the vote signing key to authorize. | -`proofOfSigningKeyPossession` | Signature | The account address signed by the signer address. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -A CeloTransactionObject - -___ - -### completeSignerAuthorization - -▸ **completeSignerAuthorization**(`account`: Address, `role`: string): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:319](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L319)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`role` | string | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### generateProofOfKeyPossession - -▸ **generateProofOfKeyPossession**(`account`: Address, `signer`: Address): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:327](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L327)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`signer` | Address | - -**Returns:** *Promise‹object›* - -___ - -### generateProofOfKeyPossessionLocally - -▸ **generateProofOfKeyPossessionLocally**(`account`: Address, `signer`: Address, `privateKey`: string): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:335](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L335)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`signer` | Address | -`privateKey` | string | - -**Returns:** *Promise‹object›* - -___ - -### getAccountSummary - -▸ **getAccountSummary**(`account`: string): *Promise‹AccountSummary›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L132)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | - -**Returns:** *Promise‹AccountSummary›* - -___ - -### getCurrentSigners - -▸ **getCurrentSigners**(`address`: string): *Promise‹string[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:124](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L124)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹string[]›* - -___ - -### getName - -▸ **getName**(`account`: Address, `blockNumber?`: undefined | number): *Promise‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:344](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L344)* - -Returns the set name for the account - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | Address | Account | -`blockNumber?` | undefined | number | Height of result, defaults to tip. | - -**Returns:** *Promise‹string›* - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹Accounts›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹Accounts› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### parseSignatureOfAddress - -▸ **parseSignatureOfAddress**(`address`: Address, `signer`: string, `signature`: string): *object* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:458](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L458)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`signer` | string | -`signature` | string | - -**Returns:** *object* - -* **r**: *string* - -* **s**: *string* - -* **v**: *number* - -___ - -### setAccount - -▸ **setAccount**(`name`: string, `dataEncryptionKey`: string, `walletAddress`: Address, `proofOfPossession`: Signature | null): *CeloTransactionObject‹void›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:385](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L385)* - -Convenience Setter for the dataEncryptionKey and wallet address for an account - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`name` | string | - | A string to set as the name of the account | -`dataEncryptionKey` | string | - | secp256k1 public key for data encryption. Preferably compressed. | -`walletAddress` | Address | - | The wallet address to set for the account | -`proofOfPossession` | Signature | null | null | Signature from the wallet address key over the sender's address | - -**Returns:** *CeloTransactionObject‹void›* - -___ - -### setWalletAddress - -▸ **setWalletAddress**(`walletAddress`: Address, `proofOfPossession`: Signature | null): *CeloTransactionObject‹void›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:436](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L436)* - -Sets the wallet address for the account - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`walletAddress` | Address | - | -`proofOfPossession` | Signature | null | null | - -**Returns:** *CeloTransactionObject‹void›* - -___ - -### startSignerAuthorization - -▸ **startSignerAuthorization**(`signer`: Address, `role`: string): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:311](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L311)* - -**Parameters:** - -Name | Type | ------- | ------ | -`signer` | Address | -`role` | string | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_attestations_.attestationswrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_attestations_.attestationswrapper.md deleted file mode 100644 index 98437209782..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_attestations_.attestationswrapper.md +++ /dev/null @@ -1,882 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [AttestationsWrapper](_wrappers_attestations_.attestationswrapper.md) - -# Class: AttestationsWrapper - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹Attestations› - - ↳ **AttestationsWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_attestations_.attestationswrapper.md#constructor) - -### Properties - -* [approveTransfer](_wrappers_attestations_.attestationswrapper.md#approvetransfer) -* [attestationExpiryBlocks](_wrappers_attestations_.attestationswrapper.md#attestationexpiryblocks) -* [attestationRequestFees](_wrappers_attestations_.attestationswrapper.md#attestationrequestfees) -* [eventTypes](_wrappers_attestations_.attestationswrapper.md#eventtypes) -* [events](_wrappers_attestations_.attestationswrapper.md#events) -* [getAttestationIssuers](_wrappers_attestations_.attestationswrapper.md#getattestationissuers) -* [getAttestationStat](_wrappers_attestations_.attestationswrapper.md#getattestationstat) -* [getAttestationState](_wrappers_attestations_.attestationswrapper.md#getattestationstate) -* [getPendingWithdrawals](_wrappers_attestations_.attestationswrapper.md#getpendingwithdrawals) -* [getUnselectedRequest](_wrappers_attestations_.attestationswrapper.md#getunselectedrequest) -* [lookupAccountsForIdentifier](_wrappers_attestations_.attestationswrapper.md#lookupaccountsforidentifier) -* [methodIds](_wrappers_attestations_.attestationswrapper.md#methodids) -* [selectIssuersWaitBlocks](_wrappers_attestations_.attestationswrapper.md#selectissuerswaitblocks) -* [withdraw](_wrappers_attestations_.attestationswrapper.md#withdraw) - -### Accessors - -* [address](_wrappers_attestations_.attestationswrapper.md#address) - -### Methods - -* [approveAttestationFee](_wrappers_attestations_.attestationswrapper.md#approveattestationfee) -* [complete](_wrappers_attestations_.attestationswrapper.md#complete) -* [findMatchingIssuer](_wrappers_attestations_.attestationswrapper.md#findmatchingissuer) -* [getActionableAttestations](_wrappers_attestations_.attestationswrapper.md#getactionableattestations) -* [getAttestationFeeRequired](_wrappers_attestations_.attestationswrapper.md#getattestationfeerequired) -* [getAttestationForSecurityCode](_wrappers_attestations_.attestationswrapper.md#getattestationforsecuritycode) -* [getAttestationServiceStatus](_wrappers_attestations_.attestationswrapper.md#getattestationservicestatus) -* [getConfig](_wrappers_attestations_.attestationswrapper.md#getconfig) -* [getHumanReadableConfig](_wrappers_attestations_.attestationswrapper.md#gethumanreadableconfig) -* [getNonCompliantIssuers](_wrappers_attestations_.attestationswrapper.md#getnoncompliantissuers) -* [getPastEvents](_wrappers_attestations_.attestationswrapper.md#getpastevents) -* [getRevealStatus](_wrappers_attestations_.attestationswrapper.md#getrevealstatus) -* [getVerifiedStatus](_wrappers_attestations_.attestationswrapper.md#getverifiedstatus) -* [isAttestationExpired](_wrappers_attestations_.attestationswrapper.md#isattestationexpired) -* [lookupIdentifiers](_wrappers_attestations_.attestationswrapper.md#lookupidentifiers) -* [request](_wrappers_attestations_.attestationswrapper.md#request) -* [revealPhoneNumberToIssuer](_wrappers_attestations_.attestationswrapper.md#revealphonenumbertoissuer) -* [revoke](_wrappers_attestations_.attestationswrapper.md#revoke) -* [selectIssuers](_wrappers_attestations_.attestationswrapper.md#selectissuers) -* [selectIssuersAfterWait](_wrappers_attestations_.attestationswrapper.md#selectissuersafterwait) -* [validateAttestationCode](_wrappers_attestations_.attestationswrapper.md#validateattestationcode) -* [version](_wrappers_attestations_.attestationswrapper.md#version) -* [waitForSelectingIssuers](_wrappers_attestations_.attestationswrapper.md#waitforselectingissuers) - -## Constructors - -### constructor - -\+ **new AttestationsWrapper**(`connection`: Connection, `contract`: Attestations, `contracts`: ContractsForAttestation): *[AttestationsWrapper](_wrappers_attestations_.attestationswrapper.md)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:130](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L130)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | Attestations | -`contracts` | ContractsForAttestation | - -**Returns:** *[AttestationsWrapper](_wrappers_attestations_.attestationswrapper.md)* - -## Properties - -### approveTransfer - -• **approveTransfer**: *function* = proxySend(this.connection, this.contract.methods.approveTransfer) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:572](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L572)* - -Updates sender's approval status on whether to allow an attestation identifier -mapping to be transfered from one address to another. - -**`param`** The identifier for this attestation. - -**`param`** The index of the account in the accounts array. - -**`param`** The current attestation address to which the identifier is mapped. - -**`param`** The new address to map to identifier. - -**`param`** The approval status - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### attestationExpiryBlocks - -• **attestationExpiryBlocks**: *function* = proxyCall( - this.contract.methods.attestationExpiryBlocks, - undefined, - valueToInt - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:142](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L142)* - - Returns the time an attestation can be completable before it is considered expired - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### attestationRequestFees - -• **attestationRequestFees**: *function* = proxyCall( - this.contract.methods.attestationRequestFees, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:153](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L153)* - -Returns the attestation request fee in a given currency. - -**`param`** Token address. - -**`returns`** The fee as big number. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *Attestations["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getAttestationIssuers - -• **getAttestationIssuers**: *function* = proxyCall(this.contract.methods.getAttestationIssuers) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:226](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L226)* - -Returns the issuers of attestations for a phoneNumber/account combo - -**`param`** Attestation identifier (e.g. phone hash) - -**`param`** Address of the account - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getAttestationStat - -• **getAttestationStat**: *function* = proxyCall( - this.contract.methods.getAttestationStats, - undefined, - (stat) => ({ completed: valueToInt(stat[0]), total: valueToInt(stat[1]) }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:248](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L248)* - -Returns the attestation stats of a identifer/account pair - -**`param`** Attestation identifier (e.g. phone hash) - -**`param`** Address of the account - -#### Type declaration: - -▸ (`identifier`: string, `account`: Address): *Promise‹[AttestationStat](../interfaces/_wrappers_attestations_.attestationstat.md)›* - -**Parameters:** - -Name | Type | ------- | ------ | -`identifier` | string | -`account` | Address | - -___ - -### getAttestationState - -• **getAttestationState**: *function* = proxyCall( - this.contract.methods.getAttestationState, - undefined, - (state) => ({ attestationState: valueToInt(state[0]) }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:233](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L233)* - -Returns the attestation state of a phone number/account/issuer tuple - -**`param`** Attestation identifier (e.g. phone hash) - -**`param`** Address of the account - -#### Type declaration: - -▸ (`identifier`: string, `account`: Address, `issuer`: Address): *Promise‹[AttestationStateForIssuer](../interfaces/_wrappers_attestations_.attestationstateforissuer.md)›* - -**Parameters:** - -Name | Type | ------- | ------ | -`identifier` | string | -`account` | Address | -`issuer` | Address | - -___ - -### getPendingWithdrawals - -• **getPendingWithdrawals**: *function* = proxyCall( - this.contract.methods.pendingWithdrawals, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:428](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L428)* - -Returns the attestation signer for the specified account. - -**`param`** The address of token rewards are accumulated in. - -**`param`** The address of the account. - -**`returns`** The reward amount. - -#### Type declaration: - -▸ (`token`: string, `account`: string): *Promise‹BigNumber›* - -**Parameters:** - -Name | Type | ------- | ------ | -`token` | string | -`account` | string | - -___ - -### getUnselectedRequest - -• **getUnselectedRequest**: *function* = proxyCall( - this.contract.methods.getUnselectedRequest, - undefined, - (res) => ({ - blockNumber: valueToInt(res[0]), - attestationsRequested: valueToInt(res[1]), - attestationRequestFeeToken: res[2], - }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:170](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L170)* - -**`notice`** Returns the unselected attestation request for an identifier/account pair, if any. - -**`param`** Attestation identifier (e.g. phone hash) - -**`param`** Address of the account - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### lookupAccountsForIdentifier - -• **lookupAccountsForIdentifier**: *function* = proxyCall(this.contract.methods.lookupAccountsForIdentifier) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:507](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L507)* - -Returns the list of accounts associated with an identifier. - -**`param`** Attestation identifier (e.g. phone hash) - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### selectIssuersWaitBlocks - -• **selectIssuersWaitBlocks**: *function* = proxyCall( - this.contract.methods.selectIssuersWaitBlocks, - undefined, - valueToInt - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:159](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L159)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### withdraw - -• **withdraw**: *function* = proxySend(this.connection, this.contract.methods.withdraw) - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:438](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L438)* - -Allows issuers to withdraw accumulated attestation rewards - -**`param`** The address of the token that will be withdrawn - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### approveAttestationFee - -▸ **approveAttestationFee**(`attestationsRequested`: number): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:297](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L297)* - -Approves the necessary amount of StableToken to request Attestations - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`attestationsRequested` | number | The number of attestations to request | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### complete - -▸ **complete**(`identifier`: string, `account`: Address, `issuer`: Address, `code`: string): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:407](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L407)* - -Completes an attestation with the corresponding code - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`identifier` | string | Attestation identifier (e.g. phone hash) | -`account` | Address | Address of the account | -`issuer` | Address | The issuer of the attestation | -`code` | string | The code received by the validator | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### findMatchingIssuer - -▸ **findMatchingIssuer**(`identifier`: string, `account`: Address, `code`: string, `issuers`: string[]): *Promise‹string | null›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:447](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L447)* - -Given a list of issuers, finds the matching issuer for a given code - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`identifier` | string | Attestation identifier (e.g. phone hash) | -`account` | Address | Address of the account | -`code` | string | The code received by the validator | -`issuers` | string[] | The list of potential issuers | - -**Returns:** *Promise‹string | null›* - -___ - -### getActionableAttestations - -▸ **getActionableAttestations**(`identifier`: string, `account`: Address, `tries`: number): *Promise‹[ActionableAttestation](../interfaces/_wrappers_attestations_.actionableattestation.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:309](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L309)* - -Returns an array of attestations that can be completed, along with the issuers' attestation -service urls - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`identifier` | string | - | Attestation identifier (e.g. phone hash) | -`account` | Address | - | Address of the account | -`tries` | number | 3 | - | - -**Returns:** *Promise‹[ActionableAttestation](../interfaces/_wrappers_attestations_.actionableattestation.md)[]›* - -___ - -### getAttestationFeeRequired - -▸ **getAttestationFeeRequired**(`attestationsRequested`: number): *Promise‹BigNumber‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:285](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L285)* - -Calculates the amount of StableToken required to request Attestations - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`attestationsRequested` | number | The number of attestations to request | - -**Returns:** *Promise‹BigNumber‹››* - -___ - -### getAttestationForSecurityCode - -▸ **getAttestationForSecurityCode**(`serviceURL`: string, `requestBody`: GetAttestationRequest, `signer`: Address): *Promise‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:644](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L644)* - -Returns attestation code for provided security code from validator's attestation service - -**Parameters:** - -Name | Type | ------- | ------ | -`serviceURL` | string | -`requestBody` | GetAttestationRequest | -`signer` | Address | - -**Returns:** *Promise‹string›* - -___ - -### getAttestationServiceStatus - -▸ **getAttestationServiceStatus**(`validator`: [Validator](../interfaces/_wrappers_validators_.validator.md)): *Promise‹[AttestationServiceStatusResponse](../interfaces/_wrappers_attestations_.attestationservicestatusresponse.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:721](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L721)* - -Gets the relevant attestation service status for a validator - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`validator` | [Validator](../interfaces/_wrappers_validators_.validator.md) | Validator to get the attestation service status for | - -**Returns:** *Promise‹[AttestationServiceStatusResponse](../interfaces/_wrappers_attestations_.attestationservicestatusresponse.md)›* - -___ - -### getConfig - -▸ **getConfig**(`tokens`: string[]): *Promise‹[AttestationsConfig](../interfaces/_wrappers_attestations_.attestationsconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:476](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L476)* - -Returns the current configuration parameters for the contract. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tokens` | string[] | List of tokens used for attestation fees. use CeloTokens.getAddresses() to get | - -**Returns:** *Promise‹[AttestationsConfig](../interfaces/_wrappers_attestations_.attestationsconfig.md)›* - -AttestationsConfig object - -___ - -### getHumanReadableConfig - -▸ **getHumanReadableConfig**(`tokens`: string[]): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:495](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L495)* - -**`dev`** Returns human readable configuration of the attestations contract - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tokens` | string[] | List of tokens used for attestation fees. use CeloTokens.getAddresses() to get | - -**Returns:** *Promise‹object›* - -AttestationsConfig object - -___ - -### getNonCompliantIssuers - -▸ **getNonCompliantIssuers**(`identifier`: string, `account`: Address, `tries`: number): *Promise‹Address[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:332](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L332)* - -Returns an array of issuer addresses that were found to not run the attestation service - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`identifier` | string | - | Attestation identifier (e.g. phone hash) | -`account` | Address | - | Address of the account | -`tries` | number | 3 | - | - -**Returns:** *Promise‹Address[]›* - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹Attestations›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹Attestations› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getRevealStatus - -▸ **getRevealStatus**(`phoneNumber`: string, `account`: Address, `issuer`: Address, `serviceURL`: string, `pepper?`: undefined | string): *Promise‹Response‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:620](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L620)* - -Returns reveal status from validator's attestation service - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | -`account` | Address | -`issuer` | Address | -`serviceURL` | string | -`pepper?` | undefined | string | - -**Returns:** *Promise‹Response‹››* - -___ - -### getVerifiedStatus - -▸ **getVerifiedStatus**(`identifier`: string, `account`: Address, `numAttestationsRequired?`: undefined | number, `attestationThreshold?`: undefined | number): *Promise‹AttestationsStatus›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:267](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L267)* - -Returns the verified status of an identifier/account pair indicating whether the attestation -stats for a given pair are completed beyond a certain threshold of confidence (aka "verified") - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`identifier` | string | Attestation identifier (e.g. phone hash) | -`account` | Address | Address of the account | -`numAttestationsRequired?` | undefined | number | Optional number of attestations required. Will default to hardcoded value if absent. | -`attestationThreshold?` | undefined | number | Optional threshold for fraction attestations completed. Will default to hardcoded value if absent. | - -**Returns:** *Promise‹AttestationsStatus›* - -___ - -### isAttestationExpired - -▸ **isAttestationExpired**(`attestationRequestBlockNumber`: number): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:184](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L184)* - -**`notice`** Checks if attestation request is expired. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`attestationRequestBlockNumber` | number | Attestation Request Block Number to be checked | - -**Returns:** *Promise‹boolean›* - -___ - -### lookupIdentifiers - -▸ **lookupIdentifiers**(`identifiers`: string[]): *Promise‹[IdentifierLookupResult](../modules/_wrappers_attestations_.md#identifierlookupresult)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:513](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L513)* - -Lookup mapped wallet addresses for a given list of identifiers - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`identifiers` | string[] | Attestation identifiers (e.g. phone hashes) | - -**Returns:** *Promise‹[IdentifierLookupResult](../modules/_wrappers_attestations_.md#identifierlookupresult)›* - -___ - -### request - -▸ **request**(`identifier`: string, `attestationsRequested`: number): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:554](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L554)* - -Requests a new attestation - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`identifier` | string | Attestation identifier (e.g. phone hash) | -`attestationsRequested` | number | The number of attestations to request | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### revealPhoneNumberToIssuer - -▸ **revealPhoneNumberToIssuer**(`serviceURL`: string, `requestBody`: AttestationRequest): *Promise‹Response‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:602](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L602)* - -Reveal phone number to issuer - -**Parameters:** - -Name | Type | ------- | ------ | -`serviceURL` | string | -`requestBody` | AttestationRequest | - -**Returns:** *Promise‹Response‹››* - -___ - -### revoke - -▸ **revoke**(`identifer`: string, `account`: Address): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:851](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L851)* - -**Parameters:** - -Name | Type | ------- | ------ | -`identifer` | string | -`account` | Address | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### selectIssuers - -▸ **selectIssuers**(`identifier`: string): *CeloTransactionObject‹void›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:578](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L578)* - -Selects the issuers for previously requested attestations for a phone number - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`identifier` | string | Attestation identifier (e.g. phone hash) | - -**Returns:** *CeloTransactionObject‹void›* - -___ - -### selectIssuersAfterWait - -▸ **selectIssuersAfterWait**(`identifier`: string, `account`: string, `timeoutSeconds?`: undefined | number, `pollDurationSeconds?`: undefined | number): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:587](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L587)* - -Waits appropriate number of blocks, then selects issuers for previously requested phone number attestations - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`identifier` | string | Attestation identifier (e.g. phone hash) | -`account` | string | Address of the account | -`timeoutSeconds?` | undefined | number | - | -`pollDurationSeconds?` | undefined | number | - | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### validateAttestationCode - -▸ **validateAttestationCode**(`identifier`: string, `account`: Address, `issuer`: Address, `code`: string): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:694](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L694)* - -Validates a given code by the issuer on-chain - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`identifier` | string | Attestation identifier (e.g. phone hash) | -`account` | Address | The address of the account which requested attestation | -`issuer` | Address | The address of the issuer of the attestation | -`code` | string | The code send by the issuer | - -**Returns:** *Promise‹boolean›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -___ - -### waitForSelectingIssuers - -▸ **waitForSelectingIssuers**(`identifier`: string, `account`: Address, `timeoutSeconds`: number, `pollDurationSeconds`: number): *Promise‹void›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:196](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L196)* - -**`notice`** Waits for appropriate block numbers for before issuer can be selected - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`identifier` | string | - | Attestation identifier (e.g. phone hash) | -`account` | Address | - | Address of the account | -`timeoutSeconds` | number | 120 | - | -`pollDurationSeconds` | number | 1 | - | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_baseslasher_.baseslasher.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_baseslasher_.baseslasher.md deleted file mode 100644 index 0c1a214b953..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_baseslasher_.baseslasher.md +++ /dev/null @@ -1,182 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BaseSlasher"](../modules/_wrappers_baseslasher_.md) › [BaseSlasher](_wrappers_baseslasher_.baseslasher.md) - -# Class: BaseSlasher <**T**> - -## Type parameters - -▪ **T**: *SlasherContract* - -## Hierarchy - - ↳ [BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md)‹T› - - ↳ **BaseSlasher** - - ↳ [DowntimeSlasherWrapper](_wrappers_downtimeslasher_.downtimeslasherwrapper.md) - - ↳ [DoubleSigningSlasherWrapper](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md) - -## Index - -### Constructors - -* [constructor](_wrappers_baseslasher_.baseslasher.md#constructor) - -### Properties - -* [eventTypes](_wrappers_baseslasher_.baseslasher.md#eventtypes) -* [events](_wrappers_baseslasher_.baseslasher.md#events) -* [methodIds](_wrappers_baseslasher_.baseslasher.md#methodids) -* [slashingIncentives](_wrappers_baseslasher_.baseslasher.md#slashingincentives) - -### Accessors - -* [address](_wrappers_baseslasher_.baseslasher.md#address) - -### Methods - -* [getPastEvents](_wrappers_baseslasher_.baseslasher.md#getpastevents) -* [version](_wrappers_baseslasher_.baseslasher.md#version) - -## Constructors - -### constructor - -\+ **new BaseSlasher**(`connection`: Connection, `contract`: T, `contracts`: ContractWrappersForVotingAndRules): *[BaseSlasher](_wrappers_baseslasher_.baseslasher.md)* - -*Inherited from [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md).[constructor](_wrappers_validators_.validatorswrapper.md#constructor)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | T | -`contracts` | ContractWrappersForVotingAndRules | - -**Returns:** *[BaseSlasher](_wrappers_baseslasher_.baseslasher.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *T["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### slashingIncentives - -• **slashingIncentives**: *function* = proxyCall( - this.contract.methods.slashingIncentives, - undefined, - (res) => ({ - reward: valueToBigNumber(res.reward), - penalty: valueToBigNumber(res.penalty), - }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseSlasher.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseSlasher.ts#L70)* - -Returns slashing incentives. - -**`returns`** Rewards and penalties for slashing. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹T›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹T› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_basewrapper_.basewrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_basewrapper_.basewrapper.md deleted file mode 100644 index c3181f5038b..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_basewrapper_.basewrapper.md +++ /dev/null @@ -1,163 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BaseWrapper"](../modules/_wrappers_basewrapper_.md) › [BaseWrapper](_wrappers_basewrapper_.basewrapper.md) - -# Class: BaseWrapper <**T**> - -**`internal`** -- use its children - -## Type parameters - -▪ **T**: *Contract* - -## Hierarchy - -* **BaseWrapper** - - ↳ [AccountsWrapper](_wrappers_accounts_.accountswrapper.md) - - ↳ [ExchangeWrapper](_wrappers_exchange_.exchangewrapper.md) - - ↳ [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md) - - ↳ [BlockchainParametersWrapper](_wrappers_blockchainparameters_.blockchainparameterswrapper.md) - - ↳ [MultiSigWrapper](_wrappers_multisig_.multisigwrapper.md) - - ↳ [BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md) - - ↳ [GasPriceMinimumWrapper](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md) - - ↳ [GrandaMentoWrapper](_wrappers_grandamento_.grandamentowrapper.md) - - ↳ [ReserveWrapper](_wrappers_reserve_.reservewrapper.md) - - ↳ [SortedOraclesWrapper](_wrappers_sortedoracles_.sortedoracleswrapper.md) - - ↳ [AttestationsWrapper](_wrappers_attestations_.attestationswrapper.md) - - ↳ [EpochRewardsWrapper](_wrappers_epochrewards_.epochrewardswrapper.md) - - ↳ [EscrowWrapper](_wrappers_escrow_.escrowwrapper.md) - - ↳ [FreezerWrapper](_wrappers_freezer_.freezerwrapper.md) - - ↳ [MetaTransactionWalletWrapper](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md) - - ↳ [MetaTransactionWalletDeployerWrapper](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md) - -## Index - -### Constructors - -* [constructor](_wrappers_basewrapper_.basewrapper.md#constructor) - -### Properties - -* [eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes) -* [events](_wrappers_basewrapper_.basewrapper.md#events) -* [methodIds](_wrappers_basewrapper_.basewrapper.md#methodids) - -### Accessors - -* [address](_wrappers_basewrapper_.basewrapper.md#address) - -### Methods - -* [getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents) -* [version](_wrappers_basewrapper_.basewrapper.md#version) - -## Constructors - -### constructor - -\+ **new BaseWrapper**(`connection`: Connection, `contract`: T): *[BaseWrapper](_wrappers_basewrapper_.basewrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | T | - -**Returns:** *[BaseWrapper](_wrappers_basewrapper_.basewrapper.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *T["events"]* = this.contract.events - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -## Accessors - -### address - -• **get address**(): *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹T›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹T› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md deleted file mode 100644 index dcf5b4a279c..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md +++ /dev/null @@ -1,160 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BaseWrapperForGoverning"](../modules/_wrappers_basewrapperforgoverning_.md) › [BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md) - -# Class: BaseWrapperForGoverning <**T**> - -**`internal`** - -## Type parameters - -▪ **T**: *Contract* - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹T› - - ↳ **BaseWrapperForGoverning** - - ↳ [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md) - - ↳ [ElectionWrapper](_wrappers_election_.electionwrapper.md) - - ↳ [LockedGoldWrapper](_wrappers_lockedgold_.lockedgoldwrapper.md) - - ↳ [BaseSlasher](_wrappers_baseslasher_.baseslasher.md) - - ↳ [GovernanceWrapper](_wrappers_governance_.governancewrapper.md) - - ↳ [ReleaseGoldWrapper](_wrappers_releasegold_.releasegoldwrapper.md) - -## Index - -### Constructors - -* [constructor](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md#constructor) - -### Properties - -* [eventTypes](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md#eventtypes) -* [events](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md#events) -* [methodIds](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md#methodids) - -### Accessors - -* [address](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md#address) - -### Methods - -* [getPastEvents](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md#getpastevents) -* [version](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md#version) - -## Constructors - -### constructor - -\+ **new BaseWrapperForGoverning**(`connection`: Connection, `contract`: T, `contracts`: ContractWrappersForVotingAndRules): *[BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | T | -`contracts` | ContractWrappersForVotingAndRules | - -**Returns:** *[BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *T["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹T›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹T› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_blockchainparameters_.blockchainparameterswrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_blockchainparameters_.blockchainparameterswrapper.md deleted file mode 100644 index 9871e14ff46..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_blockchainparameters_.blockchainparameterswrapper.md +++ /dev/null @@ -1,396 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BlockchainParameters"](../modules/_wrappers_blockchainparameters_.md) › [BlockchainParametersWrapper](_wrappers_blockchainparameters_.blockchainparameterswrapper.md) - -# Class: BlockchainParametersWrapper - -Network parameters that are configurable by governance. - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹BlockchainParameters› - - ↳ **BlockchainParametersWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#constructor) - -### Properties - -* [eventTypes](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#eventtypes) -* [events](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#events) -* [getBlockGasLimit](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getblockgaslimit) -* [getEpochNumber](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getepochnumber) -* [getEpochSize](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getepochsize) -* [getIntrinsicGasForAlternativeFeeCurrency](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getintrinsicgasforalternativefeecurrency) -* [getUptimeLookbackWindow](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getuptimelookbackwindow) -* [methodIds](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#methodids) -* [setBlockGasLimit](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#setblockgaslimit) -* [setIntrinsicGasForAlternativeFeeCurrency](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#setintrinsicgasforalternativefeecurrency) -* [setUptimeLookbackWindow](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#setuptimelookbackwindow) - -### Accessors - -* [address](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#address) - -### Methods - -* [getConfig](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getconfig) -* [getEpochNumberOfBlock](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getepochnumberofblock) -* [getEpochSizeNumber](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getepochsizenumber) -* [getFirstBlockNumberForEpoch](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getfirstblocknumberforepoch) -* [getLastBlockNumberForEpoch](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getlastblocknumberforepoch) -* [getPastEvents](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#getpastevents) -* [version](_wrappers_blockchainparameters_.blockchainparameterswrapper.md#version) - -## Constructors - -### constructor - -\+ **new BlockchainParametersWrapper**(`connection`: Connection, `contract`: BlockchainParameters): *[BlockchainParametersWrapper](_wrappers_blockchainparameters_.blockchainparameterswrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | BlockchainParameters | - -**Returns:** *[BlockchainParametersWrapper](_wrappers_blockchainparameters_.blockchainparameterswrapper.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *BlockchainParameters["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getBlockGasLimit - -• **getBlockGasLimit**: *function* = proxyCall(this.contract.methods.blockGasLimit, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L41)* - -Getting the block gas limit. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getEpochNumber - -• **getEpochNumber**: *function* = proxyCall(this.contract.methods.getEpochNumber, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L132)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getEpochSize - -• **getEpochSize**: *function* = proxyCall(this.contract.methods.getEpochSize, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:134](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L134)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getIntrinsicGasForAlternativeFeeCurrency - -• **getIntrinsicGasForAlternativeFeeCurrency**: *function* = proxyCall( - this.contract.methods.intrinsicGasForAlternativeFeeCurrency, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L24)* - -Get the extra intrinsic gas for transactions, where gas is paid using non-gold currency. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getUptimeLookbackWindow - -• **getUptimeLookbackWindow**: *function* = proxyCall( - this.contract.methods.getUptimeLookbackWindow, - undefined, - valueToInt - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L82)* - -Getting the uptime lookback window. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### setBlockGasLimit - -• **setBlockGasLimit**: *function* = proxySend(this.connection, this.contract.methods.setBlockGasLimit) - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L46)* - -Setting the block gas limit. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setIntrinsicGasForAlternativeFeeCurrency - -• **setIntrinsicGasForAlternativeFeeCurrency**: *function* = proxySend( - this.connection, - this.contract.methods.setIntrinsicGasForAlternativeFeeCurrency - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L33)* - -Setting the extra intrinsic gas for transactions, where gas is paid using non-gold currency. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - - -### setUptimeLookbackWindow - -• **setUptimeLookbackWindow**: *function* = proxySend( - this.connection, - this.contract.methods.setUptimeLookbackWindow - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:90](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L90)* - -Setting the uptime lookback window. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getConfig - -▸ **getConfig**(): *Promise‹[BlockchainParametersConfig](../interfaces/_wrappers_blockchainparameters_.blockchainparametersconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L71)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[BlockchainParametersConfig](../interfaces/_wrappers_blockchainparameters_.blockchainparametersconfig.md)›* - -___ - -### getEpochNumberOfBlock - -▸ **getEpochNumberOfBlock**(`blockNumber`: number): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:121](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L121)* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockNumber` | number | - -**Returns:** *Promise‹number›* - -___ - -### getEpochSizeNumber - -▸ **getEpochSizeNumber**(): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:95](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L95)* - -**Returns:** *Promise‹number›* - -___ - -### getFirstBlockNumberForEpoch - -▸ **getFirstBlockNumberForEpoch**(`epochNumber`: number): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:101](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L101)* - -**Parameters:** - -Name | Type | ------- | ------ | -`epochNumber` | number | - -**Returns:** *Promise‹number›* - -___ - -### getLastBlockNumberForEpoch - -▸ **getLastBlockNumberForEpoch**(`epochNumber`: number): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:111](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L111)* - -**Parameters:** - -Name | Type | ------- | ------ | -`epochNumber` | number | - -**Returns:** *Promise‹number›* - - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹BlockchainParameters›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹BlockchainParameters› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_celotokenwrapper_.celotokenwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_celotokenwrapper_.celotokenwrapper.md deleted file mode 100644 index bf2dce59640..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_celotokenwrapper_.celotokenwrapper.md +++ /dev/null @@ -1,423 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/CeloTokenWrapper"](../modules/_wrappers_celotokenwrapper_.md) › [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md) - -# Class: CeloTokenWrapper <**T**> - -Contract for Celo native currency that adheres to the ICeloToken and IERC20 interfaces. - -## Type parameters - -▪ **T**: *Ierc20 & ICeloToken* - -## Hierarchy - - ↳ [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md)‹T› - - ↳ **CeloTokenWrapper** - - ↳ [GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md) - - ↳ [StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md) - -## Index - -### Constructors - -* [constructor](_wrappers_celotokenwrapper_.celotokenwrapper.md#constructor) - -### Properties - -* [allowance](_wrappers_celotokenwrapper_.celotokenwrapper.md#allowance) -* [approve](_wrappers_celotokenwrapper_.celotokenwrapper.md#approve) -* [balanceOf](_wrappers_celotokenwrapper_.celotokenwrapper.md#balanceof) -* [decimals](_wrappers_celotokenwrapper_.celotokenwrapper.md#decimals) -* [eventTypes](_wrappers_celotokenwrapper_.celotokenwrapper.md#eventtypes) -* [events](_wrappers_celotokenwrapper_.celotokenwrapper.md#events) -* [methodIds](_wrappers_celotokenwrapper_.celotokenwrapper.md#methodids) -* [name](_wrappers_celotokenwrapper_.celotokenwrapper.md#name) -* [symbol](_wrappers_celotokenwrapper_.celotokenwrapper.md#symbol) -* [totalSupply](_wrappers_celotokenwrapper_.celotokenwrapper.md#totalsupply) -* [transfer](_wrappers_celotokenwrapper_.celotokenwrapper.md#transfer) -* [transferFrom](_wrappers_celotokenwrapper_.celotokenwrapper.md#transferfrom) -* [transferWithComment](_wrappers_celotokenwrapper_.celotokenwrapper.md#transferwithcomment) - -### Accessors - -* [address](_wrappers_celotokenwrapper_.celotokenwrapper.md#address) - -### Methods - -* [getPastEvents](_wrappers_celotokenwrapper_.celotokenwrapper.md#getpastevents) -* [version](_wrappers_celotokenwrapper_.celotokenwrapper.md#version) - -## Constructors - -### constructor - -\+ **new CeloTokenWrapper**(`connection`: Connection, `contract`: T): *[CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | T | - -**Returns:** *[CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md)* - -## Properties - -### allowance - -• **allowance**: *function* = proxyCall(this.contract.methods.allowance, undefined, valueToBigNumber) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[allowance](_wrappers_erc20wrapper_.erc20wrapper.md#allowance)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L18)* - -Querying allowance. - -**`param`** Account who has given the allowance. - -**`param`** Address of account to whom the allowance was given. - -**`returns`** Amount of allowance. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### approve - -• **approve**: *function* = proxySend(this.connection, this.contract.methods.approve) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[approve](_wrappers_erc20wrapper_.erc20wrapper.md#approve)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L32)* - -Approve a user to transfer the token on behalf of another user. - -**`param`** The address which is being approved to spend the token. - -**`param`** The amount of the token approved to the spender. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### balanceOf - -• **balanceOf**: *function* = proxyCall( - this.contract.methods.balanceOf, - undefined, - valueToBigNumber - ) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[balanceOf](_wrappers_erc20wrapper_.erc20wrapper.md#balanceof)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L56)* - -Gets the balance of the specified address. - -**`param`** The address to query the balance of. - -**`returns`** The balance of the specified address. - -#### Type declaration: - -▸ (`owner`: string): *Promise‹BigNumber›* - -**Parameters:** - -Name | Type | ------- | ------ | -`owner` | string | - -___ - -### decimals - -• **decimals**: *function* = proxyCall(this.contract.methods.decimals, undefined, valueToInt) - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L29)* - -Returns the number of decimals used in the token. - -**`returns`** Number of decimals. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *T["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### name - -• **name**: *function* = proxyCall(this.contract.methods.name) - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L18)* - -Returns the name of the token. - -**`returns`** Name of the token. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### symbol - -• **symbol**: *function* = proxyCall(this.contract.methods.symbol) - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L24)* - -Returns the three letter symbol of the token. - -**`returns`** Symbol of the token. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### totalSupply - -• **totalSupply**: *function* = proxyCall(this.contract.methods.totalSupply, undefined, valueToBigNumber) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[totalSupply](_wrappers_erc20wrapper_.erc20wrapper.md#totalsupply)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L24)* - -Returns the total supply of the token, that is, the amount of tokens currently minted. - -**`returns`** Total supply. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transfer - -• **transfer**: *function* = proxySend(this.connection, this.contract.methods.transfer) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[transfer](_wrappers_erc20wrapper_.erc20wrapper.md#transfer)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L40)* - -Transfers the token from one address to another. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transferFrom - -• **transferFrom**: *function* = proxySend(this.connection, this.contract.methods.transferFrom) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[transferFrom](_wrappers_erc20wrapper_.erc20wrapper.md#transferfrom)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L49)* - -Transfers the token from one address to another on behalf of a user. - -**`param`** The address to transfer the token from. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transferWithComment - -• **transferWithComment**: *function* = proxySend(this.connection, this.contract.methods.transferWithComment) - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L38)* - -Transfers the token from one address to another with a comment. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`param`** The transfer comment - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹T›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹T› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md deleted file mode 100644 index 7ef799d0705..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md +++ /dev/null @@ -1,241 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/DoubleSigningSlasher"](../modules/_wrappers_doublesigningslasher_.md) › [DoubleSigningSlasherWrapper](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md) - -# Class: DoubleSigningSlasherWrapper - -Contract handling slashing for Validator double-signing - -## Hierarchy - - ↳ [BaseSlasher](_wrappers_baseslasher_.baseslasher.md)‹DoubleSigningSlasher› - - ↳ **DoubleSigningSlasherWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#constructor) - -### Properties - -* [eventTypes](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#eventtypes) -* [events](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#events) -* [methodIds](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#methodids) -* [slashingIncentives](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#slashingincentives) - -### Accessors - -* [address](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#address) - -### Methods - -* [getBlockNumberFromHeader](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#getblocknumberfromheader) -* [getPastEvents](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#getpastevents) -* [slashSigner](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#slashsigner) -* [slashValidator](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#slashvalidator) -* [version](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md#version) - -## Constructors - -### constructor - -\+ **new DoubleSigningSlasherWrapper**(`connection`: Connection, `contract`: DoubleSigningSlasher, `contracts`: ContractWrappersForVotingAndRules): *[DoubleSigningSlasherWrapper](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md)* - -*Inherited from [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md).[constructor](_wrappers_validators_.validatorswrapper.md#constructor)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | DoubleSigningSlasher | -`contracts` | ContractWrappersForVotingAndRules | - -**Returns:** *[DoubleSigningSlasherWrapper](_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *DoubleSigningSlasher["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### slashingIncentives - -• **slashingIncentives**: *function* = proxyCall( - this.contract.methods.slashingIncentives, - undefined, - (res) => ({ - reward: valueToBigNumber(res.reward), - penalty: valueToBigNumber(res.penalty), - }) - ) - -*Inherited from [BaseSlasher](_wrappers_baseslasher_.baseslasher.md).[slashingIncentives](_wrappers_baseslasher_.baseslasher.md#slashingincentives)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseSlasher.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseSlasher.ts#L70)* - -Returns slashing incentives. - -**`returns`** Rewards and penalties for slashing. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getBlockNumberFromHeader - -▸ **getBlockNumberFromHeader**(`header`: string): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts#L15)* - -Parses block number out of header. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`header` | string | RLP encoded header | - -**Returns:** *Promise‹number›* - -Block number. - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹DoubleSigningSlasher›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹DoubleSigningSlasher› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### slashSigner - -▸ **slashSigner**(`signerAddress`: Address, `headerA`: string, `headerB`: string): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts#L38)* - -Slash a Validator signer for double-signing. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`signerAddress` | Address | - | -`headerA` | string | First double signed block header. | -`headerB` | string | Second double signed block header. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### slashValidator - -▸ **slashValidator**(`validatorAddress`: Address, `headerA`: string, `headerB`: string): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts#L26)* - -Slash a Validator for double-signing. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`validatorAddress` | Address | Validator to slash. | -`headerA` | string | First double signed block header. | -`headerB` | string | Second double signed block header. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_downtimeslasher_.downtimeslasherwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_downtimeslasher_.downtimeslasherwrapper.md deleted file mode 100644 index 5b959eeed00..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_downtimeslasher_.downtimeslasherwrapper.md +++ /dev/null @@ -1,453 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/DowntimeSlasher"](../modules/_wrappers_downtimeslasher_.md) › [DowntimeSlasherWrapper](_wrappers_downtimeslasher_.downtimeslasherwrapper.md) - -# Class: DowntimeSlasherWrapper - -Contract handling slashing for Validator downtime using intervals. - -## Hierarchy - - ↳ [BaseSlasher](_wrappers_baseslasher_.baseslasher.md)‹DowntimeSlasher› - - ↳ **DowntimeSlasherWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#constructor) - -### Properties - -* [eventTypes](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#eventtypes) -* [events](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#events) -* [getBitmapForInterval](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#getbitmapforinterval) -* [isBitmapSetForInterval](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#isbitmapsetforinterval) -* [lastSlashedBlock](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#lastslashedblock) -* [methodIds](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#methodids) -* [setBitmapForInterval](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#setbitmapforinterval) -* [slashableDowntime](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#slashabledowntime) -* [slashingIncentives](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#slashingincentives) - -### Accessors - -* [address](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#address) - -### Methods - -* [getConfig](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#getconfig) -* [getHumanReadableConfig](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#gethumanreadableconfig) -* [getPastEvents](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#getpastevents) -* [isBitmapSetForIntervals](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#isbitmapsetforintervals) -* [slashValidator](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#slashvalidator) -* [slashableDowntimeIntervalsBefore](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#slashabledowntimeintervalsbefore) -* [version](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#version) -* [wasValidatorDownForInterval](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#wasvalidatordownforinterval) -* [wasValidatorDownForIntervals](_wrappers_downtimeslasher_.downtimeslasherwrapper.md#wasvalidatordownforintervals) - -## Constructors - -### constructor - -\+ **new DowntimeSlasherWrapper**(`connection`: Connection, `contract`: DowntimeSlasher, `contracts`: ContractWrappersForVotingAndRules): *[DowntimeSlasherWrapper](_wrappers_downtimeslasher_.downtimeslasherwrapper.md)* - -*Inherited from [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md).[constructor](_wrappers_validators_.validatorswrapper.md#constructor)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | DowntimeSlasher | -`contracts` | ContractWrappersForVotingAndRules | - -**Returns:** *[DowntimeSlasherWrapper](_wrappers_downtimeslasher_.downtimeslasherwrapper.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *DowntimeSlasher["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getBitmapForInterval - -• **getBitmapForInterval**: *function* = proxyCall( - this.contract.methods.getBitmapForInterval, - unpackInterval, - solidityBytesToString - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:73](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L73)* - -Calculates and returns the signature bitmap for the specified interval. -Similar to the parentSealBitmap of every block (where you have which validators were -able to sign the previous block), this bitmap shows for that specific interval which -validators signed at least one block - -**`param`** First and last block of the interval. - -**`returns`** (string) The signature uptime bitmap for the specified interval. - -**`dev`** startBlock and endBlock must be in the same epoch. - -**`dev`** The getParentSealBitmap precompile requires that startBlock must be within 4 epochs of -the current block. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isBitmapSetForInterval - -• **isBitmapSetForInterval**: *function* = proxyCall(this.contract.methods.isBitmapSetForInterval, unpackInterval) - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:126](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L126)* - -Shows if the user already called the `setBitmapForInterval` for -the specific interval. - -**`param`** First and last block of the interval. - -**`returns`** True if the user already called the `setBitmapForInterval` for -the specific interval. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### lastSlashedBlock - -• **lastSlashedBlock**: *function* = proxyCall(this.contract.methods.lastSlashedBlock, undefined, valueToInt) - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:140](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L140)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### setBitmapForInterval - -• **setBitmapForInterval**: *function* = proxySend( - this.connection, - this.contract.methods.setBitmapForInterval, - unpackInterval - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:85](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L85)* - -Calculates and sets the signature bitmap for the specified interval. - -**`param`** First and last block of the interval. - -**`dev`** interval.start and interval.end must be in the same epoch. - -**`returns`** The signature bitmap for the specified interval. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### slashableDowntime - -• **slashableDowntime**: *function* = proxyCall(this.contract.methods.slashableDowntime, undefined, valueToInt) - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L37)* - -Returns slashable downtime in blocks. - -**`returns`** The number of consecutive blocks before a Validator missing from IBFT consensus -can be slashed. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### slashingIncentives - -• **slashingIncentives**: *function* = proxyCall( - this.contract.methods.slashingIncentives, - undefined, - (res) => ({ - reward: valueToBigNumber(res.reward), - penalty: valueToBigNumber(res.penalty), - }) - ) - -*Inherited from [BaseSlasher](_wrappers_baseslasher_.baseslasher.md).[slashingIncentives](_wrappers_baseslasher_.baseslasher.md#slashingincentives)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseSlasher.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseSlasher.ts#L70)* - -Returns slashing incentives. - -**`returns`** Rewards and penalties for slashing. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getConfig - -▸ **getConfig**(): *Promise‹[DowntimeSlasherConfig](../interfaces/_wrappers_downtimeslasher_.downtimeslasherconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L42)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[DowntimeSlasherConfig](../interfaces/_wrappers_downtimeslasher_.downtimeslasherconfig.md)›* - -___ - -### getHumanReadableConfig - -▸ **getHumanReadableConfig**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L54)* - -**`dev`** Returns human readable configuration of the downtime slasher contract - -**Returns:** *Promise‹object›* - -DowntimeSlasherConfig object - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹DowntimeSlasher›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹DowntimeSlasher› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### isBitmapSetForIntervals - -▸ **isBitmapSetForIntervals**(`intervals`: [Interval](../interfaces/_wrappers_downtimeslasher_.interval.md)[]): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:133](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L133)* - -Shows if the user already called the `setBitmapForInterval` for intervals. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`intervals` | [Interval](../interfaces/_wrappers_downtimeslasher_.interval.md)[] | First and last block of the interval. | - -**Returns:** *Promise‹boolean›* - -True if the user already called the `setBitmapForInterval` for intervals. - -___ - -### slashValidator - -▸ **slashValidator**(`address`: Address, `intervals`: [Interval](../interfaces/_wrappers_downtimeslasher_.interval.md)[]): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:174](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L174)* - -Returns true if the validator did not sign any blocks for the specified overlapping or adjacent -intervals. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the validator account or signer. | -`intervals` | [Interval](../interfaces/_wrappers_downtimeslasher_.interval.md)[] | A list of ordered intervals for which signature bitmaps have already been set. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### slashableDowntimeIntervalsBefore - -▸ **slashableDowntimeIntervalsBefore**(`block?`: undefined | number, `maximumLength`: number): *Promise‹[Interval](../interfaces/_wrappers_downtimeslasher_.interval.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:98](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L98)* - -Calculates intervals which span `slashableDowntime` before provided block. - -**`dev`** if block is undefined, latest will be used - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`block?` | undefined | number | - | Block number to build intervals before. | -`maximumLength` | number | 4000 | Maximum length for any interval (limited by gas limit). | - -**Returns:** *Promise‹[Interval](../interfaces/_wrappers_downtimeslasher_.interval.md)[]›* - -The signature bitmap for the specified interval. - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -___ - -### wasValidatorDownForInterval - -▸ **wasValidatorDownForInterval**(`address`: Address, `interval`: [Interval](../interfaces/_wrappers_downtimeslasher_.interval.md)): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:147](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L147)* - -Tests if the given validator or signer did not sign any blocks in the interval. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the validator account or signer. | -`interval` | [Interval](../interfaces/_wrappers_downtimeslasher_.interval.md) | First and last block of the interval. | - -**Returns:** *Promise‹boolean›* - -___ - -### wasValidatorDownForIntervals - -▸ **wasValidatorDownForIntervals**(`address`: Address, `intervals`: [Interval](../interfaces/_wrappers_downtimeslasher_.interval.md)[]): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:161](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L161)* - -Returns true if the validator did not sign any blocks for the specified overlapping or adjacent -intervals. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the validator account or signer. | -`intervals` | [Interval](../interfaces/_wrappers_downtimeslasher_.interval.md)[] | - | - -**Returns:** *Promise‹boolean›* - -True if the validator signature does not appear in any block within the window. diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_election_.electionwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_election_.electionwrapper.md deleted file mode 100644 index 3eae354bb1c..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_election_.electionwrapper.md +++ /dev/null @@ -1,836 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Election"](../modules/_wrappers_election_.md) › [ElectionWrapper](_wrappers_election_.electionwrapper.md) - -# Class: ElectionWrapper - -Contract for voting for validators and managing validator groups. - -## Hierarchy - - ↳ [BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md)‹Election› - - ↳ **ElectionWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_election_.electionwrapper.md#constructor) - -### Properties - -* [electabilityThreshold](_wrappers_election_.electionwrapper.md#electabilitythreshold) -* [eventTypes](_wrappers_election_.electionwrapper.md#eventtypes) -* [events](_wrappers_election_.electionwrapper.md#events) -* [getCurrentValidatorSigners](_wrappers_election_.electionwrapper.md#getcurrentvalidatorsigners) -* [getGroupsVotedForByAccount](_wrappers_election_.electionwrapper.md#getgroupsvotedforbyaccount) -* [getTotalVotes](_wrappers_election_.electionwrapper.md#gettotalvotes) -* [getTotalVotesByAccount](_wrappers_election_.electionwrapper.md#gettotalvotesbyaccount) -* [getTotalVotesForGroupByAccount](_wrappers_election_.electionwrapper.md#gettotalvotesforgroupbyaccount) -* [methodIds](_wrappers_election_.electionwrapper.md#methodids) -* [numberValidatorsInCurrentSet](_wrappers_election_.electionwrapper.md#numbervalidatorsincurrentset) -* [numberValidatorsInSet](_wrappers_election_.electionwrapper.md#numbervalidatorsinset) -* [validatorSignerAddressFromCurrentSet](_wrappers_election_.electionwrapper.md#validatorsigneraddressfromcurrentset) -* [validatorSignerAddressFromSet](_wrappers_election_.electionwrapper.md#validatorsigneraddressfromset) - -### Accessors - -* [address](_wrappers_election_.electionwrapper.md#address) - -### Methods - -* [activate](_wrappers_election_.electionwrapper.md#activate) -* [electValidatorSigners](_wrappers_election_.electionwrapper.md#electvalidatorsigners) -* [electableValidators](_wrappers_election_.electionwrapper.md#electablevalidators) -* [findLesserAndGreaterAfterVote](_wrappers_election_.electionwrapper.md#findlesserandgreateraftervote) -* [getActiveVotesForGroup](_wrappers_election_.electionwrapper.md#getactivevotesforgroup) -* [getConfig](_wrappers_election_.electionwrapper.md#getconfig) -* [getElectedValidators](_wrappers_election_.electionwrapper.md#getelectedvalidators) -* [getEligibleValidatorGroupsVotes](_wrappers_election_.electionwrapper.md#geteligiblevalidatorgroupsvotes) -* [getGroupVoterRewards](_wrappers_election_.electionwrapper.md#getgroupvoterrewards) -* [getPastEvents](_wrappers_election_.electionwrapper.md#getpastevents) -* [getTotalVotesForGroup](_wrappers_election_.electionwrapper.md#gettotalvotesforgroup) -* [getValidatorGroupVotes](_wrappers_election_.electionwrapper.md#getvalidatorgroupvotes) -* [getValidatorGroupsVotes](_wrappers_election_.electionwrapper.md#getvalidatorgroupsvotes) -* [getValidatorSigners](_wrappers_election_.electionwrapper.md#getvalidatorsigners) -* [getVoter](_wrappers_election_.electionwrapper.md#getvoter) -* [getVoterRewards](_wrappers_election_.electionwrapper.md#getvoterrewards) -* [getVoterShare](_wrappers_election_.electionwrapper.md#getvotershare) -* [getVotesForGroupByAccount](_wrappers_election_.electionwrapper.md#getvotesforgroupbyaccount) -* [hasActivatablePendingVotes](_wrappers_election_.electionwrapper.md#hasactivatablependingvotes) -* [hasPendingVotes](_wrappers_election_.electionwrapper.md#haspendingvotes) -* [revoke](_wrappers_election_.electionwrapper.md#revoke) -* [revokeActive](_wrappers_election_.electionwrapper.md#revokeactive) -* [revokePending](_wrappers_election_.electionwrapper.md#revokepending) -* [version](_wrappers_election_.electionwrapper.md#version) -* [vote](_wrappers_election_.electionwrapper.md#vote) - -## Constructors - -### constructor - -\+ **new ElectionWrapper**(`connection`: Connection, `contract`: Election, `contracts`: ContractWrappersForVotingAndRules): *[ElectionWrapper](_wrappers_election_.electionwrapper.md)* - -*Inherited from [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md).[constructor](_wrappers_validators_.validatorswrapper.md#constructor)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | Election | -`contracts` | ContractWrappersForVotingAndRules | - -**Returns:** *[ElectionWrapper](_wrappers_election_.electionwrapper.md)* - -## Properties - -### electabilityThreshold - -• **electabilityThreshold**: *function* = proxyCall( - this.contract.methods.getElectabilityThreshold, - undefined, - fixidityValueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:86](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L86)* - -Returns the current election threshold. - -**`returns`** Election threshold. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *Election["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getCurrentValidatorSigners - -• **getCurrentValidatorSigners**: *function* = proxyCall( - this.contract.methods.getCurrentValidatorSigners - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:144](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L144)* - -Returns the current validator signers using the precompiles. - -**`returns`** List of current validator signers. - -#### Type declaration: - -▸ (): *Promise‹Address[]›* - -___ - -### getGroupsVotedForByAccount - -• **getGroupsVotedForByAccount**: *function* = proxyCall( - this.contract.methods.getGroupsVotedForByAccount - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:217](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L217)* - -Returns the groups that `account` has voted for. - -**`param`** The address of the account casting votes. - -**`returns`** The groups that `account` has voted for. - -#### Type declaration: - -▸ (`account`: Address): *Promise‹Address[]›* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -___ - -### getTotalVotes - -• **getTotalVotes**: *function* = proxyCall(this.contract.methods.getTotalVotes, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:138](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L138)* - -Returns the total votes received across all groups. - -**`returns`** The total votes received across all groups. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getTotalVotesByAccount - -• **getTotalVotesByAccount**: *function* = proxyCall( - this.contract.methods.getTotalVotesByAccount, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:255](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L255)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getTotalVotesForGroupByAccount - -• **getTotalVotesForGroupByAccount**: *function* = proxyCall( - this.contract.methods.getTotalVotesForGroupByAccount, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:195](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L195)* - -Returns the total votes for `group` made by `account`. - -**`param`** The address of the validator group. - -**`param`** The address of the voting account. - -**`returns`** The total votes for `group` made by `account`. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### numberValidatorsInCurrentSet - -• **numberValidatorsInCurrentSet**: *function* = proxyCall( - this.contract.methods.numberValidatorsInCurrentSet, - undefined, - valueToInt - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:128](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L128)* - -Gets the size of the current elected validator set. - -**`returns`** Size of the current elected validator set. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### numberValidatorsInSet - -• **numberValidatorsInSet**: *function* = proxyCall( - this.contract.methods.numberValidatorsInSet, - undefined, - valueToInt - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:118](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L118)* - -Gets the size of the validator set that must sign the given block number. - -**`param`** Block number to retrieve the validator set from. - -**`returns`** Size of the validator set. - -#### Type declaration: - -▸ (`blockNumber`: number): *Promise‹number›* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockNumber` | number | - -___ - -### validatorSignerAddressFromCurrentSet - -• **validatorSignerAddressFromCurrentSet**: *function* = proxyCall( - this.contract.methods.validatorSignerAddressFromCurrentSet, - tupleParser(identity) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:108](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L108)* - -Gets a validator address from the current validator set. - -**`param`** Index of requested validator in the validator set. - -**`returns`** Address of validator at the requested index. - -#### Type declaration: - -▸ (`index`: number): *Promise‹Address›* - -**Parameters:** - -Name | Type | ------- | ------ | -`index` | number | - -___ - -### validatorSignerAddressFromSet - -• **validatorSignerAddressFromSet**: *function* = proxyCall(this.contract.methods.validatorSignerAddressFromSet) - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:98](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L98)* - -Gets a validator address from the validator set at the given block number. - -**`param`** Index of requested validator in the validator set. - -**`param`** Block number to retrieve the validator set from. - -**`returns`** Address of validator at the requested index. - -#### Type declaration: - -▸ (`signerIndex`: number, `blockNumber`: number): *Promise‹Address›* - -**Parameters:** - -Name | Type | ------- | ------ | -`signerIndex` | number | -`blockNumber` | number | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### activate - -▸ **activate**(`account`: Address): *Promise‹Array‹CeloTransactionObject‹boolean›››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:334](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L334)* - -Activates any activatable pending votes. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | Address | The account with pending votes to activate. | - -**Returns:** *Promise‹Array‹CeloTransactionObject‹boolean›››* - -___ - -### electValidatorSigners - -▸ **electValidatorSigners**(`min?`: undefined | number, `max?`: undefined | number): *Promise‹Address[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:165](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L165)* - -Returns a list of elected validators with seats allocated to groups via the D'Hondt method. - -**`dev`** See https://en.wikipedia.org/wiki/D%27Hondt_method#Allocation for more information. - -**Parameters:** - -Name | Type | ------- | ------ | -`min?` | undefined | number | -`max?` | undefined | number | - -**Returns:** *Promise‹Address[]›* - -The list of elected validators. - -___ - -### electableValidators - -▸ **electableValidators**(): *Promise‹[ElectableValidators](../interfaces/_wrappers_election_.electablevalidators.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L77)* - -Returns the minimum and maximum number of validators that can be elected. - -**Returns:** *Promise‹[ElectableValidators](../interfaces/_wrappers_election_.electablevalidators.md)›* - -The minimum and maximum number of validators that can be elected. - -___ - -### findLesserAndGreaterAfterVote - -▸ **findLesserAndGreaterAfterVote**(`votedGroup`: Address, `voteWeight`: BigNumber): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:426](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L426)* - -**Parameters:** - -Name | Type | ------- | ------ | -`votedGroup` | Address | -`voteWeight` | BigNumber | - -**Returns:** *Promise‹object›* - -___ - -### getActiveVotesForGroup - -▸ **getActiveVotesForGroup**(`group`: Address, `blockNumber?`: undefined | number): *Promise‹BigNumber›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:206](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L206)* - -Returns the active votes for `group`. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`group` | Address | The address of the validator group. | -`blockNumber?` | undefined | number | - | - -**Returns:** *Promise‹BigNumber›* - -The active votes for `group`. - -___ - -### getConfig - -▸ **getConfig**(): *Promise‹[ElectionConfig](../interfaces/_wrappers_election_.electionconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:289](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L289)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[ElectionConfig](../interfaces/_wrappers_election_.electionconfig.md)›* - -___ - -### getElectedValidators - -▸ **getElectedValidators**(`epochNumber`: number): *Promise‹[Validator](../interfaces/_wrappers_validators_.validator.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:455](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L455)* - -Retrieves the set of validatorsparticipating in BFT at epochNumber. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`epochNumber` | number | The epoch to retrieve the elected validator set at. | - -**Returns:** *Promise‹[Validator](../interfaces/_wrappers_validators_.validator.md)[]›* - -___ - -### getEligibleValidatorGroupsVotes - -▸ **getEligibleValidatorGroupsVotes**(): *Promise‹[ValidatorGroupVote](../interfaces/_wrappers_election_.validatorgroupvote.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:411](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L411)* - -Returns the current eligible validator groups and their total votes. - -**Returns:** *Promise‹[ValidatorGroupVote](../interfaces/_wrappers_election_.validatorgroupvote.md)[]›* - -___ - -### getGroupVoterRewards - -▸ **getGroupVoterRewards**(`epochNumber`: number): *Promise‹[GroupVoterReward](../interfaces/_wrappers_election_.groupvoterreward.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:467](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L467)* - -Retrieves GroupVoterRewards at epochNumber. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`epochNumber` | number | The epoch to retrieve GroupVoterRewards at. | - -**Returns:** *Promise‹[GroupVoterReward](../interfaces/_wrappers_election_.groupvoterreward.md)[]›* - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹Election›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹Election› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getTotalVotesForGroup - -▸ **getTotalVotesForGroup**(`group`: Address, `blockNumber?`: undefined | number): *Promise‹BigNumber›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:183](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L183)* - -Returns the total votes for `group`. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`group` | Address | The address of the validator group. | -`blockNumber?` | undefined | number | - | - -**Returns:** *Promise‹BigNumber›* - -The total votes for `group`. - -___ - -### getValidatorGroupVotes - -▸ **getValidatorGroupVotes**(`address`: Address): *Promise‹[ValidatorGroupVote](../interfaces/_wrappers_election_.validatorgroupvote.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:305](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L305)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | - -**Returns:** *Promise‹[ValidatorGroupVote](../interfaces/_wrappers_election_.validatorgroupvote.md)›* - -___ - -### getValidatorGroupsVotes - -▸ **getValidatorGroupsVotes**(): *Promise‹[ValidatorGroupVote](../interfaces/_wrappers_election_.validatorgroupvote.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:322](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L322)* - -Returns the current registered validator groups and their total votes and eligibility. - -**Returns:** *Promise‹[ValidatorGroupVote](../interfaces/_wrappers_election_.validatorgroupvote.md)[]›* - -___ - -### getValidatorSigners - -▸ **getValidatorSigners**(`blockNumber`: number): *Promise‹Address[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:153](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L153)* - -Returns the validator signers for block `blockNumber`. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`blockNumber` | number | Block number to retrieve signers for. | - -**Returns:** *Promise‹Address[]›* - -Address of each signer in the validator set. - -___ - -### getVoter - -▸ **getVoter**(`account`: Address, `blockNumber?`: undefined | number): *Promise‹[Voter](../interfaces/_wrappers_election_.voter.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:243](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L243)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`blockNumber?` | undefined | number | - -**Returns:** *Promise‹[Voter](../interfaces/_wrappers_election_.voter.md)›* - -___ - -### getVoterRewards - -▸ **getVoterRewards**(`address`: Address, `epochNumber`: number, `voterShare?`: Record‹Address, BigNumber›): *Promise‹[VoterReward](../interfaces/_wrappers_election_.voterreward.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:494](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L494)* - -Retrieves VoterRewards for address at epochNumber. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | The address to retrieve VoterRewards for. | -`epochNumber` | number | The epoch to retrieve VoterRewards at. | -`voterShare?` | Record‹Address, BigNumber› | Optionally address' share of group rewards. | - -**Returns:** *Promise‹[VoterReward](../interfaces/_wrappers_election_.voterreward.md)[]›* - -___ - -### getVoterShare - -▸ **getVoterShare**(`address`: Address, `blockNumber?`: undefined | number): *Promise‹Record‹Address, BigNumber››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:529](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L529)* - -Retrieves a voter's share of active votes. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | The voter to retrieve share for. | -`blockNumber?` | undefined | number | The block to retrieve the voter's share at. | - -**Returns:** *Promise‹Record‹Address, BigNumber››* - -___ - -### getVotesForGroupByAccount - -▸ **getVotesForGroupByAccount**(`account`: Address, `group`: Address, `blockNumber?`: undefined | number): *Promise‹[GroupVote](../interfaces/_wrappers_election_.groupvote.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:221](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L221)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`group` | Address | -`blockNumber?` | undefined | number | - -**Returns:** *Promise‹[GroupVote](../interfaces/_wrappers_election_.groupvote.md)›* - -___ - -### hasActivatablePendingVotes - -▸ **hasActivatablePendingVotes**(`account`: Address): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:278](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L278)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹boolean›* - -___ - -### hasPendingVotes - -▸ **hasPendingVotes**(`account`: Address): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:266](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L266)* - -Returns whether or not the account has any pending votes. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | Address | The address of the account casting votes. | - -**Returns:** *Promise‹boolean›* - -The groups that `account` has voted for. - -___ - -### revoke - -▸ **revoke**(`account`: Address, `group`: Address, `value`: BigNumber): *Promise‹Array‹CeloTransactionObject‹boolean›››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:373](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L373)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`group` | Address | -`value` | BigNumber | - -**Returns:** *Promise‹Array‹CeloTransactionObject‹boolean›››* - -___ - -### revokeActive - -▸ **revokeActive**(`account`: Address, `group`: Address, `value`: BigNumber): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:358](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L358)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`group` | Address | -`value` | BigNumber | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### revokePending - -▸ **revokePending**(`account`: Address, `group`: Address, `value`: BigNumber): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:343](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L343)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`group` | Address | -`value` | BigNumber | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -___ - -### vote - -▸ **vote**(`validatorGroup`: Address, `value`: BigNumber): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:399](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L399)* - -Increments the number of total and pending votes for `group`. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`validatorGroup` | Address | The validator group to vote for. | -`value` | BigNumber | The amount of gold to use to vote. | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_epochrewards_.epochrewardswrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_epochrewards_.epochrewardswrapper.md deleted file mode 100644 index 8e8a5c30726..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_epochrewards_.epochrewardswrapper.md +++ /dev/null @@ -1,263 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/EpochRewards"](../modules/_wrappers_epochrewards_.md) › [EpochRewardsWrapper](_wrappers_epochrewards_.epochrewardswrapper.md) - -# Class: EpochRewardsWrapper - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹EpochRewards› - - ↳ **EpochRewardsWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_epochrewards_.epochrewardswrapper.md#constructor) - -### Properties - -* [eventTypes](_wrappers_epochrewards_.epochrewardswrapper.md#eventtypes) -* [events](_wrappers_epochrewards_.epochrewardswrapper.md#events) -* [getCommunityReward](_wrappers_epochrewards_.epochrewardswrapper.md#getcommunityreward) -* [getRewardsMultiplierParameters](_wrappers_epochrewards_.epochrewardswrapper.md#getrewardsmultiplierparameters) -* [getTargetValidatorEpochPayment](_wrappers_epochrewards_.epochrewardswrapper.md#gettargetvalidatorepochpayment) -* [getTargetVotingYieldParameters](_wrappers_epochrewards_.epochrewardswrapper.md#gettargetvotingyieldparameters) -* [methodIds](_wrappers_epochrewards_.epochrewardswrapper.md#methodids) - -### Accessors - -* [address](_wrappers_epochrewards_.epochrewardswrapper.md#address) - -### Methods - -* [getCarbonOffsetting](_wrappers_epochrewards_.epochrewardswrapper.md#getcarbonoffsetting) -* [getConfig](_wrappers_epochrewards_.epochrewardswrapper.md#getconfig) -* [getPastEvents](_wrappers_epochrewards_.epochrewardswrapper.md#getpastevents) -* [version](_wrappers_epochrewards_.epochrewardswrapper.md#version) - -## Constructors - -### constructor - -\+ **new EpochRewardsWrapper**(`connection`: Connection, `contract`: EpochRewards): *[EpochRewardsWrapper](_wrappers_epochrewards_.epochrewardswrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | EpochRewards | - -**Returns:** *[EpochRewardsWrapper](_wrappers_epochrewards_.epochrewardswrapper.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *EpochRewards["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getCommunityReward - -• **getCommunityReward**: *function* = proxyCall( - this.contract.methods.getCommunityRewardFraction, - undefined, - parseFixidity - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/EpochRewards.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/EpochRewards.ts#L28)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getRewardsMultiplierParameters - -• **getRewardsMultiplierParameters**: *function* = proxyCall( - this.contract.methods.getRewardsMultiplierParameters, - undefined, - (res) => ({ - max: parseFixidity(res[0]), - underspendAdjustment: parseFixidity(res[1]), - overspendAdjustment: parseFixidity(res[2]), - }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/EpochRewards.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/EpochRewards.ts#L8)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getTargetValidatorEpochPayment - -• **getTargetValidatorEpochPayment**: *function* = proxyCall( - this.contract.methods.targetValidatorEpochPayment, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/EpochRewards.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/EpochRewards.ts#L43)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getTargetVotingYieldParameters - -• **getTargetVotingYieldParameters**: *function* = proxyCall( - this.contract.methods.getTargetVotingYieldParameters, - undefined, - (res) => ({ - target: parseFixidity(res[0]), - max: parseFixidity(res[1]), - adjustment: parseFixidity(res[2]), - }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/EpochRewards.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/EpochRewards.ts#L18)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getCarbonOffsetting - -▸ **getCarbonOffsetting**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/EpochRewards.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/EpochRewards.ts#L34)* - -**Returns:** *Promise‹object›* - -___ - -### getConfig - -▸ **getConfig**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/EpochRewards.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/EpochRewards.ts#L49)* - -**Returns:** *Promise‹object›* - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹EpochRewards›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹EpochRewards› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_erc20wrapper_.erc20wrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_erc20wrapper_.erc20wrapper.md deleted file mode 100644 index 88a26cb0a62..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_erc20wrapper_.erc20wrapper.md +++ /dev/null @@ -1,311 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Erc20Wrapper"](../modules/_wrappers_erc20wrapper_.md) › [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md) - -# Class: Erc20Wrapper <**T**> - -ERC-20 contract only containing the non-optional functions - -## Type parameters - -▪ **T**: *Ierc20* - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹T› - - ↳ **Erc20Wrapper** - - ↳ [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md) - -## Index - -### Constructors - -* [constructor](_wrappers_erc20wrapper_.erc20wrapper.md#constructor) - -### Properties - -* [allowance](_wrappers_erc20wrapper_.erc20wrapper.md#allowance) -* [approve](_wrappers_erc20wrapper_.erc20wrapper.md#approve) -* [balanceOf](_wrappers_erc20wrapper_.erc20wrapper.md#balanceof) -* [eventTypes](_wrappers_erc20wrapper_.erc20wrapper.md#eventtypes) -* [events](_wrappers_erc20wrapper_.erc20wrapper.md#events) -* [methodIds](_wrappers_erc20wrapper_.erc20wrapper.md#methodids) -* [totalSupply](_wrappers_erc20wrapper_.erc20wrapper.md#totalsupply) -* [transfer](_wrappers_erc20wrapper_.erc20wrapper.md#transfer) -* [transferFrom](_wrappers_erc20wrapper_.erc20wrapper.md#transferfrom) - -### Accessors - -* [address](_wrappers_erc20wrapper_.erc20wrapper.md#address) - -### Methods - -* [getPastEvents](_wrappers_erc20wrapper_.erc20wrapper.md#getpastevents) -* [version](_wrappers_erc20wrapper_.erc20wrapper.md#version) - -## Constructors - -### constructor - -\+ **new Erc20Wrapper**(`connection`: Connection, `contract`: T): *[Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | T | - -**Returns:** *[Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md)* - -## Properties - -### allowance - -• **allowance**: *function* = proxyCall(this.contract.methods.allowance, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L18)* - -Querying allowance. - -**`param`** Account who has given the allowance. - -**`param`** Address of account to whom the allowance was given. - -**`returns`** Amount of allowance. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### approve - -• **approve**: *function* = proxySend(this.connection, this.contract.methods.approve) - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L32)* - -Approve a user to transfer the token on behalf of another user. - -**`param`** The address which is being approved to spend the token. - -**`param`** The amount of the token approved to the spender. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### balanceOf - -• **balanceOf**: *function* = proxyCall( - this.contract.methods.balanceOf, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L56)* - -Gets the balance of the specified address. - -**`param`** The address to query the balance of. - -**`returns`** The balance of the specified address. - -#### Type declaration: - -▸ (`owner`: string): *Promise‹BigNumber›* - -**Parameters:** - -Name | Type | ------- | ------ | -`owner` | string | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *T["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### totalSupply - -• **totalSupply**: *function* = proxyCall(this.contract.methods.totalSupply, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L24)* - -Returns the total supply of the token, that is, the amount of tokens currently minted. - -**`returns`** Total supply. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transfer - -• **transfer**: *function* = proxySend(this.connection, this.contract.methods.transfer) - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L40)* - -Transfers the token from one address to another. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transferFrom - -• **transferFrom**: *function* = proxySend(this.connection, this.contract.methods.transferFrom) - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L49)* - -Transfers the token from one address to another on behalf of a user. - -**`param`** The address to transfer the token from. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹T›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹T› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_escrow_.escrowwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_escrow_.escrowwrapper.md deleted file mode 100644 index 40d87abd924..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_escrow_.escrowwrapper.md +++ /dev/null @@ -1,295 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Escrow"](../modules/_wrappers_escrow_.md) › [EscrowWrapper](_wrappers_escrow_.escrowwrapper.md) - -# Class: EscrowWrapper - -Contract for handling reserve for stable currencies - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹Escrow› - - ↳ **EscrowWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_escrow_.escrowwrapper.md#constructor) - -### Properties - -* [escrowedPayments](_wrappers_escrow_.escrowwrapper.md#escrowedpayments) -* [eventTypes](_wrappers_escrow_.escrowwrapper.md#eventtypes) -* [events](_wrappers_escrow_.escrowwrapper.md#events) -* [getReceivedPaymentIds](_wrappers_escrow_.escrowwrapper.md#getreceivedpaymentids) -* [getSentPaymentIds](_wrappers_escrow_.escrowwrapper.md#getsentpaymentids) -* [methodIds](_wrappers_escrow_.escrowwrapper.md#methodids) -* [receivedPaymentIds](_wrappers_escrow_.escrowwrapper.md#receivedpaymentids) -* [revoke](_wrappers_escrow_.escrowwrapper.md#revoke) -* [sentPaymentIds](_wrappers_escrow_.escrowwrapper.md#sentpaymentids) -* [transfer](_wrappers_escrow_.escrowwrapper.md#transfer) -* [withdraw](_wrappers_escrow_.escrowwrapper.md#withdraw) - -### Accessors - -* [address](_wrappers_escrow_.escrowwrapper.md#address) - -### Methods - -* [getPastEvents](_wrappers_escrow_.escrowwrapper.md#getpastevents) -* [version](_wrappers_escrow_.escrowwrapper.md#version) - -## Constructors - -### constructor - -\+ **new EscrowWrapper**(`connection`: Connection, `contract`: Escrow): *[EscrowWrapper](_wrappers_escrow_.escrowwrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | Escrow | - -**Returns:** *[EscrowWrapper](_wrappers_escrow_.escrowwrapper.md)* - -## Properties - -### escrowedPayments - -• **escrowedPayments**: *function* = proxyCall(this.contract.methods.escrowedPayments) - -*Defined in [packages/sdk/contractkit/src/wrappers/Escrow.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Escrow.ts#L8)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *Escrow["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getReceivedPaymentIds - -• **getReceivedPaymentIds**: *function* = proxyCall(this.contract.methods.getReceivedPaymentIds) - -*Defined in [packages/sdk/contractkit/src/wrappers/Escrow.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Escrow.ts#L14)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getSentPaymentIds - -• **getSentPaymentIds**: *function* = proxyCall(this.contract.methods.getSentPaymentIds) - -*Defined in [packages/sdk/contractkit/src/wrappers/Escrow.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Escrow.ts#L16)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### receivedPaymentIds - -• **receivedPaymentIds**: *function* = proxyCall(this.contract.methods.receivedPaymentIds) - -*Defined in [packages/sdk/contractkit/src/wrappers/Escrow.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Escrow.ts#L10)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### revoke - -• **revoke**: *function* = proxySend(this.connection, this.contract.methods.revoke) - -*Defined in [packages/sdk/contractkit/src/wrappers/Escrow.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Escrow.ts#L22)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### sentPaymentIds - -• **sentPaymentIds**: *function* = proxyCall(this.contract.methods.sentPaymentIds) - -*Defined in [packages/sdk/contractkit/src/wrappers/Escrow.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Escrow.ts#L12)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transfer - -• **transfer**: *function* = proxySend(this.connection, this.contract.methods.transfer) - -*Defined in [packages/sdk/contractkit/src/wrappers/Escrow.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Escrow.ts#L18)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### withdraw - -• **withdraw**: *function* = proxySend(this.connection, this.contract.methods.withdraw) - -*Defined in [packages/sdk/contractkit/src/wrappers/Escrow.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Escrow.ts#L20)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹Escrow›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹Escrow› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_exchange_.exchangewrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_exchange_.exchangewrapper.md deleted file mode 100644 index 9cf8eb04627..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_exchange_.exchangewrapper.md +++ /dev/null @@ -1,813 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Exchange"](../modules/_wrappers_exchange_.md) › [ExchangeWrapper](_wrappers_exchange_.exchangewrapper.md) - -# Class: ExchangeWrapper - -Contract that allows to exchange StableToken for GoldToken and vice versa -using a Constant Product Market Maker Model aka Mento - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹Exchange› - - ↳ **ExchangeWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_exchange_.exchangewrapper.md#constructor) - -### Properties - -* [buy](_wrappers_exchange_.exchangewrapper.md#buy) -* [buyDollar](_wrappers_exchange_.exchangewrapper.md#buydollar) -* [eventTypes](_wrappers_exchange_.exchangewrapper.md#eventtypes) -* [events](_wrappers_exchange_.exchangewrapper.md#events) -* [exchange](_wrappers_exchange_.exchangewrapper.md#exchange) -* [getBuyAndSellBuckets](_wrappers_exchange_.exchangewrapper.md#getbuyandsellbuckets) -* [getUsdExchangeRate](_wrappers_exchange_.exchangewrapper.md#getusdexchangerate) -* [lastBucketUpdate](_wrappers_exchange_.exchangewrapper.md#lastbucketupdate) -* [methodIds](_wrappers_exchange_.exchangewrapper.md#methodids) -* [minimumReports](_wrappers_exchange_.exchangewrapper.md#minimumreports) -* [quoteUsdBuy](_wrappers_exchange_.exchangewrapper.md#quoteusdbuy) -* [quoteUsdSell](_wrappers_exchange_.exchangewrapper.md#quoteusdsell) -* [reserveFraction](_wrappers_exchange_.exchangewrapper.md#reservefraction) -* [sell](_wrappers_exchange_.exchangewrapper.md#sell) -* [sellDollar](_wrappers_exchange_.exchangewrapper.md#selldollar) -* [spread](_wrappers_exchange_.exchangewrapper.md#spread) -* [updateFrequency](_wrappers_exchange_.exchangewrapper.md#updatefrequency) - -### Accessors - -* [address](_wrappers_exchange_.exchangewrapper.md#address) - -### Methods - -* [buyGold](_wrappers_exchange_.exchangewrapper.md#buygold) -* [buyStable](_wrappers_exchange_.exchangewrapper.md#buystable) -* [getBuyTokenAmount](_wrappers_exchange_.exchangewrapper.md#getbuytokenamount) -* [getConfig](_wrappers_exchange_.exchangewrapper.md#getconfig) -* [getExchangeRate](_wrappers_exchange_.exchangewrapper.md#getexchangerate) -* [getGoldExchangeRate](_wrappers_exchange_.exchangewrapper.md#getgoldexchangerate) -* [getHumanReadableConfig](_wrappers_exchange_.exchangewrapper.md#gethumanreadableconfig) -* [getPastEvents](_wrappers_exchange_.exchangewrapper.md#getpastevents) -* [getSellTokenAmount](_wrappers_exchange_.exchangewrapper.md#getselltokenamount) -* [getStableExchangeRate](_wrappers_exchange_.exchangewrapper.md#getstableexchangerate) -* [quoteGoldBuy](_wrappers_exchange_.exchangewrapper.md#quotegoldbuy) -* [quoteGoldSell](_wrappers_exchange_.exchangewrapper.md#quotegoldsell) -* [quoteStableBuy](_wrappers_exchange_.exchangewrapper.md#quotestablebuy) -* [quoteStableSell](_wrappers_exchange_.exchangewrapper.md#quotestablesell) -* [sellGold](_wrappers_exchange_.exchangewrapper.md#sellgold) -* [sellStable](_wrappers_exchange_.exchangewrapper.md#sellstable) -* [version](_wrappers_exchange_.exchangewrapper.md#version) - -## Constructors - -### constructor - -\+ **new ExchangeWrapper**(`connection`: Connection, `contract`: Exchange): *[ExchangeWrapper](_wrappers_exchange_.exchangewrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | Exchange | - -**Returns:** *[ExchangeWrapper](_wrappers_exchange_.exchangewrapper.md)* - -## Properties - -### buy - -• **buy**: *function* = proxySend( - this.connection, - this.contract.methods.buy, - tupleParser(valueToString, valueToString, identity) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:112](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L112)* - -Sells sellAmount of sellToken in exchange for at least minBuyAmount of buyToken -Requires the sellAmount to have been approved to the exchange - -**`param`** The amount of sellToken the user is selling to the exchange - -**`param`** The maximum amount of sellToken the user will sell for this -transaction to succeed - -**`param`** `true` if gold is the buy token - -**`returns`** The amount of buyToken that was transfered - -#### Type declaration: - -▸ (`buyAmount`: BigNumber.Value, `maxSellAmount`: BigNumber.Value, `buyGold`: boolean): *CeloTransactionObject‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`buyAmount` | BigNumber.Value | -`maxSellAmount` | BigNumber.Value | -`buyGold` | boolean | - -___ - -### buyDollar - -• **buyDollar**: *(Anonymous function)* = this.buyStable - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:226](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L226)* - -Deprecated alias of buyStable. -Buy amount of the stable token in exchange for at least minGoldAmount of CELO -Requires the amount to have been approved to the exchange - -**`deprecated`** use buyStable instead - -**`param`** The amount of the stable token the user is selling to the exchange - -**`param`** The maximum amount of CELO the user will pay for this -transaction to succeed - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *Exchange["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### exchange - -• **exchange**: *function* = proxySend( - this.connection, - this.contract.methods.exchange, - tupleParser(valueToString, valueToString, identity) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L74)* - -DEPRECATED: use function sell -Exchanges sellAmount of sellToken in exchange for at least minBuyAmount of buyToken -Requires the sellAmount to have been approved to the exchange - -**`param`** The amount of sellToken the user is selling to the exchange - -**`param`** The minimum amount of buyToken the user has to receive for this -transaction to succeed - -**`param`** `true` if gold is the sell token - -**`returns`** The amount of buyToken that was transfered - -#### Type declaration: - -▸ (`sellAmount`: BigNumber.Value, `minBuyAmount`: BigNumber.Value, `sellGold`: boolean): *CeloTransactionObject‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`sellAmount` | BigNumber.Value | -`minBuyAmount` | BigNumber.Value | -`sellGold` | boolean | - -___ - -### getBuyAndSellBuckets - -• **getBuyAndSellBuckets**: *function* = proxyCall( - this.contract.methods.getBuyAndSellBuckets, - undefined, - (callRes: { 0: string; 1: string }) => - [valueToBigNumber(callRes[0]), valueToBigNumber(callRes[1])] as [BigNumber, BigNumber] - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:159](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L159)* - -Returns the buy token and sell token bucket sizes, in order. The ratio of -the two also represents the exchange rate between the two. - -**`param`** `true` if gold is the sell token - -**`returns`** - -#### Type declaration: - -▸ (`sellGold`: boolean): *Promise‹[BigNumber, BigNumber]›* - -**Parameters:** - -Name | Type | ------- | ------ | -`sellGold` | boolean | - -___ - -### getUsdExchangeRate - -• **getUsdExchangeRate**: *(Anonymous function)* = this.getStableExchangeRate - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:336](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L336)* - -Deprecated alias of getStableExchangeRate. -Returns the exchange rate for the stable token estimated at the buyAmount - -**`deprecated`** Use getStableExchangeRate instead - -**`param`** The amount of the stable token in wei to estimate the exchange rate at - -**`returns`** The exchange rate (number of CELO received for one stable token) - -___ - -### lastBucketUpdate - -• **lastBucketUpdate**: *function* = proxyCall(this.contract.methods.lastBucketUpdate, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L62)* - -Query last bucket update - -**`returns`** The timestamp of the last time exchange buckets were updated. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### minimumReports - -• **minimumReports**: *function* = proxyCall(this.contract.methods.minimumReports, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L57)* - -Query minimum reports parameter - -**`returns`** The minimum number of fresh reports that need to be -present in the oracle to update buckets -commit to the gold bucket - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### quoteUsdBuy - -• **quoteUsdBuy**: *(Anonymous function)* = this.quoteStableBuy - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:267](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L267)* - -Deprecated alias of quoteStableBuy. -Returns the amount of CELO a user would need to exchange to receive buyAmount of -the stable token. - -**`deprecated`** Use quoteStableBuy instead - -**`param`** The amount of the stable token the user would like to purchase. - -**`returns`** The corresponding CELO amount. - -___ - -### quoteUsdSell - -• **quoteUsdSell**: *(Anonymous function)* = this.quoteStableSell - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:242](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L242)* - -Deprecated alias of quoteStableSell. -Returns the amount of CELO a user would get for sellAmount of the stable token - -**`deprecated`** Use quoteStableSell instead - -**`param`** The amount of the stable token the user is selling to the exchange - -**`returns`** The corresponding CELO amount. - -___ - -### reserveFraction - -• **reserveFraction**: *function* = proxyCall( - this.contract.methods.reserveFraction, - undefined, - fixidityValueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L40)* - -Query reserve fraction parameter - -**`returns`** Current fraction to commit to the gold bucket - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### sell - -• **sell**: *function* = proxySend( - this.connection, - this.contract.methods.sell, - tupleParser(valueToString, valueToString, identity) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:93](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L93)* - -Sells sellAmount of sellToken in exchange for at least minBuyAmount of buyToken -Requires the sellAmount to have been approved to the exchange - -**`param`** The amount of sellToken the user is selling to the exchange - -**`param`** The minimum amount of buyToken the user has to receive for this -transaction to succeed - -**`param`** `true` if gold is the sell token - -**`returns`** The amount of buyToken that was transfered - -#### Type declaration: - -▸ (`sellAmount`: BigNumber.Value, `minBuyAmount`: BigNumber.Value, `sellGold`: boolean): *CeloTransactionObject‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`sellAmount` | BigNumber.Value | -`minBuyAmount` | BigNumber.Value | -`sellGold` | boolean | - -___ - -### sellDollar - -• **sellDollar**: *(Anonymous function)* = this.sellStable - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:195](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L195)* - -Deprecated alias of sellStable. -Sell amount of the stable token in exchange for at least minGoldAmount of CELO -Requires the amount to have been approved to the exchange - -**`deprecated`** use sellStable instead - -**`param`** The amount of the stable token the user is selling to the exchange - -**`param`** The minimum amount of CELO the user has to receive for this -transaction to succeed - -___ - -### spread - -• **spread**: *function* = proxyCall(this.contract.methods.spread, undefined, fixidityValueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L35)* - -Query spread parameter - -**`returns`** Current spread charged on exchanges - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### updateFrequency - -• **updateFrequency**: *function* = proxyCall(this.contract.methods.updateFrequency, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L50)* - -Query update frequency parameter - -**`returns`** The time period that needs to elapse between bucket -updates - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### buyGold - -▸ **buyGold**(`amount`: BigNumber.Value, `maxStableAmount`: BigNumber.Value): *CeloTransactionObject‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:204](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L204)* - -Buy amount of CELO in exchange for at most maxStableAmount of the stable token -Requires the amount to have been approved to the exchange - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`amount` | BigNumber.Value | The amount of CELO the user is buying from the exchange | -`maxStableAmount` | BigNumber.Value | The maximum amount of the stable token the user will pay for this transaction to succeed | - -**Returns:** *CeloTransactionObject‹string›* - -___ - -### buyStable - -▸ **buyStable**(`amount`: BigNumber.Value, `maxGoldAmount`: BigNumber.Value): *CeloTransactionObject‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:214](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L214)* - -Buy amount of the stable token in exchange for at least minGoldAmount of CELO -Requires the amount to have been approved to the exchange - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`amount` | BigNumber.Value | The amount of the stable token the user is selling to the exchange | -`maxGoldAmount` | BigNumber.Value | The maximum amount of CELO the user will pay for this transaction to succeed | - -**Returns:** *CeloTransactionObject‹string›* - -___ - -### getBuyTokenAmount - -▸ **getBuyTokenAmount**(`sellAmount`: BigNumber.Value, `sellGold`: boolean): *Promise‹BigNumber›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:128](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L128)* - -**`dev`** Returns the amount of buyToken a user would get for sellAmount of sellToken - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`sellAmount` | BigNumber.Value | The amount of sellToken the user is selling to the exchange | -`sellGold` | boolean | `true` if gold is the sell token | - -**Returns:** *Promise‹BigNumber›* - -The corresponding buyToken amount. - -___ - -### getConfig - -▸ **getConfig**(): *Promise‹[ExchangeConfig](../interfaces/_wrappers_exchange_.exchangeconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:281](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L281)* - -**`dev`** Returns the current configuration of the exchange contract - -**Returns:** *Promise‹[ExchangeConfig](../interfaces/_wrappers_exchange_.exchangeconfig.md)›* - -ExchangeConfig object - -___ - -### getExchangeRate - -▸ **getExchangeRate**(`buyAmount`: BigNumber.Value, `sellGold`: boolean): *Promise‹BigNumber›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:317](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L317)* - -Returns the exchange rate estimated at buyAmount. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`buyAmount` | BigNumber.Value | The amount of buyToken in wei to estimate the exchange rate at | -`sellGold` | boolean | `true` if gold is the sell token | - -**Returns:** *Promise‹BigNumber›* - -The exchange rate (number of sellTokens received for one buyToken). - -___ - -### getGoldExchangeRate - -▸ **getGoldExchangeRate**(`buyAmount`: BigNumber.Value): *Promise‹BigNumber‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:343](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L343)* - -Returns the exchange rate for CELO estimated at the buyAmount - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`buyAmount` | BigNumber.Value | The amount of CELO in wei to estimate the exchange rate at | - -**Returns:** *Promise‹BigNumber‹››* - -The exchange rate (number of stable tokens received for one CELO) - -___ - -### getHumanReadableConfig - -▸ **getHumanReadableConfig**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:302](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L302)* - -**`dev`** Returns human readable configuration of the exchange contract - -**Returns:** *Promise‹object›* - -ExchangeConfig object - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹Exchange›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹Exchange› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getSellTokenAmount - -▸ **getSellTokenAmount**(`buyAmount`: BigNumber.Value, `sellGold`: boolean): *Promise‹BigNumber›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:144](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L144)* - -Returns the amount of sellToken a user would need to exchange to receive buyAmount of -buyToken. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`buyAmount` | BigNumber.Value | The amount of buyToken the user would like to purchase. | -`sellGold` | boolean | `true` if gold is the sell token | - -**Returns:** *Promise‹BigNumber›* - -The corresponding sellToken amount. - -___ - -### getStableExchangeRate - -▸ **getStableExchangeRate**(`buyAmount`: BigNumber.Value): *Promise‹BigNumber‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:327](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L327)* - -Returns the exchange rate for the stable token estimated at the buyAmount - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`buyAmount` | BigNumber.Value | The amount of the stable token in wei to estimate the exchange rate at | - -**Returns:** *Promise‹BigNumber‹››* - -The exchange rate (number of CELO received for one stable token) - -___ - -### quoteGoldBuy - -▸ **quoteGoldBuy**(`buyAmount`: BigNumber.Value): *Promise‹BigNumber‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:275](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L275)* - -Returns the amount of the stable token a user would need to exchange to receive buyAmount of -CELO. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`buyAmount` | BigNumber.Value | The amount of CELO the user would like to purchase. | - -**Returns:** *Promise‹BigNumber‹››* - -The corresponding stable token amount. - -___ - -### quoteGoldSell - -▸ **quoteGoldSell**(`sellAmount`: BigNumber.Value): *Promise‹BigNumber‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:249](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L249)* - -Returns the amount of the stable token a user would get for sellAmount of CELO - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`sellAmount` | BigNumber.Value | The amount of CELO the user is selling to the exchange | - -**Returns:** *Promise‹BigNumber‹››* - -The corresponding stable token amount. - -___ - -### quoteStableBuy - -▸ **quoteStableBuy**(`buyAmount`: BigNumber.Value): *Promise‹BigNumber‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:257](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L257)* - -Returns the amount of CELO a user would need to exchange to receive buyAmount of -the stable token. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`buyAmount` | BigNumber.Value | The amount of the stable token the user would like to purchase. | - -**Returns:** *Promise‹BigNumber‹››* - -The corresponding CELO amount. - -___ - -### quoteStableSell - -▸ **quoteStableSell**(`sellAmount`: BigNumber.Value): *Promise‹BigNumber‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:233](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L233)* - -Returns the amount of CELO a user would get for sellAmount of the stable token - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`sellAmount` | BigNumber.Value | The amount of the stable token the user is selling to the exchange | - -**Returns:** *Promise‹BigNumber‹››* - -The corresponding CELO amount. - -___ - -### sellGold - -▸ **sellGold**(`amount`: BigNumber.Value, `minStableAmount`: BigNumber.Value): *CeloTransactionObject‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:173](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L173)* - -Sell amount of CELO in exchange for at least minStableAmount of the stable token -Requires the amount to have been approved to the exchange - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`amount` | BigNumber.Value | The amount of CELO the user is selling to the exchange | -`minStableAmount` | BigNumber.Value | The minimum amount of the stable token the user has to receive for this transaction to succeed | - -**Returns:** *CeloTransactionObject‹string›* - -___ - -### sellStable - -▸ **sellStable**(`amount`: BigNumber.Value, `minGoldAmount`: BigNumber.Value): *CeloTransactionObject‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:183](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L183)* - -Sell amount of the stable token in exchange for at least minGoldAmount of CELO -Requires the amount to have been approved to the exchange - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`amount` | BigNumber.Value | The amount of the stable token the user is selling to the exchange | -`minGoldAmount` | BigNumber.Value | The minimum amount of CELO the user has to receive for this transaction to succeed | - -**Returns:** *CeloTransactionObject‹string›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_freezer_.freezerwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_freezer_.freezerwrapper.md deleted file mode 100644 index fa4d473e2dc..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_freezer_.freezerwrapper.md +++ /dev/null @@ -1,198 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Freezer"](../modules/_wrappers_freezer_.md) › [FreezerWrapper](_wrappers_freezer_.freezerwrapper.md) - -# Class: FreezerWrapper - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹Freezer› - - ↳ **FreezerWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_freezer_.freezerwrapper.md#constructor) - -### Properties - -* [eventTypes](_wrappers_freezer_.freezerwrapper.md#eventtypes) -* [events](_wrappers_freezer_.freezerwrapper.md#events) -* [freeze](_wrappers_freezer_.freezerwrapper.md#freeze) -* [isFrozen](_wrappers_freezer_.freezerwrapper.md#isfrozen) -* [methodIds](_wrappers_freezer_.freezerwrapper.md#methodids) -* [unfreeze](_wrappers_freezer_.freezerwrapper.md#unfreeze) - -### Accessors - -* [address](_wrappers_freezer_.freezerwrapper.md#address) - -### Methods - -* [getPastEvents](_wrappers_freezer_.freezerwrapper.md#getpastevents) -* [version](_wrappers_freezer_.freezerwrapper.md#version) - -## Constructors - -### constructor - -\+ **new FreezerWrapper**(`connection`: Connection, `contract`: Freezer): *[FreezerWrapper](_wrappers_freezer_.freezerwrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | Freezer | - -**Returns:** *[FreezerWrapper](_wrappers_freezer_.freezerwrapper.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *Freezer["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### freeze - -• **freeze**: *function* = proxySend(this.connection, this.contract.methods.freeze) - -*Defined in [packages/sdk/contractkit/src/wrappers/Freezer.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Freezer.ts#L5)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isFrozen - -• **isFrozen**: *function* = proxyCall(this.contract.methods.isFrozen) - -*Defined in [packages/sdk/contractkit/src/wrappers/Freezer.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Freezer.ts#L7)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### unfreeze - -• **unfreeze**: *function* = proxySend(this.connection, this.contract.methods.unfreeze) - -*Defined in [packages/sdk/contractkit/src/wrappers/Freezer.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Freezer.ts#L6)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹Freezer›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹Freezer› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md deleted file mode 100644 index b2943ae8ab1..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md +++ /dev/null @@ -1,260 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GasPriceMinimum"](../modules/_wrappers_gaspriceminimum_.md) › [GasPriceMinimumWrapper](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md) - -# Class: GasPriceMinimumWrapper - -Stores the gas price minimum - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹GasPriceMinimum› - - ↳ **GasPriceMinimumWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#constructor) - -### Properties - -* [adjustmentSpeed](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#adjustmentspeed) -* [eventTypes](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#eventtypes) -* [events](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#events) -* [gasPriceMinimum](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#gaspriceminimum) -* [getGasPriceMinimum](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#getgaspriceminimum) -* [methodIds](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#methodids) -* [targetDensity](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#targetdensity) - -### Accessors - -* [address](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#address) - -### Methods - -* [getConfig](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#getconfig) -* [getPastEvents](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#getpastevents) -* [version](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md#version) - -## Constructors - -### constructor - -\+ **new GasPriceMinimumWrapper**(`connection`: Connection, `contract`: GasPriceMinimum): *[GasPriceMinimumWrapper](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | GasPriceMinimum | - -**Returns:** *[GasPriceMinimumWrapper](_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md)* - -## Properties - -### adjustmentSpeed - -• **adjustmentSpeed**: *function* = proxyCall( - this.contract.methods.adjustmentSpeed, - undefined, - fixidityValueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts#L44)* - -Query adjustment speed parameter - -**`returns`** multiplier that impacts how quickly gas price minimum is adjusted. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *GasPriceMinimum["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### gasPriceMinimum - -• **gasPriceMinimum**: *function* = proxyCall(this.contract.methods.gasPriceMinimum, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts#L19)* - -Query current gas price minimum in CELO. - -**`returns`** current gas price minimum in CELO - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getGasPriceMinimum - -• **getGasPriceMinimum**: *function* = proxyCall( - this.contract.methods.getGasPriceMinimum, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts#L25)* - -Query current gas price minimum. - -**`returns`** current gas price minimum in the requested currency - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### targetDensity - -• **targetDensity**: *function* = proxyCall( - this.contract.methods.targetDensity, - undefined, - fixidityValueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts#L35)* - -Query target density parameter. - -**`returns`** the current block density targeted by the gas price minimum algorithm. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getConfig - -▸ **getConfig**(): *Promise‹[GasPriceMinimumConfig](../interfaces/_wrappers_gaspriceminimum_.gaspriceminimumconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts#L52)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[GasPriceMinimumConfig](../interfaces/_wrappers_gaspriceminimum_.gaspriceminimumconfig.md)›* - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹GasPriceMinimum›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹GasPriceMinimum› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_goldtokenwrapper_.goldtokenwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_goldtokenwrapper_.goldtokenwrapper.md deleted file mode 100644 index b0186a1d327..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_goldtokenwrapper_.goldtokenwrapper.md +++ /dev/null @@ -1,476 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GoldTokenWrapper"](../modules/_wrappers_goldtokenwrapper_.md) › [GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md) - -# Class: GoldTokenWrapper - -ERC-20 contract for Celo native currency. - -## Hierarchy - - ↳ [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md)‹GoldToken› - - ↳ **GoldTokenWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#constructor) - -### Properties - -* [allowance](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#allowance) -* [approve](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#approve) -* [decimals](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#decimals) -* [decreaseAllowance](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#decreaseallowance) -* [eventTypes](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#eventtypes) -* [events](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#events) -* [increaseAllowance](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#increaseallowance) -* [methodIds](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#methodids) -* [name](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#name) -* [symbol](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#symbol) -* [totalSupply](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#totalsupply) -* [transfer](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#transfer) -* [transferFrom](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#transferfrom) -* [transferWithComment](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#transferwithcomment) - -### Accessors - -* [address](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#address) - -### Methods - -* [balanceOf](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#balanceof) -* [getPastEvents](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#getpastevents) -* [version](_wrappers_goldtokenwrapper_.goldtokenwrapper.md#version) - -## Constructors - -### constructor - -\+ **new GoldTokenWrapper**(`connection`: Connection, `contract`: GoldToken): *[GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | GoldToken | - -**Returns:** *[GoldTokenWrapper](_wrappers_goldtokenwrapper_.goldtokenwrapper.md)* - -## Properties - -### allowance - -• **allowance**: *function* = proxyCall(this.contract.methods.allowance, undefined, valueToBigNumber) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[allowance](_wrappers_erc20wrapper_.erc20wrapper.md#allowance)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L18)* - -Querying allowance. - -**`param`** Account who has given the allowance. - -**`param`** Address of account to whom the allowance was given. - -**`returns`** Amount of allowance. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### approve - -• **approve**: *function* = proxySend(this.connection, this.contract.methods.approve) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[approve](_wrappers_erc20wrapper_.erc20wrapper.md#approve)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L32)* - -Approve a user to transfer the token on behalf of another user. - -**`param`** The address which is being approved to spend the token. - -**`param`** The amount of the token approved to the spender. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### decimals - -• **decimals**: *function* = proxyCall(this.contract.methods.decimals, undefined, valueToInt) - -*Inherited from [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md).[decimals](_wrappers_celotokenwrapper_.celotokenwrapper.md#decimals)* - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L29)* - -Returns the number of decimals used in the token. - -**`returns`** Number of decimals. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### decreaseAllowance - -• **decreaseAllowance**: *function* = proxySend(this.connection, this.contract.methods.decreaseAllowance) - -*Defined in [packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts#L37)* - -Decreases the allowance of another user. - -**`param`** The address which is being approved to spend CELO. - -**`param`** The decrement of the amount of CELO approved to the spender. - -**`returns`** true if success. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *GoldToken["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### increaseAllowance - -• **increaseAllowance**: *function* = proxySend( - this.connection, - this.contract.methods.increaseAllowance, - tupleParser(stringIdentity, valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts#L26)* - -Increases the allowance of another user. - -**`param`** The address which is being approved to spend CELO. - -**`param`** The increment of the amount of CELO approved to the spender. - -**`returns`** true if success. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### name - -• **name**: *function* = proxyCall(this.contract.methods.name) - -*Inherited from [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md).[name](_wrappers_celotokenwrapper_.celotokenwrapper.md#name)* - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L18)* - -Returns the name of the token. - -**`returns`** Name of the token. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### symbol - -• **symbol**: *function* = proxyCall(this.contract.methods.symbol) - -*Inherited from [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md).[symbol](_wrappers_celotokenwrapper_.celotokenwrapper.md#symbol)* - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L24)* - -Returns the three letter symbol of the token. - -**`returns`** Symbol of the token. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### totalSupply - -• **totalSupply**: *function* = proxyCall(this.contract.methods.totalSupply, undefined, valueToBigNumber) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[totalSupply](_wrappers_erc20wrapper_.erc20wrapper.md#totalsupply)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L24)* - -Returns the total supply of the token, that is, the amount of tokens currently minted. - -**`returns`** Total supply. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transfer - -• **transfer**: *function* = proxySend(this.connection, this.contract.methods.transfer) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[transfer](_wrappers_erc20wrapper_.erc20wrapper.md#transfer)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L40)* - -Transfers the token from one address to another. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transferFrom - -• **transferFrom**: *function* = proxySend(this.connection, this.contract.methods.transferFrom) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[transferFrom](_wrappers_erc20wrapper_.erc20wrapper.md#transferfrom)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L49)* - -Transfers the token from one address to another on behalf of a user. - -**`param`** The address to transfer the token from. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transferWithComment - -• **transferWithComment**: *function* = proxySend(this.connection, this.contract.methods.transferWithComment) - -*Inherited from [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md).[transferWithComment](_wrappers_celotokenwrapper_.celotokenwrapper.md#transferwithcomment)* - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L38)* - -Transfers the token from one address to another with a comment. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`param`** The transfer comment - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### balanceOf - -▸ **balanceOf**(`account`: Address): *Promise‹BigNumber‹››* - -*Overrides [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[balanceOf](_wrappers_erc20wrapper_.erc20wrapper.md#balanceof)* - -*Defined in [packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts#L47)* - -Gets the balance of the specified address. -WARNING: The actual call to the Gold contract of the balanceOf: -`balanceOf = proxyCall(this.contract.methods.balanceOf, undefined, valueToBigNumber)` -has issues with web3. Keep the one calling getBalance - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹BigNumber‹››* - -The balance of the specified address. - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹GoldToken›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹GoldToken› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_governance_.governancewrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_governance_.governancewrapper.md deleted file mode 100644 index f70c87cee21..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_governance_.governancewrapper.md +++ /dev/null @@ -1,1502 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [GovernanceWrapper](_wrappers_governance_.governancewrapper.md) - -# Class: GovernanceWrapper - -Contract managing voting for governance proposals. - -## Hierarchy - - ↳ [BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md)‹Governance› - - ↳ **GovernanceWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_governance_.governancewrapper.md#constructor) - -### Properties - -* [approveHotfix](_wrappers_governance_.governancewrapper.md#approvehotfix) -* [concurrentProposals](_wrappers_governance_.governancewrapper.md#concurrentproposals) -* [dequeueFrequency](_wrappers_governance_.governancewrapper.md#dequeuefrequency) -* [dequeueProposalsIfReady](_wrappers_governance_.governancewrapper.md#dequeueproposalsifready) -* [eventTypes](_wrappers_governance_.governancewrapper.md#eventtypes) -* [events](_wrappers_governance_.governancewrapper.md#events) -* [executeHotfix](_wrappers_governance_.governancewrapper.md#executehotfix) -* [getApprover](_wrappers_governance_.governancewrapper.md#getapprover) -* [getProposalMetadata](_wrappers_governance_.governancewrapper.md#getproposalmetadata) -* [getProposalTransaction](_wrappers_governance_.governancewrapper.md#getproposaltransaction) -* [getQueue](_wrappers_governance_.governancewrapper.md#getqueue) -* [getRefundedDeposits](_wrappers_governance_.governancewrapper.md#getrefundeddeposits) -* [getUpvoteRecord](_wrappers_governance_.governancewrapper.md#getupvoterecord) -* [getUpvotes](_wrappers_governance_.governancewrapper.md#getupvotes) -* [getVotes](_wrappers_governance_.governancewrapper.md#getvotes) -* [hotfixWhitelistValidatorTally](_wrappers_governance_.governancewrapper.md#hotfixwhitelistvalidatortally) -* [isApproved](_wrappers_governance_.governancewrapper.md#isapproved) -* [isDequeuedProposalExpired](_wrappers_governance_.governancewrapper.md#isdequeuedproposalexpired) -* [isHotfixPassing](_wrappers_governance_.governancewrapper.md#ishotfixpassing) -* [isHotfixWhitelistedBy](_wrappers_governance_.governancewrapper.md#ishotfixwhitelistedby) -* [isProposalPassing](_wrappers_governance_.governancewrapper.md#isproposalpassing) -* [isQueued](_wrappers_governance_.governancewrapper.md#isqueued) -* [isQueuedProposalExpired](_wrappers_governance_.governancewrapper.md#isqueuedproposalexpired) -* [isVoting](_wrappers_governance_.governancewrapper.md#isvoting) -* [lastDequeue](_wrappers_governance_.governancewrapper.md#lastdequeue) -* [methodIds](_wrappers_governance_.governancewrapper.md#methodids) -* [minDeposit](_wrappers_governance_.governancewrapper.md#mindeposit) -* [minQuorumSize](_wrappers_governance_.governancewrapper.md#minquorumsize) -* [prepareHotfix](_wrappers_governance_.governancewrapper.md#preparehotfix) -* [proposalExists](_wrappers_governance_.governancewrapper.md#proposalexists) -* [propose](_wrappers_governance_.governancewrapper.md#propose) -* [queueExpiry](_wrappers_governance_.governancewrapper.md#queueexpiry) -* [revokeVotes](_wrappers_governance_.governancewrapper.md#revokevotes) -* [whitelistHotfix](_wrappers_governance_.governancewrapper.md#whitelisthotfix) -* [withdraw](_wrappers_governance_.governancewrapper.md#withdraw) - -### Accessors - -* [address](_wrappers_governance_.governancewrapper.md#address) - -### Methods - -* [approve](_wrappers_governance_.governancewrapper.md#approve) -* [execute](_wrappers_governance_.governancewrapper.md#execute) -* [getApprovalStatus](_wrappers_governance_.governancewrapper.md#getapprovalstatus) -* [getApproverMultisig](_wrappers_governance_.governancewrapper.md#getapprovermultisig) -* [getConfig](_wrappers_governance_.governancewrapper.md#getconfig) -* [getConstitution](_wrappers_governance_.governancewrapper.md#getconstitution) -* [getDequeue](_wrappers_governance_.governancewrapper.md#getdequeue) -* [getHotfixRecord](_wrappers_governance_.governancewrapper.md#gethotfixrecord) -* [getHumanReadableConfig](_wrappers_governance_.governancewrapper.md#gethumanreadableconfig) -* [getHumanReadableProposalMetadata](_wrappers_governance_.governancewrapper.md#gethumanreadableproposalmetadata) -* [getParticipationParameters](_wrappers_governance_.governancewrapper.md#getparticipationparameters) -* [getPastEvents](_wrappers_governance_.governancewrapper.md#getpastevents) -* [getProposal](_wrappers_governance_.governancewrapper.md#getproposal) -* [getProposalRecord](_wrappers_governance_.governancewrapper.md#getproposalrecord) -* [getProposalStage](_wrappers_governance_.governancewrapper.md#getproposalstage) -* [getSupport](_wrappers_governance_.governancewrapper.md#getsupport) -* [getTransactionConstitution](_wrappers_governance_.governancewrapper.md#gettransactionconstitution) -* [getVoteRecord](_wrappers_governance_.governancewrapper.md#getvoterecord) -* [getVoteRecords](_wrappers_governance_.governancewrapper.md#getvoterecords) -* [getVoteValue](_wrappers_governance_.governancewrapper.md#getvotevalue) -* [getVoteWeight](_wrappers_governance_.governancewrapper.md#getvoteweight) -* [getVoter](_wrappers_governance_.governancewrapper.md#getvoter) -* [humanReadableProposalSchedule](_wrappers_governance_.governancewrapper.md#humanreadableproposalschedule) -* [isUpvoting](_wrappers_governance_.governancewrapper.md#isupvoting) -* [isVotingReferendum](_wrappers_governance_.governancewrapper.md#isvotingreferendum) -* [proposalSchedule](_wrappers_governance_.governancewrapper.md#proposalschedule) -* [revokeUpvote](_wrappers_governance_.governancewrapper.md#revokeupvote) -* [sortedQueue](_wrappers_governance_.governancewrapper.md#sortedqueue) -* [stageDurations](_wrappers_governance_.governancewrapper.md#stagedurations) -* [upvote](_wrappers_governance_.governancewrapper.md#upvote) -* [version](_wrappers_governance_.governancewrapper.md#version) -* [vote](_wrappers_governance_.governancewrapper.md#vote) - -## Constructors - -### constructor - -\+ **new GovernanceWrapper**(`connection`: Connection, `contract`: Governance, `contracts`: ContractWrappersForVotingAndRules): *[GovernanceWrapper](_wrappers_governance_.governancewrapper.md)* - -*Inherited from [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md).[constructor](_wrappers_validators_.validatorswrapper.md#constructor)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | Governance | -`contracts` | ContractWrappersForVotingAndRules | - -**Returns:** *[GovernanceWrapper](_wrappers_governance_.governancewrapper.md)* - -## Properties - -### approveHotfix - -• **approveHotfix**: *function* = proxySend( - this.connection, - this.contract.methods.approveHotfix, - tupleParser(bufferToHex) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:893](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L893)* - -Marks the given hotfix approved by `sender`. - -**`param`** keccak256 hash of hotfix's associated abi encoded transactions - -**`notice`** Only the `approver` address will succeed in sending this transaction - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### concurrentProposals - -• **concurrentProposals**: *function* = proxyCall( - this.contract.methods.concurrentProposals, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:156](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L156)* - -Querying number of possible concurrent proposals. - -**`returns`** Current number of possible concurrent proposals. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### dequeueFrequency - -• **dequeueFrequency**: *function* = proxyCall(this.contract.methods.dequeueFrequency, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:170](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L170)* - -Query proposal dequeue frequency. - -**`returns`** Current proposal dequeue frequency in seconds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### dequeueProposalsIfReady - -• **dequeueProposalsIfReady**: *function* = proxySend( - this.connection, - this.contract.methods.dequeueProposalsIfReady - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:659](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L659)* - -Dequeues any queued proposals if `dequeueFrequency` seconds have elapsed since the last dequeue - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *Governance["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### executeHotfix - -• **executeHotfix**: *function* = proxySend(this.connection, this.contract.methods.executeHotfix, hotfixToParams) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:915](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L915)* - -Executes a given sequence of transactions if the corresponding hash is prepared and approved. - -**`param`** Governance hotfix proposal - -**`param`** Secret which guarantees uniqueness of hash - -**`notice`** keccak256 hash of abi encoded transactions computed on-chain - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getApprover - -• **getApprover**: *function* = proxyCall(this.contract.methods.approver) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:382](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L382)* - -Returns the approver address for proposals and hotfixes. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getProposalMetadata - -• **getProposalMetadata**: *function* = proxyCall( - this.contract.methods.getProposal, - tupleParser(valueToString), - (res) => ({ - proposer: res[0], - deposit: valueToBigNumber(res[1]), - timestamp: valueToBigNumber(res[2]), - transactionCount: valueToInt(res[3]), - descriptionURL: res[4], - }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:310](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L310)* - -Returns the metadata associated with a given proposal. - -**`param`** Governance proposal UUID - -#### Type declaration: - -▸ (`proposalID`: BigNumber.Value): *Promise‹[ProposalMetadata](../interfaces/_wrappers_governance_.proposalmetadata.md)›* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | - -___ - -### getProposalTransaction - -• **getProposalTransaction**: *function* = proxyCall( - this.contract.methods.getProposalTransaction, - tupleParser(valueToString, valueToString), - (res) => ({ - value: res[0], - to: res[1], - input: solidityBytesToString(res[2]), - }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:339](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L339)* - -Returns the transaction at the given index associated with a given proposal. - -**`param`** Governance proposal UUID - -**`param`** Transaction index - -#### Type declaration: - -▸ (`proposalID`: BigNumber.Value, `txIndex`: number): *Promise‹[ProposalTransaction](../modules/_wrappers_governance_.md#proposaltransaction)›* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | -`txIndex` | number | - -___ - -### getQueue - -• **getQueue**: *function* = proxyCall(this.contract.methods.getQueue, undefined, (arraysObject) => - zip( - (_id, _upvotes) => ({ - proposalID: valueToBigNumber(_id), - upvotes: valueToBigNumber(_upvotes), - }), - arraysObject[0], - arraysObject[1] - ) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:605](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L605)* - -Returns the proposal queue as list of upvote records. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getRefundedDeposits - -• **getRefundedDeposits**: *function* = proxyCall( - this.contract.methods.refundedDeposits, - tupleParser(stringIdentity), - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:572](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L572)* - -Returns the value of proposal deposits that have been refunded. - -**`param`** Governance proposer address. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getUpvoteRecord - -• **getUpvoteRecord**: *function* = proxyCall( - this.contract.methods.getUpvoteRecord, - tupleParser(identity), - (o) => ({ - proposalID: valueToBigNumber(o[0]), - upvotes: valueToBigNumber(o[1]), - }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:523](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L523)* - -Returns the current upvoted governance proposal ID and applied vote weight (zeroes if none). - -**`param`** Address of upvoter - -#### Type declaration: - -▸ (`upvoter`: Address): *Promise‹[UpvoteRecord](../interfaces/_wrappers_governance_.upvoterecord.md)›* - -**Parameters:** - -Name | Type | ------- | ------ | -`upvoter` | Address | - -___ - -### getUpvotes - -• **getUpvotes**: *function* = proxyCall( - this.contract.methods.getUpvotes, - tupleParser(valueToString), - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:582](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L582)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getVotes - -• **getVotes**: *function* = proxyCall( - this.contract.methods.getVoteTotals, - tupleParser(valueToString), - (res): Votes => ({ - [VoteValue.Yes]: valueToBigNumber(res[0]), - [VoteValue.No]: valueToBigNumber(res[1]), - [VoteValue.Abstain]: valueToBigNumber(res[2]), - }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:592](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L592)* - -Returns the yes, no, and abstain votes applied to a given proposal. - -**`param`** Governance proposal UUID - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### hotfixWhitelistValidatorTally - -• **hotfixWhitelistValidatorTally**: *function* = proxyCall( - this.contract.methods.hotfixWhitelistValidatorTally, - tupleParser(bufferToHex) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:873](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L873)* - -Returns the number of validators that whitelisted the hotfix - -**`param`** keccak256 hash of hotfix's associated abi encoded transactions - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isApproved - -• **isApproved**: *function* = proxyCall( - this.contract.methods.isApproved, - tupleParser(valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:356](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L356)* - -Returns whether a given proposal is approved. - -**`param`** Governance proposal UUID - -#### Type declaration: - -▸ (`proposalID`: BigNumber.Value): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | - -___ - -### isDequeuedProposalExpired - -• **isDequeuedProposalExpired**: *function* = proxyCall( - this.contract.methods.isDequeuedProposalExpired, - tupleParser(valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:365](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L365)* - -Returns whether a dequeued proposal is expired. - -**`param`** Governance proposal UUID - -#### Type declaration: - -▸ (`proposalID`: BigNumber.Value): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | - -___ - -### isHotfixPassing - -• **isHotfixPassing**: *function* = proxyCall(this.contract.methods.isHotfixPassing, tupleParser(bufferToHex)) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:858](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L858)* - -Returns whether a given hotfix can be passed. - -**`param`** keccak256 hash of hotfix's associated abi encoded transactions - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isHotfixWhitelistedBy - -• **isHotfixWhitelistedBy**: *function* = proxyCall( - this.contract.methods.isHotfixWhitelistedBy, - tupleParser(bufferToHex, (s: Address) => identity
(s)) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:849](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L849)* - -Returns whether a given hotfix has been whitelisted by a given address. - -**`param`** keccak256 hash of hotfix's associated abi encoded transactions - -**`param`** address of whitelister - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isProposalPassing - -• **isProposalPassing**: *function* = proxyCall(this.contract.methods.isProposalPassing, tupleParser(valueToString)) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:496](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L496)* - -Returns whether a given proposal is passing relative to the constitution's threshold. - -**`param`** Governance proposal UUID - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isQueued - -• **isQueued**: *function* = proxyCall(this.contract.methods.isQueued, tupleParser(valueToString)) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:566](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L566)* - -Returns whether a given proposal is queued. - -**`param`** Governance proposal UUID - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isQueuedProposalExpired - -• **isQueuedProposalExpired**: *function* = proxyCall( - this.contract.methods.isQueuedProposalExpired, - tupleParser(valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:374](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L374)* - -Returns whether a dequeued proposal is expired. - -**`param`** Governance proposal UUID - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isVoting - -• **isVoting**: *function* = proxyCall(this.contract.methods.isVoting) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:257](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L257)* - -Returns whether or not a particular account is voting on proposals. - -**`param`** The address of the account. - -**`returns`** Whether or not the account is voting on proposals. - -#### Type declaration: - -▸ (`account`: string): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | - -___ - -### lastDequeue - -• **lastDequeue**: *function* = proxyCall(this.contract.methods.lastDequeue, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:165](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L165)* - -Query time of last proposal dequeue - -**`returns`** Time of last dequeue - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### minDeposit - -• **minDeposit**: *function* = proxyCall(this.contract.methods.minDeposit, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:175](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L175)* - -Query minimum deposit required to make a proposal. - -**`returns`** Current minimum deposit. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### minQuorumSize - -• **minQuorumSize**: *function* = proxyCall( - this.contract.methods.minQuorumSizeInCurrentSet, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:863](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L863)* - -Returns the number of validators required to reach a Byzantine quorum - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### prepareHotfix - -• **prepareHotfix**: *function* = proxySend( - this.connection, - this.contract.methods.prepareHotfix, - tupleParser(bufferToHex) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:903](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L903)* - -Marks the given hotfix prepared for current epoch if quorum of validators have whitelisted it. - -**`param`** keccak256 hash of hotfix's associated abi encoded transactions - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### proposalExists - -• **proposalExists**: *function* = proxyCall( - this.contract.methods.proposalExists, - tupleParser(valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:514](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L514)* - -Returns whether a governance proposal exists with the given ID. - -**`param`** Governance proposal UUID - -#### Type declaration: - -▸ (`proposalID`: BigNumber.Value): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | - -___ - -### propose - -• **propose**: *function* = proxySend(this.connection, this.contract.methods.propose, proposalToParams) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:508](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L508)* - -Submits a new governance proposal. - -**`param`** Governance proposal - -**`param`** A URL where further information about the proposal can be viewed - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### queueExpiry - -• **queueExpiry**: *function* = proxyCall(this.contract.methods.queueExpiry, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:180](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L180)* - -Query queue expiry parameter. - -**`returns`** The number of seconds a proposal can stay in the queue before expiring. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### revokeVotes - -• **revokeVotes**: *function* = proxySend(this.connection, this.contract.methods.revokeVotes) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:806](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L806)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### whitelistHotfix - -• **whitelistHotfix**: *function* = proxySend( - this.connection, - this.contract.methods.whitelistHotfix, - tupleParser(bufferToHex) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:882](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L882)* - -Marks the given hotfix whitelisted by `sender`. - -**`param`** keccak256 hash of hotfix's associated abi encoded transactions - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### withdraw - -• **withdraw**: *function* = proxySend(this.connection, this.contract.methods.withdraw) - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:501](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L501)* - -Withdraws refunded proposal deposits. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### approve - -▸ **approve**(`proposalID`: BigNumber.Value): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:784](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L784)* - -Approves given proposal, allowing it to later move to `referendum`. - -**`notice`** Only the `approver` address will succeed in sending this transaction - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`proposalID` | BigNumber.Value | Governance proposal UUID | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### execute - -▸ **execute**(`proposalID`: BigNumber.Value): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:823](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L823)* - -Executes a given proposal's associated transactions. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`proposalID` | BigNumber.Value | Governance proposal UUID | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### getApprovalStatus - -▸ **getApprovalStatus**(`proposalID`: BigNumber.Value): *Promise‹ApprovalStatus›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:448](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L448)* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | - -**Returns:** *Promise‹ApprovalStatus›* - -___ - -### getApproverMultisig - -▸ **getApproverMultisig**(): *Promise‹[MultiSigWrapper](_wrappers_multisig_.multisigwrapper.md)‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:387](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L387)* - -Returns the approver multisig contract for proposals and hotfixes. - -**Returns:** *Promise‹[MultiSigWrapper](_wrappers_multisig_.multisigwrapper.md)‹››* - -___ - -### getConfig - -▸ **getConfig**(): *Promise‹[GovernanceConfig](../interfaces/_wrappers_governance_.governanceconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:262](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L262)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[GovernanceConfig](../interfaces/_wrappers_governance_.governanceconfig.md)›* - -___ - -### getConstitution - -▸ **getConstitution**(`proposal`: [Proposal](../modules/_wrappers_governance_.md#proposal)): *Promise‹BigNumber›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:211](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L211)* - -Returns the required ratio of yes:no votes needed to exceed in order to pass the proposal. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`proposal` | [Proposal](../modules/_wrappers_governance_.md#proposal) | Proposal to determine the constitution for running. | - -**Returns:** *Promise‹BigNumber›* - -___ - -### getDequeue - -▸ **getDequeue**(`filterZeroes`: boolean): *Promise‹BigNumber‹›[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:619](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L619)* - -Returns the (existing) proposal dequeue as list of proposal IDs. - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`filterZeroes` | boolean | false | - -**Returns:** *Promise‹BigNumber‹›[]›* - -___ - -### getHotfixRecord - -▸ **getHotfixRecord**(`hash`: Buffer): *Promise‹[HotfixRecord](../interfaces/_wrappers_governance_.hotfixrecord.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:835](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L835)* - -Returns approved, executed, and prepared status associated with a given hotfix. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`hash` | Buffer | keccak256 hash of hotfix's associated abi encoded transactions | - -**Returns:** *Promise‹[HotfixRecord](../interfaces/_wrappers_governance_.hotfixrecord.md)›* - -___ - -### getHumanReadableConfig - -▸ **getHumanReadableConfig**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:285](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L285)* - -**`dev`** Returns human readable configuration of the governance contract - -**Returns:** *Promise‹object›* - -GovernanceConfig object - -___ - -### getHumanReadableProposalMetadata - -▸ **getHumanReadableProposalMetadata**(`proposalID`: BigNumber.Value): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:326](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L326)* - -Returns the human readable metadata associated with a given proposal. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`proposalID` | BigNumber.Value | Governance proposal UUID | - -**Returns:** *Promise‹object›* - -___ - -### getParticipationParameters - -▸ **getParticipationParameters**(): *Promise‹[ParticipationParameters](../interfaces/_wrappers_governance_.participationparameters.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:223](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L223)* - -Returns the participation parameters. - -**Returns:** *Promise‹[ParticipationParameters](../interfaces/_wrappers_governance_.participationparameters.md)›* - -The participation parameters. - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹Governance›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹Governance› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getProposal - -▸ **getProposal**(`proposalID`: BigNumber.Value): *Promise‹[Proposal](../modules/_wrappers_governance_.md#proposal)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:442](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L442)* - -Returns the proposal associated with a given id. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`proposalID` | BigNumber.Value | Governance proposal UUID | - -**Returns:** *Promise‹[Proposal](../modules/_wrappers_governance_.md#proposal)›* - -___ - -### getProposalRecord - -▸ **getProposalRecord**(`proposalID`: BigNumber.Value): *Promise‹[ProposalRecord](../interfaces/_wrappers_governance_.proposalrecord.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:465](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L465)* - -Returns the stage, metadata, upvotes, votes, and transactions associated with a given proposal. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`proposalID` | BigNumber.Value | Governance proposal UUID | - -**Returns:** *Promise‹[ProposalRecord](../interfaces/_wrappers_governance_.proposalrecord.md)›* - -___ - -### getProposalStage - -▸ **getProposalStage**(`proposalID`: BigNumber.Value): *Promise‹[ProposalStage](../enums/_wrappers_governance_.proposalstage.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:390](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L390)* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | - -**Returns:** *Promise‹[ProposalStage](../enums/_wrappers_governance_.proposalstage.md)›* - -___ - -### getSupport - -▸ **getSupport**(`proposalID`: BigNumber.Value): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:234](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L234)* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | - -**Returns:** *Promise‹object›* - -___ - -### getTransactionConstitution - -▸ **getTransactionConstitution**(`tx`: [ProposalTransaction](../modules/_wrappers_governance_.md#proposaltransaction)): *Promise‹BigNumber›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:198](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L198)* - -Returns the required ratio of yes:no votes needed to exceed in order to pass the proposal transaction. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tx` | [ProposalTransaction](../modules/_wrappers_governance_.md#proposaltransaction) | Transaction to determine the constitution for running. | - -**Returns:** *Promise‹BigNumber›* - -___ - -### getVoteRecord - -▸ **getVoteRecord**(`voter`: Address, `proposalID`: BigNumber.Value): *Promise‹[VoteRecord](../interfaces/_wrappers_governance_.voterecord.md) | null›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:546](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L546)* - -Returns the corresponding vote record - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`voter` | Address | Address of voter | -`proposalID` | BigNumber.Value | Governance proposal UUID | - -**Returns:** *Promise‹[VoteRecord](../interfaces/_wrappers_governance_.voterecord.md) | null›* - -___ - -### getVoteRecords - -▸ **getVoteRecords**(`voter`: Address): *Promise‹[VoteRecord](../interfaces/_wrappers_governance_.voterecord.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:629](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L629)* - -**Parameters:** - -Name | Type | ------- | ------ | -`voter` | Address | - -**Returns:** *Promise‹[VoteRecord](../interfaces/_wrappers_governance_.voterecord.md)[]›* - -___ - -### getVoteValue - -▸ **getVoteValue**(`proposalID`: BigNumber.Value, `voter`: Address): *Promise‹[VoteValue](../enums/_wrappers_governance_.votevalue.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:813](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L813)* - -Returns `voter`'s vote choice on a given proposal. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`proposalID` | BigNumber.Value | Governance proposal UUID | -`voter` | Address | Address of voter | - -**Returns:** *Promise‹[VoteValue](../enums/_wrappers_governance_.votevalue.md)›* - -___ - -### getVoteWeight - -▸ **getVoteWeight**(`voter`: Address): *Promise‹BigNumber‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:668](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L668)* - -Returns the number of votes that will be applied to a proposal for a given voter. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`voter` | Address | Address of voter | - -**Returns:** *Promise‹BigNumber‹››* - -___ - -### getVoter - -▸ **getVoter**(`account`: Address): *Promise‹[Voter](../interfaces/_wrappers_governance_.voter.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:643](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L643)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹[Voter](../interfaces/_wrappers_governance_.voter.md)›* - -___ - -### humanReadableProposalSchedule - -▸ **humanReadableProposalSchedule**(`proposalID`: BigNumber.Value): *Promise‹Partial‹StageDurations‹string›››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:428](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L428)* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | - -**Returns:** *Promise‹Partial‹StageDurations‹string›››* - -___ - -### isUpvoting - -▸ **isUpvoting**(`upvoter`: Address): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:532](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L532)* - -**Parameters:** - -Name | Type | ------- | ------ | -`upvoter` | Address | - -**Returns:** *Promise‹boolean›* - -___ - -### isVotingReferendum - -▸ **isVotingReferendum**(`voter`: Address): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:635](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L635)* - -**Parameters:** - -Name | Type | ------- | ------ | -`voter` | Address | - -**Returns:** *Promise‹boolean›* - -___ - -### proposalSchedule - -▸ **proposalSchedule**(`proposalID`: BigNumber.Value): *Promise‹Partial‹StageDurations‹BigNumber›››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:402](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L402)* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposalID` | BigNumber.Value | - -**Returns:** *Promise‹Partial‹StageDurations‹BigNumber›››* - -___ - -### revokeUpvote - -▸ **revokeUpvote**(`upvoter`: Address): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:771](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L771)* - -Revokes provided upvoter's upvote. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`upvoter` | Address | Address of upvoter | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### sortedQueue - -▸ **sortedQueue**(`queue`: [UpvoteRecord](../interfaces/_wrappers_governance_.upvoterecord.md)[]): *[UpvoteRecord](../interfaces/_wrappers_governance_.upvoterecord.md)[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:709](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L709)* - -**Parameters:** - -Name | Type | ------- | ------ | -`queue` | [UpvoteRecord](../interfaces/_wrappers_governance_.upvoterecord.md)[] | - -**Returns:** *[UpvoteRecord](../interfaces/_wrappers_governance_.upvoterecord.md)[]* - -___ - -### stageDurations - -▸ **stageDurations**(): *Promise‹DequeuedStageDurations›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:185](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L185)* - -Query durations of different stages in proposal lifecycle. - -**Returns:** *Promise‹DequeuedStageDurations›* - -Durations for approval, referendum and execution stages in seconds. - -___ - -### upvote - -▸ **upvote**(`proposalID`: BigNumber.Value, `upvoter`: Address): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:755](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L755)* - -Applies provided upvoter's upvote to given proposal. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`proposalID` | BigNumber.Value | Governance proposal UUID | -`upvoter` | Address | Address of upvoter | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -___ - -### vote - -▸ **vote**(`proposalID`: BigNumber.Value, `vote`: keyof typeof VoteValue): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:797](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L797)* - -Applies `sender`'s vote choice to a given proposal. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`proposalID` | BigNumber.Value | Governance proposal UUID | -`vote` | keyof typeof VoteValue | Choice to apply (yes, no, abstain) | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_grandamento_.grandamentowrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_grandamento_.grandamentowrapper.md deleted file mode 100644 index 99253b05c4b..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_grandamento_.grandamentowrapper.md +++ /dev/null @@ -1,570 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GrandaMento"](../modules/_wrappers_grandamento_.md) › [GrandaMentoWrapper](_wrappers_grandamento_.grandamentowrapper.md) - -# Class: GrandaMentoWrapper - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹GrandaMento› - - ↳ **GrandaMentoWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_grandamento_.grandamentowrapper.md#constructor) - -### Properties - -* [approveExchangeProposal](_wrappers_grandamento_.grandamentowrapper.md#approveexchangeproposal) -* [approver](_wrappers_grandamento_.grandamentowrapper.md#approver) -* [cancelExchangeProposal](_wrappers_grandamento_.grandamentowrapper.md#cancelexchangeproposal) -* [eventTypes](_wrappers_grandamento_.grandamentowrapper.md#eventtypes) -* [events](_wrappers_grandamento_.grandamentowrapper.md#events) -* [exchangeProposalCount](_wrappers_grandamento_.grandamentowrapper.md#exchangeproposalcount) -* [executeExchangeProposal](_wrappers_grandamento_.grandamentowrapper.md#executeexchangeproposal) -* [maxApprovalExchangeRateChange](_wrappers_grandamento_.grandamentowrapper.md#maxapprovalexchangeratechange) -* [methodIds](_wrappers_grandamento_.grandamentowrapper.md#methodids) -* [owner](_wrappers_grandamento_.grandamentowrapper.md#owner) -* [setApprover](_wrappers_grandamento_.grandamentowrapper.md#setapprover) -* [setMaxApprovalExchangeRateChange](_wrappers_grandamento_.grandamentowrapper.md#setmaxapprovalexchangeratechange) -* [setSpread](_wrappers_grandamento_.grandamentowrapper.md#setspread) -* [setStableTokenExchangeLimits](_wrappers_grandamento_.grandamentowrapper.md#setstabletokenexchangelimits) -* [setVetoPeriodSeconds](_wrappers_grandamento_.grandamentowrapper.md#setvetoperiodseconds) -* [spread](_wrappers_grandamento_.grandamentowrapper.md#spread) -* [vetoPeriodSeconds](_wrappers_grandamento_.grandamentowrapper.md#vetoperiodseconds) - -### Accessors - -* [address](_wrappers_grandamento_.grandamentowrapper.md#address) - -### Methods - -* [createExchangeProposal](_wrappers_grandamento_.grandamentowrapper.md#createexchangeproposal) -* [exchangeProposalExists](_wrappers_grandamento_.grandamentowrapper.md#exchangeproposalexists) -* [getActiveProposalIds](_wrappers_grandamento_.grandamentowrapper.md#getactiveproposalids) -* [getAllStableTokenLimits](_wrappers_grandamento_.grandamentowrapper.md#getallstabletokenlimits) -* [getBuyAmount](_wrappers_grandamento_.grandamentowrapper.md#getbuyamount) -* [getConfig](_wrappers_grandamento_.grandamentowrapper.md#getconfig) -* [getExchangeProposal](_wrappers_grandamento_.grandamentowrapper.md#getexchangeproposal) -* [getHumanReadableExchangeProposal](_wrappers_grandamento_.grandamentowrapper.md#gethumanreadableexchangeproposal) -* [getPastEvents](_wrappers_grandamento_.grandamentowrapper.md#getpastevents) -* [stableTokenExchangeLimits](_wrappers_grandamento_.grandamentowrapper.md#stabletokenexchangelimits) -* [version](_wrappers_grandamento_.grandamentowrapper.md#version) - -## Constructors - -### constructor - -\+ **new GrandaMentoWrapper**(`connection`: Connection, `contract`: GrandaMento): *[GrandaMentoWrapper](_wrappers_grandamento_.grandamentowrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | GrandaMento | - -**Returns:** *[GrandaMentoWrapper](_wrappers_grandamento_.grandamentowrapper.md)* - -## Properties - -### approveExchangeProposal - -• **approveExchangeProposal**: *function* = proxySend( - this.connection, - this.contract.methods.approveExchangeProposal - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L105)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### approver - -• **approver**: *function* = proxyCall(this.contract.methods.approver) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L65)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### cancelExchangeProposal - -• **cancelExchangeProposal**: *function* = proxySend(this.connection, this.contract.methods.cancelExchangeProposal) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:114](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L114)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *GrandaMento["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### exchangeProposalCount - -• **exchangeProposalCount**: *function* = proxyCall( - this.contract.methods.exchangeProposalCount, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:88](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L88)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### executeExchangeProposal - -• **executeExchangeProposal**: *function* = proxySend( - this.connection, - this.contract.methods.executeExchangeProposal - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:110](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L110)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### maxApprovalExchangeRateChange - -• **maxApprovalExchangeRateChange**: *function* = proxyCall( - this.contract.methods.maxApprovalExchangeRateChange, - undefined, - fixidityValueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L68)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### owner - -• **owner**: *function* = proxyCall(this.contract.methods.owner) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L63)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setApprover - -• **setApprover**: *function* = proxySend(this.connection, this.contract.methods.setApprover) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L66)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setMaxApprovalExchangeRateChange - -• **setMaxApprovalExchangeRateChange**: *function* = proxySend( - this.connection, - this.contract.methods.setMaxApprovalExchangeRateChange - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:73](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L73)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setSpread - -• **setSpread**: *function* = proxySend(this.connection, this.contract.methods.setSpread) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:79](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L79)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setStableTokenExchangeLimits - -• **setStableTokenExchangeLimits**: *function* = proxySend( - this.connection, - this.contract.methods.setStableTokenExchangeLimits - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:100](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L100)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setVetoPeriodSeconds - -• **setVetoPeriodSeconds**: *function* = proxySend(this.connection, this.contract.methods.setVetoPeriodSeconds) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:86](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L86)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### spread - -• **spread**: *function* = proxyCall(this.contract.methods.spread, undefined, fixidityValueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L78)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### vetoPeriodSeconds - -• **vetoPeriodSeconds**: *function* = proxyCall( - this.contract.methods.vetoPeriodSeconds, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L81)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### createExchangeProposal - -▸ **createExchangeProposal**(`stableTokenRegistryId`: [StableTokenContract](../modules/_base_.md#stabletokencontract), `sellAmount`: BigNumber, `sellCelo`: boolean): *Promise‹CeloTransactionObject‹string››* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:116](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L116)* - -**Parameters:** - -Name | Type | ------- | ------ | -`stableTokenRegistryId` | [StableTokenContract](../modules/_base_.md#stabletokencontract) | -`sellAmount` | BigNumber | -`sellCelo` | boolean | - -**Returns:** *Promise‹CeloTransactionObject‹string››* - -___ - -### exchangeProposalExists - -▸ **exchangeProposalExists**(`exchangeProposalID`: string | number): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:128](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L128)* - -**Parameters:** - -Name | Type | ------- | ------ | -`exchangeProposalID` | string | number | - -**Returns:** *Promise‹boolean›* - -___ - -### getActiveProposalIds - -▸ **getActiveProposalIds**(): *Promise‹string[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:94](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L94)* - -**Returns:** *Promise‹string[]›* - -___ - -### getAllStableTokenLimits - -▸ **getAllStableTokenLimits**(): *Promise‹AllStableConfig›* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:190](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L190)* - -**Returns:** *Promise‹AllStableConfig›* - -___ - -### getBuyAmount - -▸ **getBuyAmount**(`celoStableTokenOracleRate`: BigNumber, `sellAmount`: BigNumber, `sellCelo`: boolean): *Promise‹BigNumber›* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:204](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L204)* - -**Parameters:** - -Name | Type | ------- | ------ | -`celoStableTokenOracleRate` | BigNumber | -`sellAmount` | BigNumber | -`sellCelo` | boolean | - -**Returns:** *Promise‹BigNumber›* - -___ - -### getConfig - -▸ **getConfig**(): *Promise‹[GrandaMentoConfig](../interfaces/_wrappers_grandamento_.grandamentoconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:215](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L215)* - -**Returns:** *Promise‹[GrandaMentoConfig](../interfaces/_wrappers_grandamento_.grandamentoconfig.md)›* - -___ - -### getExchangeProposal - -▸ **getExchangeProposal**(`exchangeProposalID`: string | number): *Promise‹[ExchangeProposal](../interfaces/_wrappers_grandamento_.exchangeproposal.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:134](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L134)* - -**Parameters:** - -Name | Type | ------- | ------ | -`exchangeProposalID` | string | number | - -**Returns:** *Promise‹[ExchangeProposal](../interfaces/_wrappers_grandamento_.exchangeproposal.md)›* - -___ - -### getHumanReadableExchangeProposal - -▸ **getHumanReadableExchangeProposal**(`exchangeProposalID`: string | number): *Promise‹[ExchangeProposalReadable](../interfaces/_wrappers_grandamento_.exchangeproposalreadable.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:155](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L155)* - -**Parameters:** - -Name | Type | ------- | ------ | -`exchangeProposalID` | string | number | - -**Returns:** *Promise‹[ExchangeProposalReadable](../interfaces/_wrappers_grandamento_.exchangeproposalreadable.md)›* - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹GrandaMento›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹GrandaMento› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### stableTokenExchangeLimits - -▸ **stableTokenExchangeLimits**(`stableTokenSymbol`: StableTokenEnum): *Promise‹[StableTokenExchangeLimits](../interfaces/_wrappers_grandamento_.stabletokenexchangelimits.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:177](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L177)* - -**Parameters:** - -Name | Type | ------- | ------ | -`stableTokenSymbol` | StableTokenEnum | - -**Returns:** *Promise‹[StableTokenExchangeLimits](../interfaces/_wrappers_grandamento_.stabletokenexchangelimits.md)›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_lockedgold_.lockedgoldwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_lockedgold_.lockedgoldwrapper.md deleted file mode 100644 index df362d57e8b..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_lockedgold_.lockedgoldwrapper.md +++ /dev/null @@ -1,500 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/LockedGold"](../modules/_wrappers_lockedgold_.md) › [LockedGoldWrapper](_wrappers_lockedgold_.lockedgoldwrapper.md) - -# Class: LockedGoldWrapper - -Contract for handling deposits needed for voting. - -## Hierarchy - - ↳ [BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md)‹LockedGold› - - ↳ **LockedGoldWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_lockedgold_.lockedgoldwrapper.md#constructor) - -### Properties - -* [_relock](_wrappers_lockedgold_.lockedgoldwrapper.md#_relock) -* [eventTypes](_wrappers_lockedgold_.lockedgoldwrapper.md#eventtypes) -* [events](_wrappers_lockedgold_.lockedgoldwrapper.md#events) -* [getAccountNonvotingLockedGold](_wrappers_lockedgold_.lockedgoldwrapper.md#getaccountnonvotinglockedgold) -* [getAccountTotalLockedGold](_wrappers_lockedgold_.lockedgoldwrapper.md#getaccounttotallockedgold) -* [getTotalLockedGold](_wrappers_lockedgold_.lockedgoldwrapper.md#gettotallockedgold) -* [lock](_wrappers_lockedgold_.lockedgoldwrapper.md#lock) -* [methodIds](_wrappers_lockedgold_.lockedgoldwrapper.md#methodids) -* [unlock](_wrappers_lockedgold_.lockedgoldwrapper.md#unlock) -* [withdraw](_wrappers_lockedgold_.lockedgoldwrapper.md#withdraw) - -### Accessors - -* [address](_wrappers_lockedgold_.lockedgoldwrapper.md#address) - -### Methods - -* [computeInitialParametersForSlashing](_wrappers_lockedgold_.lockedgoldwrapper.md#computeinitialparametersforslashing) -* [computeParametersForSlashing](_wrappers_lockedgold_.lockedgoldwrapper.md#computeparametersforslashing) -* [getAccountSummary](_wrappers_lockedgold_.lockedgoldwrapper.md#getaccountsummary) -* [getAccountsSlashed](_wrappers_lockedgold_.lockedgoldwrapper.md#getaccountsslashed) -* [getConfig](_wrappers_lockedgold_.lockedgoldwrapper.md#getconfig) -* [getHumanReadableConfig](_wrappers_lockedgold_.lockedgoldwrapper.md#gethumanreadableconfig) -* [getPastEvents](_wrappers_lockedgold_.lockedgoldwrapper.md#getpastevents) -* [getPendingWithdrawals](_wrappers_lockedgold_.lockedgoldwrapper.md#getpendingwithdrawals) -* [getPendingWithdrawalsTotalValue](_wrappers_lockedgold_.lockedgoldwrapper.md#getpendingwithdrawalstotalvalue) -* [relock](_wrappers_lockedgold_.lockedgoldwrapper.md#relock) -* [version](_wrappers_lockedgold_.lockedgoldwrapper.md#version) - -## Constructors - -### constructor - -\+ **new LockedGoldWrapper**(`connection`: Connection, `contract`: LockedGold, `contracts`: ContractWrappersForVotingAndRules): *[LockedGoldWrapper](_wrappers_lockedgold_.lockedgoldwrapper.md)* - -*Inherited from [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md).[constructor](_wrappers_validators_.validatorswrapper.md#constructor)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | LockedGold | -`contracts` | ContractWrappersForVotingAndRules | - -**Returns:** *[LockedGoldWrapper](_wrappers_lockedgold_.lockedgoldwrapper.md)* - -## Properties - -### _relock - -• **_relock**: *function* = proxySend( - this.connection, - this.contract.methods.relock, - tupleParser(valueToString, valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:145](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L145)* - -Relocks gold that has been unlocked but not withdrawn. - -**`param`** The index of the pending withdrawal to relock from. - -**`param`** The value to relock from the specified pending withdrawal. - -#### Type declaration: - -▸ (`index`: number, `value`: BigNumber.Value): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`index` | number | -`value` | BigNumber.Value | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *LockedGold["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getAccountNonvotingLockedGold - -• **getAccountNonvotingLockedGold**: *function* = proxyCall( - this.contract.methods.getAccountNonvotingLockedGold, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:178](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L178)* - -Returns the total amount of non-voting locked gold for an account. - -**`param`** The account. - -**`returns`** The total amount of non-voting locked gold for an account. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getAccountTotalLockedGold - -• **getAccountTotalLockedGold**: *function* = proxyCall( - this.contract.methods.getAccountTotalLockedGold, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:156](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L156)* - -Returns the total amount of locked gold for an account. - -**`param`** The account. - -**`returns`** The total amount of locked gold for an account. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getTotalLockedGold - -• **getTotalLockedGold**: *function* = proxyCall( - this.contract.methods.getTotalLockedGold, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:167](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L167)* - -Returns the total amount of locked gold in the system. Note that this does not include - gold that has been unlocked but not yet withdrawn. - -**`returns`** The total amount of locked gold in the system. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### lock - -• **lock**: *function* = proxySend(this.connection, this.contract.methods.lock) - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L81)* - -Locks gold to be used for voting. -The gold to be locked, must be specified as the `tx.value` - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### unlock - -• **unlock**: *function* = proxySend( - this.connection, - this.contract.methods.unlock, - tupleParser(valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:87](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L87)* - -Unlocks gold that becomes withdrawable after the unlocking period. - -**`param`** The amount of gold to unlock. - -#### Type declaration: - -▸ (`value`: BigNumber.Value): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`value` | BigNumber.Value | - -___ - -### withdraw - -• **withdraw**: *function* = proxySend( - this.connection, - this.contract.methods.withdraw - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L72)* - -Withdraws a gold that has been unlocked after the unlocking period has passed. - -**`param`** The index of the pending withdrawal to withdraw. - -#### Type declaration: - -▸ (`index`: number): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`index` | number | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### computeInitialParametersForSlashing - -▸ **computeInitialParametersForSlashing**(`account`: string, `penalty`: BigNumber): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:266](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L266)* - -Computes parameters for slashing `penalty` from `account`. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | string | The account to slash. | -`penalty` | BigNumber | The amount to slash as penalty. | - -**Returns:** *Promise‹object›* - -List of (group, voting gold) to decrement from `account`. - -___ - -### computeParametersForSlashing - -▸ **computeParametersForSlashing**(`account`: string, `penalty`: BigNumber, `groups`: AddressListItem[]): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:273](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L273)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | -`penalty` | BigNumber | -`groups` | AddressListItem[] | - -**Returns:** *Promise‹object›* - -___ - -### getAccountSummary - -▸ **getAccountSummary**(`account`: string): *Promise‹AccountSummary›* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:206](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L206)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | - -**Returns:** *Promise‹AccountSummary›* - -___ - -### getAccountsSlashed - -▸ **getAccountsSlashed**(`epochNumber`: number): *Promise‹[AccountSlashed](../interfaces/_wrappers_lockedgold_.accountslashed.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:243](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L243)* - -Retrieves AccountSlashed for epochNumber. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`epochNumber` | number | The epoch to retrieve AccountSlashed at. | - -**Returns:** *Promise‹[AccountSlashed](../interfaces/_wrappers_lockedgold_.accountslashed.md)[]›* - -___ - -### getConfig - -▸ **getConfig**(): *Promise‹[LockedGoldConfig](../interfaces/_wrappers_lockedgold_.lockedgoldconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:187](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L187)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[LockedGoldConfig](../interfaces/_wrappers_lockedgold_.lockedgoldconfig.md)›* - -___ - -### getHumanReadableConfig - -▸ **getHumanReadableConfig**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:198](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L198)* - -**`dev`** Returns human readable configuration of the lockedgold contract - -**Returns:** *Promise‹object›* - -LockedGoldConfig object - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹LockedGold›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹LockedGold› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getPendingWithdrawals - -▸ **getPendingWithdrawals**(`account`: string): *Promise‹[PendingWithdrawal](../interfaces/_wrappers_lockedgold_.pendingwithdrawal.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:227](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L227)* - -Returns the pending withdrawals from unlocked gold for an account. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | string | The address of the account. | - -**Returns:** *Promise‹[PendingWithdrawal](../interfaces/_wrappers_lockedgold_.pendingwithdrawal.md)[]›* - -The value and timestamp for each pending withdrawal. - -___ - -### getPendingWithdrawalsTotalValue - -▸ **getPendingWithdrawalsTotalValue**(`account`: Address): *Promise‹BigNumber‹››* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:93](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L93)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹BigNumber‹››* - -___ - -### relock - -▸ **relock**(`account`: Address, `value`: BigNumber.Value): *Promise‹Array‹CeloTransactionObject‹void›››* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L105)* - -Relocks gold that has been unlocked but not withdrawn. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | Address | - | -`value` | BigNumber.Value | The value to relock from pending withdrawals. | - -**Returns:** *Promise‹Array‹CeloTransactionObject‹void›››* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md deleted file mode 100644 index c43c190f2fa..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md +++ /dev/null @@ -1,446 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/MetaTransactionWallet"](../modules/_wrappers_metatransactionwallet_.md) › [MetaTransactionWalletWrapper](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md) - -# Class: MetaTransactionWalletWrapper - -Class that wraps the MetaTransactionWallet - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹MetaTransactionWallet› - - ↳ **MetaTransactionWalletWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#constructor) - -### Properties - -* [_chainId](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#optional-_chainid) -* [_signer](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#optional-_signer) -* [eip712DomainSeparator](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#eip712domainseparator) -* [eventTypes](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#eventtypes) -* [events](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#events) -* [getMetaTransactionDigest](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#getmetatransactiondigest) -* [getMetaTransactionSigner](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#getmetatransactionsigner) -* [isOwner](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#isowner) -* [methodIds](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#methodids) -* [nonce](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#nonce) -* [setEip712DomainSeparator](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#seteip712domainseparator) -* [setSigner](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#setsigner) -* [transferOwnership](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#transferownership) - -### Accessors - -* [address](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#address) - -### Methods - -* [executeMetaTransaction](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#executemetatransaction) -* [executeTransaction](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#executetransaction) -* [executeTransactions](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#executetransactions) -* [getPastEvents](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#getpastevents) -* [signAndExecuteMetaTransaction](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#signandexecutemetatransaction) -* [signMetaTransaction](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#signmetatransaction) -* [signer](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#signer) -* [version](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md#version) - -## Constructors - -### constructor - -\+ **new MetaTransactionWalletWrapper**(`connection`: Connection, `contract`: MetaTransactionWallet): *[MetaTransactionWalletWrapper](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | MetaTransactionWallet | - -**Returns:** *[MetaTransactionWalletWrapper](_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md)* - -## Properties - -### `Optional` _chainId - -• **_chainId**? : *undefined | number* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:179](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L179)* - -Get and cache the chain ID -- assume it's static for a kit instance - -**`returns`** chainId - -___ - -### `Optional` _signer - -• **_signer**? : *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:192](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L192)* - -Get an cache the signer - it should be static for a Wallet instance - -**`returns`** signer - -___ - -### eip712DomainSeparator - -• **eip712DomainSeparator**: *function* = proxyCall(this.contract.methods.eip712DomainSeparator) - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:155](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L155)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *MetaTransactionWallet["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getMetaTransactionDigest - -• **getMetaTransactionDigest**: *function* = proxyCall( - this.contract.methods.getMetaTransactionDigest, - this.getMetaTransactionDigestParams, - stringIdentity - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:127](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L127)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getMetaTransactionSigner - -• **getMetaTransactionSigner**: *function* = proxyCall( - this.contract.methods.getMetaTransactionSigner, - this.getMetaTransactionSignerParams, - stringIdentity - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:149](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L149)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isOwner - -• **isOwner**: *function* = proxyCall(this.contract.methods.isOwner) - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:156](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L156)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### nonce - -• **nonce**: *function* = proxyCall(this.contract.methods.nonce, undefined, valueToInt) - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:157](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L157)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setEip712DomainSeparator - -• **setEip712DomainSeparator**: *function* = proxySend( - this.connection, - this.contract.methods.setEip712DomainSeparator - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:170](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L170)* - -#### Type declaration: - -▸ (): *CeloTransactionObject‹void›* - -___ - -### setSigner - -• **setSigner**: *function* = proxySend( - this.connection, - this.contract.methods.setSigner - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:165](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L165)* - -#### Type declaration: - -▸ (`newSigner`: Address): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`newSigner` | Address | - -___ - -### transferOwnership - -• **transferOwnership**: *function* = proxySend( - this.connection, - this.contract.methods.transferOwnership - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:160](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L160)* - -#### Type declaration: - -▸ (`newOwner`: Address): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`newOwner` | Address | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### executeMetaTransaction - -▸ **executeMetaTransaction**(`tx`: [TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any›, `signature`: Signature): *CeloTransactionObject‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L68)* - -Execute a signed meta transaction -Reverts if meta-tx signer is not a signer for the wallet - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tx` | [TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any› | a TransactionInput | -`signature` | Signature | a Signature | - -**Returns:** *CeloTransactionObject‹string›* - -___ - -### executeTransaction - -▸ **executeTransaction**(`tx`: [TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any›): *CeloTransactionObject‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L38)* - -Execute a transaction originating from the MTW -Reverts if the caller is not a signer - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tx` | [TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any› | a TransactionInput | - -**Returns:** *CeloTransactionObject‹string›* - -___ - -### executeTransactions - -▸ **executeTransactions**(`txs`: Array‹[TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any››): *CeloTransactionObject‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L51)* - -Execute a batch of transactions originating from the MTW -Reverts if the caller is not a signer - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`txs` | Array‹[TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any›› | An array of TransactionInput | - -**Returns:** *CeloTransactionObject‹object›* - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹MetaTransactionWallet›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹MetaTransactionWallet› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### signAndExecuteMetaTransaction - -▸ **signAndExecuteMetaTransaction**(`tx`: [TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any›): *Promise‹CeloTransactionObject‹string››* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:112](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L112)* - -Execute a signed meta transaction -Reverts if meta-tx signer is not a signer for the wallet - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tx` | [TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any› | a TransactionInput | - -**Returns:** *Promise‹CeloTransactionObject‹string››* - -___ - -### signMetaTransaction - -▸ **signMetaTransaction**(`tx`: [TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any›, `nonce?`: undefined | number): *Promise‹Signature›* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:93](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L93)* - -Signs a meta transaction as EIP712 typed data - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tx` | [TransactionInput](../modules/_wrappers_metatransactionwallet_.md#transactioninput)‹any› | a TransactionWrapper | -`nonce?` | undefined | number | Optional -- will query contract state if not passed | - -**Returns:** *Promise‹Signature›* - -signature a Signature - -___ - -### signer - -▸ **signer**(): *Promise‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:193](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L193)* - -**Returns:** *Promise‹string›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md deleted file mode 100644 index 65d6a881ef8..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md +++ /dev/null @@ -1,160 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/MetaTransactionWalletDeployer"](../modules/_wrappers_metatransactionwalletdeployer_.md) › [MetaTransactionWalletDeployerWrapper](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md) - -# Class: MetaTransactionWalletDeployerWrapper - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹MetaTransactionWalletDeployer› - - ↳ **MetaTransactionWalletDeployerWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md#constructor) - -### Properties - -* [deploy](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md#deploy) -* [eventTypes](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md#eventtypes) -* [events](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md#events) -* [methodIds](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md#methodids) - -### Accessors - -* [address](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md#address) - -### Methods - -* [getPastEvents](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md#getpastevents) -* [version](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md#version) - -## Constructors - -### constructor - -\+ **new MetaTransactionWalletDeployerWrapper**(`connection`: Connection, `contract`: MetaTransactionWalletDeployer): *[MetaTransactionWalletDeployerWrapper](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | MetaTransactionWalletDeployer | - -**Returns:** *[MetaTransactionWalletDeployerWrapper](_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md)* - -## Properties - -### deploy - -• **deploy**: *function* = proxySend(this.connection, this.contract.methods.deploy) - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.ts#L5)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *MetaTransactionWalletDeployer["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹MetaTransactionWalletDeployer›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹MetaTransactionWalletDeployer› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_multisig_.multisigwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_multisig_.multisigwrapper.md deleted file mode 100644 index 1f45faf60fb..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_multisig_.multisigwrapper.md +++ /dev/null @@ -1,355 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/MultiSig"](../modules/_wrappers_multisig_.md) › [MultiSigWrapper](_wrappers_multisig_.multisigwrapper.md) - -# Class: MultiSigWrapper - -Contract for handling multisig actions - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹MultiSig› - - ↳ **MultiSigWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_multisig_.multisigwrapper.md#constructor) - -### Properties - -* [eventTypes](_wrappers_multisig_.multisigwrapper.md#eventtypes) -* [events](_wrappers_multisig_.multisigwrapper.md#events) -* [getInternalRequired](_wrappers_multisig_.multisigwrapper.md#getinternalrequired) -* [getOwners](_wrappers_multisig_.multisigwrapper.md#getowners) -* [getRequired](_wrappers_multisig_.multisigwrapper.md#getrequired) -* [getTransactionCount](_wrappers_multisig_.multisigwrapper.md#gettransactioncount) -* [isowner](_wrappers_multisig_.multisigwrapper.md#isowner) -* [methodIds](_wrappers_multisig_.multisigwrapper.md#methodids) -* [replaceOwner](_wrappers_multisig_.multisigwrapper.md#replaceowner) -* [totalTransactionCount](_wrappers_multisig_.multisigwrapper.md#totaltransactioncount) - -### Accessors - -* [address](_wrappers_multisig_.multisigwrapper.md#address) - -### Methods - -* [getPastEvents](_wrappers_multisig_.multisigwrapper.md#getpastevents) -* [getTransaction](_wrappers_multisig_.multisigwrapper.md#gettransaction) -* [getTransactionDataByContent](_wrappers_multisig_.multisigwrapper.md#gettransactiondatabycontent) -* [getTransactions](_wrappers_multisig_.multisigwrapper.md#gettransactions) -* [submitOrConfirmTransaction](_wrappers_multisig_.multisigwrapper.md#submitorconfirmtransaction) -* [version](_wrappers_multisig_.multisigwrapper.md#version) - -## Constructors - -### constructor - -\+ **new MultiSigWrapper**(`connection`: Connection, `contract`: MultiSig): *[MultiSigWrapper](_wrappers_multisig_.multisigwrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | MultiSig | - -**Returns:** *[MultiSigWrapper](_wrappers_multisig_.multisigwrapper.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *MultiSig["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getInternalRequired - -• **getInternalRequired**: *function* = proxyCall( - this.contract.methods.internalRequired, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L64)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getOwners - -• **getOwners**: *function* = proxyCall(this.contract.methods.getOwners) - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L62)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getRequired - -• **getRequired**: *function* = proxyCall(this.contract.methods.required, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L63)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getTransactionCount - -• **getTransactionCount**: *function* = proxyCall(this.contract.methods.getTransactionCount, undefined, valueToInt) - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L70)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isowner - -• **isowner**: *function* = proxyCall(this.contract.methods.isOwner) - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L61)* - -#### Type declaration: - -▸ (`owner`: Address): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`owner` | Address | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### replaceOwner - -• **replaceOwner**: *function* = proxySend( - this.connection, - this.contract.methods.replaceOwner, - tupleParser(stringIdentity, stringIdentity) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L71)* - -#### Type declaration: - -▸ (`owner`: Address, `newOwner`: Address): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`owner` | Address | -`newOwner` | Address | - -___ - -### totalTransactionCount - -• **totalTransactionCount**: *function* = proxyCall(this.contract.methods.transactionCount, undefined, valueToInt) - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L69)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹MultiSig›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹MultiSig› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getTransaction - -▸ **getTransaction**(`i`: number): *Promise‹[TransactionData](../interfaces/_wrappers_multisig_.transactiondata.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:94](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L94)* - -**Parameters:** - -Name | Type | ------- | ------ | -`i` | number | - -**Returns:** *Promise‹[TransactionData](../interfaces/_wrappers_multisig_.transactiondata.md)›* - -___ - -### getTransactionDataByContent - -▸ **getTransactionDataByContent**(`destination`: string, `txo`: CeloTxObject‹any›, `value`: BigNumber.Value): *Promise‹undefined | [TransactionData](../interfaces/_wrappers_multisig_.transactiondata.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L77)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`destination` | string | - | -`txo` | CeloTxObject‹any› | - | -`value` | BigNumber.Value | 0 | - -**Returns:** *Promise‹undefined | [TransactionData](../interfaces/_wrappers_multisig_.transactiondata.md)›* - -___ - -### getTransactions - -▸ **getTransactions**(): *Promise‹[TransactionData](../interfaces/_wrappers_multisig_.transactiondata.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:113](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L113)* - -**Returns:** *Promise‹[TransactionData](../interfaces/_wrappers_multisig_.transactiondata.md)[]›* - -___ - -### submitOrConfirmTransaction - -▸ **submitOrConfirmTransaction**(`destination`: string, `txObject`: CeloTxObject‹any›, `value`: string): *Promise‹CeloTransactionObject‹void› | CeloTransactionObject‹string››* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L33)* - -Allows an owner to submit and confirm a transaction. -If an unexecuted transaction matching `txObject` exists on the multisig, adds a confirmation to that tx ID. -Otherwise, submits the `txObject` to the multisig and add confirmation. - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`destination` | string | - | -`txObject` | CeloTxObject‹any› | - | -`value` | string | "0" | - -**Returns:** *Promise‹CeloTransactionObject‹void› | CeloTransactionObject‹string››* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_releasegold_.releasegoldwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_releasegold_.releasegoldwrapper.md deleted file mode 100644 index 06344f492a4..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_releasegold_.releasegoldwrapper.md +++ /dev/null @@ -1,1250 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/ReleaseGold"](../modules/_wrappers_releasegold_.md) › [ReleaseGoldWrapper](_wrappers_releasegold_.releasegoldwrapper.md) - -# Class: ReleaseGoldWrapper - -Contract for handling an instance of a ReleaseGold contract. - -## Hierarchy - - ↳ [BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md)‹ReleaseGold› - - ↳ **ReleaseGoldWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_releasegold_.releasegoldwrapper.md#constructor) - -### Properties - -* [_relockGold](_wrappers_releasegold_.releasegoldwrapper.md#_relockgold) -* [createAccount](_wrappers_releasegold_.releasegoldwrapper.md#createaccount) -* [eventTypes](_wrappers_releasegold_.releasegoldwrapper.md#eventtypes) -* [events](_wrappers_releasegold_.releasegoldwrapper.md#events) -* [getBeneficiary](_wrappers_releasegold_.releasegoldwrapper.md#getbeneficiary) -* [getCanValidate](_wrappers_releasegold_.releasegoldwrapper.md#getcanvalidate) -* [getCanVote](_wrappers_releasegold_.releasegoldwrapper.md#getcanvote) -* [getCurrentReleasedTotalAmount](_wrappers_releasegold_.releasegoldwrapper.md#getcurrentreleasedtotalamount) -* [getLiquidityProvisionMet](_wrappers_releasegold_.releasegoldwrapper.md#getliquidityprovisionmet) -* [getMaxDistribution](_wrappers_releasegold_.releasegoldwrapper.md#getmaxdistribution) -* [getOwner](_wrappers_releasegold_.releasegoldwrapper.md#getowner) -* [getRefundAddress](_wrappers_releasegold_.releasegoldwrapper.md#getrefundaddress) -* [getReleaseOwner](_wrappers_releasegold_.releasegoldwrapper.md#getreleaseowner) -* [getRemainingLockedBalance](_wrappers_releasegold_.releasegoldwrapper.md#getremaininglockedbalance) -* [getRemainingTotalBalance](_wrappers_releasegold_.releasegoldwrapper.md#getremainingtotalbalance) -* [getRemainingUnlockedBalance](_wrappers_releasegold_.releasegoldwrapper.md#getremainingunlockedbalance) -* [getTotalBalance](_wrappers_releasegold_.releasegoldwrapper.md#gettotalbalance) -* [getTotalWithdrawn](_wrappers_releasegold_.releasegoldwrapper.md#gettotalwithdrawn) -* [isRevoked](_wrappers_releasegold_.releasegoldwrapper.md#isrevoked) -* [lockGold](_wrappers_releasegold_.releasegoldwrapper.md#lockgold) -* [methodIds](_wrappers_releasegold_.releasegoldwrapper.md#methodids) -* [refundAndFinalize](_wrappers_releasegold_.releasegoldwrapper.md#refundandfinalize) -* [revokeBeneficiary](_wrappers_releasegold_.releasegoldwrapper.md#revokebeneficiary) -* [revokeReleasing](_wrappers_releasegold_.releasegoldwrapper.md#revokereleasing) -* [setAccount](_wrappers_releasegold_.releasegoldwrapper.md#setaccount) -* [setAccountDataEncryptionKey](_wrappers_releasegold_.releasegoldwrapper.md#setaccountdataencryptionkey) -* [setAccountMetadataURL](_wrappers_releasegold_.releasegoldwrapper.md#setaccountmetadataurl) -* [setAccountName](_wrappers_releasegold_.releasegoldwrapper.md#setaccountname) -* [setAccountWalletAddress](_wrappers_releasegold_.releasegoldwrapper.md#setaccountwalletaddress) -* [setBeneficiary](_wrappers_releasegold_.releasegoldwrapper.md#setbeneficiary) -* [setCanExpire](_wrappers_releasegold_.releasegoldwrapper.md#setcanexpire) -* [setLiquidityProvision](_wrappers_releasegold_.releasegoldwrapper.md#setliquidityprovision) -* [setMaxDistribution](_wrappers_releasegold_.releasegoldwrapper.md#setmaxdistribution) -* [transfer](_wrappers_releasegold_.releasegoldwrapper.md#transfer) -* [unlockGold](_wrappers_releasegold_.releasegoldwrapper.md#unlockgold) -* [withdraw](_wrappers_releasegold_.releasegoldwrapper.md#withdraw) -* [withdrawLockedGold](_wrappers_releasegold_.releasegoldwrapper.md#withdrawlockedgold) - -### Accessors - -* [address](_wrappers_releasegold_.releasegoldwrapper.md#address) - -### Methods - -* [authorizeAttestationSigner](_wrappers_releasegold_.releasegoldwrapper.md#authorizeattestationsigner) -* [authorizeValidatorSigner](_wrappers_releasegold_.releasegoldwrapper.md#authorizevalidatorsigner) -* [authorizeValidatorSignerAndBls](_wrappers_releasegold_.releasegoldwrapper.md#authorizevalidatorsignerandbls) -* [authorizeVoteSigner](_wrappers_releasegold_.releasegoldwrapper.md#authorizevotesigner) -* [getHumanReadableReleaseSchedule](_wrappers_releasegold_.releasegoldwrapper.md#gethumanreadablereleaseschedule) -* [getPastEvents](_wrappers_releasegold_.releasegoldwrapper.md#getpastevents) -* [getReleaseSchedule](_wrappers_releasegold_.releasegoldwrapper.md#getreleaseschedule) -* [getReleasedBalanceAtRevoke](_wrappers_releasegold_.releasegoldwrapper.md#getreleasedbalanceatrevoke) -* [getRevocationInfo](_wrappers_releasegold_.releasegoldwrapper.md#getrevocationinfo) -* [getRevokeTime](_wrappers_releasegold_.releasegoldwrapper.md#getrevoketime) -* [isRevocable](_wrappers_releasegold_.releasegoldwrapper.md#isrevocable) -* [relockGold](_wrappers_releasegold_.releasegoldwrapper.md#relockgold) -* [revoke](_wrappers_releasegold_.releasegoldwrapper.md#revoke) -* [revokeActive](_wrappers_releasegold_.releasegoldwrapper.md#revokeactive) -* [revokeActiveVotes](_wrappers_releasegold_.releasegoldwrapper.md#revokeactivevotes) -* [revokeAllVotesForAllGroups](_wrappers_releasegold_.releasegoldwrapper.md#revokeallvotesforallgroups) -* [revokeAllVotesForGroup](_wrappers_releasegold_.releasegoldwrapper.md#revokeallvotesforgroup) -* [revokePending](_wrappers_releasegold_.releasegoldwrapper.md#revokepending) -* [revokePendingVotes](_wrappers_releasegold_.releasegoldwrapper.md#revokependingvotes) -* [revokeValueFromVotes](_wrappers_releasegold_.releasegoldwrapper.md#revokevaluefromvotes) -* [unlockAllGold](_wrappers_releasegold_.releasegoldwrapper.md#unlockallgold) -* [version](_wrappers_releasegold_.releasegoldwrapper.md#version) - -## Constructors - -### constructor - -\+ **new ReleaseGoldWrapper**(`connection`: Connection, `contract`: ReleaseGold, `contracts`: ContractWrappersForVotingAndRules): *[ReleaseGoldWrapper](_wrappers_releasegold_.releasegoldwrapper.md)* - -*Inherited from [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md).[constructor](_wrappers_validators_.validatorswrapper.md#constructor)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | ReleaseGold | -`contracts` | ContractWrappersForVotingAndRules | - -**Returns:** *[ReleaseGoldWrapper](_wrappers_releasegold_.releasegoldwrapper.md)* - -## Properties - -### _relockGold - -• **_relockGold**: *function* = proxySend( - this.connection, - this.contract.methods.relockGold, - tupleParser(valueToString, valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:372](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L372)* - -Relocks gold that has been unlocked but not withdrawn. - -**`param`** The index of the pending withdrawal to relock from. - -**`param`** The value to relock from the specified pending withdrawal. - -#### Type declaration: - -▸ (`index`: number, `value`: BigNumber.Value): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`index` | number | -`value` | BigNumber.Value | - -___ - -### createAccount - -• **createAccount**: *function* = proxySend(this.connection, this.contract.methods.createAccount) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:401](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L401)* - -Beneficiary creates an account on behalf of the ReleaseGold contract. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *ReleaseGold["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### getBeneficiary - -• **getBeneficiary**: *function* = proxyCall(this.contract.methods.beneficiary) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:103](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L103)* - -Returns the beneficiary of the ReleaseGold contract - -**`returns`** The address of the beneficiary. - -#### Type declaration: - -▸ (): *Promise‹Address›* - -___ - -### getCanValidate - -• **getCanValidate**: *function* = proxyCall(this.contract.methods.canValidate) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:135](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L135)* - -Returns true if the contract can validate - -**`returns`** If the contract can validate - -#### Type declaration: - -▸ (): *Promise‹boolean›* - -___ - -### getCanVote - -• **getCanVote**: *function* = proxyCall(this.contract.methods.canVote) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:141](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L141)* - -Returns true if the contract can vote - -**`returns`** If the contract can vote - -#### Type declaration: - -▸ (): *Promise‹boolean›* - -___ - -### getCurrentReleasedTotalAmount - -• **getCurrentReleasedTotalAmount**: *function* = proxyCall( - this.contract.methods.getCurrentReleasedTotalAmount, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:267](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L267)* - -Returns the total amount that has already released up to now - -**`returns`** The already released gold amount up to the point of call - -#### Type declaration: - -▸ (): *Promise‹BigNumber›* - -___ - -### getLiquidityProvisionMet - -• **getLiquidityProvisionMet**: *function* = proxyCall( - this.contract.methods.liquidityProvisionMet - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:127](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L127)* - -Returns true if the liquidity provision has been met for this contract - -**`returns`** If the liquidity provision is met. - -#### Type declaration: - -▸ (): *Promise‹boolean›* - -___ - -### getMaxDistribution - -• **getMaxDistribution**: *function* = proxyCall( - this.contract.methods.maxDistribution, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:158](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L158)* - -Returns the maximum amount of gold (regardless of release schedule) -currently allowed for release. - -**`returns`** The max amount of gold currently withdrawable. - -#### Type declaration: - -▸ (): *Promise‹BigNumber›* - -___ - -### getOwner - -• **getOwner**: *function* = proxyCall(this.contract.methods.owner) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:121](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L121)* - -Returns the owner's address of the ReleaseGold contract - -**`returns`** The owner's address. - -#### Type declaration: - -▸ (): *Promise‹Address›* - -___ - -### getRefundAddress - -• **getRefundAddress**: *function* = proxyCall(this.contract.methods.refundAddress) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:115](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L115)* - -Returns the refund address of the ReleaseGold contract - -**`returns`** The refundAddress. - -#### Type declaration: - -▸ (): *Promise‹Address›* - -___ - -### getReleaseOwner - -• **getReleaseOwner**: *function* = proxyCall(this.contract.methods.releaseOwner) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:109](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L109)* - -Returns the releaseOwner address of the ReleaseGold contract - -**`returns`** The address of the releaseOwner. - -#### Type declaration: - -▸ (): *Promise‹Address›* - -___ - -### getRemainingLockedBalance - -• **getRemainingLockedBalance**: *function* = proxyCall( - this.contract.methods.getRemainingLockedBalance, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:257](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L257)* - -Returns the remaining locked gold balance in the ReleaseGold instance - -**`returns`** The remaining locked ReleaseGold instance gold balance - -#### Type declaration: - -▸ (): *Promise‹BigNumber›* - -___ - -### getRemainingTotalBalance - -• **getRemainingTotalBalance**: *function* = proxyCall( - this.contract.methods.getRemainingTotalBalance, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:237](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L237)* - -Returns the the sum of locked and unlocked gold in the ReleaseGold instance - -**`returns`** The remaining total ReleaseGold instance balance - -#### Type declaration: - -▸ (): *Promise‹BigNumber›* - -___ - -### getRemainingUnlockedBalance - -• **getRemainingUnlockedBalance**: *function* = proxyCall( - this.contract.methods.getRemainingUnlockedBalance, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:247](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L247)* - -Returns the remaining unlocked gold balance in the ReleaseGold instance - -**`returns`** The available unlocked ReleaseGold instance gold balance - -#### Type declaration: - -▸ (): *Promise‹BigNumber›* - -___ - -### getTotalBalance - -• **getTotalBalance**: *function* = proxyCall( - this.contract.methods.getTotalBalance, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:227](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L227)* - -Returns the total balance of the ReleaseGold instance - -**`returns`** The total ReleaseGold instance balance - -#### Type declaration: - -▸ (): *Promise‹BigNumber›* - -___ - -### getTotalWithdrawn - -• **getTotalWithdrawn**: *function* = proxyCall( - this.contract.methods.totalWithdrawn, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:147](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L147)* - -Returns the total withdrawn amount from the ReleaseGold contract - -**`returns`** The total withdrawn amount from the ReleaseGold contract - -#### Type declaration: - -▸ (): *Promise‹BigNumber›* - -___ - -### isRevoked - -• **isRevoked**: *function* = proxyCall(this.contract.methods.isRevoked) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:203](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L203)* - -Indicates if the release grant is revoked or not - -**`returns`** A boolean indicating revoked releasing (true) or non-revoked(false). - -#### Type declaration: - -▸ (): *Promise‹boolean›* - -___ - -### lockGold - -• **lockGold**: *function* = proxySend( - this.connection, - this.contract.methods.lockGold, - tupleParser(valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:301](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L301)* - -Locks gold to be used for voting. - -**`param`** The amount of gold to lock - -#### Type declaration: - -▸ (`value`: BigNumber.Value): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`value` | BigNumber.Value | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### refundAndFinalize - -• **refundAndFinalize**: *function* = proxySend( - this.connection, - this.contract.methods.refundAndFinalize - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:292](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L292)* - -Refund `refundAddress` and `beneficiary` after the ReleaseGold schedule has been revoked. - -**`returns`** A CeloTransactionObject - -#### Type declaration: - -▸ (): *CeloTransactionObject‹void›* - -___ - -### revokeBeneficiary - -• **revokeBeneficiary**: *function* = this.revokeReleasing - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:286](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L286)* - -Revoke a vesting CELO schedule from the contract's beneficiary. - -**`returns`** A CeloTransactionObject - -#### Type declaration: - -▸ (): *CeloTransactionObject‹void›* - -___ - -### revokeReleasing - -• **revokeReleasing**: *function* = proxySend( - this.connection, - this.contract.methods.revoke - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:277](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L277)* - -Revoke a Release schedule - -**`returns`** A CeloTransactionObject - -#### Type declaration: - -▸ (): *CeloTransactionObject‹void›* - -___ - -### setAccount - -• **setAccount**: *function* = proxySend(this.connection, this.contract.methods.setAccount) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:409](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L409)* - -Beneficiary creates an account on behalf of the ReleaseGold contract. - -**`param`** The name to set - -**`param`** The key to set - -**`param`** The address to set - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setAccountDataEncryptionKey - -• **setAccountDataEncryptionKey**: *function* = proxySend( - this.connection, - this.contract.methods.setAccountDataEncryptionKey - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:436](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L436)* - -Sets the data encryption of the account - -**`param`** The key to set - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setAccountMetadataURL - -• **setAccountMetadataURL**: *function* = proxySend(this.connection, this.contract.methods.setAccountMetadataURL) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:421](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L421)* - -Sets the metadataURL for the account - -**`param`** The url to set - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setAccountName - -• **setAccountName**: *function* = proxySend(this.connection, this.contract.methods.setAccountName) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:415](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L415)* - -Sets the name for the account - -**`param`** The name to set - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setAccountWalletAddress - -• **setAccountWalletAddress**: *function* = proxySend( - this.connection, - this.contract.methods.setAccountWalletAddress - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:427](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L427)* - -Sets the wallet address for the account - -**`param`** The address to set - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setBeneficiary - -• **setBeneficiary**: *function* = proxySend(this.connection, this.contract.methods.setBeneficiary) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:460](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L460)* - -Sets the contract's beneficiary - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setCanExpire - -• **setCanExpire**: *function* = proxySend(this.connection, this.contract.methods.setCanExpire) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:450](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L450)* - -Sets the contract's `canExpire` field to `_canExpire` - -**`param`** If the contract can expire `EXPIRATION_TIME` after the release schedule finishes. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setLiquidityProvision - -• **setLiquidityProvision**: *function* = proxySend(this.connection, this.contract.methods.setLiquidityProvision) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:444](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L444)* - -Sets the contract's liquidity provision to true - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setMaxDistribution - -• **setMaxDistribution**: *function* = proxySend(this.connection, this.contract.methods.setMaxDistribution) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:455](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L455)* - -Sets the contract's max distribution - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transfer - -• **transfer**: *function* = proxySend( - this.connection, - this.contract.methods.transfer, - tupleParser(stringIdentity, valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:307](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L307)* - -#### Type declaration: - -▸ (`to`: Address, `value`: BigNumber.Value): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`to` | Address | -`value` | BigNumber.Value | - -___ - -### unlockGold - -• **unlockGold**: *function* = proxySend( - this.connection, - this.contract.methods.unlockGold, - tupleParser(valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:317](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L317)* - -Unlocks gold that becomes withdrawable after the unlocking period. - -**`param`** The amount of gold to unlock - -#### Type declaration: - -▸ (`value`: BigNumber.Value): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`value` | BigNumber.Value | - -___ - -### withdraw - -• **withdraw**: *function* = proxySend( - this.connection, - this.contract.methods.withdraw, - tupleParser(valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:392](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L392)* - -Transfer released gold from the ReleaseGold instance back to beneficiary. - -**`param`** The requested gold amount - -#### Type declaration: - -▸ (`value`: BigNumber.Value): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`value` | BigNumber.Value | - -___ - -### withdrawLockedGold - -• **withdrawLockedGold**: *function* = proxySend( - this.connection, - this.contract.methods.withdrawLockedGold, - tupleParser(valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:382](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L382)* - -Withdraw gold in the ReleaseGold instance that has been unlocked but not withdrawn. - -**`param`** The index of the pending locked gold withdrawal - -#### Type declaration: - -▸ (`index`: BigNumber.Value): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`index` | BigNumber.Value | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### authorizeAttestationSigner - -▸ **authorizeAttestationSigner**(`signer`: Address, `proofOfSigningKeyPossession`: Signature): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:578](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L578)* - -Authorizes an address to sign attestation messages on behalf of the account. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`signer` | Address | The address of the attestation signing key to authorize. | -`proofOfSigningKeyPossession` | Signature | The account address signed by the signer address. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -A CeloTransactionObject - -___ - -### authorizeValidatorSigner - -▸ **authorizeValidatorSigner**(`signer`: Address, `proofOfSigningKeyPossession`: Signature): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:489](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L489)* - -Authorizes an address to sign validation messages on behalf of the account. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`signer` | Address | The address of the validator signing key to authorize. | -`proofOfSigningKeyPossession` | Signature | The account address signed by the signer address. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -A CeloTransactionObject - -___ - -### authorizeValidatorSignerAndBls - -▸ **authorizeValidatorSignerAndBls**(`signer`: Address, `proofOfSigningKeyPossession`: Signature, `blsPublicKey`: string, `blsPop`: string): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:540](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L540)* - -Authorizes an address to sign consensus messages on behalf of the contract's account. Also switch BLS key at the same time. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`signer` | Address | The address of the signing key to authorize. | -`proofOfSigningKeyPossession` | Signature | The contract's account address signed by the signer address. | -`blsPublicKey` | string | The BLS public key that the validator is using for consensus, should pass proof of possession. 48 bytes. | -`blsPop` | string | The BLS public key proof-of-possession, which consists of a signature on the account address. 96 bytes. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -A CeloTransactionObject - -___ - -### authorizeVoteSigner - -▸ **authorizeVoteSigner**(`signer`: Address, `proofOfSigningKeyPossession`: Signature): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:468](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L468)* - -Authorizes an address to sign votes on behalf of the account. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`signer` | Address | The address of the vote signing key to authorize. | -`proofOfSigningKeyPossession` | Signature | The account address signed by the signer address. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -A CeloTransactionObject - -___ - -### getHumanReadableReleaseSchedule - -▸ **getHumanReadableReleaseSchedule**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:88](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L88)* - -Returns the underlying Release schedule of the ReleaseGold contract - -**Returns:** *Promise‹object›* - -A ReleaseSchedule. - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹ReleaseGold›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹ReleaseGold› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getReleaseSchedule - -▸ **getReleaseSchedule**(): *Promise‹ReleaseSchedule›* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L72)* - -Returns the underlying Release schedule of the ReleaseGold contract - -**Returns:** *Promise‹ReleaseSchedule›* - -A ReleaseSchedule. - -___ - -### getReleasedBalanceAtRevoke - -▸ **getReleasedBalanceAtRevoke**(): *Promise‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:218](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L218)* - -Returns the balance of released gold when the grant was revoked - -**Returns:** *Promise‹string›* - -The balance at revocation time. 0 can also indicate not revoked. - -___ - -### getRevocationInfo - -▸ **getRevocationInfo**(): *Promise‹RevocationInfo›* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:168](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L168)* - -Returns the underlying Revocation Info of the ReleaseGold contract - -**Returns:** *Promise‹RevocationInfo›* - -A RevocationInfo struct. - -___ - -### getRevokeTime - -▸ **getRevokeTime**(): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:209](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L209)* - -Returns the time at which the release schedule was revoked - -**Returns:** *Promise‹number›* - -The timestamp of the release schedule revocation - -___ - -### isRevocable - -▸ **isRevocable**(): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:194](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L194)* - -Indicates if the release grant is revocable or not - -**Returns:** *Promise‹boolean›* - -A boolean indicating revocable releasing (true) or non-revocable(false). - -___ - -### relockGold - -▸ **relockGold**(`value`: BigNumber.Value): *Promise‹Array‹CeloTransactionObject‹void›››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:334](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L334)* - -Relocks gold in the ReleaseGold instance that has been unlocked but not withdrawn. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`value` | BigNumber.Value | The value to relock from the specified pending withdrawal. | - -**Returns:** *Promise‹Array‹CeloTransactionObject‹void›››* - -___ - -### revoke - -▸ **revoke**(`account`: Address, `group`: Address, `value`: BigNumber): *Promise‹Array‹CeloTransactionObject‹void›››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:668](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L668)* - -Revokes value from pending/active aggregate - -**`deprecated`** prefer revokeValueFromVotes - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | Address | The account to revoke from. | -`group` | Address | The group to revoke the vote for. | -`value` | BigNumber | The amount of gold to revoke. | - -**Returns:** *Promise‹Array‹CeloTransactionObject‹void›››* - -___ - -### revokeActive - -▸ **revokeActive**(`account`: Address, `group`: Address, `value`: BigNumber): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:634](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L634)* - -Revokes active votes - -**`deprecated`** Prefer revokeActiveVotes - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | Address | The account to revoke from. | -`group` | Address | The group to revoke the vote for. | -`value` | BigNumber | The amount of gold to revoke. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### revokeActiveVotes - -▸ **revokeActiveVotes**(`group`: Address, `value`: BigNumber): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:658](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L658)* - -Revokes active votes - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`group` | Address | The group to revoke the vote for. | -`value` | BigNumber | The amount of gold to revoke. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### revokeAllVotesForAllGroups - -▸ **revokeAllVotesForAllGroups**(): *Promise‹CeloTransactionObject‹void›[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:716](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L716)* - -**Returns:** *Promise‹CeloTransactionObject‹void›[]›* - -___ - -### revokeAllVotesForGroup - -▸ **revokeAllVotesForGroup**(`group`: Address): *Promise‹CeloTransactionObject‹void›[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:698](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L698)* - -**Parameters:** - -Name | Type | ------- | ------ | -`group` | Address | - -**Returns:** *Promise‹CeloTransactionObject‹void›[]›* - -___ - -### revokePending - -▸ **revokePending**(`account`: Address, `group`: Address, `value`: BigNumber): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:600](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L600)* - -Revokes pending votes - -**`deprecated`** prefer revokePendingVotes - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | Address | The account to revoke from. | -`group` | Address | - | -`value` | BigNumber | The amount of gold to revoke. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### revokePendingVotes - -▸ **revokePendingVotes**(`group`: Address, `value`: BigNumber): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:624](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L624)* - -Revokes pending votes - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`group` | Address | - | -`value` | BigNumber | The amount of gold to revoke. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### revokeValueFromVotes - -▸ **revokeValueFromVotes**(`group`: Address, `value`: BigNumber): *Promise‹CeloTransactionObject‹void›[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:695](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L695)* - -Revokes value from pending/active aggregate - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`group` | Address | The group to revoke the vote for. | -`value` | BigNumber | The amount of gold to revoke. | - -**Returns:** *Promise‹CeloTransactionObject‹void›[]›* - -___ - -### unlockAllGold - -▸ **unlockAllGold**(): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:323](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L323)* - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_reserve_.reservewrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_reserve_.reservewrapper.md deleted file mode 100644 index f7a83626796..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_reserve_.reservewrapper.md +++ /dev/null @@ -1,542 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Reserve"](../modules/_wrappers_reserve_.md) › [ReserveWrapper](_wrappers_reserve_.reservewrapper.md) - -# Class: ReserveWrapper - -Contract for handling reserve for stable currencies - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹Reserve› - - ↳ **ReserveWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_reserve_.reservewrapper.md#constructor) - -### Properties - -* [dailySpendingRatio](_wrappers_reserve_.reservewrapper.md#dailyspendingratio) -* [eventTypes](_wrappers_reserve_.reservewrapper.md#eventtypes) -* [events](_wrappers_reserve_.reservewrapper.md#events) -* [frozenReserveGoldDays](_wrappers_reserve_.reservewrapper.md#frozenreservegolddays) -* [frozenReserveGoldStartBalance](_wrappers_reserve_.reservewrapper.md#frozenreservegoldstartbalance) -* [frozenReserveGoldStartDay](_wrappers_reserve_.reservewrapper.md#frozenreservegoldstartday) -* [getAssetAllocationSymbols](_wrappers_reserve_.reservewrapper.md#getassetallocationsymbols) -* [getAssetAllocationWeights](_wrappers_reserve_.reservewrapper.md#getassetallocationweights) -* [getOrComputeTobinTax](_wrappers_reserve_.reservewrapper.md#getorcomputetobintax) -* [getOtherReserveAddresses](_wrappers_reserve_.reservewrapper.md#getotherreserveaddresses) -* [getReserveCeloBalance](_wrappers_reserve_.reservewrapper.md#getreservecelobalance) -* [getReserveGoldBalance](_wrappers_reserve_.reservewrapper.md#getreservegoldbalance) -* [getUnfrozenBalance](_wrappers_reserve_.reservewrapper.md#getunfrozenbalance) -* [getUnfrozenReserveCeloBalance](_wrappers_reserve_.reservewrapper.md#getunfrozenreservecelobalance) -* [isOtherReserveAddress](_wrappers_reserve_.reservewrapper.md#isotherreserveaddress) -* [isSpender](_wrappers_reserve_.reservewrapper.md#isspender) -* [methodIds](_wrappers_reserve_.reservewrapper.md#methodids) -* [tobinTaxStalenessThreshold](_wrappers_reserve_.reservewrapper.md#tobintaxstalenessthreshold) -* [transferGold](_wrappers_reserve_.reservewrapper.md#transfergold) - -### Accessors - -* [address](_wrappers_reserve_.reservewrapper.md#address) - -### Methods - -* [getConfig](_wrappers_reserve_.reservewrapper.md#getconfig) -* [getPastEvents](_wrappers_reserve_.reservewrapper.md#getpastevents) -* [getSpenders](_wrappers_reserve_.reservewrapper.md#getspenders) -* [version](_wrappers_reserve_.reservewrapper.md#version) - -## Constructors - -### constructor - -\+ **new ReserveWrapper**(`connection`: Connection, `contract`: Reserve): *[ReserveWrapper](_wrappers_reserve_.reservewrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | Reserve | - -**Returns:** *[ReserveWrapper](_wrappers_reserve_.reservewrapper.md)* - -## Properties - -### dailySpendingRatio - -• **dailySpendingRatio**: *function* = proxyCall( - this.contract.methods.getDailySpendingRatio, - undefined, - fixidityValueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L33)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *Reserve["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### frozenReserveGoldDays - -• **frozenReserveGoldDays**: *function* = proxyCall( - this.contract.methods.frozenReserveGoldDays, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L51)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### frozenReserveGoldStartBalance - -• **frozenReserveGoldStartBalance**: *function* = proxyCall( - this.contract.methods.frozenReserveGoldStartBalance, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L41)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### frozenReserveGoldStartDay - -• **frozenReserveGoldStartDay**: *function* = proxyCall( - this.contract.methods.frozenReserveGoldStartDay, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L46)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getAssetAllocationSymbols - -• **getAssetAllocationSymbols**: *function* = proxyCall( - this.contract.methods.getAssetAllocationSymbols, - undefined, - (symbols) => symbols.map((symbol) => this.connection.hexToAscii(symbol)) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L71)* - -**`notice`** Returns a list of token symbols that have been allocated. - -**`returns`** An array of token symbols that have been allocated. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getAssetAllocationWeights - -• **getAssetAllocationWeights**: *function* = proxyCall( - this.contract.methods.getAssetAllocationWeights, - undefined, - (weights) => weights.map(valueToBigNumber) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L61)* - -**`notice`** Returns a list of weights used for the allocation of reserve assets. - -**`returns`** An array of a list of weights used for the allocation of reserve assets. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getOrComputeTobinTax - -• **getOrComputeTobinTax**: *function* = proxySend(this.connection, this.contract.methods.getOrComputeTobinTax) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L40)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getOtherReserveAddresses - -• **getOtherReserveAddresses**: *function* = proxyCall(this.contract.methods.getOtherReserveAddresses) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:115](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L115)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getReserveCeloBalance - -• **getReserveCeloBalance**: *function* = this.getReserveGoldBalance - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:90](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L90)* - -**`notice`** Returns the amount of CELO included in the reserve - -**`returns`** The CELO amount included in the reserve. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getReserveGoldBalance - -• **getReserveGoldBalance**: *function* = proxyCall( - this.contract.methods.getReserveGoldBalance, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L80)* - -**`alias`** {getReserveCeloBalance} - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getUnfrozenBalance - -• **getUnfrozenBalance**: *function* = proxyCall( - this.contract.methods.getUnfrozenBalance, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:97](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L97)* - -**`notice`** Returns the amount of unfrozen CELO in the Reserve contract. - -**`see`** {getUnfrozenReserveCeloBalance} - -**`returns`** amount in wei - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getUnfrozenReserveCeloBalance - -• **getUnfrozenReserveCeloBalance**: *function* = proxyCall( - this.contract.methods.getUnfrozenReserveGoldBalance, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:109](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L109)* - -**`notice`** Returns the amount of unfrozen CELO included in the reserve - contract and in other reserve addresses. - -**`see`** {getUnfrozenBalance} - -**`returns`** amount in wei - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isOtherReserveAddress - -• **isOtherReserveAddress**: *function* = proxyCall(this.contract.methods.isOtherReserveAddress) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:130](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L130)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isSpender - -• **isSpender**: *function* = proxyCall(this.contract.methods.isSpender) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L38)* - -#### Type declaration: - -▸ (`account`: string): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### tobinTaxStalenessThreshold - -• **tobinTaxStalenessThreshold**: *function* = proxyCall( - this.contract.methods.tobinTaxStalenessThreshold, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L28)* - -Query Tobin tax staleness threshold parameter. - -**`returns`** Current Tobin tax staleness threshold. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transferGold - -• **transferGold**: *function* = proxySend(this.connection, this.contract.methods.transferGold) - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L39)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getConfig - -▸ **getConfig**(): *Promise‹[ReserveConfig](../interfaces/_wrappers_reserve_.reserveconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L120)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[ReserveConfig](../interfaces/_wrappers_reserve_.reserveconfig.md)›* - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹Reserve›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹Reserve› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getSpenders - -▸ **getSpenders**(): *Promise‹Address[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L132)* - -**Returns:** *Promise‹Address[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_sortedoracles_.sortedoracleswrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_sortedoracles_.sortedoracleswrapper.md deleted file mode 100644 index 3c4eb6c05f1..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_sortedoracles_.sortedoracleswrapper.md +++ /dev/null @@ -1,460 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/SortedOracles"](../modules/_wrappers_sortedoracles_.md) › [SortedOraclesWrapper](_wrappers_sortedoracles_.sortedoracleswrapper.md) - -# Class: SortedOraclesWrapper - -Currency price oracle contract. - -## Hierarchy - -* [BaseWrapper](_wrappers_basewrapper_.basewrapper.md)‹SortedOracles› - - ↳ **SortedOraclesWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_sortedoracles_.sortedoracleswrapper.md#constructor) - -### Properties - -* [eventTypes](_wrappers_sortedoracles_.sortedoracleswrapper.md#eventtypes) -* [events](_wrappers_sortedoracles_.sortedoracleswrapper.md#events) -* [methodIds](_wrappers_sortedoracles_.sortedoracleswrapper.md#methodids) -* [reportExpirySeconds](_wrappers_sortedoracles_.sortedoracleswrapper.md#reportexpiryseconds) - -### Accessors - -* [address](_wrappers_sortedoracles_.sortedoracleswrapper.md#address) - -### Methods - -* [getConfig](_wrappers_sortedoracles_.sortedoracleswrapper.md#getconfig) -* [getHumanReadableConfig](_wrappers_sortedoracles_.sortedoracleswrapper.md#gethumanreadableconfig) -* [getOracles](_wrappers_sortedoracles_.sortedoracleswrapper.md#getoracles) -* [getPastEvents](_wrappers_sortedoracles_.sortedoracleswrapper.md#getpastevents) -* [getRates](_wrappers_sortedoracles_.sortedoracleswrapper.md#getrates) -* [getReports](_wrappers_sortedoracles_.sortedoracleswrapper.md#getreports) -* [getStableTokenRates](_wrappers_sortedoracles_.sortedoracleswrapper.md#getstabletokenrates) -* [getTimestamps](_wrappers_sortedoracles_.sortedoracleswrapper.md#gettimestamps) -* [getTokenReportExpirySeconds](_wrappers_sortedoracles_.sortedoracleswrapper.md#gettokenreportexpiryseconds) -* [isOldestReportExpired](_wrappers_sortedoracles_.sortedoracleswrapper.md#isoldestreportexpired) -* [isOracle](_wrappers_sortedoracles_.sortedoracleswrapper.md#isoracle) -* [medianRate](_wrappers_sortedoracles_.sortedoracleswrapper.md#medianrate) -* [numRates](_wrappers_sortedoracles_.sortedoracleswrapper.md#numrates) -* [removeExpiredReports](_wrappers_sortedoracles_.sortedoracleswrapper.md#removeexpiredreports) -* [report](_wrappers_sortedoracles_.sortedoracleswrapper.md#report) -* [reportStableToken](_wrappers_sortedoracles_.sortedoracleswrapper.md#reportstabletoken) -* [version](_wrappers_sortedoracles_.sortedoracleswrapper.md#version) - -## Constructors - -### constructor - -\+ **new SortedOraclesWrapper**(`connection`: Connection, `contract`: SortedOracles, `registry`: [AddressRegistry](_address_registry_.addressregistry.md)): *[SortedOraclesWrapper](_wrappers_sortedoracles_.sortedoracleswrapper.md)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L57)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | SortedOracles | -`registry` | [AddressRegistry](_address_registry_.addressregistry.md) | - -**Returns:** *[SortedOraclesWrapper](_wrappers_sortedoracles_.sortedoracleswrapper.md)* - -## Properties - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *SortedOracles["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### reportExpirySeconds - -• **reportExpirySeconds**: *function* = proxyCall( - this.contract.methods.reportExpirySeconds, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:115](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L115)* - -Returns the report expiry parameter. - -**`returns`** Current report expiry. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getConfig - -▸ **getConfig**(): *Promise‹[SortedOraclesConfig](../interfaces/_wrappers_sortedoracles_.sortedoraclesconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:206](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L206)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[SortedOraclesConfig](../interfaces/_wrappers_sortedoracles_.sortedoraclesconfig.md)›* - -___ - -### getHumanReadableConfig - -▸ **getHumanReadableConfig**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:216](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L216)* - -**`dev`** Returns human readable configuration of the sortedoracles contract - -**Returns:** *Promise‹object›* - -SortedOraclesConfig object - -___ - -### getOracles - -▸ **getOracles**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget)): *Promise‹Address[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L106)* - -Returns the list of whitelisted oracles for a given target - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair | - -**Returns:** *Promise‹Address[]›* - -The list of whitelisted oracles for a given token. - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹SortedOracles›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹SortedOracles› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getRates - -▸ **getRates**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget)): *Promise‹[OracleRate](../interfaces/_wrappers_sortedoracles_.oraclerate.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:234](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L234)* - -Gets all elements from the doubly linked list. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair in question | - -**Returns:** *Promise‹[OracleRate](../interfaces/_wrappers_sortedoracles_.oraclerate.md)[]›* - -An unpacked list of elements from largest to smallest. - -___ - -### getReports - -▸ **getReports**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget)): *Promise‹[OracleReport](../interfaces/_wrappers_sortedoracles_.oraclereport.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:269](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L269)* - -**Parameters:** - -Name | Type | ------- | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | - -**Returns:** *Promise‹[OracleReport](../interfaces/_wrappers_sortedoracles_.oraclereport.md)[]›* - -___ - -### getStableTokenRates - -▸ **getStableTokenRates**(): *Promise‹[OracleRate](../interfaces/_wrappers_sortedoracles_.oraclerate.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:227](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L227)* - -Helper function to get the rates for StableToken, by passing the address -of StableToken to `getRates`. - -**Returns:** *Promise‹[OracleRate](../interfaces/_wrappers_sortedoracles_.oraclerate.md)[]›* - -___ - -### getTimestamps - -▸ **getTimestamps**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget)): *Promise‹[OracleTimestamp](../interfaces/_wrappers_sortedoracles_.oracletimestamp.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:254](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L254)* - -Gets all elements from the doubly linked list. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair in question | - -**Returns:** *Promise‹[OracleTimestamp](../interfaces/_wrappers_sortedoracles_.oracletimestamp.md)[]›* - -An unpacked list of elements from largest to smallest. - -___ - -### getTokenReportExpirySeconds - -▸ **getTokenReportExpirySeconds**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget)): *Promise‹BigNumber›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:126](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L126)* - -Returns the expiry for the target if exists, if not the default. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair | - -**Returns:** *Promise‹BigNumber›* - -The report expiry in seconds. - -___ - -### isOldestReportExpired - -▸ **isOldestReportExpired**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget)): *Promise‹[boolean, Address]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:136](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L136)* - -Checks if the oldest report for a given target is expired - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair | - -**Returns:** *Promise‹[boolean, Address]›* - -___ - -### isOracle - -▸ **isOracle**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget), `oracle`: Address): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L96)* - -Checks if the given address is whitelisted as an oracle for the target - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair | -`oracle` | Address | The address that we're checking the oracle status of | - -**Returns:** *Promise‹boolean›* - -boolean describing whether this account is an oracle - -___ - -### medianRate - -▸ **medianRate**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget)): *Promise‹[MedianRate](../interfaces/_wrappers_sortedoracles_.medianrate.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L82)* - -Returns the median rate for the given target - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair | - -**Returns:** *Promise‹[MedianRate](../interfaces/_wrappers_sortedoracles_.medianrate.md)›* - -The median exchange rate for `token`, expressed as: - amount of that token / equivalent amount in CELO - -___ - -### numRates - -▸ **numRates**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget)): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L70)* - -Gets the number of rates that have been reported for the given target - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair | - -**Returns:** *Promise‹number›* - -The number of reported oracle rates for `token`. - -___ - -### removeExpiredReports - -▸ **removeExpiredReports**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget), `numReports?`: undefined | number): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:149](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L149)* - -Removes expired reports, if any exist - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair | -`numReports?` | undefined | number | The upper-limit of reports to remove. For example, if there are 2 expired reports, and this param is 5, it will only remove the 2 that are expired. | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### report - -▸ **report**(`target`: [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget), `value`: BigNumber.Value, `oracleAddress`: Address): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:168](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L168)* - -Updates an oracle value and the median. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`target` | [ReportTarget](../modules/_wrappers_sortedoracles_.md#reporttarget) | The ReportTarget, either CeloToken or currency pair | -`value` | BigNumber.Value | The amount of `token` equal to one CELO. | -`oracleAddress` | Address | - | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### reportStableToken - -▸ **reportStableToken**(`value`: BigNumber.Value, `oracleAddress`: Address, `token`: [StableToken](../enums/_base_.celocontract.md#stabletoken)): *Promise‹CeloTransactionObject‹void››* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:195](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L195)* - -Updates an oracle value and the median. - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`value` | BigNumber.Value | - | The amount of US Dollars equal to one CELO. | -`oracleAddress` | Address | - | The address to report as | -`token` | [StableToken](../enums/_base_.celocontract.md#stabletoken) | StableToken.cUSD | The token to report for | - -**Returns:** *Promise‹CeloTransactionObject‹void››* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md deleted file mode 100644 index 610edc2e1e0..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md +++ /dev/null @@ -1,665 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/StableTokenWrapper"](../modules/_wrappers_stabletokenwrapper_.md) › [StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md) - -# Class: StableTokenWrapper - -Stable token with variable supply - -## Hierarchy - - ↳ [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md)‹StableToken› - - ↳ **StableTokenWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#constructor) - -### Properties - -* [allowance](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#allowance) -* [approve](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#approve) -* [balanceOf](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#balanceof) -* [burn](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#burn) -* [decimals](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#decimals) -* [decreaseAllowance](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#decreaseallowance) -* [eventTypes](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#eventtypes) -* [events](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#events) -* [increaseAllowance](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#increaseallowance) -* [methodIds](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#methodids) -* [mint](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#mint) -* [name](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#name) -* [owner](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#owner) -* [setInflationParameters](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#setinflationparameters) -* [symbol](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#symbol) -* [totalSupply](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#totalsupply) -* [transfer](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#transfer) -* [transferFrom](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#transferfrom) -* [transferWithComment](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#transferwithcomment) -* [unitsToValue](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#unitstovalue) -* [valueToUnits](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#valuetounits) - -### Accessors - -* [address](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#address) - -### Methods - -* [getConfig](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#getconfig) -* [getHumanReadableConfig](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#gethumanreadableconfig) -* [getInflationParameters](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#getinflationparameters) -* [getPastEvents](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#getpastevents) -* [version](_wrappers_stabletokenwrapper_.stabletokenwrapper.md#version) - -## Constructors - -### constructor - -\+ **new StableTokenWrapper**(`connection`: Connection, `contract`: StableToken): *[StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md)* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | StableToken | - -**Returns:** *[StableTokenWrapper](_wrappers_stabletokenwrapper_.stabletokenwrapper.md)* - -## Properties - -### allowance - -• **allowance**: *function* = proxyCall(this.contract.methods.allowance, undefined, valueToBigNumber) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[allowance](_wrappers_erc20wrapper_.erc20wrapper.md#allowance)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L18)* - -Querying allowance. - -**`param`** Account who has given the allowance. - -**`param`** Address of account to whom the allowance was given. - -**`returns`** Amount of allowance. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### approve - -• **approve**: *function* = proxySend(this.connection, this.contract.methods.approve) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[approve](_wrappers_erc20wrapper_.erc20wrapper.md#approve)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L32)* - -Approve a user to transfer the token on behalf of another user. - -**`param`** The address which is being approved to spend the token. - -**`param`** The amount of the token approved to the spender. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### balanceOf - -• **balanceOf**: *function* = proxyCall( - this.contract.methods.balanceOf, - undefined, - valueToBigNumber - ) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[balanceOf](_wrappers_erc20wrapper_.erc20wrapper.md#balanceof)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L56)* - -Gets the balance of the specified address. - -**`param`** The address to query the balance of. - -**`returns`** The balance of the specified address. - -#### Type declaration: - -▸ (`owner`: string): *Promise‹BigNumber›* - -**Parameters:** - -Name | Type | ------- | ------ | -`owner` | string | - -___ - -### burn - -• **burn**: *function* = proxySend(this.connection, this.contract.methods.burn) - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:83](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L83)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### decimals - -• **decimals**: *function* = proxyCall(this.contract.methods.decimals, undefined, valueToInt) - -*Inherited from [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md).[decimals](_wrappers_celotokenwrapper_.celotokenwrapper.md#decimals)* - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L29)* - -Returns the number of decimals used in the token. - -**`returns`** Number of decimals. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### decreaseAllowance - -• **decreaseAllowance**: *function* = proxySend(this.connection, this.contract.methods.decreaseAllowance) - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L81)* - -Decreases the allowance of another user. - -**`param`** The address which is being approved to spend StableToken. - -**`param`** The decrement of the amount of StableToken approved to the spender. - -**`returns`** true if success. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *StableToken["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### increaseAllowance - -• **increaseAllowance**: *function* = proxySend( - this.connection, - this.contract.methods.increaseAllowance, - tupleParser(stringIdentity, valueToString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L70)* - -Increases the allowance of another user. - -**`param`** The address which is being approved to spend StableToken. - -**`param`** The increment of the amount of StableToken approved to the spender. - -**`returns`** true if success. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### mint - -• **mint**: *function* = proxySend(this.connection, this.contract.methods.mint) - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L82)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### name - -• **name**: *function* = proxyCall(this.contract.methods.name) - -*Inherited from [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md).[name](_wrappers_celotokenwrapper_.celotokenwrapper.md#name)* - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L18)* - -Returns the name of the token. - -**`returns`** Name of the token. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### owner - -• **owner**: *function* = proxyCall(this.contract.methods.owner) - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L38)* - -Returns the address of the owner of the contract. - -**`returns`** the address of the owner of the contract. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setInflationParameters - -• **setInflationParameters**: *function* = proxySend(this.connection, this.contract.methods.setInflationParameters) - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:85](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L85)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### symbol - -• **symbol**: *function* = proxyCall(this.contract.methods.symbol) - -*Inherited from [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md).[symbol](_wrappers_celotokenwrapper_.celotokenwrapper.md#symbol)* - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L24)* - -Returns the three letter symbol of the token. - -**`returns`** Symbol of the token. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### totalSupply - -• **totalSupply**: *function* = proxyCall(this.contract.methods.totalSupply, undefined, valueToBigNumber) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[totalSupply](_wrappers_erc20wrapper_.erc20wrapper.md#totalsupply)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L24)* - -Returns the total supply of the token, that is, the amount of tokens currently minted. - -**`returns`** Total supply. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transfer - -• **transfer**: *function* = proxySend(this.connection, this.contract.methods.transfer) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[transfer](_wrappers_erc20wrapper_.erc20wrapper.md#transfer)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L40)* - -Transfers the token from one address to another. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transferFrom - -• **transferFrom**: *function* = proxySend(this.connection, this.contract.methods.transferFrom) - -*Inherited from [Erc20Wrapper](_wrappers_erc20wrapper_.erc20wrapper.md).[transferFrom](_wrappers_erc20wrapper_.erc20wrapper.md#transferfrom)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L49)* - -Transfers the token from one address to another on behalf of a user. - -**`param`** The address to transfer the token from. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### transferWithComment - -• **transferWithComment**: *function* = proxySend(this.connection, this.contract.methods.transferWithComment) - -*Inherited from [CeloTokenWrapper](_wrappers_celotokenwrapper_.celotokenwrapper.md).[transferWithComment](_wrappers_celotokenwrapper_.celotokenwrapper.md#transferwithcomment)* - -*Defined in [packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts#L38)* - -Transfers the token from one address to another with a comment. - -**`param`** The address to transfer the token to. - -**`param`** The amount of the token to transfer. - -**`param`** The transfer comment - -**`returns`** True if the transaction succeeds. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### unitsToValue - -• **unitsToValue**: *function* = proxyCall( - this.contract.methods.unitsToValue, - tupleParser(valueToString), - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L58)* - -Returns the value of a given number of units given the current inflation factor. - -**`param`** The units to convert to value. - -**`returns`** The value corresponding to `units` given the current inflation factor. - -#### Type declaration: - -▸ (`units`: BigNumber.Value): *Promise‹BigNumber›* - -**Parameters:** - -Name | Type | ------- | ------ | -`units` | BigNumber.Value | - -___ - -### valueToUnits - -• **valueToUnits**: *function* = proxyCall( - this.contract.methods.valueToUnits, - tupleParser(valueToString), - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L47)* - -Returns the units for a given value given the current inflation factor. - -**`param`** The value to convert to units. - -**`returns`** The units corresponding to `value` given the current inflation factor. - -**`dev`** We don't compute the updated inflationFactor here because -we assume any function calling this will have updated the inflation factor. - -#### Type declaration: - -▸ (`value`: BigNumber.Value): *Promise‹BigNumber›* - -**Parameters:** - -Name | Type | ------- | ------ | -`value` | BigNumber.Value | - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### getConfig - -▸ **getConfig**(): *Promise‹[StableTokenConfig](../interfaces/_wrappers_stabletokenwrapper_.stabletokenconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:104](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L104)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[StableTokenConfig](../interfaces/_wrappers_stabletokenwrapper_.stabletokenconfig.md)›* - -___ - -### getHumanReadableConfig - -▸ **getHumanReadableConfig**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L123)* - -**`dev`** Returns human readable configuration of the stabletoken contract - -**Returns:** *Promise‹object›* - -StableTokenConfig object - -___ - -### getInflationParameters - -▸ **getInflationParameters**(): *Promise‹[InflationParameters](../interfaces/_wrappers_stabletokenwrapper_.inflationparameters.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:91](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L91)* - -Querying the inflation parameters. - -**Returns:** *Promise‹[InflationParameters](../interfaces/_wrappers_stabletokenwrapper_.inflationparameters.md)›* - -Inflation rate, inflation factor, inflation update period and the last time factor was updated. - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹StableToken›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹StableToken› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/classes/_wrappers_validators_.validatorswrapper.md b/packages/docs/sdk/docs/contractkit/classes/_wrappers_validators_.validatorswrapper.md deleted file mode 100644 index 9a91734ead4..00000000000 --- a/packages/docs/sdk/docs/contractkit/classes/_wrappers_validators_.validatorswrapper.md +++ /dev/null @@ -1,1173 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Validators"](../modules/_wrappers_validators_.md) › [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md) - -# Class: ValidatorsWrapper - -Contract for voting for validators and managing validator groups. - -## Hierarchy - - ↳ [BaseWrapperForGoverning](_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md)‹Validators› - - ↳ **ValidatorsWrapper** - -## Index - -### Constructors - -* [constructor](_wrappers_validators_.validatorswrapper.md#constructor) - -### Properties - -* [affiliate](_wrappers_validators_.validatorswrapper.md#affiliate) -* [deaffiliate](_wrappers_validators_.validatorswrapper.md#deaffiliate) -* [eventTypes](_wrappers_validators_.validatorswrapper.md#eventtypes) -* [events](_wrappers_validators_.validatorswrapper.md#events) -* [forceDeaffiliateIfValidator](_wrappers_validators_.validatorswrapper.md#forcedeaffiliateifvalidator) -* [getAccountLockedGoldRequirement](_wrappers_validators_.validatorswrapper.md#getaccountlockedgoldrequirement) -* [getCommissionUpdateDelay](_wrappers_validators_.validatorswrapper.md#getcommissionupdatedelay) -* [getDowntimeGracePeriod](_wrappers_validators_.validatorswrapper.md#getdowntimegraceperiod) -* [getEpochNumber](_wrappers_validators_.validatorswrapper.md#getepochnumber) -* [getEpochSize](_wrappers_validators_.validatorswrapper.md#getepochsize) -* [getRegisteredValidatorGroupsAddresses](_wrappers_validators_.validatorswrapper.md#getregisteredvalidatorgroupsaddresses) -* [getSlashingMultiplierResetPeriod](_wrappers_validators_.validatorswrapper.md#getslashingmultiplierresetperiod) -* [getValidatorGroupSize](_wrappers_validators_.validatorswrapper.md#getvalidatorgroupsize) -* [getValidatorMembershipHistory](_wrappers_validators_.validatorswrapper.md#getvalidatormembershiphistory) -* [getValidatorMembershipHistoryExtraData](_wrappers_validators_.validatorswrapper.md#getvalidatormembershiphistoryextradata) -* [isValidator](_wrappers_validators_.validatorswrapper.md#isvalidator) -* [isValidatorGroup](_wrappers_validators_.validatorswrapper.md#isvalidatorgroup) -* [methodIds](_wrappers_validators_.validatorswrapper.md#methodids) -* [registerValidator](_wrappers_validators_.validatorswrapper.md#registervalidator) -* [removeMember](_wrappers_validators_.validatorswrapper.md#removemember) -* [resetSlashingMultiplier](_wrappers_validators_.validatorswrapper.md#resetslashingmultiplier) -* [setNextCommissionUpdate](_wrappers_validators_.validatorswrapper.md#setnextcommissionupdate) -* [updateBlsPublicKey](_wrappers_validators_.validatorswrapper.md#updateblspublickey) -* [updateCommission](_wrappers_validators_.validatorswrapper.md#updatecommission) - -### Accessors - -* [address](_wrappers_validators_.validatorswrapper.md#address) - -### Methods - -* [addMember](_wrappers_validators_.validatorswrapper.md#addmember) -* [currentSignerSet](_wrappers_validators_.validatorswrapper.md#currentsignerset) -* [currentValidatorAccountsSet](_wrappers_validators_.validatorswrapper.md#currentvalidatoraccountsset) -* [deregisterValidator](_wrappers_validators_.validatorswrapper.md#deregistervalidator) -* [deregisterValidatorGroup](_wrappers_validators_.validatorswrapper.md#deregistervalidatorgroup) -* [findValidatorMembershipHistoryIndex](_wrappers_validators_.validatorswrapper.md#findvalidatormembershiphistoryindex) -* [getConfig](_wrappers_validators_.validatorswrapper.md#getconfig) -* [getEpochNumberOfBlock](_wrappers_validators_.validatorswrapper.md#getepochnumberofblock) -* [getEpochSizeNumber](_wrappers_validators_.validatorswrapper.md#getepochsizenumber) -* [getGroupLockedGoldRequirements](_wrappers_validators_.validatorswrapper.md#getgrouplockedgoldrequirements) -* [getHumanReadableConfig](_wrappers_validators_.validatorswrapper.md#gethumanreadableconfig) -* [getLastBlockNumberForEpoch](_wrappers_validators_.validatorswrapper.md#getlastblocknumberforepoch) -* [getPastEvents](_wrappers_validators_.validatorswrapper.md#getpastevents) -* [getRegisteredValidatorGroups](_wrappers_validators_.validatorswrapper.md#getregisteredvalidatorgroups) -* [getRegisteredValidators](_wrappers_validators_.validatorswrapper.md#getregisteredvalidators) -* [getRegisteredValidatorsAddresses](_wrappers_validators_.validatorswrapper.md#getregisteredvalidatorsaddresses) -* [getValidator](_wrappers_validators_.validatorswrapper.md#getvalidator) -* [getValidatorFromSigner](_wrappers_validators_.validatorswrapper.md#getvalidatorfromsigner) -* [getValidatorGroup](_wrappers_validators_.validatorswrapper.md#getvalidatorgroup) -* [getValidatorLockedGoldRequirements](_wrappers_validators_.validatorswrapper.md#getvalidatorlockedgoldrequirements) -* [getValidatorMembershipHistoryIndex](_wrappers_validators_.validatorswrapper.md#getvalidatormembershiphistoryindex) -* [getValidatorRewards](_wrappers_validators_.validatorswrapper.md#getvalidatorrewards) -* [meetsValidatorBalanceRequirements](_wrappers_validators_.validatorswrapper.md#meetsvalidatorbalancerequirements) -* [meetsValidatorGroupBalanceRequirements](_wrappers_validators_.validatorswrapper.md#meetsvalidatorgroupbalancerequirements) -* [registerValidatorGroup](_wrappers_validators_.validatorswrapper.md#registervalidatorgroup) -* [reorderMember](_wrappers_validators_.validatorswrapper.md#reordermember) -* [signerToAccount](_wrappers_validators_.validatorswrapper.md#signertoaccount) -* [validatorSignerToAccount](_wrappers_validators_.validatorswrapper.md#validatorsignertoaccount) -* [version](_wrappers_validators_.validatorswrapper.md#version) - -## Constructors - -### constructor - -\+ **new ValidatorsWrapper**(`connection`: Connection, `contract`: Validators, `contracts`: ContractWrappersForVotingAndRules): *[ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md)* - -*Inherited from [ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md).[constructor](_wrappers_validators_.validatorswrapper.md#constructor)* - -*Overrides [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[constructor](_wrappers_basewrapper_.basewrapper.md#constructor)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`contract` | Validators | -`contracts` | ContractWrappersForVotingAndRules | - -**Returns:** *[ValidatorsWrapper](_wrappers_validators_.validatorswrapper.md)* - -## Properties - -### affiliate - -• **affiliate**: *function* = proxySend( - this.connection, - this.contract.methods.affiliate - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:485](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L485)* - -Affiliates a validator with a group, allowing it to be added as a member. -De-affiliates with the previously affiliated group if present. - -**`param`** The validator group with which to affiliate. - -#### Type declaration: - -▸ (`group`: Address): *CeloTransactionObject‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`group` | Address | - -___ - -### deaffiliate - -• **deaffiliate**: *function* = proxySend(this.connection, this.contract.methods.deaffiliate) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:495](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L495)* - -De-affiliates a validator, removing it from the group for which it is a member. -Fails if the account is not a validator with non-zero affiliation. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### eventTypes - -• **eventTypes**: *EventsEnum‹T›* = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[eventTypes](_wrappers_basewrapper_.basewrapper.md#eventtypes)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L63)* - -___ - -### events - -• **events**: *Validators["events"]* = this.contract.events - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[events](_wrappers_basewrapper_.basewrapper.md#events)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L61)* - -___ - -### forceDeaffiliateIfValidator - -• **forceDeaffiliateIfValidator**: *function* = proxySend( - this.connection, - this.contract.methods.forceDeaffiliateIfValidator - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:501](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L501)* - -Removes a validator from the group for which it is a member. - -**`param`** The validator to deaffiliate from their affiliated validator group. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getAccountLockedGoldRequirement - -• **getAccountLockedGoldRequirement**: *function* = proxyCall( - this.contract.methods.getAccountLockedGoldRequirement, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:129](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L129)* - -Returns the Locked Gold requirements for specific account. - -**`returns`** The Locked Gold requirements for a specific account. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getCommissionUpdateDelay - -• **getCommissionUpdateDelay**: *function* = proxyCall( - this.contract.methods.commissionUpdateDelay, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:147](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L147)* - -Returns the update delay, in blocks, for the group commission. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getDowntimeGracePeriod - -• **getDowntimeGracePeriod**: *function* = proxyCall( - this.contract.methods.downtimeGracePeriod, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:156](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L156)* - -Returns the validator downtime grace period - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getEpochNumber - -• **getEpochNumber**: *function* = proxyCall(this.contract.methods.getEpochNumber, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:434](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L434)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getEpochSize - -• **getEpochSize**: *function* = proxyCall(this.contract.methods.getEpochSize, undefined, valueToBigNumber) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:436](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L436)* - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getRegisteredValidatorGroupsAddresses - -• **getRegisteredValidatorGroupsAddresses**: *function* = proxyCall( - this.contract.methods.getRegisteredValidatorGroups - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:395](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L395)* - -Get list of registered validator group addresses - -#### Type declaration: - -▸ (): *Promise‹Address[]›* - -___ - -### getSlashingMultiplierResetPeriod - -• **getSlashingMultiplierResetPeriod**: *function* = proxyCall( - this.contract.methods.slashingMultiplierResetPeriod, - undefined, - valueToBigNumber - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:138](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L138)* - -Returns the reset period, in seconds, for slashing multiplier. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### getValidatorGroupSize - -• **getValidatorGroupSize**: *function* = proxyCall( - this.contract.methods.getGroupNumMembers, - undefined, - valueToInt - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:382](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L382)* - -Get the size (amount of members) of a ValidatorGroup - -#### Type declaration: - -▸ (`group`: Address): *Promise‹number›* - -**Parameters:** - -Name | Type | ------- | ------ | -`group` | Address | - -___ - -### getValidatorMembershipHistory - -• **getValidatorMembershipHistory**: *function* = proxyCall( - this.contract.methods.getMembershipHistory, - undefined, - (res) => - zip((epoch, group): GroupMembership => ({ epoch: valueToInt(epoch), group }), res[0], res[1]) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:361](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L361)* - -Returns the Validator's group membership history - -**`param`** The validator whose membership history to return. - -**`returns`** The group membership history of a validator. - -#### Type declaration: - -▸ (`validator`: Address): *Promise‹[GroupMembership](../interfaces/_wrappers_validators_.groupmembership.md)[]›* - -**Parameters:** - -Name | Type | ------- | ------ | -`validator` | Address | - -___ - -### getValidatorMembershipHistoryExtraData - -• **getValidatorMembershipHistoryExtraData**: *function* = proxyCall( - this.contract.methods.getMembershipHistory, - undefined, - (res) => ({ lastRemovedFromGroupTimestamp: valueToInt(res[2]), tail: valueToInt(res[3]) }) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:373](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L373)* - -Returns extra data from the Validator's group membership history - -**`param`** The validator whose membership history to return. - -**`returns`** The group membership history of a validator. - -#### Type declaration: - -▸ (`validator`: Address): *Promise‹[MembershipHistoryExtraData](../interfaces/_wrappers_validators_.membershiphistoryextradata.md)›* - -**Parameters:** - -Name | Type | ------- | ------ | -`validator` | Address | - -___ - -### isValidator - -• **isValidator**: *function* = proxyCall(this.contract.methods.isValidator) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:253](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L253)* - -Returns whether a particular account has a registered validator. - -**`param`** The account. - -**`returns`** Whether a particular address is a registered validator. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### isValidatorGroup - -• **isValidatorGroup**: *function* = proxyCall(this.contract.methods.isValidatorGroup) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:260](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L260)* - -Returns whether a particular account has a registered validator group. - -**`param`** The account. - -**`returns`** Whether a particular address is a registered validator group. - -#### Type declaration: - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### methodIds - -• **methodIds**: *Record‹keyof T["methods"], string›* = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[methodIds](_wrappers_basewrapper_.basewrapper.md#methodids)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L68)* - -___ - -### registerValidator - -• **registerValidator**: *function* = proxySend( - this.connection, - this.contract.methods.registerValidator, - tupleParser(stringToSolidityBytes, stringToSolidityBytes, stringToSolidityBytes) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:424](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L424)* - -Registers a validator unaffiliated with any validator group. - -Fails if the account is already a validator or validator group. - -**`param`** The address that the validator is using for consensus, should match - the validator signer. - -**`param`** The ECDSA public key that the validator is using for consensus. 64 bytes. - -**`param`** The BLS public key that the validator is using for consensus, should pass proof - of possession. 48 bytes. - -**`param`** The BLS public key proof-of-possession, which consists of a signature on the - account address. 96 bytes. - -#### Type declaration: - -▸ (`ecdsaPublicKey`: string, `blsPublicKey`: string, `blsPop`: string): *CeloTransactionObject‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`ecdsaPublicKey` | string | -`blsPublicKey` | string | -`blsPop` | string | - -___ - -### removeMember - -• **removeMember**: *function* = proxySend(this.connection, this.contract.methods.removeMember) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:542](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L542)* - -Removes a member from a ValidatorGroup -The ValidatorGroup is specified by the `from` of the tx. - -**`param`** The Validator to remove from the group - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### resetSlashingMultiplier - -• **resetSlashingMultiplier**: *function* = proxySend( - this.connection, - this.contract.methods.resetSlashingMultiplier - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:510](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L510)* - -Resets a group's slashing multiplier if it has been >= the reset period since -the last time the group was slashed. - -#### Type declaration: - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### setNextCommissionUpdate - -• **setNextCommissionUpdate**: *function* = proxySend( - this.connection, - this.contract.methods.setNextCommissionUpdate, - tupleParser(valueToFixidityString) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:87](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L87)* - -Queues an update to a validator group's commission. - -**`param`** Fixidity representation of the commission this group receives on epoch - payments made to its members. Must be in the range [0, 1.0]. - -#### Type declaration: - -▸ (`commission`: BigNumber.Value): *CeloTransactionObject‹void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`commission` | BigNumber.Value | - -___ - -### updateBlsPublicKey - -• **updateBlsPublicKey**: *function* = proxySend( - this.connection, - this.contract.methods.updateBlsPublicKey, - tupleParser(stringToSolidityBytes, stringToSolidityBytes) - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:239](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L239)* - -Updates a validator's BLS key. - -**`param`** The BLS public key that the validator is using for consensus, should pass proof - of possession. 48 bytes. - -**`param`** The BLS public key proof-of-possession, which consists of a signature on the - account address. 96 bytes. - -**`returns`** True upon success. - -#### Type declaration: - -▸ (`blsPublicKey`: string, `blsPop`: string): *CeloTransactionObject‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`blsPublicKey` | string | -`blsPop` | string | - -___ - -### updateCommission - -• **updateCommission**: *function* = proxySend( - this.connection, - this.contract.methods.updateCommission - ) - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L96)* - -Updates a validator group's commission based on the previously queued update - -#### Type declaration: - -▸ (): *CeloTransactionObject‹void›* - -## Accessors - -### address - -• **get address**(): *string* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[address](_wrappers_basewrapper_.basewrapper.md#address)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L37)* - -Contract address - -**Returns:** *string* - -## Methods - -### addMember - -▸ **addMember**(`group`: Address, `validator`: Address): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:520](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L520)* - -Adds a member to the end of a validator group's list of members. -Fails if `validator` has not set their affiliation to this account. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`group` | Address | - | -`validator` | Address | The validator to add to the group | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### currentSignerSet - -▸ **currentSignerSet**(): *Promise‹Address[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:628](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L628)* - -Returns the current set of validator signer addresses - -**Returns:** *Promise‹Address[]›* - -___ - -### currentValidatorAccountsSet - -▸ **currentValidatorAccountsSet**(): *Promise‹object[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:638](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L638)* - -Returns the current set of validator signer and account addresses - -**Returns:** *Promise‹object[]›* - -___ - -### deregisterValidator - -▸ **deregisterValidator**(`validatorAddress`: Address): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:442](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L442)* - -De-registers a validator, removing it from the group for which it is a member. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`validatorAddress` | Address | Address of the validator to deregister | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### deregisterValidatorGroup - -▸ **deregisterValidatorGroup**(`validatorGroupAddress`: Address): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:470](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L470)* - -De-registers a validator Group - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`validatorGroupAddress` | Address | Address of the validator group to deregister | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### findValidatorMembershipHistoryIndex - -▸ **findValidatorMembershipHistoryIndex**(`epoch`: number, `history`: [GroupMembership](../interfaces/_wrappers_validators_.groupmembership.md)[]): *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:671](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L671)* - -Returns the index into `history` for `epoch`. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`epoch` | number | The needle. | -`history` | [GroupMembership](../interfaces/_wrappers_validators_.groupmembership.md)[] | The haystack. | - -**Returns:** *number* - -Index for epoch or -1. - -___ - -### getConfig - -▸ **getConfig**(): *Promise‹[ValidatorsConfig](../interfaces/_wrappers_validators_.validatorsconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:165](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L165)* - -Returns current configuration parameters. - -**Returns:** *Promise‹[ValidatorsConfig](../interfaces/_wrappers_validators_.validatorsconfig.md)›* - -___ - -### getEpochNumberOfBlock - -▸ **getEpochNumberOfBlock**(`blockNumber`: number): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:592](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L592)* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockNumber` | number | - -**Returns:** *Promise‹number›* - -___ - -### getEpochSizeNumber - -▸ **getEpochSizeNumber**(): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:580](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L580)* - -**Returns:** *Promise‹number›* - -___ - -### getGroupLockedGoldRequirements - -▸ **getGroupLockedGoldRequirements**(): *Promise‹[LockedGoldRequirements](../interfaces/_wrappers_validators_.lockedgoldrequirements.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:117](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L117)* - -Returns the Locked Gold requirements for validator groups. - -**Returns:** *Promise‹[LockedGoldRequirements](../interfaces/_wrappers_validators_.lockedgoldrequirements.md)›* - -The Locked Gold requirements for validator groups. - -___ - -### getHumanReadableConfig - -▸ **getHumanReadableConfig**(): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:190](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L190)* - -**`dev`** Returns human readable configuration of the validators contract - -**Returns:** *Promise‹object›* - -ValidatorsConfig object - -___ - -### getLastBlockNumberForEpoch - -▸ **getLastBlockNumberForEpoch**(`epochNumber`: number): *Promise‹number›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:586](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L586)* - -**Parameters:** - -Name | Type | ------- | ------ | -`epochNumber` | number | - -**Returns:** *Promise‹number›* - -___ - -### getPastEvents - -▸ **getPastEvents**(`event`: Events‹Validators›, `options`: PastEventOptions): *Promise‹EventLog[]›* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[getPastEvents](_wrappers_basewrapper_.basewrapper.md#getpastevents)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L57)* - -Contract getPastEvents - -**Parameters:** - -Name | Type | ------- | ------ | -`event` | Events‹Validators› | -`options` | PastEventOptions | - -**Returns:** *Promise‹EventLog[]›* - -___ - -### getRegisteredValidatorGroups - -▸ **getRegisteredValidatorGroups**(): *Promise‹[ValidatorGroup](../interfaces/_wrappers_validators_.validatorgroup.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:406](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L406)* - -Get list of registered validator groups - -**Returns:** *Promise‹[ValidatorGroup](../interfaces/_wrappers_validators_.validatorgroup.md)[]›* - -___ - -### getRegisteredValidators - -▸ **getRegisteredValidators**(`blockNumber?`: undefined | number): *Promise‹[Validator](../interfaces/_wrappers_validators_.validator.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:400](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L400)* - -Get list of registered validators - -**Parameters:** - -Name | Type | ------- | ------ | -`blockNumber?` | undefined | number | - -**Returns:** *Promise‹[Validator](../interfaces/_wrappers_validators_.validator.md)[]›* - -___ - -### getRegisteredValidatorsAddresses - -▸ **getRegisteredValidatorsAddresses**(`blockNumber?`: undefined | number): *Promise‹Address[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:389](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L389)* - -Get list of registered validator addresses - -**Parameters:** - -Name | Type | ------- | ------ | -`blockNumber?` | undefined | number | - -**Returns:** *Promise‹Address[]›* - -___ - -### getValidator - -▸ **getValidator**(`address`: Address, `blockNumber?`: undefined | number): *Promise‹[Validator](../interfaces/_wrappers_validators_.validator.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:288](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L288)* - -Get Validator information - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`blockNumber?` | undefined | number | - -**Returns:** *Promise‹[Validator](../interfaces/_wrappers_validators_.validator.md)›* - -___ - -### getValidatorFromSigner - -▸ **getValidatorFromSigner**(`address`: Address, `blockNumber?`: undefined | number): *Promise‹[Validator](../interfaces/_wrappers_validators_.validator.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:305](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L305)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`blockNumber?` | undefined | number | - -**Returns:** *Promise‹[Validator](../interfaces/_wrappers_validators_.validator.md)›* - -___ - -### getValidatorGroup - -▸ **getValidatorGroup**(`address`: Address, `getAffiliates`: boolean, `blockNumber?`: undefined | number): *Promise‹[ValidatorGroup](../interfaces/_wrappers_validators_.validatorgroup.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:323](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L323)* - -Get ValidatorGroup information - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`address` | Address | - | -`getAffiliates` | boolean | true | -`blockNumber?` | undefined | number | - | - -**Returns:** *Promise‹[ValidatorGroup](../interfaces/_wrappers_validators_.validatorgroup.md)›* - -___ - -### getValidatorLockedGoldRequirements - -▸ **getValidatorLockedGoldRequirements**(): *Promise‹[LockedGoldRequirements](../interfaces/_wrappers_validators_.lockedgoldrequirements.md)›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L105)* - -Returns the Locked Gold requirements for validators. - -**Returns:** *Promise‹[LockedGoldRequirements](../interfaces/_wrappers_validators_.lockedgoldrequirements.md)›* - -The Locked Gold requirements for validators. - -___ - -### getValidatorMembershipHistoryIndex - -▸ **getValidatorMembershipHistoryIndex**(`account`: Address, `blockNumber?`: undefined | number): *Promise‹object›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:652](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L652)* - -Returns the group membership for validator account. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`account` | Address | Address of validator account to retrieve group membership for. | -`blockNumber?` | undefined | number | Block number to retrieve group membership at. | - -**Returns:** *Promise‹object›* - -Group and membership history index for `validator`. - -___ - -### getValidatorRewards - -▸ **getValidatorRewards**(`epochNumber`: number): *Promise‹[ValidatorReward](../interfaces/_wrappers_validators_.validatorreward.md)[]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:602](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L602)* - -Retrieves ValidatorRewards for epochNumber. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`epochNumber` | number | The epoch to retrieve ValidatorRewards at. | - -**Returns:** *Promise‹[ValidatorReward](../interfaces/_wrappers_validators_.validatorreward.md)[]›* - -___ - -### meetsValidatorBalanceRequirements - -▸ **meetsValidatorBalanceRequirements**(`address`: Address): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:267](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L267)* - -Returns whether an account meets the requirements to register a validator. - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | - -**Returns:** *Promise‹boolean›* - -Whether an account meets the requirements to register a validator. - -___ - -### meetsValidatorGroupBalanceRequirements - -▸ **meetsValidatorGroupBalanceRequirements**(`address`: Address): *Promise‹boolean›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:280](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L280)* - -Returns whether an account meets the requirements to register a group. - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | - -**Returns:** *Promise‹boolean›* - -Whether an account meets the requirements to register a group. - -___ - -### registerValidatorGroup - -▸ **registerValidatorGroup**(`commission`: BigNumber): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:459](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L459)* - -Registers a validator group with no member validators. -Fails if the account is already a validator or validator group. -Fails if the account does not have sufficient weight. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`commission` | BigNumber | the commission this group receives on epoch payments made to its members. | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### reorderMember - -▸ **reorderMember**(`groupAddr`: Address, `validator`: Address, `newIndex`: number): *Promise‹CeloTransactionObject‹boolean››* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:551](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L551)* - -Reorders a member within a validator group. -Fails if `validator` is not a member of the account's validator group. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`groupAddr` | Address | The validator group | -`validator` | Address | The validator to reorder. | -`newIndex` | number | New position for the validator | - -**Returns:** *Promise‹CeloTransactionObject‹boolean››* - -___ - -### signerToAccount - -▸ **signerToAccount**(`signerAddress`: Address): *Promise‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:226](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L226)* - -Returns the account associated with `signer`. - -**`dev`** Fails if the `signer` is not an account or previously authorized signer. - -**Parameters:** - -Name | Type | ------- | ------ | -`signerAddress` | Address | - -**Returns:** *Promise‹string›* - -The associated account. - -___ - -### validatorSignerToAccount - -▸ **validatorSignerToAccount**(`signerAddress`: Address): *Promise‹string›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:215](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L215)* - -Returns the account associated with `signer`. - -**`dev`** Fails if the `signer` is not an account or currently authorized validator. - -**Parameters:** - -Name | Type | ------- | ------ | -`signerAddress` | Address | - -**Returns:** *Promise‹string›* - -The associated account. - -___ - -### version - -▸ **version**(): *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* - -*Inherited from [BaseWrapper](_wrappers_basewrapper_.basewrapper.md).[version](_wrappers_basewrapper_.basewrapper.md#version)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L41)* - -**Returns:** *Promise‹NonNullable‹T["methods"] extends object ? ContractVersion<> : never››* diff --git a/packages/docs/sdk/docs/contractkit/enums/_base_.celocontract.md b/packages/docs/sdk/docs/contractkit/enums/_base_.celocontract.md deleted file mode 100644 index 40bf89dfed9..00000000000 --- a/packages/docs/sdk/docs/contractkit/enums/_base_.celocontract.md +++ /dev/null @@ -1,287 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["base"](../modules/_base_.md) › [CeloContract](_base_.celocontract.md) - -# Enumeration: CeloContract - -## Index - -### Enumeration members - -* [Accounts](_base_.celocontract.md#accounts) -* [Attestations](_base_.celocontract.md#attestations) -* [BlockchainParameters](_base_.celocontract.md#blockchainparameters) -* [DoubleSigningSlasher](_base_.celocontract.md#doublesigningslasher) -* [DowntimeSlasher](_base_.celocontract.md#downtimeslasher) -* [ERC20](_base_.celocontract.md#erc20) -* [Election](_base_.celocontract.md#election) -* [EpochRewards](_base_.celocontract.md#epochrewards) -* [Escrow](_base_.celocontract.md#escrow) -* [Exchange](_base_.celocontract.md#exchange) -* [ExchangeBRL](_base_.celocontract.md#exchangebrl) -* [ExchangeEUR](_base_.celocontract.md#exchangeeur) -* [FeeCurrencyWhitelist](_base_.celocontract.md#feecurrencywhitelist) -* [Freezer](_base_.celocontract.md#freezer) -* [GasPriceMinimum](_base_.celocontract.md#gaspriceminimum) -* [GoldToken](_base_.celocontract.md#goldtoken) -* [Governance](_base_.celocontract.md#governance) -* [GrandaMento](_base_.celocontract.md#grandamento) -* [LockedGold](_base_.celocontract.md#lockedgold) -* [MetaTransactionWallet](_base_.celocontract.md#metatransactionwallet) -* [MetaTransactionWalletDeployer](_base_.celocontract.md#metatransactionwalletdeployer) -* [MultiSig](_base_.celocontract.md#multisig) -* [Random](_base_.celocontract.md#random) -* [Registry](_base_.celocontract.md#registry) -* [Reserve](_base_.celocontract.md#reserve) -* [SortedOracles](_base_.celocontract.md#sortedoracles) -* [StableToken](_base_.celocontract.md#stabletoken) -* [StableTokenBRL](_base_.celocontract.md#stabletokenbrl) -* [StableTokenEUR](_base_.celocontract.md#stabletokeneur) -* [TransferWhitelist](_base_.celocontract.md#transferwhitelist) -* [Validators](_base_.celocontract.md#validators) - -## Enumeration members - -### Accounts - -• **Accounts**: = "Accounts" - -*Defined in [packages/sdk/contractkit/src/base.ts:2](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L2)* - -___ - -### Attestations - -• **Attestations**: = "Attestations" - -*Defined in [packages/sdk/contractkit/src/base.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L3)* - -___ - -### BlockchainParameters - -• **BlockchainParameters**: = "BlockchainParameters" - -*Defined in [packages/sdk/contractkit/src/base.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L4)* - -___ - -### DoubleSigningSlasher - -• **DoubleSigningSlasher**: = "DoubleSigningSlasher" - -*Defined in [packages/sdk/contractkit/src/base.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L5)* - -___ - -### DowntimeSlasher - -• **DowntimeSlasher**: = "DowntimeSlasher" - -*Defined in [packages/sdk/contractkit/src/base.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L6)* - -___ - -### ERC20 - -• **ERC20**: = "ERC20" - -*Defined in [packages/sdk/contractkit/src/base.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L9)* - -___ - -### Election - -• **Election**: = "Election" - -*Defined in [packages/sdk/contractkit/src/base.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L7)* - -___ - -### EpochRewards - -• **EpochRewards**: = "EpochRewards" - -*Defined in [packages/sdk/contractkit/src/base.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L8)* - -___ - -### Escrow - -• **Escrow**: = "Escrow" - -*Defined in [packages/sdk/contractkit/src/base.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L10)* - -___ - -### Exchange - -• **Exchange**: = "Exchange" - -*Defined in [packages/sdk/contractkit/src/base.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L11)* - -___ - -### ExchangeBRL - -• **ExchangeBRL**: = "ExchangeBRL" - -*Defined in [packages/sdk/contractkit/src/base.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L13)* - -___ - -### ExchangeEUR - -• **ExchangeEUR**: = "ExchangeEUR" - -*Defined in [packages/sdk/contractkit/src/base.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L12)* - -___ - -### FeeCurrencyWhitelist - -• **FeeCurrencyWhitelist**: = "FeeCurrencyWhitelist" - -*Defined in [packages/sdk/contractkit/src/base.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L14)* - -___ - -### Freezer - -• **Freezer**: = "Freezer" - -*Defined in [packages/sdk/contractkit/src/base.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L15)* - -___ - -### GasPriceMinimum - -• **GasPriceMinimum**: = "GasPriceMinimum" - -*Defined in [packages/sdk/contractkit/src/base.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L16)* - -___ - -### GoldToken - -• **GoldToken**: = "GoldToken" - -*Defined in [packages/sdk/contractkit/src/base.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L17)* - -___ - -### Governance - -• **Governance**: = "Governance" - -*Defined in [packages/sdk/contractkit/src/base.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L18)* - -___ - -### GrandaMento - -• **GrandaMento**: = "GrandaMento" - -*Defined in [packages/sdk/contractkit/src/base.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L19)* - -___ - -### LockedGold - -• **LockedGold**: = "LockedGold" - -*Defined in [packages/sdk/contractkit/src/base.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L20)* - -___ - -### MetaTransactionWallet - -• **MetaTransactionWallet**: = "MetaTransactionWallet" - -*Defined in [packages/sdk/contractkit/src/base.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L21)* - -___ - -### MetaTransactionWalletDeployer - -• **MetaTransactionWalletDeployer**: = "MetaTransactionWalletDeployer" - -*Defined in [packages/sdk/contractkit/src/base.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L22)* - -___ - -### MultiSig - -• **MultiSig**: = "MultiSig" - -*Defined in [packages/sdk/contractkit/src/base.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L23)* - -___ - -### Random - -• **Random**: = "Random" - -*Defined in [packages/sdk/contractkit/src/base.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L24)* - -___ - -### Registry - -• **Registry**: = "Registry" - -*Defined in [packages/sdk/contractkit/src/base.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L25)* - -___ - -### Reserve - -• **Reserve**: = "Reserve" - -*Defined in [packages/sdk/contractkit/src/base.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L26)* - -___ - -### SortedOracles - -• **SortedOracles**: = "SortedOracles" - -*Defined in [packages/sdk/contractkit/src/base.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L27)* - -___ - -### StableToken - -• **StableToken**: = "StableToken" - -*Defined in [packages/sdk/contractkit/src/base.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L28)* - -___ - -### StableTokenBRL - -• **StableTokenBRL**: = "StableTokenBRL" - -*Defined in [packages/sdk/contractkit/src/base.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L30)* - -___ - -### StableTokenEUR - -• **StableTokenEUR**: = "StableTokenEUR" - -*Defined in [packages/sdk/contractkit/src/base.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L29)* - -___ - -### TransferWhitelist - -• **TransferWhitelist**: = "TransferWhitelist" - -*Defined in [packages/sdk/contractkit/src/base.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L31)* - -___ - -### Validators - -• **Validators**: = "Validators" - -*Defined in [packages/sdk/contractkit/src/base.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L32)* diff --git a/packages/docs/sdk/docs/contractkit/enums/_identity_claims_types_.claimtypes.md b/packages/docs/sdk/docs/contractkit/enums/_identity_claims_types_.claimtypes.md deleted file mode 100644 index 0156f1bdd29..00000000000 --- a/packages/docs/sdk/docs/contractkit/enums/_identity_claims_types_.claimtypes.md +++ /dev/null @@ -1,80 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["identity/claims/types"](../modules/_identity_claims_types_.md) › [ClaimTypes](_identity_claims_types_.claimtypes.md) - -# Enumeration: ClaimTypes - -## Index - -### Enumeration members - -* [ACCOUNT](_identity_claims_types_.claimtypes.md#account) -* [ATTESTATION_SERVICE_URL](_identity_claims_types_.claimtypes.md#attestation_service_url) -* [DOMAIN](_identity_claims_types_.claimtypes.md#domain) -* [KEYBASE](_identity_claims_types_.claimtypes.md#keybase) -* [NAME](_identity_claims_types_.claimtypes.md#name) -* [PROFILE_PICTURE](_identity_claims_types_.claimtypes.md#profile_picture) -* [STORAGE](_identity_claims_types_.claimtypes.md#storage) -* [TWITTER](_identity_claims_types_.claimtypes.md#twitter) - -## Enumeration members - -### ACCOUNT - -• **ACCOUNT**: = "ACCOUNT" - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L11)* - -___ - -### ATTESTATION_SERVICE_URL - -• **ATTESTATION_SERVICE_URL**: = "ATTESTATION_SERVICE_URL" - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L10)* - -___ - -### DOMAIN - -• **DOMAIN**: = "DOMAIN" - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L12)* - -___ - -### KEYBASE - -• **KEYBASE**: = "KEYBASE" - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L13)* - -___ - -### NAME - -• **NAME**: = "NAME" - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L14)* - -___ - -### PROFILE_PICTURE - -• **PROFILE_PICTURE**: = "PROFILE_PICTURE" - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L15)* - -___ - -### STORAGE - -• **STORAGE**: = "STORAGE" - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L16)* - -___ - -### TWITTER - -• **TWITTER**: = "TWITTER" - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L17)* diff --git a/packages/docs/sdk/docs/contractkit/enums/_wrappers_attestations_.attestationservicestatusstate.md b/packages/docs/sdk/docs/contractkit/enums/_wrappers_attestations_.attestationservicestatusstate.md deleted file mode 100644 index 675196e3184..00000000000 --- a/packages/docs/sdk/docs/contractkit/enums/_wrappers_attestations_.attestationservicestatusstate.md +++ /dev/null @@ -1,107 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [AttestationServiceStatusState](_wrappers_attestations_.attestationservicestatusstate.md) - -# Enumeration: AttestationServiceStatusState - -## Index - -### Enumeration members - -* [InvalidAttestationServiceURL](_wrappers_attestations_.attestationservicestatusstate.md#invalidattestationserviceurl) -* [InvalidMetadata](_wrappers_attestations_.attestationservicestatusstate.md#invalidmetadata) -* [MetadataTimeout](_wrappers_attestations_.attestationservicestatusstate.md#metadatatimeout) -* [NoAttestationServiceURL](_wrappers_attestations_.attestationservicestatusstate.md#noattestationserviceurl) -* [NoAttestationSigner](_wrappers_attestations_.attestationservicestatusstate.md#noattestationsigner) -* [NoMetadataURL](_wrappers_attestations_.attestationservicestatusstate.md#nometadataurl) -* [Unhealthy](_wrappers_attestations_.attestationservicestatusstate.md#unhealthy) -* [UnreachableAttestationService](_wrappers_attestations_.attestationservicestatusstate.md#unreachableattestationservice) -* [UnreachableHealthz](_wrappers_attestations_.attestationservicestatusstate.md#unreachablehealthz) -* [Valid](_wrappers_attestations_.attestationservicestatusstate.md#valid) -* [WrongAccount](_wrappers_attestations_.attestationservicestatusstate.md#wrongaccount) - -## Enumeration members - -### InvalidAttestationServiceURL - -• **InvalidAttestationServiceURL**: = "InvalidAttestationServiceURL" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:866](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L866)* - -___ - -### InvalidMetadata - -• **InvalidMetadata**: = "InvalidMetadata" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:864](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L864)* - -___ - -### MetadataTimeout - -• **MetadataTimeout**: = "MetadataTimeout" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:872](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L872)* - -___ - -### NoAttestationServiceURL - -• **NoAttestationServiceURL**: = "NoAttestationServiceURL" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:865](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L865)* - -___ - -### NoAttestationSigner - -• **NoAttestationSigner**: = "NoAttestationSigner" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:862](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L862)* - -___ - -### NoMetadataURL - -• **NoMetadataURL**: = "NoMetadataURL" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:863](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L863)* - -___ - -### Unhealthy - -• **Unhealthy**: = "Unhealthy" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:870](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L870)* - -___ - -### UnreachableAttestationService - -• **UnreachableAttestationService**: = "UnreachableAttestationService" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:867](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L867)* - -___ - -### UnreachableHealthz - -• **UnreachableHealthz**: = "UnreachableHealthz" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:869](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L869)* - -___ - -### Valid - -• **Valid**: = "Valid" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:868](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L868)* - -___ - -### WrongAccount - -• **WrongAccount**: = "WrongAccount" - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:871](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L871)* diff --git a/packages/docs/sdk/docs/contractkit/enums/_wrappers_attestations_.attestationstate.md b/packages/docs/sdk/docs/contractkit/enums/_wrappers_attestations_.attestationstate.md deleted file mode 100644 index f306be8d2a9..00000000000 --- a/packages/docs/sdk/docs/contractkit/enums/_wrappers_attestations_.attestationstate.md +++ /dev/null @@ -1,37 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [AttestationState](_wrappers_attestations_.attestationstate.md) - -# Enumeration: AttestationState - -Contract for managing identities - -## Index - -### Enumeration members - -* [Complete](_wrappers_attestations_.attestationstate.md#complete) -* [Incomplete](_wrappers_attestations_.attestationstate.md#incomplete) -* [None](_wrappers_attestations_.attestationstate.md#none) - -## Enumeration members - -### Complete - -• **Complete**: - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L78)* - -___ - -### Incomplete - -• **Incomplete**: - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L77)* - -___ - -### None - -• **None**: - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:76](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L76)* diff --git a/packages/docs/sdk/docs/contractkit/enums/_wrappers_governance_.proposalstage.md b/packages/docs/sdk/docs/contractkit/enums/_wrappers_governance_.proposalstage.md deleted file mode 100644 index d8b2c975040..00000000000 --- a/packages/docs/sdk/docs/contractkit/enums/_wrappers_governance_.proposalstage.md +++ /dev/null @@ -1,62 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [ProposalStage](_wrappers_governance_.proposalstage.md) - -# Enumeration: ProposalStage - -## Index - -### Enumeration members - -* [Approval](_wrappers_governance_.proposalstage.md#approval) -* [Execution](_wrappers_governance_.proposalstage.md#execution) -* [Expiration](_wrappers_governance_.proposalstage.md#expiration) -* [None](_wrappers_governance_.proposalstage.md#none) -* [Queued](_wrappers_governance_.proposalstage.md#queued) -* [Referendum](_wrappers_governance_.proposalstage.md#referendum) - -## Enumeration members - -### Approval - -• **Approval**: = "Approval" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L33)* - -___ - -### Execution - -• **Execution**: = "Execution" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L35)* - -___ - -### Expiration - -• **Expiration**: = "Expiration" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L36)* - -___ - -### None - -• **None**: = "None" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L31)* - -___ - -### Queued - -• **Queued**: = "Queued" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L32)* - -___ - -### Referendum - -• **Referendum**: = "Referendum" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L34)* diff --git a/packages/docs/sdk/docs/contractkit/enums/_wrappers_governance_.votevalue.md b/packages/docs/sdk/docs/contractkit/enums/_wrappers_governance_.votevalue.md deleted file mode 100644 index 76d4f14a66f..00000000000 --- a/packages/docs/sdk/docs/contractkit/enums/_wrappers_governance_.votevalue.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [VoteValue](_wrappers_governance_.votevalue.md) - -# Enumeration: VoteValue - -## Index - -### Enumeration members - -* [Abstain](_wrappers_governance_.votevalue.md#abstain) -* [No](_wrappers_governance_.votevalue.md#no) -* [None](_wrappers_governance_.votevalue.md#none) -* [Yes](_wrappers_governance_.votevalue.md#yes) - -## Enumeration members - -### Abstain - -• **Abstain**: = "Abstain" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:111](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L111)* - -___ - -### No - -• **No**: = "No" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:112](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L112)* - -___ - -### None - -• **None**: = "NONE" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:110](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L110)* - -___ - -### Yes - -• **Yes**: = "Yes" - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:113](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L113)* diff --git a/packages/docs/sdk/docs/contractkit/enums/_wrappers_grandamento_.exchangeproposalstate.md b/packages/docs/sdk/docs/contractkit/enums/_wrappers_grandamento_.exchangeproposalstate.md deleted file mode 100644 index ed04844d398..00000000000 --- a/packages/docs/sdk/docs/contractkit/enums/_wrappers_grandamento_.exchangeproposalstate.md +++ /dev/null @@ -1,53 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GrandaMento"](../modules/_wrappers_grandamento_.md) › [ExchangeProposalState](_wrappers_grandamento_.exchangeproposalstate.md) - -# Enumeration: ExchangeProposalState - -## Index - -### Enumeration members - -* [Approved](_wrappers_grandamento_.exchangeproposalstate.md#approved) -* [Cancelled](_wrappers_grandamento_.exchangeproposalstate.md#cancelled) -* [Executed](_wrappers_grandamento_.exchangeproposalstate.md#executed) -* [None](_wrappers_grandamento_.exchangeproposalstate.md#none) -* [Proposed](_wrappers_grandamento_.exchangeproposalstate.md#proposed) - -## Enumeration members - -### Approved - -• **Approved**: - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L18)* - -___ - -### Cancelled - -• **Cancelled**: - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L20)* - -___ - -### Executed - -• **Executed**: - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L19)* - -___ - -### None - -• **None**: - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L16)* - -___ - -### Proposed - -• **Proposed**: - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L17)* diff --git a/packages/docs/sdk/docs/contractkit/enums/_wrappers_sortedoracles_.medianrelation.md b/packages/docs/sdk/docs/contractkit/enums/_wrappers_sortedoracles_.medianrelation.md deleted file mode 100644 index 3c1610682c1..00000000000 --- a/packages/docs/sdk/docs/contractkit/enums/_wrappers_sortedoracles_.medianrelation.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/SortedOracles"](../modules/_wrappers_sortedoracles_.md) › [MedianRelation](_wrappers_sortedoracles_.medianrelation.md) - -# Enumeration: MedianRelation - -## Index - -### Enumeration members - -* [Equal](_wrappers_sortedoracles_.medianrelation.md#equal) -* [Greater](_wrappers_sortedoracles_.medianrelation.md#greater) -* [Lesser](_wrappers_sortedoracles_.medianrelation.md#lesser) -* [Undefined](_wrappers_sortedoracles_.medianrelation.md#undefined) - -## Enumeration members - -### Equal - -• **Equal**: - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L23)* - -___ - -### Greater - -• **Greater**: - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L22)* - -___ - -### Lesser - -• **Lesser**: - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L21)* - -___ - -### Undefined - -• **Undefined**: - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L20)* diff --git a/packages/docs/sdk/docs/contractkit/globals.md b/packages/docs/sdk/docs/contractkit/globals.md deleted file mode 100644 index 02977b1f74e..00000000000 --- a/packages/docs/sdk/docs/contractkit/globals.md +++ /dev/null @@ -1,60 +0,0 @@ -[@celo/contractkit](README.md) › [Globals](globals.md) - -# @celo/contractkit - -## Index - -### Modules - -* ["address-registry"](modules/_address_registry_.md) -* ["base"](modules/_base_.md) -* ["basic-contract-cache-type"](modules/_basic_contract_cache_type_.md) -* ["celo-tokens"](modules/_celo_tokens_.md) -* ["contract-cache"](modules/_contract_cache_.md) -* ["identity/claims/account"](modules/_identity_claims_account_.md) -* ["identity/claims/attestation-service-url"](modules/_identity_claims_attestation_service_url_.md) -* ["identity/claims/claim"](modules/_identity_claims_claim_.md) -* ["identity/claims/keybase"](modules/_identity_claims_keybase_.md) -* ["identity/claims/types"](modules/_identity_claims_types_.md) -* ["identity/claims/verify"](modules/_identity_claims_verify_.md) -* ["identity/metadata"](modules/_identity_metadata_.md) -* ["kit"](modules/_kit_.md) -* ["mini-contract-cache"](modules/_mini_contract_cache_.md) -* ["mini-kit"](modules/_mini_kit_.md) -* ["proxy"](modules/_proxy_.md) -* ["setupForKits"](modules/_setupforkits_.md) -* ["test-utils/PromiEventStub"](modules/_test_utils_promieventstub_.md) -* ["test-utils/grandaMento"](modules/_test_utils_grandamento_.md) -* ["test-utils/setup.global"](modules/_test_utils_setup_global_.md) -* ["test-utils/teardown.global"](modules/_test_utils_teardown_global_.md) -* ["test-utils/transferownership"](modules/_test_utils_transferownership_.md) -* ["versions"](modules/_versions_.md) -* ["web3-contract-cache"](modules/_web3_contract_cache_.md) -* ["wrappers/Accounts"](modules/_wrappers_accounts_.md) -* ["wrappers/Attestations"](modules/_wrappers_attestations_.md) -* ["wrappers/BaseSlasher"](modules/_wrappers_baseslasher_.md) -* ["wrappers/BaseWrapper"](modules/_wrappers_basewrapper_.md) -* ["wrappers/BaseWrapperForGoverning"](modules/_wrappers_basewrapperforgoverning_.md) -* ["wrappers/BlockchainParameters"](modules/_wrappers_blockchainparameters_.md) -* ["wrappers/CeloTokenWrapper"](modules/_wrappers_celotokenwrapper_.md) -* ["wrappers/DoubleSigningSlasher"](modules/_wrappers_doublesigningslasher_.md) -* ["wrappers/DowntimeSlasher"](modules/_wrappers_downtimeslasher_.md) -* ["wrappers/Election"](modules/_wrappers_election_.md) -* ["wrappers/EpochRewards"](modules/_wrappers_epochrewards_.md) -* ["wrappers/Erc20Wrapper"](modules/_wrappers_erc20wrapper_.md) -* ["wrappers/Escrow"](modules/_wrappers_escrow_.md) -* ["wrappers/Exchange"](modules/_wrappers_exchange_.md) -* ["wrappers/Freezer"](modules/_wrappers_freezer_.md) -* ["wrappers/GasPriceMinimum"](modules/_wrappers_gaspriceminimum_.md) -* ["wrappers/GoldTokenWrapper"](modules/_wrappers_goldtokenwrapper_.md) -* ["wrappers/Governance"](modules/_wrappers_governance_.md) -* ["wrappers/GrandaMento"](modules/_wrappers_grandamento_.md) -* ["wrappers/LockedGold"](modules/_wrappers_lockedgold_.md) -* ["wrappers/MetaTransactionWallet"](modules/_wrappers_metatransactionwallet_.md) -* ["wrappers/MetaTransactionWalletDeployer"](modules/_wrappers_metatransactionwalletdeployer_.md) -* ["wrappers/MultiSig"](modules/_wrappers_multisig_.md) -* ["wrappers/ReleaseGold"](modules/_wrappers_releasegold_.md) -* ["wrappers/Reserve"](modules/_wrappers_reserve_.md) -* ["wrappers/SortedOracles"](modules/_wrappers_sortedoracles_.md) -* ["wrappers/StableTokenWrapper"](modules/_wrappers_stabletokenwrapper_.md) -* ["wrappers/Validators"](modules/_wrappers_validators_.md) diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_basic_contract_cache_type_.contractcachetype.md b/packages/docs/sdk/docs/contractkit/interfaces/_basic_contract_cache_type_.contractcachetype.md deleted file mode 100644 index 73fbc2da79a..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_basic_contract_cache_type_.contractcachetype.md +++ /dev/null @@ -1,117 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["basic-contract-cache-type"](../modules/_basic_contract_cache_type_.md) › [ContractCacheType](_basic_contract_cache_type_.contractcachetype.md) - -# Interface: ContractCacheType - -Interface for a class with the minimum required wrappers -to make a [MiniContractKit](../classes/_mini_kit_.minicontractkit.md) or [CeloTokens](../classes/_celo_tokens_.celotokens.md) Class - -## Hierarchy - -* **ContractCacheType** - -## Implemented by - -* [MiniContractCache](../classes/_mini_contract_cache_.minicontractcache.md) -* [WrapperCache](../classes/_contract_cache_.wrappercache.md) - -## Index - -### Methods - -* [getAccounts](_basic_contract_cache_type_.contractcachetype.md#getaccounts) -* [getContract](_basic_contract_cache_type_.contractcachetype.md#getcontract) -* [getExchange](_basic_contract_cache_type_.contractcachetype.md#getexchange) -* [getGoldToken](_basic_contract_cache_type_.contractcachetype.md#getgoldtoken) -* [getStableToken](_basic_contract_cache_type_.contractcachetype.md#getstabletoken) - -## Methods - -### getAccounts - -▸ **getAccounts**(): *Promise‹[AccountsWrapper](../classes/_wrappers_accounts_.accountswrapper.md)›* - -*Defined in [packages/sdk/contractkit/src/basic-contract-cache-type.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/basic-contract-cache-type.ts#L13)* - -**Returns:** *Promise‹[AccountsWrapper](../classes/_wrappers_accounts_.accountswrapper.md)›* - -___ - -### getContract - -▸ **getContract**(`contract`: [Exchange](../enums/_base_.celocontract.md#exchange) | [ExchangeEUR](../enums/_base_.celocontract.md#exchangeeur) | [ExchangeBRL](../enums/_base_.celocontract.md#exchangebrl)): *Promise‹[ExchangeWrapper](../classes/_wrappers_exchange_.exchangewrapper.md)›* - -*Defined in [packages/sdk/contractkit/src/basic-contract-cache-type.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/basic-contract-cache-type.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | [Exchange](../enums/_base_.celocontract.md#exchange) | [ExchangeEUR](../enums/_base_.celocontract.md#exchangeeur) | [ExchangeBRL](../enums/_base_.celocontract.md#exchangebrl) | - -**Returns:** *Promise‹[ExchangeWrapper](../classes/_wrappers_exchange_.exchangewrapper.md)›* - -▸ **getContract**(`contract`: [CeloTokenContract](../modules/_base_.md#celotokencontract)): *Promise‹[StableTokenWrapper](../classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md)›* - -*Defined in [packages/sdk/contractkit/src/basic-contract-cache-type.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/basic-contract-cache-type.ts#L23)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | [CeloTokenContract](../modules/_base_.md#celotokencontract) | - -**Returns:** *Promise‹[StableTokenWrapper](../classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md)›* - -▸ **getContract**(`contract`: [GoldToken](../enums/_base_.celocontract.md#goldtoken)): *Promise‹[GoldTokenWrapperType](../modules/_wrappers_goldtokenwrapper_.md#goldtokenwrappertype)›* - -*Defined in [packages/sdk/contractkit/src/basic-contract-cache-type.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/basic-contract-cache-type.ts#L24)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | [GoldToken](../enums/_base_.celocontract.md#goldtoken) | - -**Returns:** *Promise‹[GoldTokenWrapperType](../modules/_wrappers_goldtokenwrapper_.md#goldtokenwrappertype)›* - -___ - -### getExchange - -▸ **getExchange**(`stableToken`: [StableToken](../enums/_base_.celocontract.md#stabletoken)): *Promise‹[ExchangeWrapper](../classes/_wrappers_exchange_.exchangewrapper.md)›* - -*Defined in [packages/sdk/contractkit/src/basic-contract-cache-type.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/basic-contract-cache-type.ts#L14)* - -**Parameters:** - -Name | Type | ------- | ------ | -`stableToken` | [StableToken](../enums/_base_.celocontract.md#stabletoken) | - -**Returns:** *Promise‹[ExchangeWrapper](../classes/_wrappers_exchange_.exchangewrapper.md)›* - -___ - -### getGoldToken - -▸ **getGoldToken**(): *Promise‹[GoldTokenWrapper](../classes/_wrappers_goldtokenwrapper_.goldtokenwrapper.md)›* - -*Defined in [packages/sdk/contractkit/src/basic-contract-cache-type.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/basic-contract-cache-type.ts#L16)* - -**Returns:** *Promise‹[GoldTokenWrapper](../classes/_wrappers_goldtokenwrapper_.goldtokenwrapper.md)›* - -___ - -### getStableToken - -▸ **getStableToken**(`stableToken`: [StableToken](../enums/_base_.celocontract.md#stabletoken)): *Promise‹[StableTokenWrapper](../classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md)›* - -*Defined in [packages/sdk/contractkit/src/basic-contract-cache-type.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/basic-contract-cache-type.ts#L18)* - -**Parameters:** - -Name | Type | ------- | ------ | -`stableToken` | [StableToken](../enums/_base_.celocontract.md#stabletoken) | - -**Returns:** *Promise‹[StableTokenWrapper](../classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md)›* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_celo_tokens_.celotokeninfo.md b/packages/docs/sdk/docs/contractkit/interfaces/_celo_tokens_.celotokeninfo.md deleted file mode 100644 index c213a6c940a..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_celo_tokens_.celotokeninfo.md +++ /dev/null @@ -1,32 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["celo-tokens"](../modules/_celo_tokens_.md) › [CeloTokenInfo](_celo_tokens_.celotokeninfo.md) - -# Interface: CeloTokenInfo - -## Hierarchy - -* **CeloTokenInfo** - - ↳ [StableTokenInfo](_celo_tokens_.stabletokeninfo.md) - -## Index - -### Properties - -* [contract](_celo_tokens_.celotokeninfo.md#contract) -* [symbol](_celo_tokens_.celotokeninfo.md#symbol) - -## Properties - -### contract - -• **contract**: *[CeloTokenContract](../modules/_base_.md#celotokencontract)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L17)* - -___ - -### symbol - -• **symbol**: *[CeloTokenType](../modules/_celo_tokens_.md#celotokentype)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L18)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_celo_tokens_.stabletokeninfo.md b/packages/docs/sdk/docs/contractkit/interfaces/_celo_tokens_.stabletokeninfo.md deleted file mode 100644 index ea967dec77b..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_celo_tokens_.stabletokeninfo.md +++ /dev/null @@ -1,45 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["celo-tokens"](../modules/_celo_tokens_.md) › [StableTokenInfo](_celo_tokens_.stabletokeninfo.md) - -# Interface: StableTokenInfo - -## Hierarchy - -* [CeloTokenInfo](_celo_tokens_.celotokeninfo.md) - - ↳ **StableTokenInfo** - -## Index - -### Properties - -* [contract](_celo_tokens_.stabletokeninfo.md#contract) -* [exchangeContract](_celo_tokens_.stabletokeninfo.md#exchangecontract) -* [symbol](_celo_tokens_.stabletokeninfo.md#symbol) - -## Properties - -### contract - -• **contract**: *[StableTokenContract](../modules/_base_.md#stabletokencontract)* - -*Overrides [CeloTokenInfo](_celo_tokens_.celotokeninfo.md).[contract](_celo_tokens_.celotokeninfo.md#contract)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L22)* - -___ - -### exchangeContract - -• **exchangeContract**: *[ExchangeContract](../modules/_base_.md#exchangecontract)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L23)* - -___ - -### symbol - -• **symbol**: *[CeloTokenType](../modules/_celo_tokens_.md#celotokentype)* - -*Inherited from [CeloTokenInfo](_celo_tokens_.celotokeninfo.md).[symbol](_celo_tokens_.celotokeninfo.md#symbol)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L18)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_kit_.networkconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_kit_.networkconfig.md deleted file mode 100644 index 5536cc62cc6..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_kit_.networkconfig.md +++ /dev/null @@ -1,129 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["kit"](../modules/_kit_.md) › [NetworkConfig](_kit_.networkconfig.md) - -# Interface: NetworkConfig - -## Hierarchy - -* **NetworkConfig** - -## Index - -### Properties - -* [attestations](_kit_.networkconfig.md#attestations) -* [blockchainParameters](_kit_.networkconfig.md#blockchainparameters) -* [downtimeSlasher](_kit_.networkconfig.md#downtimeslasher) -* [election](_kit_.networkconfig.md#election) -* [exchanges](_kit_.networkconfig.md#exchanges) -* [gasPriceMinimum](_kit_.networkconfig.md#gaspriceminimum) -* [governance](_kit_.networkconfig.md#governance) -* [grandaMento](_kit_.networkconfig.md#grandamento) -* [lockedGold](_kit_.networkconfig.md#lockedgold) -* [reserve](_kit_.networkconfig.md#reserve) -* [sortedOracles](_kit_.networkconfig.md#sortedoracles) -* [stableTokens](_kit_.networkconfig.md#stabletokens) -* [validators](_kit_.networkconfig.md#validators) - -## Properties - -### attestations - -• **attestations**: *[AttestationsConfig](_wrappers_attestations_.attestationsconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L74)* - -___ - -### blockchainParameters - -• **blockchainParameters**: *[BlockchainParametersConfig](_wrappers_blockchainparameters_.blockchainparametersconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L82)* - -___ - -### downtimeSlasher - -• **downtimeSlasher**: *[DowntimeSlasherConfig](_wrappers_downtimeslasher_.downtimeslasherconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L81)* - -___ - -### election - -• **election**: *[ElectionConfig](_wrappers_election_.electionconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:73](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L73)* - -___ - -### exchanges - -• **exchanges**: *[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹[ExchangeConfig](_wrappers_exchange_.exchangeconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L71)* - -___ - -### gasPriceMinimum - -• **gasPriceMinimum**: *[GasPriceMinimumConfig](_wrappers_gaspriceminimum_.gaspriceminimumconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L78)* - -___ - -### governance - -• **governance**: *[GovernanceConfig](_wrappers_governance_.governanceconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L75)* - -___ - -### grandaMento - -• **grandaMento**: *[GrandaMentoConfig](_wrappers_grandamento_.grandamentoconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:83](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L83)* - -___ - -### lockedGold - -• **lockedGold**: *[LockedGoldConfig](_wrappers_lockedgold_.lockedgoldconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:76](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L76)* - -___ - -### reserve - -• **reserve**: *[ReserveConfig](_wrappers_reserve_.reserveconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:79](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L79)* - -___ - -### sortedOracles - -• **sortedOracles**: *[SortedOraclesConfig](_wrappers_sortedoracles_.sortedoraclesconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L77)* - -___ - -### stableTokens - -• **stableTokens**: *[EachCeloToken](../modules/_celo_tokens_.md#eachcelotoken)‹[StableTokenConfig](_wrappers_stabletokenwrapper_.stabletokenconfig.md)›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L72)* - -___ - -### validators - -• **validators**: *[ValidatorsConfig](_wrappers_validators_.validatorsconfig.md)* - -*Defined in [packages/sdk/contractkit/src/kit.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L80)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.actionableattestation.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.actionableattestation.md deleted file mode 100644 index 6b180b407f0..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.actionableattestation.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [ActionableAttestation](_wrappers_attestations_.actionableattestation.md) - -# Interface: ActionableAttestation - -## Hierarchy - -* **ActionableAttestation** - -## Index - -### Properties - -* [attestationServiceURL](_wrappers_attestations_.actionableattestation.md#attestationserviceurl) -* [blockNumber](_wrappers_attestations_.actionableattestation.md#blocknumber) -* [issuer](_wrappers_attestations_.actionableattestation.md#issuer) -* [name](_wrappers_attestations_.actionableattestation.md#name) -* [version](_wrappers_attestations_.actionableattestation.md#version) - -## Properties - -### attestationServiceURL - -• **attestationServiceURL**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:84](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L84)* - -___ - -### blockNumber - -• **blockNumber**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:83](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L83)* - -___ - -### issuer - -• **issuer**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L82)* - -___ - -### name - -• **name**: *string | undefined* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:85](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L85)* - -___ - -### version - -• **version**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:86](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L86)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationsconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationsconfig.md deleted file mode 100644 index c574e16118a..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationsconfig.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [AttestationsConfig](_wrappers_attestations_.attestationsconfig.md) - -# Interface: AttestationsConfig - -## Hierarchy - -* **AttestationsConfig** - -## Index - -### Properties - -* [attestationExpiryBlocks](_wrappers_attestations_.attestationsconfig.md#attestationexpiryblocks) -* [attestationRequestFees](_wrappers_attestations_.attestationsconfig.md#attestationrequestfees) - -## Properties - -### attestationExpiryBlocks - -• **attestationExpiryBlocks**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L68)* - -___ - -### attestationRequestFees - -• **attestationRequestFees**: *[AttestationsToken](_wrappers_attestations_.attestationstoken.md)[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L69)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationservicestatusresponse.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationservicestatusresponse.md deleted file mode 100644 index 38bb88f8564..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationservicestatusresponse.md +++ /dev/null @@ -1,219 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [AttestationServiceStatusResponse](_wrappers_attestations_.attestationservicestatusresponse.md) - -# Interface: AttestationServiceStatusResponse - -## Hierarchy - -* **AttestationServiceStatusResponse** - -## Index - -### Properties - -* [address](_wrappers_attestations_.attestationservicestatusresponse.md#address) -* [affiliation](_wrappers_attestations_.attestationservicestatusresponse.md#affiliation) -* [ageOfLatestBlock](_wrappers_attestations_.attestationservicestatusresponse.md#ageoflatestblock) -* [attestationServiceURL](_wrappers_attestations_.attestationservicestatusresponse.md#attestationserviceurl) -* [attestationSigner](_wrappers_attestations_.attestationservicestatusresponse.md#attestationsigner) -* [blacklistedRegionCodes](_wrappers_attestations_.attestationservicestatusresponse.md#blacklistedregioncodes) -* [blsPublicKey](_wrappers_attestations_.attestationservicestatusresponse.md#blspublickey) -* [ecdsaPublicKey](_wrappers_attestations_.attestationservicestatusresponse.md#ecdsapublickey) -* [error](_wrappers_attestations_.attestationservicestatusresponse.md#error) -* [hasAttestationSigner](_wrappers_attestations_.attestationservicestatusresponse.md#hasattestationsigner) -* [maxDeliveryAttempts](_wrappers_attestations_.attestationservicestatusresponse.md#maxdeliveryattempts) -* [maxRerequestMins](_wrappers_attestations_.attestationservicestatusresponse.md#maxrerequestmins) -* [metadataURL](_wrappers_attestations_.attestationservicestatusresponse.md#metadataurl) -* [name](_wrappers_attestations_.attestationservicestatusresponse.md#name) -* [okStatus](_wrappers_attestations_.attestationservicestatusresponse.md#okstatus) -* [rightAccount](_wrappers_attestations_.attestationservicestatusresponse.md#rightaccount) -* [score](_wrappers_attestations_.attestationservicestatusresponse.md#score) -* [signer](_wrappers_attestations_.attestationservicestatusresponse.md#signer) -* [smsProviders](_wrappers_attestations_.attestationservicestatusresponse.md#smsproviders) -* [smsProvidersRandomized](_wrappers_attestations_.attestationservicestatusresponse.md#smsprovidersrandomized) -* [state](_wrappers_attestations_.attestationservicestatusresponse.md#state) -* [twilioVerifySidProvided](_wrappers_attestations_.attestationservicestatusresponse.md#twilioverifysidprovided) -* [version](_wrappers_attestations_.attestationservicestatusresponse.md#version) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:876](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L876)* - -___ - -### affiliation - -• **affiliation**: *string | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:879](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L879)* - -___ - -### ageOfLatestBlock - -• **ageOfLatestBlock**: *number | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:893](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L893)* - -___ - -### attestationServiceURL - -• **attestationServiceURL**: *string | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:883](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L883)* - -___ - -### attestationSigner - -• **attestationSigner**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:882](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L882)* - -___ - -### blacklistedRegionCodes - -• **blacklistedRegionCodes**: *string[] | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:888](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L888)* - -___ - -### blsPublicKey - -• **blsPublicKey**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:878](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L878)* - -___ - -### ecdsaPublicKey - -• **ecdsaPublicKey**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:877](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L877)* - -___ - -### error - -• **error**: *null | [Error](../classes/_address_registry_.unregisterederror.md#static-error)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:886](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L886)* - -___ - -### hasAttestationSigner - -• **hasAttestationSigner**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:881](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L881)* - -___ - -### maxDeliveryAttempts - -• **maxDeliveryAttempts**: *number | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:895](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L895)* - -___ - -### maxRerequestMins - -• **maxRerequestMins**: *number | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:896](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L896)* - -___ - -### metadataURL - -• **metadataURL**: *string | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:884](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L884)* - -___ - -### name - -• **name**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:875](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L875)* - -___ - -### okStatus - -• **okStatus**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:885](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L885)* - -___ - -### rightAccount - -• **rightAccount**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:889](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L889)* - -___ - -### score - -• **score**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:880](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L880)* - -___ - -### signer - -• **signer**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:890](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L890)* - -___ - -### smsProviders - -• **smsProviders**: *string[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:887](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L887)* - -___ - -### smsProvidersRandomized - -• **smsProvidersRandomized**: *boolean | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:894](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L894)* - -___ - -### state - -• **state**: *[AttestationServiceStatusState](../enums/_wrappers_attestations_.attestationservicestatusstate.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:891](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L891)* - -___ - -### twilioVerifySidProvided - -• **twilioVerifySidProvided**: *boolean | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:897](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L897)* - -___ - -### version - -• **version**: *string | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:892](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L892)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstat.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstat.md deleted file mode 100644 index 80fbf176ed7..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstat.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [AttestationStat](_wrappers_attestations_.attestationstat.md) - -# Interface: AttestationStat - -## Hierarchy - -* **AttestationStat** - -## Index - -### Properties - -* [completed](_wrappers_attestations_.attestationstat.md#completed) -* [total](_wrappers_attestations_.attestationstat.md#total) - -## Properties - -### completed - -• **completed**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L54)* - -___ - -### total - -• **total**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L55)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstateforissuer.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstateforissuer.md deleted file mode 100644 index 69b6ddc3afd..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstateforissuer.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [AttestationStateForIssuer](_wrappers_attestations_.attestationstateforissuer.md) - -# Interface: AttestationStateForIssuer - -## Hierarchy - -* **AttestationStateForIssuer** - -## Index - -### Properties - -* [attestationState](_wrappers_attestations_.attestationstateforissuer.md#attestationstate) - -## Properties - -### attestationState - -• **attestationState**: *[AttestationState](../enums/_wrappers_attestations_.attestationstate.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L59)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstoken.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstoken.md deleted file mode 100644 index 4499906de73..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.attestationstoken.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [AttestationsToken](_wrappers_attestations_.attestationstoken.md) - -# Interface: AttestationsToken - -## Hierarchy - -* **AttestationsToken** - -## Index - -### Properties - -* [address](_wrappers_attestations_.attestationstoken.md#address) -* [fee](_wrappers_attestations_.attestationstoken.md#fee) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L63)* - -___ - -### fee - -• **fee**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L64)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.unselectedrequest.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.unselectedrequest.md deleted file mode 100644 index 8bc0c35149a..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_attestations_.unselectedrequest.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](../modules/_wrappers_attestations_.md) › [UnselectedRequest](_wrappers_attestations_.unselectedrequest.md) - -# Interface: UnselectedRequest - -## Hierarchy - -* **UnselectedRequest** - -## Index - -### Properties - -* [attestationRequestFeeToken](_wrappers_attestations_.unselectedrequest.md#attestationrequestfeetoken) -* [attestationsRequested](_wrappers_attestations_.unselectedrequest.md#attestationsrequested) -* [blockNumber](_wrappers_attestations_.unselectedrequest.md#blocknumber) - -## Properties - -### attestationRequestFeeToken - -• **attestationRequestFeeToken**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L96)* - -___ - -### attestationsRequested - -• **attestationsRequested**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:95](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L95)* - -___ - -### blockNumber - -• **blockNumber**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:94](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L94)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_blockchainparameters_.blockchainparametersconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_blockchainparameters_.blockchainparametersconfig.md deleted file mode 100644 index a16ee42b16d..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_blockchainparameters_.blockchainparametersconfig.md +++ /dev/null @@ -1,29 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BlockchainParameters"](../modules/_wrappers_blockchainparameters_.md) › [BlockchainParametersConfig](_wrappers_blockchainparameters_.blockchainparametersconfig.md) - -# Interface: BlockchainParametersConfig - -## Hierarchy - -* **BlockchainParametersConfig** - -## Index - -### Properties - -* [blockGasLimit](_wrappers_blockchainparameters_.blockchainparametersconfig.md#blockgaslimit) -* [intrinsicGasForAlternativeFeeCurrency](_wrappers_blockchainparameters_.blockchainparametersconfig.md#intrinsicgasforalternativefeecurrency) -## Properties - -### blockGasLimit - -• **blockGasLimit**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L12)* - -___ - -### intrinsicGasForAlternativeFeeCurrency - -• **intrinsicGasForAlternativeFeeCurrency**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L14)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_blockchainparameters_.clientversion.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_blockchainparameters_.clientversion.md deleted file mode 100644 index f60a0dc71f6..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_blockchainparameters_.clientversion.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BlockchainParameters"](../modules/_wrappers_blockchainparameters_.md) › [ClientVersion](_wrappers_blockchainparameters_.clientversion.md) - -# Interface: ClientVersion - -## Hierarchy - -* **ClientVersion** - -## Index - -### Properties - -* [major](_wrappers_blockchainparameters_.clientversion.md#major) -* [minor](_wrappers_blockchainparameters_.clientversion.md#minor) -* [patch](_wrappers_blockchainparameters_.clientversion.md#patch) - -## Properties - -### major - -• **major**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L6)* - -___ - -### minor - -• **minor**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L7)* - -___ - -### patch - -• **patch**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L8)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_downtimeslasher_.downtimeslasherconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_downtimeslasher_.downtimeslasherconfig.md deleted file mode 100644 index 645a2201169..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_downtimeslasher_.downtimeslasherconfig.md +++ /dev/null @@ -1,36 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/DowntimeSlasher"](../modules/_wrappers_downtimeslasher_.md) › [DowntimeSlasherConfig](_wrappers_downtimeslasher_.downtimeslasherconfig.md) - -# Interface: DowntimeSlasherConfig - -## Hierarchy - -* **DowntimeSlasherConfig** - -## Index - -### Properties - -* [slashableDowntime](_wrappers_downtimeslasher_.downtimeslasherconfig.md#slashabledowntime) -* [slashingIncentives](_wrappers_downtimeslasher_.downtimeslasherconfig.md#slashingincentives) - -## Properties - -### slashableDowntime - -• **slashableDowntime**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L14)* - -___ - -### slashingIncentives - -• **slashingIncentives**: *object* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L15)* - -#### Type declaration: - -* **penalty**: *BigNumber* - -* **reward**: *BigNumber* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_downtimeslasher_.interval.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_downtimeslasher_.interval.md deleted file mode 100644 index 946301891ee..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_downtimeslasher_.interval.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/DowntimeSlasher"](../modules/_wrappers_downtimeslasher_.md) › [Interval](_wrappers_downtimeslasher_.interval.md) - -# Interface: Interval - -## Hierarchy - -* **Interval** - -## Index - -### Properties - -* [end](_wrappers_downtimeslasher_.interval.md#end) -* [start](_wrappers_downtimeslasher_.interval.md#start) - -## Properties - -### end - -• **end**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L23)* - -___ - -### start - -• **start**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L22)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.electablevalidators.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.electablevalidators.md deleted file mode 100644 index b136c9c8576..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.electablevalidators.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Election"](../modules/_wrappers_election_.md) › [ElectableValidators](_wrappers_election_.electablevalidators.md) - -# Interface: ElectableValidators - -## Hierarchy - -* **ElectableValidators** - -## Index - -### Properties - -* [max](_wrappers_election_.electablevalidators.md#max) -* [min](_wrappers_election_.electablevalidators.md#min) - -## Properties - -### max - -• **max**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L58)* - -___ - -### min - -• **min**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L57)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.electionconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.electionconfig.md deleted file mode 100644 index 382229c0256..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.electionconfig.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Election"](../modules/_wrappers_election_.md) › [ElectionConfig](_wrappers_election_.electionconfig.md) - -# Interface: ElectionConfig - -## Hierarchy - -* **ElectionConfig** - -## Index - -### Properties - -* [currentThreshold](_wrappers_election_.electionconfig.md#currentthreshold) -* [electabilityThreshold](_wrappers_election_.electionconfig.md#electabilitythreshold) -* [electableValidators](_wrappers_election_.electionconfig.md#electablevalidators) -* [maxNumGroupsVotedFor](_wrappers_election_.electionconfig.md#maxnumgroupsvotedfor) -* [totalVotes](_wrappers_election_.electionconfig.md#totalvotes) - -## Properties - -### currentThreshold - -• **currentThreshold**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L66)* - -___ - -### electabilityThreshold - -• **electabilityThreshold**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L63)* - -___ - -### electableValidators - -• **electableValidators**: *[ElectableValidators](_wrappers_election_.electablevalidators.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L62)* - -___ - -### maxNumGroupsVotedFor - -• **maxNumGroupsVotedFor**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L64)* - -___ - -### totalVotes - -• **totalVotes**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L65)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.groupvote.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.groupvote.md deleted file mode 100644 index 4bac376296e..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.groupvote.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Election"](../modules/_wrappers_election_.md) › [GroupVote](_wrappers_election_.groupvote.md) - -# Interface: GroupVote - -## Hierarchy - -* **GroupVote** - -## Index - -### Properties - -* [active](_wrappers_election_.groupvote.md#active) -* [group](_wrappers_election_.groupvote.md#group) -* [pending](_wrappers_election_.groupvote.md#pending) - -## Properties - -### active - -• **active**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L47)* - -___ - -### group - -• **group**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L45)* - -___ - -### pending - -• **pending**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L46)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.groupvoterreward.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.groupvoterreward.md deleted file mode 100644 index c7fb2d75c1f..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.groupvoterreward.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Election"](../modules/_wrappers_election_.md) › [GroupVoterReward](_wrappers_election_.groupvoterreward.md) - -# Interface: GroupVoterReward - -## Hierarchy - -* **GroupVoterReward** - -## Index - -### Properties - -* [epochNumber](_wrappers_election_.groupvoterreward.md#epochnumber) -* [group](_wrappers_election_.groupvoterreward.md#group) -* [groupVoterPayment](_wrappers_election_.groupvoterreward.md#groupvoterpayment) - -## Properties - -### epochNumber - -• **epochNumber**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L53)* - -___ - -### group - -• **group**: *[ValidatorGroup](_wrappers_validators_.validatorgroup.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L51)* - -___ - -### groupVoterPayment - -• **groupVoterPayment**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L52)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.validatorgroupvote.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.validatorgroupvote.md deleted file mode 100644 index bc5777db504..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.validatorgroupvote.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Election"](../modules/_wrappers_election_.md) › [ValidatorGroupVote](_wrappers_election_.validatorgroupvote.md) - -# Interface: ValidatorGroupVote - -## Hierarchy - -* **ValidatorGroupVote** - -## Index - -### Properties - -* [address](_wrappers_election_.validatorgroupvote.md#address) -* [capacity](_wrappers_election_.validatorgroupvote.md#capacity) -* [eligible](_wrappers_election_.validatorgroupvote.md#eligible) -* [name](_wrappers_election_.validatorgroupvote.md#name) -* [votes](_wrappers_election_.validatorgroupvote.md#votes) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L25)* - -___ - -### capacity - -• **capacity**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L28)* - -___ - -### eligible - -• **eligible**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L29)* - -___ - -### name - -• **name**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L26)* - -___ - -### votes - -• **votes**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L27)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.voter.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.voter.md deleted file mode 100644 index 11107311b64..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.voter.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Election"](../modules/_wrappers_election_.md) › [Voter](_wrappers_election_.voter.md) - -# Interface: Voter - -## Hierarchy - -* **Voter** - -## Index - -### Properties - -* [address](_wrappers_election_.voter.md#address) -* [votes](_wrappers_election_.voter.md#votes) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L33)* - -___ - -### votes - -• **votes**: *[GroupVote](_wrappers_election_.groupvote.md)[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L34)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.voterreward.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.voterreward.md deleted file mode 100644 index 57c75ec8081..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_election_.voterreward.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Election"](../modules/_wrappers_election_.md) › [VoterReward](_wrappers_election_.voterreward.md) - -# Interface: VoterReward - -## Hierarchy - -* **VoterReward** - -## Index - -### Properties - -* [address](_wrappers_election_.voterreward.md#address) -* [addressPayment](_wrappers_election_.voterreward.md#addresspayment) -* [epochNumber](_wrappers_election_.voterreward.md#epochnumber) -* [group](_wrappers_election_.voterreward.md#group) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L38)* - -___ - -### addressPayment - -• **addressPayment**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L39)* - -___ - -### epochNumber - -• **epochNumber**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L41)* - -___ - -### group - -• **group**: *[ValidatorGroup](_wrappers_validators_.validatorgroup.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L40)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_exchange_.exchangeconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_exchange_.exchangeconfig.md deleted file mode 100644 index 0ff135abbdd..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_exchange_.exchangeconfig.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Exchange"](../modules/_wrappers_exchange_.md) › [ExchangeConfig](_wrappers_exchange_.exchangeconfig.md) - -# Interface: ExchangeConfig - -## Hierarchy - -* **ExchangeConfig** - -## Index - -### Properties - -* [lastBucketUpdate](_wrappers_exchange_.exchangeconfig.md#lastbucketupdate) -* [minimumReports](_wrappers_exchange_.exchangeconfig.md#minimumreports) -* [reserveFraction](_wrappers_exchange_.exchangeconfig.md#reservefraction) -* [spread](_wrappers_exchange_.exchangeconfig.md#spread) -* [updateFrequency](_wrappers_exchange_.exchangeconfig.md#updatefrequency) - -## Properties - -### lastBucketUpdate - -• **lastBucketUpdate**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L23)* - -___ - -### minimumReports - -• **minimumReports**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L22)* - -___ - -### reserveFraction - -• **reserveFraction**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L20)* - -___ - -### spread - -• **spread**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L19)* - -___ - -### updateFrequency - -• **updateFrequency**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L21)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_gaspriceminimum_.gaspriceminimumconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_gaspriceminimum_.gaspriceminimumconfig.md deleted file mode 100644 index 77c34a33a24..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_gaspriceminimum_.gaspriceminimumconfig.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GasPriceMinimum"](../modules/_wrappers_gaspriceminimum_.md) › [GasPriceMinimumConfig](_wrappers_gaspriceminimum_.gaspriceminimumconfig.md) - -# Interface: GasPriceMinimumConfig - -## Hierarchy - -* **GasPriceMinimumConfig** - -## Index - -### Properties - -* [adjustmentSpeed](_wrappers_gaspriceminimum_.gaspriceminimumconfig.md#adjustmentspeed) -* [gasPriceMinimum](_wrappers_gaspriceminimum_.gaspriceminimumconfig.md#gaspriceminimum) -* [targetDensity](_wrappers_gaspriceminimum_.gaspriceminimumconfig.md#targetdensity) - -## Properties - -### adjustmentSpeed - -• **adjustmentSpeed**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts#L8)* - -___ - -### gasPriceMinimum - -• **gasPriceMinimum**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts#L6)* - -___ - -### targetDensity - -• **targetDensity**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts#L7)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.governanceconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.governanceconfig.md deleted file mode 100644 index 8a2d77322fd..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.governanceconfig.md +++ /dev/null @@ -1,66 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [GovernanceConfig](_wrappers_governance_.governanceconfig.md) - -# Interface: GovernanceConfig - -## Hierarchy - -* **GovernanceConfig** - -## Index - -### Properties - -* [concurrentProposals](_wrappers_governance_.governanceconfig.md#concurrentproposals) -* [dequeueFrequency](_wrappers_governance_.governanceconfig.md#dequeuefrequency) -* [minDeposit](_wrappers_governance_.governanceconfig.md#mindeposit) -* [participationParameters](_wrappers_governance_.governanceconfig.md#participationparameters) -* [queueExpiry](_wrappers_governance_.governanceconfig.md#queueexpiry) -* [stageDurations](_wrappers_governance_.governanceconfig.md#stagedurations) - -## Properties - -### concurrentProposals - -• **concurrentProposals**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L56)* - -___ - -### dequeueFrequency - -• **dequeueFrequency**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L57)* - -___ - -### minDeposit - -• **minDeposit**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L58)* - -___ - -### participationParameters - -• **participationParameters**: *[ParticipationParameters](_wrappers_governance_.participationparameters.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L61)* - -___ - -### queueExpiry - -• **queueExpiry**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L59)* - -___ - -### stageDurations - -• **stageDurations**: *DequeuedStageDurations* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L60)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.hotfixrecord.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.hotfixrecord.md deleted file mode 100644 index 7385b4ebc16..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.hotfixrecord.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [HotfixRecord](_wrappers_governance_.hotfixrecord.md) - -# Interface: HotfixRecord - -## Hierarchy - -* **HotfixRecord** - -## Index - -### Properties - -* [approved](_wrappers_governance_.hotfixrecord.md#approved) -* [executed](_wrappers_governance_.hotfixrecord.md#executed) -* [preparedEpoch](_wrappers_governance_.hotfixrecord.md#preparedepoch) - -## Properties - -### approved - -• **approved**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:129](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L129)* - -___ - -### executed - -• **executed**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:130](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L130)* - -___ - -### preparedEpoch - -• **preparedEpoch**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:131](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L131)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.participationparameters.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.participationparameters.md deleted file mode 100644 index fdf869d7550..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.participationparameters.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [ParticipationParameters](_wrappers_governance_.participationparameters.md) - -# Interface: ParticipationParameters - -## Hierarchy - -* **ParticipationParameters** - -## Index - -### Properties - -* [baseline](_wrappers_governance_.participationparameters.md#baseline) -* [baselineFloor](_wrappers_governance_.participationparameters.md#baselinefloor) -* [baselineQuorumFactor](_wrappers_governance_.participationparameters.md#baselinequorumfactor) -* [baselineUpdateFactor](_wrappers_governance_.participationparameters.md#baselineupdatefactor) - -## Properties - -### baseline - -• **baseline**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L49)* - -___ - -### baselineFloor - -• **baselineFloor**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L50)* - -___ - -### baselineQuorumFactor - -• **baselineQuorumFactor**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L52)* - -___ - -### baselineUpdateFactor - -• **baselineUpdateFactor**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L51)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.proposalmetadata.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.proposalmetadata.md deleted file mode 100644 index ffb61a35456..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.proposalmetadata.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [ProposalMetadata](_wrappers_governance_.proposalmetadata.md) - -# Interface: ProposalMetadata - -## Hierarchy - -* **ProposalMetadata** - -## Index - -### Properties - -* [deposit](_wrappers_governance_.proposalmetadata.md#deposit) -* [descriptionURL](_wrappers_governance_.proposalmetadata.md#descriptionurl) -* [proposer](_wrappers_governance_.proposalmetadata.md#proposer) -* [timestamp](_wrappers_governance_.proposalmetadata.md#timestamp) -* [transactionCount](_wrappers_governance_.proposalmetadata.md#transactioncount) - -## Properties - -### deposit - -• **deposit**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L66)* - -___ - -### descriptionURL - -• **descriptionURL**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L69)* - -___ - -### proposer - -• **proposer**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L65)* - -___ - -### timestamp - -• **timestamp**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L67)* - -___ - -### transactionCount - -• **transactionCount**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L68)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.proposalrecord.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.proposalrecord.md deleted file mode 100644 index 59bc013217a..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.proposalrecord.md +++ /dev/null @@ -1,84 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [ProposalRecord](_wrappers_governance_.proposalrecord.md) - -# Interface: ProposalRecord - -## Hierarchy - -* **ProposalRecord** - -## Index - -### Properties - -* [approvals](_wrappers_governance_.proposalrecord.md#optional-approvals) -* [approved](_wrappers_governance_.proposalrecord.md#approved) -* [metadata](_wrappers_governance_.proposalrecord.md#metadata) -* [passed](_wrappers_governance_.proposalrecord.md#passed) -* [proposal](_wrappers_governance_.proposalrecord.md#proposal) -* [stage](_wrappers_governance_.proposalrecord.md#stage) -* [upvotes](_wrappers_governance_.proposalrecord.md#optional-upvotes) -* [votes](_wrappers_governance_.proposalrecord.md#optional-votes) - -## Properties - -### `Optional` approvals - -• **approvals**? : *ApprovalStatus* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:100](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L100)* - -___ - -### approved - -• **approved**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:97](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L97)* - -___ - -### metadata - -• **metadata**: *[ProposalMetadata](_wrappers_governance_.proposalmetadata.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:94](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L94)* - -___ - -### passed - -• **passed**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:98](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L98)* - -___ - -### proposal - -• **proposal**: *[Proposal](../modules/_wrappers_governance_.md#proposal)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:95](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L95)* - -___ - -### stage - -• **stage**: *[ProposalStage](../enums/_wrappers_governance_.proposalstage.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L96)* - -___ - -### `Optional` upvotes - -• **upvotes**? : *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:99](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L99)* - -___ - -### `Optional` votes - -• **votes**? : *[Votes](_wrappers_governance_.votes.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:101](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L101)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.upvoterecord.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.upvoterecord.md deleted file mode 100644 index e6ea8ed1051..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.upvoterecord.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [UpvoteRecord](_wrappers_governance_.upvoterecord.md) - -# Interface: UpvoteRecord - -## Hierarchy - -* **UpvoteRecord** - -## Index - -### Properties - -* [proposalID](_wrappers_governance_.upvoterecord.md#proposalid) -* [upvotes](_wrappers_governance_.upvoterecord.md#upvotes) - -## Properties - -### proposalID - -• **proposalID**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L105)* - -___ - -### upvotes - -• **upvotes**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L106)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.voter.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.voter.md deleted file mode 100644 index 5114df19662..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.voter.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [Voter](_wrappers_governance_.voter.md) - -# Interface: Voter - -## Hierarchy - -* **Voter** - -## Index - -### Properties - -* [refundedDeposits](_wrappers_governance_.voter.md#refundeddeposits) -* [upvote](_wrappers_governance_.voter.md#upvote) -* [votes](_wrappers_governance_.voter.md#votes) - -## Properties - -### refundedDeposits - -• **refundedDeposits**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:143](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L143)* - -___ - -### upvote - -• **upvote**: *[UpvoteRecord](_wrappers_governance_.upvoterecord.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:141](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L141)* - -___ - -### votes - -• **votes**: *[VoteRecord](_wrappers_governance_.voterecord.md)[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:142](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L142)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.voterecord.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.voterecord.md deleted file mode 100644 index 88eb999d2de..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.voterecord.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [VoteRecord](_wrappers_governance_.voterecord.md) - -# Interface: VoteRecord - -## Hierarchy - -* **VoteRecord** - -## Index - -### Properties - -* [proposalID](_wrappers_governance_.voterecord.md#proposalid) -* [value](_wrappers_governance_.voterecord.md#value) -* [votes](_wrappers_governance_.voterecord.md#votes) - -## Properties - -### proposalID - -• **proposalID**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:135](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L135)* - -___ - -### value - -• **value**: *[VoteValue](../enums/_wrappers_governance_.votevalue.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:137](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L137)* - -___ - -### votes - -• **votes**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:136](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L136)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.votes.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.votes.md deleted file mode 100644 index 3f9a693c413..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_governance_.votes.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](../modules/_wrappers_governance_.md) › [Votes](_wrappers_governance_.votes.md) - -# Interface: Votes - -## Hierarchy - -* **Votes** - -## Index - -### Properties - -* [[VoteValue.Abstain]](_wrappers_governance_.votes.md#[votevalue.abstain]) -* [[VoteValue.No]](_wrappers_governance_.votes.md#[votevalue.no]) -* [[VoteValue.Yes]](_wrappers_governance_.votes.md#[votevalue.yes]) - -## Properties - -### [VoteValue.Abstain] - -• **[VoteValue.Abstain]**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:117](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L117)* - -___ - -### [VoteValue.No] - -• **[VoteValue.No]**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:118](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L118)* - -___ - -### [VoteValue.Yes] - -• **[VoteValue.Yes]**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:119](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L119)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.exchangeproposal.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.exchangeproposal.md deleted file mode 100644 index 8e7c94e8499..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.exchangeproposal.md +++ /dev/null @@ -1,93 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GrandaMento"](../modules/_wrappers_grandamento_.md) › [ExchangeProposal](_wrappers_grandamento_.exchangeproposal.md) - -# Interface: ExchangeProposal - -## Hierarchy - -* **ExchangeProposal** - -## Index - -### Properties - -* [approvalTimestamp](_wrappers_grandamento_.exchangeproposal.md#approvaltimestamp) -* [buyAmount](_wrappers_grandamento_.exchangeproposal.md#buyamount) -* [exchanger](_wrappers_grandamento_.exchangeproposal.md#exchanger) -* [id](_wrappers_grandamento_.exchangeproposal.md#id) -* [sellAmount](_wrappers_grandamento_.exchangeproposal.md#sellamount) -* [sellCelo](_wrappers_grandamento_.exchangeproposal.md#sellcelo) -* [stableToken](_wrappers_grandamento_.exchangeproposal.md#stabletoken) -* [state](_wrappers_grandamento_.exchangeproposal.md#state) -* [vetoPeriodSeconds](_wrappers_grandamento_.exchangeproposal.md#vetoperiodseconds) - -## Properties - -### approvalTimestamp - -• **approvalTimestamp**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L42)* - -___ - -### buyAmount - -• **buyAmount**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L40)* - -___ - -### exchanger - -• **exchanger**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L37)* - -___ - -### id - -• **id**: *string | number* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L45)* - -___ - -### sellAmount - -• **sellAmount**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L39)* - -___ - -### sellCelo - -• **sellCelo**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L44)* - -___ - -### stableToken - -• **stableToken**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L38)* - -___ - -### state - -• **state**: *[ExchangeProposalState](../enums/_wrappers_grandamento_.exchangeproposalstate.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L43)* - -___ - -### vetoPeriodSeconds - -• **vetoPeriodSeconds**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L41)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.exchangeproposalreadable.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.exchangeproposalreadable.md deleted file mode 100644 index f87de88cf67..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.exchangeproposalreadable.md +++ /dev/null @@ -1,93 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GrandaMento"](../modules/_wrappers_grandamento_.md) › [ExchangeProposalReadable](_wrappers_grandamento_.exchangeproposalreadable.md) - -# Interface: ExchangeProposalReadable - -## Hierarchy - -* **ExchangeProposalReadable** - -## Index - -### Properties - -* [approvalTimestamp](_wrappers_grandamento_.exchangeproposalreadable.md#approvaltimestamp) -* [buyAmount](_wrappers_grandamento_.exchangeproposalreadable.md#buyamount) -* [exchanger](_wrappers_grandamento_.exchangeproposalreadable.md#exchanger) -* [id](_wrappers_grandamento_.exchangeproposalreadable.md#id) -* [implictPricePerCelo](_wrappers_grandamento_.exchangeproposalreadable.md#implictpricepercelo) -* [sellAmount](_wrappers_grandamento_.exchangeproposalreadable.md#sellamount) -* [sellCelo](_wrappers_grandamento_.exchangeproposalreadable.md#sellcelo) -* [stableToken](_wrappers_grandamento_.exchangeproposalreadable.md#stabletoken) -* [state](_wrappers_grandamento_.exchangeproposalreadable.md#state) - -## Properties - -### approvalTimestamp - -• **approvalTimestamp**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L53)* - -___ - -### buyAmount - -• **buyAmount**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L52)* - -___ - -### exchanger - -• **exchanger**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L49)* - -___ - -### id - -• **id**: *string | number* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L56)* - -___ - -### implictPricePerCelo - -• **implictPricePerCelo**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L57)* - -___ - -### sellAmount - -• **sellAmount**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L51)* - -___ - -### sellCelo - -• **sellCelo**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L55)* - -___ - -### stableToken - -• **stableToken**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L50)* - -___ - -### state - -• **state**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L54)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.grandamentoconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.grandamentoconfig.md deleted file mode 100644 index 55ffaddd5ad..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.grandamentoconfig.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GrandaMento"](../modules/_wrappers_grandamento_.md) › [GrandaMentoConfig](_wrappers_grandamento_.grandamentoconfig.md) - -# Interface: GrandaMentoConfig - -## Hierarchy - -* **GrandaMentoConfig** - -## Index - -### Properties - -* [approver](_wrappers_grandamento_.grandamentoconfig.md#approver) -* [exchangeLimits](_wrappers_grandamento_.grandamentoconfig.md#exchangelimits) -* [maxApprovalExchangeRateChange](_wrappers_grandamento_.grandamentoconfig.md#maxapprovalexchangeratechange) -* [spread](_wrappers_grandamento_.grandamentoconfig.md#spread) -* [vetoPeriodSeconds](_wrappers_grandamento_.grandamentoconfig.md#vetoperiodseconds) - -## Properties - -### approver - -• **approver**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L24)* - -___ - -### exchangeLimits - -• **exchangeLimits**: *AllStableConfig* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L28)* - -___ - -### maxApprovalExchangeRateChange - -• **maxApprovalExchangeRateChange**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L27)* - -___ - -### spread - -• **spread**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L25)* - -___ - -### vetoPeriodSeconds - -• **vetoPeriodSeconds**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L26)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.stabletokenexchangelimits.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.stabletokenexchangelimits.md deleted file mode 100644 index aa10c5e3153..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_grandamento_.stabletokenexchangelimits.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GrandaMento"](../modules/_wrappers_grandamento_.md) › [StableTokenExchangeLimits](_wrappers_grandamento_.stabletokenexchangelimits.md) - -# Interface: StableTokenExchangeLimits - -## Hierarchy - -* **StableTokenExchangeLimits** - -## Index - -### Properties - -* [maxExchangeAmount](_wrappers_grandamento_.stabletokenexchangelimits.md#maxexchangeamount) -* [minExchangeAmount](_wrappers_grandamento_.stabletokenexchangelimits.md#minexchangeamount) - -## Properties - -### maxExchangeAmount - -• **maxExchangeAmount**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L33)* - -___ - -### minExchangeAmount - -• **minExchangeAmount**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L32)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.accountslashed.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.accountslashed.md deleted file mode 100644 index 078d0568bee..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.accountslashed.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/LockedGold"](../modules/_wrappers_lockedgold_.md) › [AccountSlashed](_wrappers_lockedgold_.accountslashed.md) - -# Interface: AccountSlashed - -## Hierarchy - -* **AccountSlashed** - -## Index - -### Properties - -* [epochNumber](_wrappers_lockedgold_.accountslashed.md#epochnumber) -* [penalty](_wrappers_lockedgold_.accountslashed.md#penalty) -* [reporter](_wrappers_lockedgold_.accountslashed.md#reporter) -* [reward](_wrappers_lockedgold_.accountslashed.md#reward) -* [slashed](_wrappers_lockedgold_.accountslashed.md#slashed) - -## Properties - -### epochNumber - -• **epochNumber**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L50)* - -___ - -### penalty - -• **penalty**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L47)* - -___ - -### reporter - -• **reporter**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L48)* - -___ - -### reward - -• **reward**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L49)* - -___ - -### slashed - -• **slashed**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L46)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.lockedgoldconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.lockedgoldconfig.md deleted file mode 100644 index 76ece44d730..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.lockedgoldconfig.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/LockedGold"](../modules/_wrappers_lockedgold_.md) › [LockedGoldConfig](_wrappers_lockedgold_.lockedgoldconfig.md) - -# Interface: LockedGoldConfig - -## Hierarchy - -* **LockedGoldConfig** - -## Index - -### Properties - -* [totalLockedGold](_wrappers_lockedgold_.lockedgoldconfig.md#totallockedgold) -* [unlockingPeriod](_wrappers_lockedgold_.lockedgoldconfig.md#unlockingperiod) - -## Properties - -### totalLockedGold - -• **totalLockedGold**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L60)* - -___ - -### unlockingPeriod - -• **unlockingPeriod**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L59)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.pendingwithdrawal.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.pendingwithdrawal.md deleted file mode 100644 index 2d969c3891b..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.pendingwithdrawal.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/LockedGold"](../modules/_wrappers_lockedgold_.md) › [PendingWithdrawal](_wrappers_lockedgold_.pendingwithdrawal.md) - -# Interface: PendingWithdrawal - -## Hierarchy - -* **PendingWithdrawal** - -## Index - -### Properties - -* [time](_wrappers_lockedgold_.pendingwithdrawal.md#time) -* [value](_wrappers_lockedgold_.pendingwithdrawal.md#value) - -## Properties - -### time - -• **time**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L54)* - -___ - -### value - -• **value**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L55)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.votingdetails.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.votingdetails.md deleted file mode 100644 index aed5cd52eb4..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_lockedgold_.votingdetails.md +++ /dev/null @@ -1,41 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/LockedGold"](../modules/_wrappers_lockedgold_.md) › [VotingDetails](_wrappers_lockedgold_.votingdetails.md) - -# Interface: VotingDetails - -## Hierarchy - -* **VotingDetails** - -## Index - -### Properties - -* [accountAddress](_wrappers_lockedgold_.votingdetails.md#accountaddress) -* [voterAddress](_wrappers_lockedgold_.votingdetails.md#voteraddress) -* [weight](_wrappers_lockedgold_.votingdetails.md#weight) - -## Properties - -### accountAddress - -• **accountAddress**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L30)* - -___ - -### voterAddress - -• **voterAddress**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L31)* - -___ - -### weight - -• **weight**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L33)* - -vote's weight diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_metatransactionwallet_.rawtransaction.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_metatransactionwallet_.rawtransaction.md deleted file mode 100644 index 7ba726769a5..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_metatransactionwallet_.rawtransaction.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/MetaTransactionWallet"](../modules/_wrappers_metatransactionwallet_.md) › [RawTransaction](_wrappers_metatransactionwallet_.rawtransaction.md) - -# Interface: RawTransaction - -## Hierarchy - -* **RawTransaction** - -## Index - -### Properties - -* [data](_wrappers_metatransactionwallet_.rawtransaction.md#data) -* [destination](_wrappers_metatransactionwallet_.rawtransaction.md#destination) -* [value](_wrappers_metatransactionwallet_.rawtransaction.md#value) - -## Properties - -### data - -• **data**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L24)* - -___ - -### destination - -• **destination**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L22)* - -___ - -### value - -• **value**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L23)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_metatransactionwallet_.transactionobjectwithvalue.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_metatransactionwallet_.transactionobjectwithvalue.md deleted file mode 100644 index 9a8c6911141..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_metatransactionwallet_.transactionobjectwithvalue.md +++ /dev/null @@ -1,34 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/MetaTransactionWallet"](../modules/_wrappers_metatransactionwallet_.md) › [TransactionObjectWithValue](_wrappers_metatransactionwallet_.transactionobjectwithvalue.md) - -# Interface: TransactionObjectWithValue <**T**> - -## Type parameters - -▪ **T** - -## Hierarchy - -* **TransactionObjectWithValue** - -## Index - -### Properties - -* [txo](_wrappers_metatransactionwallet_.transactionobjectwithvalue.md#txo) -* [value](_wrappers_metatransactionwallet_.transactionobjectwithvalue.md#value) - -## Properties - -### txo - -• **txo**: *CeloTxObject‹T›* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L17)* - -___ - -### value - -• **value**: *BigNumber.Value* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L18)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_multisig_.transactiondata.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_multisig_.transactiondata.md deleted file mode 100644 index 08d9c26968e..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_multisig_.transactiondata.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/MultiSig"](../modules/_wrappers_multisig_.md) › [TransactionData](_wrappers_multisig_.transactiondata.md) - -# Interface: TransactionData - -## Hierarchy - -* **TransactionData** - -## Index - -### Properties - -* [confirmations](_wrappers_multisig_.transactiondata.md#confirmations) -* [data](_wrappers_multisig_.transactiondata.md#data) -* [destination](_wrappers_multisig_.transactiondata.md#destination) -* [executed](_wrappers_multisig_.transactiondata.md#executed) -* [value](_wrappers_multisig_.transactiondata.md#value) - -## Properties - -### confirmations - -• **confirmations**: *string[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L20)* - -___ - -### data - -• **data**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L18)* - -___ - -### destination - -• **destination**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L16)* - -___ - -### executed - -• **executed**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L19)* - -___ - -### value - -• **value**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L17)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_releasegold_.balancestate.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_releasegold_.balancestate.md deleted file mode 100644 index 2cba72e4fbf..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_releasegold_.balancestate.md +++ /dev/null @@ -1,75 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/ReleaseGold"](../modules/_wrappers_releasegold_.md) › [BalanceState](_wrappers_releasegold_.balancestate.md) - -# Interface: BalanceState - -## Hierarchy - -* **BalanceState** - -## Index - -### Properties - -* [currentReleasedTotalAmount](_wrappers_releasegold_.balancestate.md#currentreleasedtotalamount) -* [maxDistribution](_wrappers_releasegold_.balancestate.md#maxdistribution) -* [remainingLockedBalance](_wrappers_releasegold_.balancestate.md#remaininglockedbalance) -* [remainingTotalBalance](_wrappers_releasegold_.balancestate.md#remainingtotalbalance) -* [remainingUnlockedBalance](_wrappers_releasegold_.balancestate.md#remainingunlockedbalance) -* [totalBalance](_wrappers_releasegold_.balancestate.md#totalbalance) -* [totalWithdrawn](_wrappers_releasegold_.balancestate.md#totalwithdrawn) - -## Properties - -### currentReleasedTotalAmount - -• **currentReleasedTotalAmount**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L31)* - -___ - -### maxDistribution - -• **maxDistribution**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L26)* - -___ - -### remainingLockedBalance - -• **remainingLockedBalance**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L30)* - -___ - -### remainingTotalBalance - -• **remainingTotalBalance**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L28)* - -___ - -### remainingUnlockedBalance - -• **remainingUnlockedBalance**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L29)* - -___ - -### totalBalance - -• **totalBalance**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L27)* - -___ - -### totalWithdrawn - -• **totalWithdrawn**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L25)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_releasegold_.releasegoldinfo.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_releasegold_.releasegoldinfo.md deleted file mode 100644 index 587bd5633ff..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_releasegold_.releasegoldinfo.md +++ /dev/null @@ -1,120 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/ReleaseGold"](../modules/_wrappers_releasegold_.md) › [ReleaseGoldInfo](_wrappers_releasegold_.releasegoldinfo.md) - -# Interface: ReleaseGoldInfo - -## Hierarchy - -* **ReleaseGoldInfo** - -## Index - -### Properties - -* [balanceStateData](_wrappers_releasegold_.releasegoldinfo.md#balancestatedata) -* [beneficiary](_wrappers_releasegold_.releasegoldinfo.md#beneficiary) -* [canValidate](_wrappers_releasegold_.releasegoldinfo.md#canvalidate) -* [canVote](_wrappers_releasegold_.releasegoldinfo.md#canvote) -* [isRevoked](_wrappers_releasegold_.releasegoldinfo.md#isrevoked) -* [liquidityProvisionMet](_wrappers_releasegold_.releasegoldinfo.md#liquidityprovisionmet) -* [owner](_wrappers_releasegold_.releasegoldinfo.md#owner) -* [refundAddress](_wrappers_releasegold_.releasegoldinfo.md#refundaddress) -* [releaseGoldWrapperAddress](_wrappers_releasegold_.releasegoldinfo.md#releasegoldwrapperaddress) -* [releaseOwner](_wrappers_releasegold_.releasegoldinfo.md#releaseowner) -* [releaseSchedule](_wrappers_releasegold_.releasegoldinfo.md#releaseschedule) -* [revokedStateData](_wrappers_releasegold_.releasegoldinfo.md#revokedstatedata) - -## Properties - -### balanceStateData - -• **balanceStateData**: *[BalanceState](_wrappers_releasegold_.balancestate.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L46)* - -___ - -### beneficiary - -• **beneficiary**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L36)* - -___ - -### canValidate - -• **canValidate**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L41)* - -___ - -### canVote - -• **canVote**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L42)* - -___ - -### isRevoked - -• **isRevoked**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L44)* - -___ - -### liquidityProvisionMet - -• **liquidityProvisionMet**: *boolean* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L40)* - -___ - -### owner - -• **owner**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L38)* - -___ - -### refundAddress - -• **refundAddress**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L39)* - -___ - -### releaseGoldWrapperAddress - -• **releaseGoldWrapperAddress**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L35)* - -___ - -### releaseOwner - -• **releaseOwner**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L37)* - -___ - -### releaseSchedule - -• **releaseSchedule**: *ReleaseSchedule* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L43)* - -___ - -### revokedStateData - -• **revokedStateData**: *RevocationInfo* - -*Defined in [packages/sdk/contractkit/src/wrappers/ReleaseGold.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts#L45)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_reserve_.reserveconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_reserve_.reserveconfig.md deleted file mode 100644 index a9fa913717e..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_reserve_.reserveconfig.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Reserve"](../modules/_wrappers_reserve_.md) › [ReserveConfig](_wrappers_reserve_.reserveconfig.md) - -# Interface: ReserveConfig - -## Hierarchy - -* **ReserveConfig** - -## Index - -### Properties - -* [frozenReserveGoldDays](_wrappers_reserve_.reserveconfig.md#frozenreservegolddays) -* [frozenReserveGoldStartBalance](_wrappers_reserve_.reserveconfig.md#frozenreservegoldstartbalance) -* [frozenReserveGoldStartDay](_wrappers_reserve_.reserveconfig.md#frozenreservegoldstartday) -* [otherReserveAddresses](_wrappers_reserve_.reserveconfig.md#otherreserveaddresses) -* [tobinTaxStalenessThreshold](_wrappers_reserve_.reserveconfig.md#tobintaxstalenessthreshold) - -## Properties - -### frozenReserveGoldDays - -• **frozenReserveGoldDays**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L16)* - -___ - -### frozenReserveGoldStartBalance - -• **frozenReserveGoldStartBalance**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L14)* - -___ - -### frozenReserveGoldStartDay - -• **frozenReserveGoldStartDay**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L15)* - -___ - -### otherReserveAddresses - -• **otherReserveAddresses**: *string[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L17)* - -___ - -### tobinTaxStalenessThreshold - -• **tobinTaxStalenessThreshold**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L13)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.medianrate.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.medianrate.md deleted file mode 100644 index fba71ba7e00..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.medianrate.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/SortedOracles"](../modules/_wrappers_sortedoracles_.md) › [MedianRate](_wrappers_sortedoracles_.medianrate.md) - -# Interface: MedianRate - -## Hierarchy - -* **MedianRate** - -## Index - -### Properties - -* [rate](_wrappers_sortedoracles_.medianrate.md#rate) - -## Properties - -### rate - -• **rate**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L49)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oraclerate.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oraclerate.md deleted file mode 100644 index 67422fc773f..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oraclerate.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/SortedOracles"](../modules/_wrappers_sortedoracles_.md) › [OracleRate](_wrappers_sortedoracles_.oraclerate.md) - -# Interface: OracleRate - -## Hierarchy - -* **OracleRate** - -## Index - -### Properties - -* [address](_wrappers_sortedoracles_.oraclerate.md#address) -* [medianRelation](_wrappers_sortedoracles_.oraclerate.md#medianrelation) -* [rate](_wrappers_sortedoracles_.oraclerate.md#rate) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L31)* - -___ - -### medianRelation - -• **medianRelation**: *[MedianRelation](../enums/_wrappers_sortedoracles_.medianrelation.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L33)* - -___ - -### rate - -• **rate**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L32)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oraclereport.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oraclereport.md deleted file mode 100644 index e0002cb549f..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oraclereport.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/SortedOracles"](../modules/_wrappers_sortedoracles_.md) › [OracleReport](_wrappers_sortedoracles_.oraclereport.md) - -# Interface: OracleReport - -## Hierarchy - -* **OracleReport** - -## Index - -### Properties - -* [address](_wrappers_sortedoracles_.oraclereport.md#address) -* [rate](_wrappers_sortedoracles_.oraclereport.md#rate) -* [timestamp](_wrappers_sortedoracles_.oraclereport.md#timestamp) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L43)* - -___ - -### rate - -• **rate**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L44)* - -___ - -### timestamp - -• **timestamp**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L45)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oracletimestamp.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oracletimestamp.md deleted file mode 100644 index a0b1c2747a1..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.oracletimestamp.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/SortedOracles"](../modules/_wrappers_sortedoracles_.md) › [OracleTimestamp](_wrappers_sortedoracles_.oracletimestamp.md) - -# Interface: OracleTimestamp - -## Hierarchy - -* **OracleTimestamp** - -## Index - -### Properties - -* [address](_wrappers_sortedoracles_.oracletimestamp.md#address) -* [medianRelation](_wrappers_sortedoracles_.oracletimestamp.md#medianrelation) -* [timestamp](_wrappers_sortedoracles_.oracletimestamp.md#timestamp) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L37)* - -___ - -### medianRelation - -• **medianRelation**: *[MedianRelation](../enums/_wrappers_sortedoracles_.medianrelation.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L39)* - -___ - -### timestamp - -• **timestamp**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L38)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.sortedoraclesconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.sortedoraclesconfig.md deleted file mode 100644 index a492d47b284..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_sortedoracles_.sortedoraclesconfig.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/SortedOracles"](../modules/_wrappers_sortedoracles_.md) › [SortedOraclesConfig](_wrappers_sortedoracles_.sortedoraclesconfig.md) - -# Interface: SortedOraclesConfig - -## Hierarchy - -* **SortedOraclesConfig** - -## Index - -### Properties - -* [reportExpirySeconds](_wrappers_sortedoracles_.sortedoraclesconfig.md#reportexpiryseconds) - -## Properties - -### reportExpirySeconds - -• **reportExpirySeconds**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L27)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_stabletokenwrapper_.inflationparameters.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_stabletokenwrapper_.inflationparameters.md deleted file mode 100644 index ebcc06663e0..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_stabletokenwrapper_.inflationparameters.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/StableTokenWrapper"](../modules/_wrappers_stabletokenwrapper_.md) › [InflationParameters](_wrappers_stabletokenwrapper_.inflationparameters.md) - -# Interface: InflationParameters - -## Hierarchy - -* **InflationParameters** - -## Index - -### Properties - -* [factor](_wrappers_stabletokenwrapper_.inflationparameters.md#factor) -* [factorLastUpdated](_wrappers_stabletokenwrapper_.inflationparameters.md#factorlastupdated) -* [rate](_wrappers_stabletokenwrapper_.inflationparameters.md#rate) -* [updatePeriod](_wrappers_stabletokenwrapper_.inflationparameters.md#updateperiod) - -## Properties - -### factor - -• **factor**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L18)* - -___ - -### factorLastUpdated - -• **factorLastUpdated**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L20)* - -___ - -### rate - -• **rate**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L17)* - -___ - -### updatePeriod - -• **updatePeriod**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L19)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_stabletokenwrapper_.stabletokenconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_stabletokenwrapper_.stabletokenconfig.md deleted file mode 100644 index 3762fcbe8a5..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_stabletokenwrapper_.stabletokenconfig.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/StableTokenWrapper"](../modules/_wrappers_stabletokenwrapper_.md) › [StableTokenConfig](_wrappers_stabletokenwrapper_.stabletokenconfig.md) - -# Interface: StableTokenConfig - -## Hierarchy - -* **StableTokenConfig** - -## Index - -### Properties - -* [decimals](_wrappers_stabletokenwrapper_.stabletokenconfig.md#decimals) -* [inflationParameters](_wrappers_stabletokenwrapper_.stabletokenconfig.md#inflationparameters) -* [name](_wrappers_stabletokenwrapper_.stabletokenconfig.md#name) -* [symbol](_wrappers_stabletokenwrapper_.stabletokenconfig.md#symbol) - -## Properties - -### decimals - -• **decimals**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L24)* - -___ - -### inflationParameters - -• **inflationParameters**: *[InflationParameters](_wrappers_stabletokenwrapper_.inflationparameters.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L27)* - -___ - -### name - -• **name**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L25)* - -___ - -### symbol - -• **symbol**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L26)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.groupmembership.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.groupmembership.md deleted file mode 100644 index 45f2e7a56ae..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.groupmembership.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Validators"](../modules/_wrappers_validators_.md) › [GroupMembership](_wrappers_validators_.groupmembership.md) - -# Interface: GroupMembership - -## Hierarchy - -* **GroupMembership** - -## Index - -### Properties - -* [epoch](_wrappers_validators_.groupmembership.md#epoch) -* [group](_wrappers_validators_.groupmembership.md#group) - -## Properties - -### epoch - -• **epoch**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L68)* - -___ - -### group - -• **group**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L69)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.lockedgoldrequirements.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.lockedgoldrequirements.md deleted file mode 100644 index 629214aa43e..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.lockedgoldrequirements.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Validators"](../modules/_wrappers_validators_.md) › [LockedGoldRequirements](_wrappers_validators_.lockedgoldrequirements.md) - -# Interface: LockedGoldRequirements - -## Hierarchy - -* **LockedGoldRequirements** - -## Index - -### Properties - -* [duration](_wrappers_validators_.lockedgoldrequirements.md#duration) -* [value](_wrappers_validators_.lockedgoldrequirements.md#value) - -## Properties - -### duration - -• **duration**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L54)* - -___ - -### value - -• **value**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L53)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.membershiphistoryextradata.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.membershiphistoryextradata.md deleted file mode 100644 index 030412a30b3..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.membershiphistoryextradata.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Validators"](../modules/_wrappers_validators_.md) › [MembershipHistoryExtraData](_wrappers_validators_.membershiphistoryextradata.md) - -# Interface: MembershipHistoryExtraData - -## Hierarchy - -* **MembershipHistoryExtraData** - -## Index - -### Properties - -* [lastRemovedFromGroupTimestamp](_wrappers_validators_.membershiphistoryextradata.md#lastremovedfromgrouptimestamp) -* [tail](_wrappers_validators_.membershiphistoryextradata.md#tail) - -## Properties - -### lastRemovedFromGroupTimestamp - -• **lastRemovedFromGroupTimestamp**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:73](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L73)* - -___ - -### tail - -• **tail**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L74)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validator.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validator.md deleted file mode 100644 index c9f3579296c..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validator.md +++ /dev/null @@ -1,75 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Validators"](../modules/_wrappers_validators_.md) › [Validator](_wrappers_validators_.validator.md) - -# Interface: Validator - -## Hierarchy - -* **Validator** - -## Index - -### Properties - -* [address](_wrappers_validators_.validator.md#address) -* [affiliation](_wrappers_validators_.validator.md#affiliation) -* [blsPublicKey](_wrappers_validators_.validator.md#blspublickey) -* [ecdsaPublicKey](_wrappers_validators_.validator.md#ecdsapublickey) -* [name](_wrappers_validators_.validator.md#name) -* [score](_wrappers_validators_.validator.md#score) -* [signer](_wrappers_validators_.validator.md#signer) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L23)* - -___ - -### affiliation - -• **affiliation**: *string | null* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L26)* - -___ - -### blsPublicKey - -• **blsPublicKey**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L25)* - -___ - -### ecdsaPublicKey - -• **ecdsaPublicKey**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L24)* - -___ - -### name - -• **name**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L22)* - -___ - -### score - -• **score**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L27)* - -___ - -### signer - -• **signer**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L28)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorgroup.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorgroup.md deleted file mode 100644 index 06e1b30f8b3..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorgroup.md +++ /dev/null @@ -1,102 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Validators"](../modules/_wrappers_validators_.md) › [ValidatorGroup](_wrappers_validators_.validatorgroup.md) - -# Interface: ValidatorGroup - -## Hierarchy - -* **ValidatorGroup** - -## Index - -### Properties - -* [address](_wrappers_validators_.validatorgroup.md#address) -* [affiliates](_wrappers_validators_.validatorgroup.md#affiliates) -* [commission](_wrappers_validators_.validatorgroup.md#commission) -* [lastSlashed](_wrappers_validators_.validatorgroup.md#lastslashed) -* [members](_wrappers_validators_.validatorgroup.md#members) -* [membersUpdated](_wrappers_validators_.validatorgroup.md#membersupdated) -* [name](_wrappers_validators_.validatorgroup.md#name) -* [nextCommission](_wrappers_validators_.validatorgroup.md#nextcommission) -* [nextCommissionBlock](_wrappers_validators_.validatorgroup.md#nextcommissionblock) -* [slashingMultiplier](_wrappers_validators_.validatorgroup.md#slashingmultiplier) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L33)* - -___ - -### affiliates - -• **affiliates**: *Address[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L36)* - -___ - -### commission - -• **commission**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L37)* - -___ - -### lastSlashed - -• **lastSlashed**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L40)* - -___ - -### members - -• **members**: *Address[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L34)* - -___ - -### membersUpdated - -• **membersUpdated**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L35)* - -___ - -### name - -• **name**: *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L32)* - -___ - -### nextCommission - -• **nextCommission**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L38)* - -___ - -### nextCommissionBlock - -• **nextCommissionBlock**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L39)* - -___ - -### slashingMultiplier - -• **slashingMultiplier**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L41)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorreward.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorreward.md deleted file mode 100644 index 5fdc6ac3b51..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorreward.md +++ /dev/null @@ -1,57 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Validators"](../modules/_wrappers_validators_.md) › [ValidatorReward](_wrappers_validators_.validatorreward.md) - -# Interface: ValidatorReward - -## Hierarchy - -* **ValidatorReward** - -## Index - -### Properties - -* [epochNumber](_wrappers_validators_.validatorreward.md#epochnumber) -* [group](_wrappers_validators_.validatorreward.md#group) -* [groupPayment](_wrappers_validators_.validatorreward.md#grouppayment) -* [validator](_wrappers_validators_.validatorreward.md#validator) -* [validatorPayment](_wrappers_validators_.validatorreward.md#validatorpayment) - -## Properties - -### epochNumber - -• **epochNumber**: *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L49)* - -___ - -### group - -• **group**: *[ValidatorGroup](_wrappers_validators_.validatorgroup.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L47)* - -___ - -### groupPayment - -• **groupPayment**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L48)* - -___ - -### validator - -• **validator**: *[Validator](_wrappers_validators_.validator.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L45)* - -___ - -### validatorPayment - -• **validatorPayment**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L46)* diff --git a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorsconfig.md b/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorsconfig.md deleted file mode 100644 index 055269aa62c..00000000000 --- a/packages/docs/sdk/docs/contractkit/interfaces/_wrappers_validators_.validatorsconfig.md +++ /dev/null @@ -1,75 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Validators"](../modules/_wrappers_validators_.md) › [ValidatorsConfig](_wrappers_validators_.validatorsconfig.md) - -# Interface: ValidatorsConfig - -## Hierarchy - -* **ValidatorsConfig** - -## Index - -### Properties - -* [commissionUpdateDelay](_wrappers_validators_.validatorsconfig.md#commissionupdatedelay) -* [downtimeGracePeriod](_wrappers_validators_.validatorsconfig.md#downtimegraceperiod) -* [groupLockedGoldRequirements](_wrappers_validators_.validatorsconfig.md#grouplockedgoldrequirements) -* [maxGroupSize](_wrappers_validators_.validatorsconfig.md#maxgroupsize) -* [membershipHistoryLength](_wrappers_validators_.validatorsconfig.md#membershiphistorylength) -* [slashingMultiplierResetPeriod](_wrappers_validators_.validatorsconfig.md#slashingmultiplierresetperiod) -* [validatorLockedGoldRequirements](_wrappers_validators_.validatorsconfig.md#validatorlockedgoldrequirements) - -## Properties - -### commissionUpdateDelay - -• **commissionUpdateDelay**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L63)* - -___ - -### downtimeGracePeriod - -• **downtimeGracePeriod**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L64)* - -___ - -### groupLockedGoldRequirements - -• **groupLockedGoldRequirements**: *[LockedGoldRequirements](_wrappers_validators_.lockedgoldrequirements.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L58)* - -___ - -### maxGroupSize - -• **maxGroupSize**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L60)* - -___ - -### membershipHistoryLength - -• **membershipHistoryLength**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L61)* - -___ - -### slashingMultiplierResetPeriod - -• **slashingMultiplierResetPeriod**: *BigNumber* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L62)* - -___ - -### validatorLockedGoldRequirements - -• **validatorLockedGoldRequirements**: *[LockedGoldRequirements](_wrappers_validators_.lockedgoldrequirements.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L59)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_address_registry_.md b/packages/docs/sdk/docs/contractkit/modules/_address_registry_.md deleted file mode 100644 index 2309bf6341c..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_address_registry_.md +++ /dev/null @@ -1,22 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["address-registry"](_address_registry_.md) - -# Module: "address-registry" - -## Index - -### Classes - -* [AddressRegistry](../classes/_address_registry_.addressregistry.md) -* [UnregisteredError](../classes/_address_registry_.unregisterederror.md) - -### Variables - -* [REGISTRY_CONTRACT_ADDRESS](_address_registry_.md#const-registry_contract_address) - -## Variables - -### `Const` REGISTRY_CONTRACT_ADDRESS - -• **REGISTRY_CONTRACT_ADDRESS**: *"0x000000000000000000000000000000000000ce10"* = "0x000000000000000000000000000000000000ce10" - -*Defined in [packages/sdk/contractkit/src/address-registry.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/address-registry.ts#L10)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_base_.md b/packages/docs/sdk/docs/contractkit/modules/_base_.md deleted file mode 100644 index ddbd862731f..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_base_.md +++ /dev/null @@ -1,123 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["base"](_base_.md) - -# Module: "base" - -## Index - -### Enumerations - -* [CeloContract](../enums/_base_.celocontract.md) - -### Type aliases - -* [CeloToken](_base_.md#celotoken) -* [CeloTokenContract](_base_.md#celotokencontract) -* [ExchangeContract](_base_.md#exchangecontract) -* [StableTokenContract](_base_.md#stabletokencontract) - -### Variables - -* [AllContracts](_base_.md#const-allcontracts) -* [ProxyContracts](_base_.md#const-proxycontracts) -* [RegisteredContracts](_base_.md#const-registeredcontracts) - -### Functions - -* [stripProxy](_base_.md#const-stripproxy) -* [suffixProxy](_base_.md#const-suffixproxy) - -## Type aliases - -### CeloToken - -Ƭ **CeloToken**: *[CeloTokenContract](_base_.md#celotokencontract)* - -*Defined in [packages/sdk/contractkit/src/base.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L50)* - -Deprecated alias for CeloTokenContract. - -**`deprecated`** Use CeloTokenContract instead - -___ - -### CeloTokenContract - -Ƭ **CeloTokenContract**: *[StableTokenContract](_base_.md#stabletokencontract) | [GoldToken](../enums/_base_.celocontract.md#goldtoken)* - -*Defined in [packages/sdk/contractkit/src/base.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L45)* - -___ - -### ExchangeContract - -Ƭ **ExchangeContract**: *[Exchange](../enums/_base_.celocontract.md#exchange) | [ExchangeEUR](../enums/_base_.celocontract.md#exchangeeur) | [ExchangeBRL](../enums/_base_.celocontract.md#exchangebrl)* - -*Defined in [packages/sdk/contractkit/src/base.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L40)* - -___ - -### StableTokenContract - -Ƭ **StableTokenContract**: *[StableToken](../enums/_base_.celocontract.md#stabletoken) | [StableTokenEUR](../enums/_base_.celocontract.md#stabletokeneur) | [StableTokenBRL](../enums/_base_.celocontract.md#stabletokenbrl)* - -*Defined in [packages/sdk/contractkit/src/base.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L35)* - -## Variables - -### `Const` AllContracts - -• **AllContracts**: *[CeloContract](../enums/_base_.celocontract.md)[]* = Object.keys(CeloContract) as CeloContract[] - -*Defined in [packages/sdk/contractkit/src/base.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L52)* - -___ - -### `Const` ProxyContracts - -• **ProxyContracts**: *[CeloContract](../enums/_base_.celocontract.md)[]* = AllContracts.map((c) => suffixProxy(c)) - -*Defined in [packages/sdk/contractkit/src/base.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L68)* - -___ - -### `Const` RegisteredContracts - -• **RegisteredContracts**: *[CeloContract](../enums/_base_.celocontract.md)[]* = AllContracts.filter((v) => !AuxiliaryContracts.includes(v)) - -*Defined in [packages/sdk/contractkit/src/base.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L59)* - -## Functions - -### `Const` stripProxy - -▸ **stripProxy**(`contract`: [CeloContract](../enums/_base_.celocontract.md)): *[CeloContract](../enums/_base_.celocontract.md)* - -*Defined in [packages/sdk/contractkit/src/base.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L62)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | [CeloContract](../enums/_base_.celocontract.md) | - -**Returns:** *[CeloContract](../enums/_base_.celocontract.md)* - -___ - -### `Const` suffixProxy - -▸ **suffixProxy**(`contract`: [CeloContract](../enums/_base_.celocontract.md)): *[CeloContract](../enums/_base_.celocontract.md)* - -*Defined in [packages/sdk/contractkit/src/base.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/base.ts#L65)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | [CeloContract](../enums/_base_.celocontract.md) | - -**Returns:** *[CeloContract](../enums/_base_.celocontract.md)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_basic_contract_cache_type_.md b/packages/docs/sdk/docs/contractkit/modules/_basic_contract_cache_type_.md deleted file mode 100644 index bc08f9df438..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_basic_contract_cache_type_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["basic-contract-cache-type"](_basic_contract_cache_type_.md) - -# Module: "basic-contract-cache-type" - -## Index - -### Interfaces - -* [ContractCacheType](../interfaces/_basic_contract_cache_type_.contractcachetype.md) diff --git a/packages/docs/sdk/docs/contractkit/modules/_celo_tokens_.md b/packages/docs/sdk/docs/contractkit/modules/_celo_tokens_.md deleted file mode 100644 index ece2c9c9b14..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_celo_tokens_.md +++ /dev/null @@ -1,144 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["celo-tokens"](_celo_tokens_.md) - -# Module: "celo-tokens" - -## Index - -### References - -* [CeloTokenType](_celo_tokens_.md#celotokentype) -* [StableToken](_celo_tokens_.md#stabletoken) -* [Token](_celo_tokens_.md#token) - -### Classes - -* [CeloTokens](../classes/_celo_tokens_.celotokens.md) - -### Interfaces - -* [CeloTokenInfo](../interfaces/_celo_tokens_.celotokeninfo.md) -* [StableTokenInfo](../interfaces/_celo_tokens_.stabletokeninfo.md) - -### Type aliases - -* [CeloTokenWrapper](_celo_tokens_.md#celotokenwrapper) -* [EachCeloToken](_celo_tokens_.md#eachcelotoken) - -### Functions - -* [isStableTokenContract](_celo_tokens_.md#isstabletokencontract) - -### Object literals - -* [celoTokenInfos](_celo_tokens_.md#const-celotokeninfos) -* [stableTokenInfos](_celo_tokens_.md#const-stabletokeninfos) - -## References - -### CeloTokenType - -• **CeloTokenType**: - -___ - -### StableToken - -• **StableToken**: - -___ - -### Token - -• **Token**: - -## Type aliases - -### CeloTokenWrapper - -Ƭ **CeloTokenWrapper**: *[GoldTokenWrapper](../classes/_wrappers_goldtokenwrapper_.goldtokenwrapper.md) | [StableTokenWrapper](../classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L14)* - -___ - -### EachCeloToken - -Ƭ **EachCeloToken**: *object* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L10)* - -#### Type declaration: - -## Functions - -### isStableTokenContract - -▸ **isStableTokenContract**(`contract`: [CeloContract](../enums/_base_.celocontract.md)): *boolean* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:275](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L275)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | [CeloContract](../enums/_base_.celocontract.md) | - -**Returns:** *boolean* - -## Object literals - -### `Const` celoTokenInfos - -### ▪ **celoTokenInfos**: *object* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L48)* - -Basic info for each supported celo token, including stable tokens - -▪ **[Token.CELO]**: *object* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L51)* - -* **contract**: *[GoldToken](../enums/_base_.celocontract.md#goldtoken)* = CeloContract.GoldToken - -* **symbol**: *CELO* = Token.CELO - -___ - -### `Const` stableTokenInfos - -### ▪ **stableTokenInfos**: *object* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L27)* - -Basic info for each stable token - -▪ **[StableToken.cEUR]**: *object* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L35)* - -* **contract**: *[StableTokenEUR](../enums/_base_.celocontract.md#stabletokeneur)* = CeloContract.StableTokenEUR - -* **exchangeContract**: *[ExchangeEUR](../enums/_base_.celocontract.md#exchangeeur)* = CeloContract.ExchangeEUR - -* **symbol**: *cEUR* = StableToken.cEUR - -▪ **[StableToken.cREAL]**: *object* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L40)* - -* **contract**: *[StableTokenBRL](../enums/_base_.celocontract.md#stabletokenbrl)* = CeloContract.StableTokenBRL - -* **exchangeContract**: *[ExchangeBRL](../enums/_base_.celocontract.md#exchangebrl)* = CeloContract.ExchangeBRL - -* **symbol**: *cREAL* = StableToken.cREAL - -▪ **[StableToken.cUSD]**: *object* - -*Defined in [packages/sdk/contractkit/src/celo-tokens.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/celo-tokens.ts#L30)* - -* **contract**: *[StableToken](../enums/_base_.celocontract.md#stabletoken)* = CeloContract.StableToken - -* **exchangeContract**: *[Exchange](../enums/_base_.celocontract.md#exchange)* = CeloContract.Exchange - -* **symbol**: *cUSD* = StableToken.cUSD diff --git a/packages/docs/sdk/docs/contractkit/modules/_contract_cache_.md b/packages/docs/sdk/docs/contractkit/modules/_contract_cache_.md deleted file mode 100644 index 321bce2a5f4..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_contract_cache_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["contract-cache"](_contract_cache_.md) - -# Module: "contract-cache" - -## Index - -### Classes - -* [WrapperCache](../classes/_contract_cache_.wrappercache.md) - -### Type aliases - -* [ValidWrappers](_contract_cache_.md#validwrappers) - -## Type aliases - -### ValidWrappers - -Ƭ **ValidWrappers**: *keyof CFType | keyof RegistryType | keyof WrapperFactoriesWhichNeedCacheType* - -*Defined in [packages/sdk/contractkit/src/contract-cache.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/contract-cache.ts#L74)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_account_.md b/packages/docs/sdk/docs/contractkit/modules/_identity_claims_account_.md deleted file mode 100644 index 945f23a07b1..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_account_.md +++ /dev/null @@ -1,81 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["identity/claims/account"](_identity_claims_account_.md) - -# Module: "identity/claims/account" - -## Index - -### Type aliases - -* [AccountClaim](_identity_claims_account_.md#accountclaim) - -### Variables - -* [AccountClaimType](_identity_claims_account_.md#const-accountclaimtype) -* [AccountClaimTypeH](_identity_claims_account_.md#const-accountclaimtypeh) - -### Functions - -* [createAccountClaim](_identity_claims_account_.md#const-createaccountclaim) - -## Type aliases - -### AccountClaim - -Ƭ **AccountClaim**: *t.TypeOf‹typeof AccountClaimTypeH›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/account.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/account.ts#L35)* - -## Variables - -### `Const` AccountClaimType - -• **AccountClaimType**: *Type‹object, any, unknown›* = new t.Type( - 'AccountClaimType', - AccountClaimTypeH.is, - (unknownValue, context) => - either.chain(AccountClaimTypeH.validate(unknownValue, context), (claim) => { - if (claim.publicKey === undefined) { - return t.success(claim) - } - const derivedAddress = publicKeyToAddress(claim.publicKey) - return derivedAddress === claim.address - ? t.success(claim) - : t.failure(claim, context, 'public key did not match the address in the claim') - }), - (x) => x -) - -*Defined in [packages/sdk/contractkit/src/identity/claims/account.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/account.ts#L19)* - -___ - -### `Const` AccountClaimTypeH - -• **AccountClaimTypeH**: *TypeC‹object›* = t.type({ - type: t.literal(ClaimTypes.ACCOUNT), - timestamp: TimestampType, - address: AddressType, - // io-ts way of defining optional key-value pair - publicKey: t.union([t.undefined, PublicKeyType]), -}) - -*Defined in [packages/sdk/contractkit/src/identity/claims/account.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/account.ts#L11)* - -Provide the type minus the validation that the public key and address are derived from the same private key - -## Functions - -### `Const` createAccountClaim - -▸ **createAccountClaim**(`address`: string, `publicKey?`: undefined | string): *[AccountClaim](_identity_claims_account_.md#accountclaim)* - -*Defined in [packages/sdk/contractkit/src/identity/claims/account.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/account.ts#L37)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`publicKey?` | undefined | string | - -**Returns:** *[AccountClaim](_identity_claims_account_.md#accountclaim)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_attestation_service_url_.md b/packages/docs/sdk/docs/contractkit/modules/_identity_claims_attestation_service_url_.md deleted file mode 100644 index 532c139d56f..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_attestation_service_url_.md +++ /dev/null @@ -1,72 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["identity/claims/attestation-service-url"](_identity_claims_attestation_service_url_.md) - -# Module: "identity/claims/attestation-service-url" - -## Index - -### Type aliases - -* [AttestationServiceURLClaim](_identity_claims_attestation_service_url_.md#attestationserviceurlclaim) - -### Variables - -* [AttestationServiceURLClaimType](_identity_claims_attestation_service_url_.md#const-attestationserviceurlclaimtype) - -### Functions - -* [createAttestationServiceURLClaim](_identity_claims_attestation_service_url_.md#const-createattestationserviceurlclaim) -* [validateAttestationServiceUrl](_identity_claims_attestation_service_url_.md#validateattestationserviceurl) - -## Type aliases - -### AttestationServiceURLClaim - -Ƭ **AttestationServiceURLClaim**: *t.TypeOf‹typeof AttestationServiceURLClaimType›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/attestation-service-url.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/attestation-service-url.ts#L20)* - -## Variables - -### `Const` AttestationServiceURLClaimType - -• **AttestationServiceURLClaimType**: *TypeC‹object›* = t.type({ - type: t.literal(ClaimTypes.ATTESTATION_SERVICE_URL), - timestamp: TimestampType, - url: UrlType, -}) - -*Defined in [packages/sdk/contractkit/src/identity/claims/attestation-service-url.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/attestation-service-url.ts#L14)* - -## Functions - -### `Const` createAttestationServiceURLClaim - -▸ **createAttestationServiceURLClaim**(`url`: string): *[AttestationServiceURLClaim](_identity_claims_attestation_service_url_.md#attestationserviceurlclaim)* - -*Defined in [packages/sdk/contractkit/src/identity/claims/attestation-service-url.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/attestation-service-url.ts#L22)* - -**Parameters:** - -Name | Type | ------- | ------ | -`url` | string | - -**Returns:** *[AttestationServiceURLClaim](_identity_claims_attestation_service_url_.md#attestationserviceurlclaim)* - -___ - -### validateAttestationServiceUrl - -▸ **validateAttestationServiceUrl**(`kit`: [ContractKit](../classes/_kit_.contractkit.md), `claim`: [AttestationServiceURLClaim](_identity_claims_attestation_service_url_.md#attestationserviceurlclaim), `address`: Address): *Promise‹string | undefined›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/attestation-service-url.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/attestation-service-url.ts#L28)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | [ContractKit](../classes/_kit_.contractkit.md) | -`claim` | [AttestationServiceURLClaim](_identity_claims_attestation_service_url_.md#attestationserviceurlclaim) | -`address` | Address | - -**Returns:** *Promise‹string | undefined›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_claim_.md b/packages/docs/sdk/docs/contractkit/modules/_identity_claims_claim_.md deleted file mode 100644 index cbbfc89a021..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_claim_.md +++ /dev/null @@ -1,267 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["identity/claims/claim"](_identity_claims_claim_.md) - -# Module: "identity/claims/claim" - -## Index - -### Type aliases - -* [Claim](_identity_claims_claim_.md#claim) -* [ClaimPayload](_identity_claims_claim_.md#claimpayload) -* [DomainClaim](_identity_claims_claim_.md#domainclaim) -* [KeybaseClaim](_identity_claims_claim_.md#keybaseclaim) -* [NameClaim](_identity_claims_claim_.md#nameclaim) -* [StorageClaim](_identity_claims_claim_.md#storageclaim) - -### Variables - -* [ClaimType](_identity_claims_claim_.md#const-claimtype) -* [DOMAIN_TXT_HEADER](_identity_claims_claim_.md#const-domain_txt_header) -* [KeybaseClaimType](_identity_claims_claim_.md#const-keybaseclaimtype) -* [SignedClaimType](_identity_claims_claim_.md#const-signedclaimtype) - -### Functions - -* [createDomainClaim](_identity_claims_claim_.md#const-createdomainclaim) -* [createNameClaim](_identity_claims_claim_.md#const-createnameclaim) -* [createStorageClaim](_identity_claims_claim_.md#const-createstorageclaim) -* [hashOfClaim](_identity_claims_claim_.md#hashofclaim) -* [hashOfClaims](_identity_claims_claim_.md#hashofclaims) -* [isOfType](_identity_claims_claim_.md#const-isoftype) -* [serializeClaim](_identity_claims_claim_.md#serializeclaim) -* [validateClaim](_identity_claims_claim_.md#validateclaim) - -## Type aliases - -### Claim - -Ƭ **Claim**: *[AttestationServiceURLClaim](_identity_claims_attestation_service_url_.md#attestationserviceurlclaim) | [DomainClaim](_identity_claims_claim_.md#domainclaim) | [KeybaseClaim](_identity_claims_claim_.md#keybaseclaim) | [NameClaim](_identity_claims_claim_.md#nameclaim) | [AccountClaim](_identity_claims_account_.md#accountclaim) | [StorageClaim](_identity_claims_claim_.md#storageclaim)* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L57)* - -___ - -### ClaimPayload - -Ƭ **ClaimPayload**: *K extends typeof DOMAIN ? DomainClaim : K extends typeof NAME ? NameClaim : K extends typeof KEYBASE ? KeybaseClaim : K extends typeof ATTESTATION_SERVICE_URL ? AttestationServiceURLClaim : K extends typeof ACCOUNT ? AccountClaim : StorageClaim* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L65)* - -___ - -### DomainClaim - -Ƭ **DomainClaim**: *t.TypeOf‹typeof DomainClaimType›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L54)* - -___ - -### KeybaseClaim - -Ƭ **KeybaseClaim**: *t.TypeOf‹typeof KeybaseClaimType›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L18)* - -___ - -### NameClaim - -Ƭ **NameClaim**: *t.TypeOf‹typeof NameClaimType›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L55)* - -___ - -### StorageClaim - -Ƭ **StorageClaim**: *t.TypeOf‹typeof StorageClaimType›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L56)* - -## Variables - -### `Const` ClaimType - -• **ClaimType**: *UnionC‹[TypeC‹object›, Type‹object, any, unknown›, TypeC‹object›, TypeC‹object›, TypeC‹object›, TypeC‹object›]›* = t.union([ - AttestationServiceURLClaimType, - AccountClaimType, - DomainClaimType, - KeybaseClaimType, - NameClaimType, - StorageClaimType, -]) - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L39)* - -___ - -### `Const` DOMAIN_TXT_HEADER - -• **DOMAIN_TXT_HEADER**: *"celo-site-verification"* = "celo-site-verification" - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L53)* - -___ - -### `Const` KeybaseClaimType - -• **KeybaseClaimType**: *TypeC‹object›* = t.type({ - type: t.literal(ClaimTypes.KEYBASE), - timestamp: TimestampType, - // TODO: Validate compliant username before just interpolating - username: t.string, -}) - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L12)* - -___ - -### `Const` SignedClaimType - -• **SignedClaimType**: *TypeC‹object›* = t.type({ - claim: ClaimType, - signature: SignatureType, -}) - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L48)* - -## Functions - -### `Const` createDomainClaim - -▸ **createDomainClaim**(`domain`: string): *[DomainClaim](_identity_claims_claim_.md#domainclaim)* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:117](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L117)* - -**Parameters:** - -Name | Type | ------- | ------ | -`domain` | string | - -**Returns:** *[DomainClaim](_identity_claims_claim_.md#domainclaim)* - -___ - -### `Const` createNameClaim - -▸ **createNameClaim**(`name`: string): *[NameClaim](_identity_claims_claim_.md#nameclaim)* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:111](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L111)* - -**Parameters:** - -Name | Type | ------- | ------ | -`name` | string | - -**Returns:** *[NameClaim](_identity_claims_claim_.md#nameclaim)* - -___ - -### `Const` createStorageClaim - -▸ **createStorageClaim**(`storageURL`: string): *[StorageClaim](_identity_claims_claim_.md#storageclaim)* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L123)* - -**Parameters:** - -Name | Type | ------- | ------ | -`storageURL` | string | - -**Returns:** *[StorageClaim](_identity_claims_claim_.md#storageclaim)* - -___ - -### hashOfClaim - -▸ **hashOfClaim**(`claim`: [Claim](_identity_claims_claim_.md#claim)): *string* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:98](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L98)* - -**Parameters:** - -Name | Type | ------- | ------ | -`claim` | [Claim](_identity_claims_claim_.md#claim) | - -**Returns:** *string* - -___ - -### hashOfClaims - -▸ **hashOfClaims**(`claims`: [Claim](_identity_claims_claim_.md#claim)[]): *string* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:102](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L102)* - -**Parameters:** - -Name | Type | ------- | ------ | -`claims` | [Claim](_identity_claims_claim_.md#claim)[] | - -**Returns:** *string* - -___ - -### `Const` isOfType - -▸ **isOfType**<**K**>(`type`: K): *(Anonymous function)* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L78)* - -**`internal`** - -**Type parameters:** - -▪ **K**: *[ClaimTypes](../enums/_identity_claims_types_.claimtypes.md)* - -**Parameters:** - -Name | Type | ------- | ------ | -`type` | K | - -**Returns:** *(Anonymous function)* - -___ - -### serializeClaim - -▸ **serializeClaim**(`claim`: [Claim](_identity_claims_claim_.md#claim)): *string* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:107](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L107)* - -**Parameters:** - -Name | Type | ------- | ------ | -`claim` | [Claim](_identity_claims_claim_.md#claim) | - -**Returns:** *string* - -___ - -### validateClaim - -▸ **validateClaim**(`kit`: [ContractKit](../classes/_kit_.contractkit.md), `claim`: [Claim](_identity_claims_claim_.md#claim), `address`: string): *Promise‹undefined | string›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/claim.ts:88](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/claim.ts#L88)* - -Validates a claim made by an account, i.e. whether the claim is usable - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`kit` | [ContractKit](../classes/_kit_.contractkit.md) | The ContractKit object | -`claim` | [Claim](_identity_claims_claim_.md#claim) | The claim to validate | -`address` | string | The address that is making the claim | - -**Returns:** *Promise‹undefined | string›* - -If valid, returns undefined. If invalid or unable to validate, returns a string with the error diff --git a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_keybase_.md b/packages/docs/sdk/docs/contractkit/modules/_identity_claims_keybase_.md deleted file mode 100644 index 51c26e5c466..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_keybase_.md +++ /dev/null @@ -1,97 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["identity/claims/keybase"](_identity_claims_keybase_.md) - -# Module: "identity/claims/keybase" - -## Index - -### Variables - -* [keybaseFilePathToProof](_identity_claims_keybase_.md#const-keybasefilepathtoproof) - -### Functions - -* [createKeybaseClaim](_identity_claims_keybase_.md#const-createkeybaseclaim) -* [proofFileName](_identity_claims_keybase_.md#const-prooffilename) -* [targetURL](_identity_claims_keybase_.md#const-targeturl) -* [verifyKeybaseClaim](_identity_claims_keybase_.md#verifykeybaseclaim) - -## Variables - -### `Const` keybaseFilePathToProof - -• **keybaseFilePathToProof**: *".well-known/celo/"* = `.well-known/celo/` - -*Defined in [packages/sdk/contractkit/src/identity/claims/keybase.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/keybase.ts#L9)* - -## Functions - -### `Const` createKeybaseClaim - -▸ **createKeybaseClaim**(`username`: string): *[KeybaseClaim](_identity_claims_claim_.md#keybaseclaim)* - -*Defined in [packages/sdk/contractkit/src/identity/claims/keybase.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/keybase.ts#L72)* - -**Parameters:** - -Name | Type | ------- | ------ | -`username` | string | - -**Returns:** *[KeybaseClaim](_identity_claims_claim_.md#keybaseclaim)* - -___ - -### `Const` proofFileName - -▸ **proofFileName**(`address`: Address): *string* - -*Defined in [packages/sdk/contractkit/src/identity/claims/keybase.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/keybase.ts#L10)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | - -**Returns:** *string* - -___ - -### `Const` targetURL - -▸ **targetURL**(`username`: string, `address`: Address): *string* - -*Defined in [packages/sdk/contractkit/src/identity/claims/keybase.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/keybase.ts#L11)* - -**Parameters:** - -Name | Type | ------- | ------ | -`username` | string | -`address` | Address | - -**Returns:** *string* - -___ - -### verifyKeybaseClaim - -▸ **verifyKeybaseClaim**(`kit`: [ContractKit](../classes/_kit_.contractkit.md), `claim`: [KeybaseClaim](_identity_claims_claim_.md#keybaseclaim), `signer`: Address): *Promise‹string | undefined›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/keybase.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/keybase.ts#L26)* - -**`remarks`** -If verification encounters an error, returns the error message as a string -otherwise returns undefined when successful - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | [ContractKit](../classes/_kit_.contractkit.md) | -`claim` | [KeybaseClaim](_identity_claims_claim_.md#keybaseclaim) | -`signer` | Address | - -**Returns:** *Promise‹string | undefined›* - -a human readable string with claims (non)verifiability or undefined diff --git a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_types_.md b/packages/docs/sdk/docs/contractkit/modules/_identity_claims_types_.md deleted file mode 100644 index bd1812b44fa..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_types_.md +++ /dev/null @@ -1,73 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["identity/claims/types"](_identity_claims_types_.md) - -# Module: "identity/claims/types" - -## Index - -### Enumerations - -* [ClaimTypes](../enums/_identity_claims_types_.claimtypes.md) - -### Variables - -* [SINGULAR_CLAIM_TYPES](_identity_claims_types_.md#const-singular_claim_types) -* [SignatureType](_identity_claims_types_.md#const-signaturetype) -* [TimestampType](_identity_claims_types_.md#const-timestamptype) -* [VALIDATABLE_CLAIM_TYPES](_identity_claims_types_.md#const-validatable_claim_types) -* [VERIFIABLE_CLAIM_TYPES](_identity_claims_types_.md#const-verifiable_claim_types) - -### Functions - -* [now](_identity_claims_types_.md#const-now) - -## Variables - -### `Const` SINGULAR_CLAIM_TYPES - -• **SINGULAR_CLAIM_TYPES**: *[ClaimTypes](../enums/_identity_claims_types_.claimtypes.md)[]* = [ClaimTypes.NAME, ClaimTypes.ATTESTATION_SERVICE_URL] - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L25)* - -___ - -### `Const` SignatureType - -• **SignatureType**: *StringC‹›* = t.string - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L3)* - -___ - -### `Const` TimestampType - -• **TimestampType**: *NumberC‹›* = t.number - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L4)* - -___ - -### `Const` VALIDATABLE_CLAIM_TYPES - -• **VALIDATABLE_CLAIM_TYPES**: *[ClaimTypes](../enums/_identity_claims_types_.claimtypes.md)[]* = [ClaimTypes.ATTESTATION_SERVICE_URL] - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L23)* - -___ - -### `Const` VERIFIABLE_CLAIM_TYPES - -• **VERIFIABLE_CLAIM_TYPES**: *[ClaimTypes](../enums/_identity_claims_types_.claimtypes.md)[]* = [ClaimTypes.KEYBASE, ClaimTypes.ACCOUNT, ClaimTypes.DOMAIN] - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L20)* - -## Functions - -### `Const` now - -▸ **now**(): *number* - -*Defined in [packages/sdk/contractkit/src/identity/claims/types.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/types.ts#L7)* - -**`internal`** - -**Returns:** *number* diff --git a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_verify_.md b/packages/docs/sdk/docs/contractkit/modules/_identity_claims_verify_.md deleted file mode 100644 index db6911a848f..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_identity_claims_verify_.md +++ /dev/null @@ -1,75 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["identity/claims/verify"](_identity_claims_verify_.md) - -# Module: "identity/claims/verify" - -## Index - -### Functions - -* [verifyAccountClaim](_identity_claims_verify_.md#const-verifyaccountclaim) -* [verifyClaim](_identity_claims_verify_.md#verifyclaim) -* [verifyDomainRecord](_identity_claims_verify_.md#const-verifydomainrecord) - -## Functions - -### `Const` verifyAccountClaim - -▸ **verifyAccountClaim**(`kit`: [ContractKit](../classes/_kit_.contractkit.md), `claim`: [AccountClaim](_identity_claims_account_.md#accountclaim), `address`: string, `tries`: number): *Promise‹undefined | string›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/verify.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/verify.ts#L33)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`kit` | [ContractKit](../classes/_kit_.contractkit.md) | - | -`claim` | [AccountClaim](_identity_claims_account_.md#accountclaim) | - | -`address` | string | - | -`tries` | number | 3 | - -**Returns:** *Promise‹undefined | string›* - -___ - -### verifyClaim - -▸ **verifyClaim**(`kit`: [ContractKit](../classes/_kit_.contractkit.md), `claim`: [Claim](_identity_claims_claim_.md#claim), `address`: string, `tries`: number): *Promise‹undefined | string›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/verify.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/verify.ts#L19)* - -Verifies a claim made by an account, i.e. whether a claim can be verified to be correct - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`kit` | [ContractKit](../classes/_kit_.contractkit.md) | - | ContractKit object | -`claim` | [Claim](_identity_claims_claim_.md#claim) | - | The claim to verify | -`address` | string | - | The address that is making the claim | -`tries` | number | 3 | - | - -**Returns:** *Promise‹undefined | string›* - -If valid, returns undefined. If invalid or unable to verify, returns a string with the error - -___ - -### `Const` verifyDomainRecord - -▸ **verifyDomainRecord**(`kit`: [ContractKit](../classes/_kit_.contractkit.md), `claim`: [DomainClaim](_identity_claims_claim_.md#domainclaim), `address`: string, `dnsResolver`: dnsResolverFunction): *Promise‹undefined | string›* - -*Defined in [packages/sdk/contractkit/src/identity/claims/verify.ts:76](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/claims/verify.ts#L76)* - -It verifies if a DNS domain includes in the TXT records an entry with name -`celo-site-verification` and a valid signature in base64 - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`kit` | [ContractKit](../classes/_kit_.contractkit.md) | - | -`claim` | [DomainClaim](_identity_claims_claim_.md#domainclaim) | - | -`address` | string | - | -`dnsResolver` | dnsResolverFunction | resolveTxt as any | - -**Returns:** *Promise‹undefined | string›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_identity_metadata_.md b/packages/docs/sdk/docs/contractkit/modules/_identity_metadata_.md deleted file mode 100644 index 0211ea4338e..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_identity_metadata_.md +++ /dev/null @@ -1,46 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["identity/metadata"](_identity_metadata_.md) - -# Module: "identity/metadata" - -## Index - -### References - -* [ClaimTypes](_identity_metadata_.md#claimtypes) - -### Classes - -* [IdentityMetadataWrapper](../classes/_identity_metadata_.identitymetadatawrapper.md) - -### Type aliases - -* [IdentityMetadata](_identity_metadata_.md#identitymetadata) - -### Variables - -* [IdentityMetadataType](_identity_metadata_.md#const-identitymetadatatype) - -## References - -### ClaimTypes - -• **ClaimTypes**: - -## Type aliases - -### IdentityMetadata - -Ƭ **IdentityMetadata**: *t.TypeOf‹typeof IdentityMetadataType›* - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L30)* - -## Variables - -### `Const` IdentityMetadataType - -• **IdentityMetadataType**: *TypeC‹object›* = t.type({ - claims: t.array(ClaimType), - meta: MetaType, -}) - -*Defined in [packages/sdk/contractkit/src/identity/metadata.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/identity/metadata.ts#L25)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_kit_.md b/packages/docs/sdk/docs/contractkit/modules/_kit_.md deleted file mode 100644 index e91be696194..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_kit_.md +++ /dev/null @@ -1,101 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["kit"](_kit_.md) - -# Module: "kit" - -## Index - -### References - -* [API_KEY_HEADER_KEY](_kit_.md#api_key_header_key) -* [HttpProviderOptions](_kit_.md#httpprovideroptions) - -### Classes - -* [ContractKit](../classes/_kit_.contractkit.md) - -### Interfaces - -* [NetworkConfig](../interfaces/_kit_.networkconfig.md) - -### Functions - -* [newKit](_kit_.md#newkit) -* [newKitFromWeb3](_kit_.md#newkitfromweb3) -* [newKitWithApiKey](_kit_.md#newkitwithapikey) - -## References - -### API_KEY_HEADER_KEY - -• **API_KEY_HEADER_KEY**: - -___ - -### HttpProviderOptions - -• **HttpProviderOptions**: - -## Functions - -### newKit - -▸ **newKit**(`url`: string, `wallet?`: ReadOnlyWallet, `options?`: [HttpProviderOptions](_kit_.md#httpprovideroptions)): *[ContractKit](../classes/_kit_.contractkit.md)‹›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L46)* - -Creates a new instance of `ContractKit` given a nodeUrl - -**`optional`** wallet to reuse or add a wallet different than the default (example ledger-wallet) - -**`optional`** options to pass to the Web3 HttpProvider constructor - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`url` | string | CeloBlockchain node url | -`wallet?` | ReadOnlyWallet | - | -`options?` | [HttpProviderOptions](_kit_.md#httpprovideroptions) | - | - -**Returns:** *[ContractKit](../classes/_kit_.contractkit.md)‹›* - -___ - -### newKitFromWeb3 - -▸ **newKitFromWeb3**(`web3`: Web3, `wallet`: ReadOnlyWallet): *[ContractKit](../classes/_kit_.contractkit.md)‹›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L66)* - -Creates a new instance of the `ContractKit` with a web3 instance - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`web3` | Web3 | - | Web3 instance | -`wallet` | ReadOnlyWallet | new LocalWallet() | - | - -**Returns:** *[ContractKit](../classes/_kit_.contractkit.md)‹›* - -___ - -### newKitWithApiKey - -▸ **newKitWithApiKey**(`url`: string, `apiKey`: string, `wallet?`: ReadOnlyWallet): *[ContractKit](../classes/_kit_.contractkit.md)‹›* - -*Defined in [packages/sdk/contractkit/src/kit.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/kit.ts#L57)* - -Creates a new instance of `ContractKit` given a nodeUrl and apiKey - -**`optional`** wallet to reuse or add a wallet different than the default (example ledger-wallet) - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`url` | string | CeloBlockchain node url | -`apiKey` | string | to include in the http request header | -`wallet?` | ReadOnlyWallet | - | - -**Returns:** *[ContractKit](../classes/_kit_.contractkit.md)‹›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_mini_contract_cache_.md b/packages/docs/sdk/docs/contractkit/modules/_mini_contract_cache_.md deleted file mode 100644 index 13f5949c985..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_mini_contract_cache_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["mini-contract-cache"](_mini_contract_cache_.md) - -# Module: "mini-contract-cache" - -## Index - -### Classes - -* [MiniContractCache](../classes/_mini_contract_cache_.minicontractcache.md) - -### Type aliases - -* [ContractsBroughtBase](_mini_contract_cache_.md#contractsbroughtbase) - -## Type aliases - -### ContractsBroughtBase - -Ƭ **ContractsBroughtBase**: *typeof MINIMUM_CONTRACTS* - -*Defined in [packages/sdk/contractkit/src/mini-contract-cache.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-contract-cache.ts#L61)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_mini_kit_.md b/packages/docs/sdk/docs/contractkit/modules/_mini_kit_.md deleted file mode 100644 index a108f3d2f8a..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_mini_kit_.md +++ /dev/null @@ -1,92 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["mini-kit"](_mini_kit_.md) - -# Module: "mini-kit" - -## Index - -### Classes - -* [MiniContractKit](../classes/_mini_kit_.minicontractkit.md) - -### Variables - -* [ContractKit](_mini_kit_.md#const-contractkit) - -### Functions - -* [newKit](_mini_kit_.md#newkit) -* [newKitFromWeb3](_mini_kit_.md#newkitfromweb3) -* [newKitWithApiKey](_mini_kit_.md#newkitwithapikey) - -## Variables - -### `Const` ContractKit - -• **ContractKit**: *[MiniContractKit](../classes/_mini_kit_.minicontractkit.md)* = MiniContractKit - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L82)* - -## Functions - -### newKit - -▸ **newKit**(`url`: string, `wallet?`: ReadOnlyWallet, `options?`: [HttpProviderOptions](_setupforkits_.md#httpprovideroptions)): *[MiniContractKit](../classes/_mini_kit_.minicontractkit.md)‹›* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L21)* - -Creates a new instance of `MiniMiniContractKit` given a nodeUrl - -**`optional`** wallet to reuse or add a wallet different than the default (example ledger-wallet) - -**`optional`** options to pass to the Web3 HttpProvider constructor - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`url` | string | CeloBlockchain node url | -`wallet?` | ReadOnlyWallet | - | -`options?` | [HttpProviderOptions](_setupforkits_.md#httpprovideroptions) | - | - -**Returns:** *[MiniContractKit](../classes/_mini_kit_.minicontractkit.md)‹›* - -___ - -### newKitFromWeb3 - -▸ **newKitFromWeb3**(`web3`: Web3, `wallet`: ReadOnlyWallet): *[MiniContractKit](../classes/_mini_kit_.minicontractkit.md)‹›* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L41)* - -Creates a new instance of the `MiniContractKit` with a web3 instance - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`web3` | Web3 | - | Web3 instance | -`wallet` | ReadOnlyWallet | new LocalWallet() | - | - -**Returns:** *[MiniContractKit](../classes/_mini_kit_.minicontractkit.md)‹›* - -___ - -### newKitWithApiKey - -▸ **newKitWithApiKey**(`url`: string, `apiKey`: string, `wallet?`: ReadOnlyWallet): *[MiniContractKit](../classes/_mini_kit_.minicontractkit.md)‹›* - -*Defined in [packages/sdk/contractkit/src/mini-kit.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/mini-kit.ts#L32)* - -Creates a new instance of `MiniContractKit` given a nodeUrl and apiKey - -**`optional`** wallet to reuse or add a wallet different than the default (example ledger-wallet) - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`url` | string | CeloBlockchain node url | -`apiKey` | string | to include in the http request header | -`wallet?` | ReadOnlyWallet | - | - -**Returns:** *[MiniContractKit](../classes/_mini_kit_.minicontractkit.md)‹›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_proxy_.md b/packages/docs/sdk/docs/contractkit/modules/_proxy_.md deleted file mode 100644 index 9efe3619376..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_proxy_.md +++ /dev/null @@ -1,270 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["proxy"](_proxy_.md) - -# Module: "proxy" - -## Index - -### Variables - -* [PROXY_ABI](_proxy_.md#const-proxy_abi) -* [PROXY_SET_AND_INITIALIZE_IMPLEMENTATION_SIGNATURE](_proxy_.md#const-proxy_set_and_initialize_implementation_signature) -* [PROXY_SET_IMPLEMENTATION_SIGNATURE](_proxy_.md#const-proxy_set_implementation_signature) - -### Functions - -* [getInitializeAbiOfImplementation](_proxy_.md#const-getinitializeabiofimplementation) -* [setImplementationOnProxy](_proxy_.md#const-setimplementationonproxy) - -### Object literals - -* [GET_IMPLEMENTATION_ABI](_proxy_.md#const-get_implementation_abi) -* [SET_AND_INITIALIZE_IMPLEMENTATION_ABI](_proxy_.md#const-set_and_initialize_implementation_abi) -* [SET_IMPLEMENTATION_ABI](_proxy_.md#const-set_implementation_abi) - -## Variables - -### `Const` PROXY_ABI - -• **PROXY_ABI**: *ABIDefinition[]* = [ - GET_IMPLEMENTATION_ABI, - SET_IMPLEMENTATION_ABI, - SET_AND_INITIALIZE_IMPLEMENTATION_ABI, -] - -*Defined in [packages/sdk/contractkit/src/proxy.ts:83](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L83)* - -___ - -### `Const` PROXY_SET_AND_INITIALIZE_IMPLEMENTATION_SIGNATURE - -• **PROXY_SET_AND_INITIALIZE_IMPLEMENTATION_SIGNATURE**: *string* = SET_AND_INITIALIZE_IMPLEMENTATION_ABI.signature - -*Defined in [packages/sdk/contractkit/src/proxy.ts:90](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L90)* - -___ - -### `Const` PROXY_SET_IMPLEMENTATION_SIGNATURE - -• **PROXY_SET_IMPLEMENTATION_SIGNATURE**: *string* = SET_IMPLEMENTATION_ABI.signature - -*Defined in [packages/sdk/contractkit/src/proxy.ts:89](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L89)* - -## Functions - -### `Const` getInitializeAbiOfImplementation - -▸ **getInitializeAbiOfImplementation**(`proxyContractName`: keyof typeof initializeAbiMap): *AbiItem* - -*Defined in [packages/sdk/contractkit/src/proxy.ts:129](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L129)* - -**Parameters:** - -Name | Type | ------- | ------ | -`proxyContractName` | keyof typeof initializeAbiMap | - -**Returns:** *AbiItem* - -___ - -### `Const` setImplementationOnProxy - -▸ **setImplementationOnProxy**(`address`: string, `web3`: Web3): *any* - -*Defined in [packages/sdk/contractkit/src/proxy.ts:139](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L139)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`web3` | Web3 | - -**Returns:** *any* - -## Object literals - -### `Const` GET_IMPLEMENTATION_ABI - -### ▪ **GET_IMPLEMENTATION_ABI**: *object* - -*Defined in [packages/sdk/contractkit/src/proxy.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L31)* - -### constant - -• **constant**: *true* = true - -*Defined in [packages/sdk/contractkit/src/proxy.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L32)* - -### inputs - -• **inputs**: *never[]* = [] - -*Defined in [packages/sdk/contractkit/src/proxy.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L33)* - -### name - -• **name**: *string* = "_getImplementation" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L34)* - -### outputs - -• **outputs**: *object[]* = [ - { - name: 'implementation', - type: 'address', - }, - ] - -*Defined in [packages/sdk/contractkit/src/proxy.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L35)* - -### payable - -• **payable**: *false* = false - -*Defined in [packages/sdk/contractkit/src/proxy.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L41)* - -### signature - -• **signature**: *string* = "0x42404e07" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L44)* - -### stateMutability - -• **stateMutability**: *"view"* = "view" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L42)* - -### type - -• **type**: *"function"* = "function" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L43)* - -___ - -### `Const` SET_AND_INITIALIZE_IMPLEMENTATION_ABI - -### ▪ **SET_AND_INITIALIZE_IMPLEMENTATION_ABI**: *object* - -*Defined in [packages/sdk/contractkit/src/proxy.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L63)* - -### constant - -• **constant**: *false* = false - -*Defined in [packages/sdk/contractkit/src/proxy.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L64)* - -### inputs - -• **inputs**: *object[]* = [ - { - name: 'implementation', - type: 'address', - }, - { - name: 'callbackData', - type: 'bytes', - }, - ] - -*Defined in [packages/sdk/contractkit/src/proxy.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L65)* - -### name - -• **name**: *string* = "_setAndInitializeImplementation" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L75)* - -### outputs - -• **outputs**: *never[]* = [] - -*Defined in [packages/sdk/contractkit/src/proxy.ts:76](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L76)* - -### payable - -• **payable**: *true* = true - -*Defined in [packages/sdk/contractkit/src/proxy.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L77)* - -### signature - -• **signature**: *string* = "0x03386ba3" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L80)* - -### stateMutability - -• **stateMutability**: *"payable"* = "payable" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L78)* - -### type - -• **type**: *"function"* = "function" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:79](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L79)* - -___ - -### `Const` SET_IMPLEMENTATION_ABI - -### ▪ **SET_IMPLEMENTATION_ABI**: *object* - -*Defined in [packages/sdk/contractkit/src/proxy.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L47)* - -### constant - -• **constant**: *false* = false - -*Defined in [packages/sdk/contractkit/src/proxy.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L48)* - -### inputs - -• **inputs**: *object[]* = [ - { - name: 'implementation', - type: 'address', - }, - ] - -*Defined in [packages/sdk/contractkit/src/proxy.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L49)* - -### name - -• **name**: *string* = "_setImplementation" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L55)* - -### outputs - -• **outputs**: *never[]* = [] - -*Defined in [packages/sdk/contractkit/src/proxy.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L56)* - -### payable - -• **payable**: *false* = false - -*Defined in [packages/sdk/contractkit/src/proxy.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L57)* - -### signature - -• **signature**: *string* = "0xbb913f41" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L60)* - -### stateMutability - -• **stateMutability**: *"nonpayable"* = "nonpayable" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L58)* - -### type - -• **type**: *"function"* = "function" - -*Defined in [packages/sdk/contractkit/src/proxy.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/proxy.ts#L59)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_setupforkits_.md b/packages/docs/sdk/docs/contractkit/modules/_setupforkits_.md deleted file mode 100644 index fa5a7c016e0..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_setupforkits_.md +++ /dev/null @@ -1,90 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["setupForKits"](_setupforkits_.md) - -# Module: "setupForKits" - -## Index - -### Type aliases - -* [HttpProviderOptions](_setupforkits_.md#httpprovideroptions) - -### Variables - -* [API_KEY_HEADER_KEY](_setupforkits_.md#const-api_key_header_key) - -### Functions - -* [ensureCurrentProvider](_setupforkits_.md#ensurecurrentprovider) -* [getWeb3ForKit](_setupforkits_.md#getweb3forkit) -* [setupAPIKey](_setupforkits_.md#setupapikey) - -## Type aliases - -### HttpProviderOptions - -Ƭ **HttpProviderOptions**: *Web3HttpProviderOptions* - -*Defined in [packages/sdk/contractkit/src/setupForKits.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/setupForKits.ts#L4)* - -## Variables - -### `Const` API_KEY_HEADER_KEY - -• **API_KEY_HEADER_KEY**: *"apiKey"* = "apiKey" - -*Defined in [packages/sdk/contractkit/src/setupForKits.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/setupForKits.ts#L6)* - -## Functions - -### ensureCurrentProvider - -▸ **ensureCurrentProvider**(`web3`: Web3): *void* - -*Defined in [packages/sdk/contractkit/src/setupForKits.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/setupForKits.ts#L19)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`web3` | Web3 | - -**Returns:** *void* - -___ - -### getWeb3ForKit - -▸ **getWeb3ForKit**(`url`: string, `options`: Web3HttpProviderOptions | undefined): *Web3‹›* - -*Defined in [packages/sdk/contractkit/src/setupForKits.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/setupForKits.ts#L25)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`url` | string | -`options` | Web3HttpProviderOptions | undefined | - -**Returns:** *Web3‹›* - -___ - -### setupAPIKey - -▸ **setupAPIKey**(`apiKey`: string): *HttpProviderOptions* - -*Defined in [packages/sdk/contractkit/src/setupForKits.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/setupForKits.ts#L9)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`apiKey` | string | - -**Returns:** *HttpProviderOptions* diff --git a/packages/docs/sdk/docs/contractkit/modules/_test_utils_grandamento_.md b/packages/docs/sdk/docs/contractkit/modules/_test_utils_grandamento_.md deleted file mode 100644 index a30d6cb6dc7..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_test_utils_grandamento_.md +++ /dev/null @@ -1,28 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["test-utils/grandaMento"](_test_utils_grandamento_.md) - -# Module: "test-utils/grandaMento" - -## Index - -### Functions - -* [setGrandaMentoLimits](_test_utils_grandamento_.md#const-setgrandamentolimits) - -## Functions - -### `Const` setGrandaMentoLimits - -▸ **setGrandaMentoLimits**(`grandaMento`: [GrandaMentoWrapper](../classes/_wrappers_grandamento_.grandamentowrapper.md), `newLimitMin`: BigNumber, `newLimitMax`: BigNumber, `stableToken`: string): *Promise‹void›* - -*Defined in [packages/sdk/contractkit/src/test-utils/grandaMento.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/test-utils/grandaMento.ts#L4)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`grandaMento` | [GrandaMentoWrapper](../classes/_wrappers_grandamento_.grandamentowrapper.md) | - | -`newLimitMin` | BigNumber | new BigNumber('1000') | -`newLimitMax` | BigNumber | new BigNumber('1000000000000') | -`stableToken` | string | "StableToken" | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_test_utils_promieventstub_.md b/packages/docs/sdk/docs/contractkit/modules/_test_utils_promieventstub_.md deleted file mode 100644 index 950c1227bcc..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_test_utils_promieventstub_.md +++ /dev/null @@ -1,23 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["test-utils/PromiEventStub"](_test_utils_promieventstub_.md) - -# Module: "test-utils/PromiEventStub" - -## Index - -### Functions - -* [promiEventSpy](_test_utils_promieventstub_.md#promieventspy) - -## Functions - -### promiEventSpy - -▸ **promiEventSpy**<**T**>(): *PromiEventStub‹T›* - -*Defined in [packages/sdk/contractkit/src/test-utils/PromiEventStub.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/test-utils/PromiEventStub.ts#L11)* - -**Type parameters:** - -▪ **T** - -**Returns:** *PromiEventStub‹T›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_test_utils_setup_global_.md b/packages/docs/sdk/docs/contractkit/modules/_test_utils_setup_global_.md deleted file mode 100644 index 7c5f59de087..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_test_utils_setup_global_.md +++ /dev/null @@ -1,19 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["test-utils/setup.global"](_test_utils_setup_global_.md) - -# Module: "test-utils/setup.global" - -## Index - -### Functions - -* [globalSetup](_test_utils_setup_global_.md#globalsetup) - -## Functions - -### globalSetup - -▸ **globalSetup**(): *Promise‹void›* - -*Defined in [packages/sdk/contractkit/src/test-utils/setup.global.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/test-utils/setup.global.ts#L12)* - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_test_utils_teardown_global_.md b/packages/docs/sdk/docs/contractkit/modules/_test_utils_teardown_global_.md deleted file mode 100644 index cf3ade5c3f3..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_test_utils_teardown_global_.md +++ /dev/null @@ -1,19 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["test-utils/teardown.global"](_test_utils_teardown_global_.md) - -# Module: "test-utils/teardown.global" - -## Index - -### Functions - -* [globalTeardown](_test_utils_teardown_global_.md#globalteardown) - -## Functions - -### globalTeardown - -▸ **globalTeardown**(): *Promise‹void›* - -*Defined in [packages/sdk/contractkit/src/test-utils/teardown.global.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/test-utils/teardown.global.ts#L5)* - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_test_utils_transferownership_.md b/packages/docs/sdk/docs/contractkit/modules/_test_utils_transferownership_.md deleted file mode 100644 index bd10c33d6a1..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_test_utils_transferownership_.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["test-utils/transferownership"](_test_utils_transferownership_.md) - -# Module: "test-utils/transferownership" - -## Index - -### Functions - -* [assumeOwnership](_test_utils_transferownership_.md#assumeownership) - -## Functions - -### assumeOwnership - -▸ **assumeOwnership**(`web3`: Web3, `to`: string): *Promise‹void›* - -*Defined in [packages/sdk/contractkit/src/test-utils/transferownership.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/test-utils/transferownership.ts#L11)* - -**Parameters:** - -Name | Type | ------- | ------ | -`web3` | Web3 | -`to` | string | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_versions_.md b/packages/docs/sdk/docs/contractkit/modules/_versions_.md deleted file mode 100644 index e4df17f2661..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_versions_.md +++ /dev/null @@ -1,34 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["versions"](_versions_.md) - -# Module: "versions" - -## Index - -### Classes - -* [ContractVersion](../classes/_versions_.contractversion.md) - -### Functions - -* [newContractVersion](_versions_.md#const-newcontractversion) - -## Functions - -### `Const` newContractVersion - -▸ **newContractVersion**(`storage`: number, `major`: number, `minor`: number, `patch`: number): *[ContractVersion](../classes/_versions_.contractversion.md)‹›* - -*Defined in [packages/sdk/contractkit/src/versions.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/versions.ts#L20)* - -**`internal`** - -**Parameters:** - -Name | Type | ------- | ------ | -`storage` | number | -`major` | number | -`minor` | number | -`patch` | number | - -**Returns:** *[ContractVersion](../classes/_versions_.contractversion.md)‹›* diff --git a/packages/docs/sdk/docs/contractkit/modules/_web3_contract_cache_.md b/packages/docs/sdk/docs/contractkit/modules/_web3_contract_cache_.md deleted file mode 100644 index d1a27945c30..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_web3_contract_cache_.md +++ /dev/null @@ -1,219 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["web3-contract-cache"](_web3_contract_cache_.md) - -# Module: "web3-contract-cache" - -## Index - -### Classes - -* [Web3ContractCache](../classes/_web3_contract_cache_.web3contractcache.md) - -### Type aliases - -* [CFType](_web3_contract_cache_.md#cftype) - -### Object literals - -* [ContractFactories](_web3_contract_cache_.md#const-contractfactories) - -## Type aliases - -### CFType - -Ƭ **CFType**: *typeof ContractFactories* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:84](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L84)* - -## Object literals - -### `Const` ContractFactories - -### ▪ **ContractFactories**: *object* - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L38)* - -### [CeloContract.Accounts] - -• **[CeloContract.Accounts]**: *newAccounts* = newAccounts - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L39)* - -### [CeloContract.Attestations] - -• **[CeloContract.Attestations]**: *newAttestations* = newAttestations - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L40)* - -### [CeloContract.BlockchainParameters] - -• **[CeloContract.BlockchainParameters]**: *newBlockchainParameters* = newBlockchainParameters - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L41)* - -### [CeloContract.DoubleSigningSlasher] - -• **[CeloContract.DoubleSigningSlasher]**: *newDoubleSigningSlasher* = newDoubleSigningSlasher - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L42)* - -### [CeloContract.DowntimeSlasher] - -• **[CeloContract.DowntimeSlasher]**: *newDowntimeSlasher* = newDowntimeSlasher - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L43)* - -### [CeloContract.ERC20] - -• **[CeloContract.ERC20]**: *newIerc20* = newIerc20 - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L46)* - -### [CeloContract.Election] - -• **[CeloContract.Election]**: *newElection* = newElection - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L44)* - -### [CeloContract.EpochRewards] - -• **[CeloContract.EpochRewards]**: *newEpochRewards* = newEpochRewards - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L45)* - -### [CeloContract.Escrow] - -• **[CeloContract.Escrow]**: *newEscrow* = newEscrow - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L47)* - -### [CeloContract.ExchangeBRL] - -• **[CeloContract.ExchangeBRL]**: *newExchangeBrl* = newExchangeBrl - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L50)* - -### [CeloContract.ExchangeEUR] - -• **[CeloContract.ExchangeEUR]**: *newExchangeEur* = newExchangeEur - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L49)* - -### [CeloContract.Exchange] - -• **[CeloContract.Exchange]**: *newExchange* = newExchange - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L48)* - -### [CeloContract.FeeCurrencyWhitelist] - -• **[CeloContract.FeeCurrencyWhitelist]**: *newFeeCurrencyWhitelist* = newFeeCurrencyWhitelist - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L51)* - -### [CeloContract.Freezer] - -• **[CeloContract.Freezer]**: *newFreezer* = newFreezer - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L52)* - -### [CeloContract.GasPriceMinimum] - -• **[CeloContract.GasPriceMinimum]**: *newGasPriceMinimum* = newGasPriceMinimum - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L53)* - -### [CeloContract.GoldToken] - -• **[CeloContract.GoldToken]**: *newGoldToken* = newGoldToken - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L54)* - -### [CeloContract.Governance] - -• **[CeloContract.Governance]**: *newGovernance* = newGovernance - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L55)* - -### [CeloContract.GrandaMento] - -• **[CeloContract.GrandaMento]**: *newGrandaMento* = newGrandaMento - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L56)* - -### [CeloContract.LockedGold] - -• **[CeloContract.LockedGold]**: *newLockedGold* = newLockedGold - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L57)* - -### [CeloContract.MetaTransactionWalletDeployer] - -• **[CeloContract.MetaTransactionWalletDeployer]**: *newMetaTransactionWalletDeployer* = newMetaTransactionWalletDeployer - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L59)* - -### [CeloContract.MetaTransactionWallet] - -• **[CeloContract.MetaTransactionWallet]**: *newMetaTransactionWallet* = newMetaTransactionWallet - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L58)* - -### [CeloContract.MultiSig] - -• **[CeloContract.MultiSig]**: *newMultiSig* = newMultiSig - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L60)* - -### [CeloContract.Random] - -• **[CeloContract.Random]**: *newRandom* = newRandom - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L61)* - -### [CeloContract.Registry] - -• **[CeloContract.Registry]**: *newRegistry* = newRegistry - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L62)* - -### [CeloContract.Reserve] - -• **[CeloContract.Reserve]**: *newReserve* = newReserve - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L63)* - -### [CeloContract.SortedOracles] - -• **[CeloContract.SortedOracles]**: *newSortedOracles* = newSortedOracles - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L64)* - -### [CeloContract.StableTokenBRL] - -• **[CeloContract.StableTokenBRL]**: *newStableToken* = newStableToken - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L67)* - -### [CeloContract.StableTokenEUR] - -• **[CeloContract.StableTokenEUR]**: *newStableToken* = newStableToken - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L66)* - -### [CeloContract.StableToken] - -• **[CeloContract.StableToken]**: *newStableToken* = newStableToken - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L65)* - -### [CeloContract.TransferWhitelist] - -• **[CeloContract.TransferWhitelist]**: *newTransferWhitelist* = newTransferWhitelist - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L68)* - -### [CeloContract.Validators] - -• **[CeloContract.Validators]**: *newValidators* = newValidators - -*Defined in [packages/sdk/contractkit/src/web3-contract-cache.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/web3-contract-cache.ts#L69)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_accounts_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_accounts_.md deleted file mode 100644 index e3c5612ec04..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_accounts_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Accounts"](_wrappers_accounts_.md) - -# Module: "wrappers/Accounts" - -## Index - -### Classes - -* [AccountsWrapper](../classes/_wrappers_accounts_.accountswrapper.md) - -### Type aliases - -* [AccountsWrapperType](_wrappers_accounts_.md#accountswrappertype) - -## Type aliases - -### AccountsWrapperType - -Ƭ **AccountsWrapperType**: *[AccountsWrapper](../classes/_wrappers_accounts_.accountswrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Accounts.ts:474](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Accounts.ts#L474)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_attestations_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_attestations_.md deleted file mode 100644 index 07823bac3c8..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_attestations_.md +++ /dev/null @@ -1,65 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Attestations"](_wrappers_attestations_.md) - -# Module: "wrappers/Attestations" - -## Index - -### Enumerations - -* [AttestationServiceStatusState](../enums/_wrappers_attestations_.attestationservicestatusstate.md) -* [AttestationState](../enums/_wrappers_attestations_.attestationstate.md) - -### Classes - -* [AttestationsWrapper](../classes/_wrappers_attestations_.attestationswrapper.md) - -### Interfaces - -* [ActionableAttestation](../interfaces/_wrappers_attestations_.actionableattestation.md) -* [AttestationServiceStatusResponse](../interfaces/_wrappers_attestations_.attestationservicestatusresponse.md) -* [AttestationStat](../interfaces/_wrappers_attestations_.attestationstat.md) -* [AttestationStateForIssuer](../interfaces/_wrappers_attestations_.attestationstateforissuer.md) -* [AttestationsConfig](../interfaces/_wrappers_attestations_.attestationsconfig.md) -* [AttestationsToken](../interfaces/_wrappers_attestations_.attestationstoken.md) -* [UnselectedRequest](../interfaces/_wrappers_attestations_.unselectedrequest.md) - -### Type aliases - -* [AttestationsWrapperType](_wrappers_attestations_.md#attestationswrappertype) -* [IdentifierLookupResult](_wrappers_attestations_.md#identifierlookupresult) - -### Functions - -* [getSecurityCodePrefix](_wrappers_attestations_.md#getsecuritycodeprefix) - -## Type aliases - -### AttestationsWrapperType - -Ƭ **AttestationsWrapperType**: *[AttestationsWrapper](../classes/_wrappers_attestations_.attestationswrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:900](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L900)* - -___ - -### IdentifierLookupResult - -Ƭ **IdentifierLookupResult**: *Record‹string, Record‹Address, [AttestationStat](../interfaces/_wrappers_attestations_.attestationstat.md) | undefined› | undefined›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:100](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L100)* - -## Functions - -### getSecurityCodePrefix - -▸ **getSecurityCodePrefix**(`issuerAddress`: Address): *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/Attestations.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Attestations.ts#L30)* - -**Parameters:** - -Name | Type | ------- | ------ | -`issuerAddress` | Address | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_baseslasher_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_baseslasher_.md deleted file mode 100644 index 5f2e7935dbf..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_baseslasher_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BaseSlasher"](_wrappers_baseslasher_.md) - -# Module: "wrappers/BaseSlasher" - -## Index - -### Classes - -* [BaseSlasher](../classes/_wrappers_baseslasher_.baseslasher.md) diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_basewrapper_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_basewrapper_.md deleted file mode 100644 index d4126bebe97..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_basewrapper_.md +++ /dev/null @@ -1,607 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BaseWrapper"](_wrappers_basewrapper_.md) - -# Module: "wrappers/BaseWrapper" - -## Index - -### Classes - -* [BaseWrapper](../classes/_wrappers_basewrapper_.basewrapper.md) - -### Functions - -* [blocksToDurationString](_wrappers_basewrapper_.md#const-blockstodurationstring) -* [bufferToSolidityBytes](_wrappers_basewrapper_.md#const-buffertosoliditybytes) -* [fixidityValueToBigNumber](_wrappers_basewrapper_.md#const-fixidityvaluetobignumber) -* [identity](_wrappers_basewrapper_.md#const-identity) -* [proxyCall](_wrappers_basewrapper_.md#proxycall) -* [proxySend](_wrappers_basewrapper_.md#proxysend) -* [secondsToDurationString](_wrappers_basewrapper_.md#secondstodurationstring) -* [solidityBytesToString](_wrappers_basewrapper_.md#const-soliditybytestostring) -* [stringIdentity](_wrappers_basewrapper_.md#const-stringidentity) -* [stringToSolidityBytes](_wrappers_basewrapper_.md#const-stringtosoliditybytes) -* [tupleParser](_wrappers_basewrapper_.md#tupleparser) -* [unixSecondsTimestampToDateString](_wrappers_basewrapper_.md#const-unixsecondstimestamptodatestring) -* [valueToBigNumber](_wrappers_basewrapper_.md#const-valuetobignumber) -* [valueToFixidityString](_wrappers_basewrapper_.md#const-valuetofixiditystring) -* [valueToFrac](_wrappers_basewrapper_.md#const-valuetofrac) -* [valueToInt](_wrappers_basewrapper_.md#const-valuetoint) -* [valueToString](_wrappers_basewrapper_.md#const-valuetostring) - -## Functions - -### `Const` blocksToDurationString - -▸ **blocksToDurationString**(`input`: BigNumber.Value): *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:145](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L145)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | BigNumber.Value | - -**Returns:** *string* - -___ - -### `Const` bufferToSolidityBytes - -▸ **bufferToSolidityBytes**(`input`: Buffer): *SolidityBytes* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:167](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L167)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | Buffer | - -**Returns:** *SolidityBytes* - -___ - -### `Const` fixidityValueToBigNumber - -▸ **fixidityValueToBigNumber**(`input`: BigNumber.Value): *BigNumber‹›* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:85](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L85)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | BigNumber.Value | - -**Returns:** *BigNumber‹›* - -___ - -### `Const` identity - -▸ **identity**<**A**>(`a`: A): *A* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:182](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L182)* - -Identity Parser - -**Type parameters:** - -▪ **A** - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | A | - -**Returns:** *A* - -___ - -### proxyCall - -▸ **proxyCall**<**InputArgs**, **ParsedInputArgs**, **PreParsedOutput**, **Output**>(`methodFn`: Method‹ParsedInputArgs, PreParsedOutput›, `parseInputArgs`: function, `parseOutput`: function): *function* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:251](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L251)* - -Creates a proxy to call a web3 native contract method. - -There are 4 cases: - - methodFn - - parseInputArgs => methodFn - - parseInputArgs => methodFn => parseOutput - - methodFn => parseOutput - -**Type parameters:** - -▪ **InputArgs**: *any[]* - -▪ **ParsedInputArgs**: *any[]* - -▪ **PreParsedOutput** - -▪ **Output** - -**Parameters:** - -▪ **methodFn**: *Method‹ParsedInputArgs, PreParsedOutput›* - -Web3 methods function - -▪ **parseInputArgs**: *function* - -parseInputArgs function, tranforms arguments into `methodFn` expected inputs - -▸ (...`args`: InputArgs): *ParsedInputArgs* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -▪ **parseOutput**: *function* - -parseOutput function, transforms `methodFn` output into proxy return - -▸ (`o`: PreParsedOutput): *Output* - -**Parameters:** - -Name | Type | ------- | ------ | -`o` | PreParsedOutput | - -**Returns:** *function* - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -▸ **proxyCall**<**InputArgs**, **PreParsedOutput**, **Output**>(`methodFn`: Method‹InputArgs, PreParsedOutput›, `x`: undefined, `parseOutput`: function): *function* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:261](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L261)* - -**Type parameters:** - -▪ **InputArgs**: *any[]* - -▪ **PreParsedOutput** - -▪ **Output** - -**Parameters:** - -▪ **methodFn**: *Method‹InputArgs, PreParsedOutput›* - -▪ **x**: *undefined* - -▪ **parseOutput**: *function* - -▸ (`o`: PreParsedOutput): *Output* - -**Parameters:** - -Name | Type | ------- | ------ | -`o` | PreParsedOutput | - -**Returns:** *function* - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -▸ **proxyCall**<**InputArgs**, **ParsedInputArgs**, **Output**>(`methodFn`: Method‹ParsedInputArgs, Output›, `parseInputArgs`: function): *function* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:266](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L266)* - -**Type parameters:** - -▪ **InputArgs**: *any[]* - -▪ **ParsedInputArgs**: *any[]* - -▪ **Output** - -**Parameters:** - -▪ **methodFn**: *Method‹ParsedInputArgs, Output›* - -▪ **parseInputArgs**: *function* - -▸ (...`args`: InputArgs): *ParsedInputArgs* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -**Returns:** *function* - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -▸ **proxyCall**<**InputArgs**, **Output**>(`methodFn`: Method‹InputArgs, Output›): *function* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:270](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L270)* - -**Type parameters:** - -▪ **InputArgs**: *any[]* - -▪ **Output** - -**Parameters:** - -Name | Type | ------- | ------ | -`methodFn` | Method‹InputArgs, Output› | - -**Returns:** *function* - -▸ (...`args`: InputArgs): *Promise‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### proxySend - -▸ **proxySend**<**InputArgs**, **ParsedInputArgs**, **Output**>(`connection`: Connection, ...`sendArgs`: ProxySendArgs‹InputArgs, ParsedInputArgs, Output›): *function* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:331](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L331)* - -Creates a proxy to send a tx on a web3 native contract method. - -There are 2 cases: - - call methodFn (no pre or post parsing) - - preParse arguments & call methodFn - -**Type parameters:** - -▪ **InputArgs**: *any[]* - -▪ **ParsedInputArgs**: *any[]* - -▪ **Output** - -**Parameters:** - -Name | Type | ------- | ------ | -`connection` | Connection | -`...sendArgs` | ProxySendArgs‹InputArgs, ParsedInputArgs, Output› | - -**Returns:** *function* - -▸ (...`args`: InputArgs): *CeloTransactionObject‹Output›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | InputArgs | - -___ - -### secondsToDurationString - -▸ **secondsToDurationString**(`durationSeconds`: BigNumber.Value, `outputUnits`: TimeUnit[]): *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:116](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L116)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`durationSeconds` | BigNumber.Value | - | -`outputUnits` | TimeUnit[] | ['year', 'month', 'week', 'day', 'hour', 'minute', 'second'] | - -**Returns:** *string* - -___ - -### `Const` solidityBytesToString - -▸ **solidityBytesToString**(`input`: SolidityBytes): *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:168](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L168)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | SolidityBytes | - -**Returns:** *string* - -___ - -### `Const` stringIdentity - -▸ **stringIdentity**(`x`: string): *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:183](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L183)* - -**Parameters:** - -Name | Type | ------- | ------ | -`x` | string | - -**Returns:** *string* - -___ - -### `Const` stringToSolidityBytes - -▸ **stringToSolidityBytes**(`input`: string): *SolidityBytes* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:166](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L166)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | - -**Returns:** *SolidityBytes* - -___ - -### tupleParser - -▸ **tupleParser**<**A0**, **B0**>(`parser0`: Parser‹A0, B0›): *function* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:189](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L189)* - -Tuple parser -Useful to map different input arguments - -**Type parameters:** - -▪ **A0** - -▪ **B0** - -**Parameters:** - -Name | Type | ------- | ------ | -`parser0` | Parser‹A0, B0› | - -**Returns:** *function* - -▸ (...`args`: [A0]): *[B0]* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | [A0] | - -▸ **tupleParser**<**A0**, **B0**, **A1**, **B1**>(`parser0`: Parser‹A0, B0›, `parser1`: Parser‹A1, B1›): *function* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:190](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L190)* - -**Type parameters:** - -▪ **A0** - -▪ **B0** - -▪ **A1** - -▪ **B1** - -**Parameters:** - -Name | Type | ------- | ------ | -`parser0` | Parser‹A0, B0› | -`parser1` | Parser‹A1, B1› | - -**Returns:** *function* - -▸ (...`args`: [A0, A1]): *[B0, B1]* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | [A0, A1] | - -▸ **tupleParser**<**A0**, **B0**, **A1**, **B1**, **A2**, **B2**>(`parser0`: Parser‹A0, B0›, `parser1`: Parser‹A1, B1›, `parser2`: Parser‹A2, B2›): *function* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:194](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L194)* - -**Type parameters:** - -▪ **A0** - -▪ **B0** - -▪ **A1** - -▪ **B1** - -▪ **A2** - -▪ **B2** - -**Parameters:** - -Name | Type | ------- | ------ | -`parser0` | Parser‹A0, B0› | -`parser1` | Parser‹A1, B1› | -`parser2` | Parser‹A2, B2› | - -**Returns:** *function* - -▸ (...`args`: [A0, A1, A2]): *[B0, B1, B2]* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | [A0, A1, A2] | - -▸ **tupleParser**<**A0**, **B0**, **A1**, **B1**, **A2**, **B2**, **A3**, **B3**>(`parser0`: Parser‹A0, B0›, `parser1`: Parser‹A1, B1›, `parser2`: Parser‹A2, B2›, `parser3`: Parser‹A3, B3›): *function* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:199](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L199)* - -**Type parameters:** - -▪ **A0** - -▪ **B0** - -▪ **A1** - -▪ **B1** - -▪ **A2** - -▪ **B2** - -▪ **A3** - -▪ **B3** - -**Parameters:** - -Name | Type | ------- | ------ | -`parser0` | Parser‹A0, B0› | -`parser1` | Parser‹A1, B1› | -`parser2` | Parser‹A2, B2› | -`parser3` | Parser‹A3, B3› | - -**Returns:** *function* - -▸ (...`args`: [A0, A1, A2, A3]): *[B0, B1, B2, B3]* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | [A0, A1, A2, A3] | - -___ - -### `Const` unixSecondsTimestampToDateString - -▸ **unixSecondsTimestampToDateString**(`input`: BigNumber.Value): *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:158](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L158)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | BigNumber.Value | - -**Returns:** *string* - -___ - -### `Const` valueToBigNumber - -▸ **valueToBigNumber**(`input`: BigNumber.Value): *BigNumber‹›* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:83](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L83)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | BigNumber.Value | - -**Returns:** *BigNumber‹›* - -___ - -### `Const` valueToFixidityString - -▸ **valueToFixidityString**(`input`: BigNumber.Value): *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:89](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L89)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | BigNumber.Value | - -**Returns:** *string* - -___ - -### `Const` valueToFrac - -▸ **valueToFrac**(`numerator`: BigNumber.Value, `denominator`: BigNumber.Value): *BigNumber‹›* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:95](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L95)* - -**Parameters:** - -Name | Type | ------- | ------ | -`numerator` | BigNumber.Value | -`denominator` | BigNumber.Value | - -**Returns:** *BigNumber‹›* - -___ - -### `Const` valueToInt - -▸ **valueToInt**(`input`: BigNumber.Value): *number* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:92](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L92)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | BigNumber.Value | - -**Returns:** *number* - -___ - -### `Const` valueToString - -▸ **valueToString**(`input`: BigNumber.Value): *string* - -*Defined in [packages/sdk/contractkit/src/wrappers/BaseWrapper.ts:87](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts#L87)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | BigNumber.Value | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_basewrapperforgoverning_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_basewrapperforgoverning_.md deleted file mode 100644 index d2bf0d30057..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_basewrapperforgoverning_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BaseWrapperForGoverning"](_wrappers_basewrapperforgoverning_.md) - -# Module: "wrappers/BaseWrapperForGoverning" - -## Index - -### Classes - -* [BaseWrapperForGoverning](../classes/_wrappers_basewrapperforgoverning_.basewrapperforgoverning.md) diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_blockchainparameters_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_blockchainparameters_.md deleted file mode 100644 index 04ed10363be..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_blockchainparameters_.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/BlockchainParameters"](_wrappers_blockchainparameters_.md) - -# Module: "wrappers/BlockchainParameters" - -## Index - -### Classes - -* [BlockchainParametersWrapper](../classes/_wrappers_blockchainparameters_.blockchainparameterswrapper.md) - -### Interfaces - -* [BlockchainParametersConfig](../interfaces/_wrappers_blockchainparameters_.blockchainparametersconfig.md) -* [ClientVersion](../interfaces/_wrappers_blockchainparameters_.clientversion.md) - -### Type aliases - -* [BlockchainParametersWrapperType](_wrappers_blockchainparameters_.md#blockchainparameterswrappertype) - -## Type aliases - -### BlockchainParametersWrapperType - -Ƭ **BlockchainParametersWrapperType**: *[BlockchainParametersWrapper](../classes/_wrappers_blockchainparameters_.blockchainparameterswrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts:137](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts#L137)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_celotokenwrapper_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_celotokenwrapper_.md deleted file mode 100644 index 1f634acc5b2..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_celotokenwrapper_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/CeloTokenWrapper"](_wrappers_celotokenwrapper_.md) - -# Module: "wrappers/CeloTokenWrapper" - -## Index - -### Classes - -* [CeloTokenWrapper](../classes/_wrappers_celotokenwrapper_.celotokenwrapper.md) diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_doublesigningslasher_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_doublesigningslasher_.md deleted file mode 100644 index 84736fc1490..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_doublesigningslasher_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/DoubleSigningSlasher"](_wrappers_doublesigningslasher_.md) - -# Module: "wrappers/DoubleSigningSlasher" - -## Index - -### Classes - -* [DoubleSigningSlasherWrapper](../classes/_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md) - -### Type aliases - -* [DoubleSigningSlasherWrapperType](_wrappers_doublesigningslasher_.md#doublesigningslasherwrappertype) - -## Type aliases - -### DoubleSigningSlasherWrapperType - -Ƭ **DoubleSigningSlasherWrapperType**: *[DoubleSigningSlasherWrapper](../classes/_wrappers_doublesigningslasher_.doublesigningslasherwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts#L51)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_downtimeslasher_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_downtimeslasher_.md deleted file mode 100644 index 89419341654..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_downtimeslasher_.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/DowntimeSlasher"](_wrappers_downtimeslasher_.md) - -# Module: "wrappers/DowntimeSlasher" - -## Index - -### Classes - -* [DowntimeSlasherWrapper](../classes/_wrappers_downtimeslasher_.downtimeslasherwrapper.md) - -### Interfaces - -* [DowntimeSlasherConfig](../interfaces/_wrappers_downtimeslasher_.downtimeslasherconfig.md) -* [Interval](../interfaces/_wrappers_downtimeslasher_.interval.md) - -### Type aliases - -* [DowntimeSlasherWrapperType](_wrappers_downtimeslasher_.md#downtimeslasherwrappertype) - -## Type aliases - -### DowntimeSlasherWrapperType - -Ƭ **DowntimeSlasherWrapperType**: *[DowntimeSlasherWrapper](../classes/_wrappers_downtimeslasher_.downtimeslasherwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts:223](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts#L223)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_election_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_election_.md deleted file mode 100644 index 4637da1b1a0..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_election_.md +++ /dev/null @@ -1,31 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Election"](_wrappers_election_.md) - -# Module: "wrappers/Election" - -## Index - -### Classes - -* [ElectionWrapper](../classes/_wrappers_election_.electionwrapper.md) - -### Interfaces - -* [ElectableValidators](../interfaces/_wrappers_election_.electablevalidators.md) -* [ElectionConfig](../interfaces/_wrappers_election_.electionconfig.md) -* [GroupVote](../interfaces/_wrappers_election_.groupvote.md) -* [GroupVoterReward](../interfaces/_wrappers_election_.groupvoterreward.md) -* [ValidatorGroupVote](../interfaces/_wrappers_election_.validatorgroupvote.md) -* [Voter](../interfaces/_wrappers_election_.voter.md) -* [VoterReward](../interfaces/_wrappers_election_.voterreward.md) - -### Type aliases - -* [ElectionWrapperType](_wrappers_election_.md#electionwrappertype) - -## Type aliases - -### ElectionWrapperType - -Ƭ **ElectionWrapperType**: *[ElectionWrapper](../classes/_wrappers_election_.electionwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Election.ts:545](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Election.ts#L545)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_epochrewards_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_epochrewards_.md deleted file mode 100644 index 58fa58c853b..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_epochrewards_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/EpochRewards"](_wrappers_epochrewards_.md) - -# Module: "wrappers/EpochRewards" - -## Index - -### Classes - -* [EpochRewardsWrapper](../classes/_wrappers_epochrewards_.epochrewardswrapper.md) - -### Type aliases - -* [EpochRewardsWrapperType](_wrappers_epochrewards_.md#epochrewardswrappertype) - -## Type aliases - -### EpochRewardsWrapperType - -Ƭ **EpochRewardsWrapperType**: *[EpochRewardsWrapper](../classes/_wrappers_epochrewards_.epochrewardswrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/EpochRewards.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/EpochRewards.ts#L65)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_erc20wrapper_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_erc20wrapper_.md deleted file mode 100644 index a6374f6dc0d..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_erc20wrapper_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Erc20Wrapper"](_wrappers_erc20wrapper_.md) - -# Module: "wrappers/Erc20Wrapper" - -## Index - -### Classes - -* [Erc20Wrapper](../classes/_wrappers_erc20wrapper_.erc20wrapper.md) - -### Type aliases - -* [Erc20WrapperType](_wrappers_erc20wrapper_.md#erc20wrappertype) - -## Type aliases - -### Erc20WrapperType - -Ƭ **Erc20WrapperType**: *[Erc20Wrapper](../classes/_wrappers_erc20wrapper_.erc20wrapper.md)‹T›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts#L63)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_escrow_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_escrow_.md deleted file mode 100644 index 65539439952..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_escrow_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Escrow"](_wrappers_escrow_.md) - -# Module: "wrappers/Escrow" - -## Index - -### Classes - -* [EscrowWrapper](../classes/_wrappers_escrow_.escrowwrapper.md) - -### Type aliases - -* [EscrowWrapperType](_wrappers_escrow_.md#escrowwrappertype) - -## Type aliases - -### EscrowWrapperType - -Ƭ **EscrowWrapperType**: *[EscrowWrapper](../classes/_wrappers_escrow_.escrowwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Escrow.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Escrow.ts#L25)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_exchange_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_exchange_.md deleted file mode 100644 index 8451ec2aca3..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_exchange_.md +++ /dev/null @@ -1,25 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Exchange"](_wrappers_exchange_.md) - -# Module: "wrappers/Exchange" - -## Index - -### Classes - -* [ExchangeWrapper](../classes/_wrappers_exchange_.exchangewrapper.md) - -### Interfaces - -* [ExchangeConfig](../interfaces/_wrappers_exchange_.exchangeconfig.md) - -### Type aliases - -* [ExchangeWrapperType](_wrappers_exchange_.md#exchangewrappertype) - -## Type aliases - -### ExchangeWrapperType - -Ƭ **ExchangeWrapperType**: *[ExchangeWrapper](../classes/_wrappers_exchange_.exchangewrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Exchange.ts:346](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Exchange.ts#L346)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_freezer_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_freezer_.md deleted file mode 100644 index 212e8fd36b1..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_freezer_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Freezer"](_wrappers_freezer_.md) - -# Module: "wrappers/Freezer" - -## Index - -### Classes - -* [FreezerWrapper](../classes/_wrappers_freezer_.freezerwrapper.md) - -### Type aliases - -* [FreezerWrapperType](_wrappers_freezer_.md#freezerwrappertype) - -## Type aliases - -### FreezerWrapperType - -Ƭ **FreezerWrapperType**: *[FreezerWrapper](../classes/_wrappers_freezer_.freezerwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Freezer.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Freezer.ts#L10)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_gaspriceminimum_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_gaspriceminimum_.md deleted file mode 100644 index 9c8e3b18442..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_gaspriceminimum_.md +++ /dev/null @@ -1,25 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GasPriceMinimum"](_wrappers_gaspriceminimum_.md) - -# Module: "wrappers/GasPriceMinimum" - -## Index - -### Classes - -* [GasPriceMinimumWrapper](../classes/_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md) - -### Interfaces - -* [GasPriceMinimumConfig](../interfaces/_wrappers_gaspriceminimum_.gaspriceminimumconfig.md) - -### Type aliases - -* [GasPriceMinimumWrapperType](_wrappers_gaspriceminimum_.md#gaspriceminimumwrappertype) - -## Type aliases - -### GasPriceMinimumWrapperType - -Ƭ **GasPriceMinimumWrapperType**: *[GasPriceMinimumWrapper](../classes/_wrappers_gaspriceminimum_.gaspriceminimumwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts#L66)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_goldtokenwrapper_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_goldtokenwrapper_.md deleted file mode 100644 index cbda6458e0d..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_goldtokenwrapper_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GoldTokenWrapper"](_wrappers_goldtokenwrapper_.md) - -# Module: "wrappers/GoldTokenWrapper" - -## Index - -### Classes - -* [GoldTokenWrapper](../classes/_wrappers_goldtokenwrapper_.goldtokenwrapper.md) - -### Type aliases - -* [GoldTokenWrapperType](_wrappers_goldtokenwrapper_.md#goldtokenwrappertype) - -## Type aliases - -### GoldTokenWrapperType - -Ƭ **GoldTokenWrapperType**: *[GoldTokenWrapper](../classes/_wrappers_goldtokenwrapper_.goldtokenwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts#L51)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_governance_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_governance_.md deleted file mode 100644 index 4bb2a428fcd..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_governance_.md +++ /dev/null @@ -1,113 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Governance"](_wrappers_governance_.md) - -# Module: "wrappers/Governance" - -## Index - -### Enumerations - -* [ProposalStage](../enums/_wrappers_governance_.proposalstage.md) -* [VoteValue](../enums/_wrappers_governance_.votevalue.md) - -### Classes - -* [GovernanceWrapper](../classes/_wrappers_governance_.governancewrapper.md) - -### Interfaces - -* [GovernanceConfig](../interfaces/_wrappers_governance_.governanceconfig.md) -* [HotfixRecord](../interfaces/_wrappers_governance_.hotfixrecord.md) -* [ParticipationParameters](../interfaces/_wrappers_governance_.participationparameters.md) -* [ProposalMetadata](../interfaces/_wrappers_governance_.proposalmetadata.md) -* [ProposalRecord](../interfaces/_wrappers_governance_.proposalrecord.md) -* [UpvoteRecord](../interfaces/_wrappers_governance_.upvoterecord.md) -* [VoteRecord](../interfaces/_wrappers_governance_.voterecord.md) -* [Voter](../interfaces/_wrappers_governance_.voter.md) -* [Votes](../interfaces/_wrappers_governance_.votes.md) - -### Type aliases - -* [GovernanceWrapperType](_wrappers_governance_.md#governancewrappertype) -* [HotfixParams](_wrappers_governance_.md#hotfixparams) -* [Proposal](_wrappers_governance_.md#proposal) -* [ProposalParams](_wrappers_governance_.md#proposalparams) -* [ProposalTransaction](_wrappers_governance_.md#proposaltransaction) - -### Functions - -* [hotfixToParams](_wrappers_governance_.md#const-hotfixtoparams) -* [proposalToParams](_wrappers_governance_.md#const-proposaltoparams) - -## Type aliases - -### GovernanceWrapperType - -Ƭ **GovernanceWrapperType**: *[GovernanceWrapper](../classes/_wrappers_governance_.governancewrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:918](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L918)* - -___ - -### HotfixParams - -Ƭ **HotfixParams**: *Parameters‹Governance["methods"]["executeHotfix"]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:122](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L122)* - -___ - -### Proposal - -Ƭ **Proposal**: *[ProposalTransaction](_wrappers_governance_.md#proposaltransaction)[]* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L74)* - -___ - -### ProposalParams - -Ƭ **ProposalParams**: *Parameters‹Governance["methods"]["propose"]›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L72)* - -___ - -### ProposalTransaction - -Ƭ **ProposalTransaction**: *Pick‹CeloTxPending, "to" | "input" | "value"›* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:73](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L73)* - -## Functions - -### `Const` hotfixToParams - -▸ **hotfixToParams**(`proposal`: [Proposal](_wrappers_governance_.md#proposal), `salt`: Buffer): *[HotfixParams](_wrappers_governance_.md#hotfixparams)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L123)* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposal` | [Proposal](_wrappers_governance_.md#proposal) | -`salt` | Buffer | - -**Returns:** *[HotfixParams](_wrappers_governance_.md#hotfixparams)* - -___ - -### `Const` proposalToParams - -▸ **proposalToParams**(`proposal`: [Proposal](_wrappers_governance_.md#proposal), `descriptionURL`: string): *[ProposalParams](_wrappers_governance_.md#proposalparams)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Governance.ts:76](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Governance.ts#L76)* - -**Parameters:** - -Name | Type | ------- | ------ | -`proposal` | [Proposal](_wrappers_governance_.md#proposal) | -`descriptionURL` | string | - -**Returns:** *[ProposalParams](_wrappers_governance_.md#proposalparams)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_grandamento_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_grandamento_.md deleted file mode 100644 index c31a7297579..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_grandamento_.md +++ /dev/null @@ -1,32 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/GrandaMento"](_wrappers_grandamento_.md) - -# Module: "wrappers/GrandaMento" - -## Index - -### Enumerations - -* [ExchangeProposalState](../enums/_wrappers_grandamento_.exchangeproposalstate.md) - -### Classes - -* [GrandaMentoWrapper](../classes/_wrappers_grandamento_.grandamentowrapper.md) - -### Interfaces - -* [ExchangeProposal](../interfaces/_wrappers_grandamento_.exchangeproposal.md) -* [ExchangeProposalReadable](../interfaces/_wrappers_grandamento_.exchangeproposalreadable.md) -* [GrandaMentoConfig](../interfaces/_wrappers_grandamento_.grandamentoconfig.md) -* [StableTokenExchangeLimits](../interfaces/_wrappers_grandamento_.stabletokenexchangelimits.md) - -### Type aliases - -* [GrandaMentoWrapperType](_wrappers_grandamento_.md#grandamentowrappertype) - -## Type aliases - -### GrandaMentoWrapperType - -Ƭ **GrandaMentoWrapperType**: *[GrandaMentoWrapper](../classes/_wrappers_grandamento_.grandamentowrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/GrandaMento.ts:233](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/GrandaMento.ts#L233)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_lockedgold_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_lockedgold_.md deleted file mode 100644 index 249b3fa6ecc..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_lockedgold_.md +++ /dev/null @@ -1,28 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/LockedGold"](_wrappers_lockedgold_.md) - -# Module: "wrappers/LockedGold" - -## Index - -### Classes - -* [LockedGoldWrapper](../classes/_wrappers_lockedgold_.lockedgoldwrapper.md) - -### Interfaces - -* [AccountSlashed](../interfaces/_wrappers_lockedgold_.accountslashed.md) -* [LockedGoldConfig](../interfaces/_wrappers_lockedgold_.lockedgoldconfig.md) -* [PendingWithdrawal](../interfaces/_wrappers_lockedgold_.pendingwithdrawal.md) -* [VotingDetails](../interfaces/_wrappers_lockedgold_.votingdetails.md) - -### Type aliases - -* [LockedGoldWrapperType](_wrappers_lockedgold_.md#lockedgoldwrappertype) - -## Type aliases - -### LockedGoldWrapperType - -Ƭ **LockedGoldWrapperType**: *[LockedGoldWrapper](../classes/_wrappers_lockedgold_.lockedgoldwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/LockedGold.ts:319](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/LockedGold.ts#L319)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_metatransactionwallet_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_metatransactionwallet_.md deleted file mode 100644 index bca62b0e8cc..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_metatransactionwallet_.md +++ /dev/null @@ -1,117 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/MetaTransactionWallet"](_wrappers_metatransactionwallet_.md) - -# Module: "wrappers/MetaTransactionWallet" - -## Index - -### Classes - -* [MetaTransactionWalletWrapper](../classes/_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md) - -### Interfaces - -* [RawTransaction](../interfaces/_wrappers_metatransactionwallet_.rawtransaction.md) -* [TransactionObjectWithValue](../interfaces/_wrappers_metatransactionwallet_.transactionobjectwithvalue.md) - -### Type aliases - -* [MetaTransactionWalletWrapperType](_wrappers_metatransactionwallet_.md#metatransactionwalletwrappertype) -* [TransactionInput](_wrappers_metatransactionwallet_.md#transactioninput) - -### Functions - -* [buildMetaTxTypedData](_wrappers_metatransactionwallet_.md#const-buildmetatxtypeddata) -* [toRawTransaction](_wrappers_metatransactionwallet_.md#const-torawtransaction) -* [toTransactionBatch](_wrappers_metatransactionwallet_.md#const-totransactionbatch) - -## Type aliases - -### MetaTransactionWalletWrapperType - -Ƭ **MetaTransactionWalletWrapperType**: *[MetaTransactionWalletWrapper](../classes/_wrappers_metatransactionwallet_.metatransactionwalletwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:201](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L201)* - -___ - -### TransactionInput - -Ƭ **TransactionInput**: *CeloTxObject‹T› | [TransactionObjectWithValue](../interfaces/_wrappers_metatransactionwallet_.transactionobjectwithvalue.md)‹T› | [RawTransaction](../interfaces/_wrappers_metatransactionwallet_.rawtransaction.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L27)* - -## Functions - -### `Const` buildMetaTxTypedData - -▸ **buildMetaTxTypedData**(`walletAddress`: Address, `tx`: [RawTransaction](../interfaces/_wrappers_metatransactionwallet_.rawtransaction.md), `nonce`: number, `chainId`: number): *EIP712TypedData* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:257](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L257)* - -**Parameters:** - -Name | Type | ------- | ------ | -`walletAddress` | Address | -`tx` | [RawTransaction](../interfaces/_wrappers_metatransactionwallet_.rawtransaction.md) | -`nonce` | number | -`chainId` | number | - -**Returns:** *EIP712TypedData* - -___ - -### `Const` toRawTransaction - -▸ **toRawTransaction**(`tx`: [TransactionInput](_wrappers_metatransactionwallet_.md#transactioninput)‹any›): *[RawTransaction](../interfaces/_wrappers_metatransactionwallet_.rawtransaction.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:212](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L212)* - -Turns any possible way to pass in a transaction into the raw values -that are actually required. This is used both internally to normalize -ways in which transactions are passed in but also public in order -for one instance of ContractKit to serialize a meta transaction to -send over the wire and be consumed somewhere else. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tx` | [TransactionInput](_wrappers_metatransactionwallet_.md#transactioninput)‹any› | TransactionInput union of all the ways we expect transactions | - -**Returns:** *[RawTransaction](../interfaces/_wrappers_metatransactionwallet_.rawtransaction.md)* - -a RawTransactions that's serializable - -___ - -### `Const` toTransactionBatch - -▸ **toTransactionBatch**(`txs`: Array‹[TransactionInput](_wrappers_metatransactionwallet_.md#transactioninput)‹any››): *object* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts:240](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts#L240)* - -Turns an array of transaction inputs into the argument that -need to be passed to the executeTransactions call. -Main transformation is that all the `data` parts of each -transaction in the batch are concatenated and an array -of lengths is constructed. -This is a gas optimisation on the contract. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`txs` | Array‹[TransactionInput](_wrappers_metatransactionwallet_.md#transactioninput)‹any›› | Array> array of txs | - -**Returns:** *object* - -Params for the executeTransactions method call - -* **callData**: *string* - -* **callDataLengths**: *number[]* - -* **destinations**: *string[]* - -* **values**: *string[]* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_metatransactionwalletdeployer_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_metatransactionwalletdeployer_.md deleted file mode 100644 index b8340fc5d5b..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_metatransactionwalletdeployer_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/MetaTransactionWalletDeployer"](_wrappers_metatransactionwalletdeployer_.md) - -# Module: "wrappers/MetaTransactionWalletDeployer" - -## Index - -### Classes - -* [MetaTransactionWalletDeployerWrapper](../classes/_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md) - -### Type aliases - -* [MetaTransactionWalletDeployerWrapperType](_wrappers_metatransactionwalletdeployer_.md#metatransactionwalletdeployerwrappertype) - -## Type aliases - -### MetaTransactionWalletDeployerWrapperType - -Ƭ **MetaTransactionWalletDeployerWrapperType**: *[MetaTransactionWalletDeployerWrapper](../classes/_wrappers_metatransactionwalletdeployer_.metatransactionwalletdeployerwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.ts#L8)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_multisig_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_multisig_.md deleted file mode 100644 index 3cf5ded61c2..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_multisig_.md +++ /dev/null @@ -1,25 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/MultiSig"](_wrappers_multisig_.md) - -# Module: "wrappers/MultiSig" - -## Index - -### Classes - -* [MultiSigWrapper](../classes/_wrappers_multisig_.multisigwrapper.md) - -### Interfaces - -* [TransactionData](../interfaces/_wrappers_multisig_.transactiondata.md) - -### Type aliases - -* [MultiSigWrapperType](_wrappers_multisig_.md#multisigwrappertype) - -## Type aliases - -### MultiSigWrapperType - -Ƭ **MultiSigWrapperType**: *[MultiSigWrapper](../classes/_wrappers_multisig_.multisigwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/MultiSig.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/MultiSig.ts#L123)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_releasegold_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_releasegold_.md deleted file mode 100644 index f919d1515ab..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_releasegold_.md +++ /dev/null @@ -1,14 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/ReleaseGold"](_wrappers_releasegold_.md) - -# Module: "wrappers/ReleaseGold" - -## Index - -### Classes - -* [ReleaseGoldWrapper](../classes/_wrappers_releasegold_.releasegoldwrapper.md) - -### Interfaces - -* [BalanceState](../interfaces/_wrappers_releasegold_.balancestate.md) -* [ReleaseGoldInfo](../interfaces/_wrappers_releasegold_.releasegoldinfo.md) diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_reserve_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_reserve_.md deleted file mode 100644 index beb955bb399..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_reserve_.md +++ /dev/null @@ -1,25 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Reserve"](_wrappers_reserve_.md) - -# Module: "wrappers/Reserve" - -## Index - -### Classes - -* [ReserveWrapper](../classes/_wrappers_reserve_.reservewrapper.md) - -### Interfaces - -* [ReserveConfig](../interfaces/_wrappers_reserve_.reserveconfig.md) - -### Type aliases - -* [ReserveWrapperType](_wrappers_reserve_.md#reservewrappertype) - -## Type aliases - -### ReserveWrapperType - -Ƭ **ReserveWrapperType**: *[ReserveWrapper](../classes/_wrappers_reserve_.reservewrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Reserve.ts:149](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Reserve.ts#L149)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_sortedoracles_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_sortedoracles_.md deleted file mode 100644 index fc5c083222a..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_sortedoracles_.md +++ /dev/null @@ -1,42 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/SortedOracles"](_wrappers_sortedoracles_.md) - -# Module: "wrappers/SortedOracles" - -## Index - -### Enumerations - -* [MedianRelation](../enums/_wrappers_sortedoracles_.medianrelation.md) - -### Classes - -* [SortedOraclesWrapper](../classes/_wrappers_sortedoracles_.sortedoracleswrapper.md) - -### Interfaces - -* [MedianRate](../interfaces/_wrappers_sortedoracles_.medianrate.md) -* [OracleRate](../interfaces/_wrappers_sortedoracles_.oraclerate.md) -* [OracleReport](../interfaces/_wrappers_sortedoracles_.oraclereport.md) -* [OracleTimestamp](../interfaces/_wrappers_sortedoracles_.oracletimestamp.md) -* [SortedOraclesConfig](../interfaces/_wrappers_sortedoracles_.sortedoraclesconfig.md) - -### Type aliases - -* [ReportTarget](_wrappers_sortedoracles_.md#reporttarget) -* [SortedOraclesWrapperType](_wrappers_sortedoracles_.md#sortedoracleswrappertype) - -## Type aliases - -### ReportTarget - -Ƭ **ReportTarget**: *[StableTokenContract](_base_.md#stabletokencontract) | Address* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L52)* - -___ - -### SortedOraclesWrapperType - -Ƭ **SortedOraclesWrapperType**: *[SortedOraclesWrapper](../classes/_wrappers_sortedoracles_.sortedoracleswrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/SortedOracles.ts:317](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/SortedOracles.ts#L317)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_stabletokenwrapper_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_stabletokenwrapper_.md deleted file mode 100644 index 06daa4545aa..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_stabletokenwrapper_.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/StableTokenWrapper"](_wrappers_stabletokenwrapper_.md) - -# Module: "wrappers/StableTokenWrapper" - -## Index - -### Classes - -* [StableTokenWrapper](../classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md) - -### Interfaces - -* [InflationParameters](../interfaces/_wrappers_stabletokenwrapper_.inflationparameters.md) -* [StableTokenConfig](../interfaces/_wrappers_stabletokenwrapper_.stabletokenconfig.md) - -### Type aliases - -* [StableTokenWrapperType](_wrappers_stabletokenwrapper_.md#stabletokenwrappertype) - -## Type aliases - -### StableTokenWrapperType - -Ƭ **StableTokenWrapperType**: *[StableTokenWrapper](../classes/_wrappers_stabletokenwrapper_.stabletokenwrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts:139](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts#L139)* diff --git a/packages/docs/sdk/docs/contractkit/modules/_wrappers_validators_.md b/packages/docs/sdk/docs/contractkit/modules/_wrappers_validators_.md deleted file mode 100644 index ea0d15de7b8..00000000000 --- a/packages/docs/sdk/docs/contractkit/modules/_wrappers_validators_.md +++ /dev/null @@ -1,31 +0,0 @@ -[@celo/contractkit](../README.md) › [Globals](../globals.md) › ["wrappers/Validators"](_wrappers_validators_.md) - -# Module: "wrappers/Validators" - -## Index - -### Classes - -* [ValidatorsWrapper](../classes/_wrappers_validators_.validatorswrapper.md) - -### Interfaces - -* [GroupMembership](../interfaces/_wrappers_validators_.groupmembership.md) -* [LockedGoldRequirements](../interfaces/_wrappers_validators_.lockedgoldrequirements.md) -* [MembershipHistoryExtraData](../interfaces/_wrappers_validators_.membershiphistoryextradata.md) -* [Validator](../interfaces/_wrappers_validators_.validator.md) -* [ValidatorGroup](../interfaces/_wrappers_validators_.validatorgroup.md) -* [ValidatorReward](../interfaces/_wrappers_validators_.validatorreward.md) -* [ValidatorsConfig](../interfaces/_wrappers_validators_.validatorsconfig.md) - -### Type aliases - -* [ValidatorsWrapperType](_wrappers_validators_.md#validatorswrappertype) - -## Type aliases - -### ValidatorsWrapperType - -Ƭ **ValidatorsWrapperType**: *[ValidatorsWrapper](../classes/_wrappers_validators_.validatorswrapper.md)* - -*Defined in [packages/sdk/contractkit/src/wrappers/Validators.ts:680](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/contractkit/src/wrappers/Validators.ts#L680)* diff --git a/packages/docs/sdk/docs/cryptographic-utils/README.md b/packages/docs/sdk/docs/cryptographic-utils/README.md deleted file mode 100644 index 44a415af39e..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/README.md +++ /dev/null @@ -1,11 +0,0 @@ -[@celo/cryptographic-utils](README.md) › [Globals](globals.md) - -# @celo/cryptographic-utils - -# @celo/cryptographic-utils - -Here you can find cryptographic functions for - -* Celo mnemonics -* BLS -* encrypting/decrypting messages sent in transfers like Valora does diff --git a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_f2_.f2.md b/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_f2_.f2.md deleted file mode 100644 index b3bf83aa65b..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_f2_.f2.md +++ /dev/null @@ -1,225 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/f2"](../modules/_node_modules_bls12377js_src_f2_.md) › [F2](_node_modules_bls12377js_src_f2_.f2.md) - -# Class: F2 - -## Hierarchy - -* **F2** - -## Implements - -* [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)‹[F2](_node_modules_bls12377js_src_f2_.f2.md)› - -## Index - -### Methods - -* [add](_node_modules_bls12377js_src_f2_.f2.md#add) -* [clone](_node_modules_bls12377js_src_f2_.f2.md#clone) -* [equals](_node_modules_bls12377js_src_f2_.f2.md#equals) -* [inverse](_node_modules_bls12377js_src_f2_.f2.md#inverse) -* [multiply](_node_modules_bls12377js_src_f2_.f2.md#multiply) -* [negate](_node_modules_bls12377js_src_f2_.f2.md#negate) -* [power](_node_modules_bls12377js_src_f2_.f2.md#power) -* [sqrt](_node_modules_bls12377js_src_f2_.f2.md#sqrt) -* [subtract](_node_modules_bls12377js_src_f2_.f2.md#subtract) -* [toFs](_node_modules_bls12377js_src_f2_.f2.md#tofs) -* [toString](_node_modules_bls12377js_src_f2_.f2.md#tostring) -* [fromElements](_node_modules_bls12377js_src_f2_.f2.md#static-fromelements) -* [one](_node_modules_bls12377js_src_f2_.f2.md#static-one) -* [zero](_node_modules_bls12377js_src_f2_.f2.md#static-zero) - -## Methods - -### add - -▸ **add**(`b`: [F2](_node_modules_bls12377js_src_f2_.f2.md)): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -Defined in node_modules/bls12377js/src/f2.ts:25 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | [F2](_node_modules_bls12377js_src_f2_.f2.md) | - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### clone - -▸ **clone**(): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f2.ts:110 - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### equals - -▸ **equals**(`b`: [F2](_node_modules_bls12377js_src_f2_.f2.md)): *boolean* - -Defined in node_modules/bls12377js/src/f2.ts:21 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | [F2](_node_modules_bls12377js_src_f2_.f2.md) | - -**Returns:** *boolean* - -___ - -### inverse - -▸ **inverse**(): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f2.ts:117 - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### multiply - -▸ **multiply**(`b`: [F2](_node_modules_bls12377js_src_f2_.f2.md)): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -Defined in node_modules/bls12377js/src/f2.ts:61 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | [F2](_node_modules_bls12377js_src_f2_.f2.md) | - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### negate - -▸ **negate**(): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f2.ts:121 - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### power - -▸ **power**(`e`: BigInteger): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f2.ts:39 - -**Parameters:** - -Name | Type | ------- | ------ | -`e` | BigInteger | - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### sqrt - -▸ **sqrt**(): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f2.ts:68 - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### subtract - -▸ **subtract**(`b`: [F2](_node_modules_bls12377js_src_f2_.f2.md)): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -Defined in node_modules/bls12377js/src/f2.ts:32 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | [F2](_node_modules_bls12377js_src_f2_.f2.md) | - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### toFs - -▸ **toFs**(): *[F](_node_modules_bls12377js_src_f_.f.md)[]* - -Defined in node_modules/bls12377js/src/f2.ts:128 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)[]* - -___ - -### toString - -▸ **toString**(`base?`: undefined | number): *string* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f2.ts:132 - -**Parameters:** - -Name | Type | ------- | ------ | -`base?` | undefined | number | - -**Returns:** *string* - -___ - -### `Static` fromElements - -▸ **fromElements**(`c0`: [F](_node_modules_bls12377js_src_f_.f.md), `c1`: [F](_node_modules_bls12377js_src_f_.f.md)): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -Defined in node_modules/bls12377js/src/f2.ts:13 - -**Parameters:** - -Name | Type | ------- | ------ | -`c0` | [F](_node_modules_bls12377js_src_f_.f.md) | -`c1` | [F](_node_modules_bls12377js_src_f_.f.md) | - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### `Static` one - -▸ **one**(): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -Defined in node_modules/bls12377js/src/f2.ts:96 - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### `Static` zero - -▸ **zero**(): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -Defined in node_modules/bls12377js/src/f2.ts:103 - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* diff --git a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_f_.f.md b/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_f_.f.md deleted file mode 100644 index f03ba03faff..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_f_.f.md +++ /dev/null @@ -1,242 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/f"](../modules/_node_modules_bls12377js_src_f_.md) › [F](_node_modules_bls12377js_src_f_.f.md) - -# Class: F - -## Hierarchy - -* **F** - -## Implements - -* [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)‹[F](_node_modules_bls12377js_src_f_.f.md)› - -## Index - -### Methods - -* [add](_node_modules_bls12377js_src_f_.f.md#add) -* [clone](_node_modules_bls12377js_src_f_.f.md#clone) -* [equals](_node_modules_bls12377js_src_f_.f.md#equals) -* [inverse](_node_modules_bls12377js_src_f_.f.md#inverse) -* [multiply](_node_modules_bls12377js_src_f_.f.md#multiply) -* [negate](_node_modules_bls12377js_src_f_.f.md#negate) -* [power](_node_modules_bls12377js_src_f_.f.md#power) -* [sqrt](_node_modules_bls12377js_src_f_.f.md#sqrt) -* [subtract](_node_modules_bls12377js_src_f_.f.md#subtract) -* [toBig](_node_modules_bls12377js_src_f_.f.md#tobig) -* [toString](_node_modules_bls12377js_src_f_.f.md#tostring) -* [fromBig](_node_modules_bls12377js_src_f_.f.md#static-frombig) -* [fromString](_node_modules_bls12377js_src_f_.f.md#static-fromstring) -* [one](_node_modules_bls12377js_src_f_.f.md#static-one) -* [zero](_node_modules_bls12377js_src_f_.f.md#static-zero) - -## Methods - -### add - -▸ **add**(`b`: [F](_node_modules_bls12377js_src_f_.f.md)): *[F](_node_modules_bls12377js_src_f_.f.md)* - -Defined in node_modules/bls12377js/src/f.ts:34 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | [F](_node_modules_bls12377js_src_f_.f.md) | - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### clone - -▸ **clone**(): *[F](_node_modules_bls12377js_src_f_.f.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f.ts:128 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### equals - -▸ **equals**(`b`: [F](_node_modules_bls12377js_src_f_.f.md)): *boolean* - -Defined in node_modules/bls12377js/src/f.ts:30 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | [F](_node_modules_bls12377js_src_f_.f.md) | - -**Returns:** *boolean* - -___ - -### inverse - -▸ **inverse**(): *[F](_node_modules_bls12377js_src_f_.f.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f.ts:112 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### multiply - -▸ **multiply**(`b`: [F](_node_modules_bls12377js_src_f_.f.md)): *[F](_node_modules_bls12377js_src_f_.f.md)* - -Defined in node_modules/bls12377js/src/f.ts:42 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | [F](_node_modules_bls12377js_src_f_.f.md) | - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### negate - -▸ **negate**(): *[F](_node_modules_bls12377js_src_f_.f.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f.ts:116 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### power - -▸ **power**(`e`: BigInteger): *[F](_node_modules_bls12377js_src_f_.f.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f.ts:46 - -**Parameters:** - -Name | Type | ------- | ------ | -`e` | BigInteger | - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### sqrt - -▸ **sqrt**(): *[F](_node_modules_bls12377js_src_f_.f.md)* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f.ts:65 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### subtract - -▸ **subtract**(`b`: [F](_node_modules_bls12377js_src_f_.f.md)): *[F](_node_modules_bls12377js_src_f_.f.md)* - -Defined in node_modules/bls12377js/src/f.ts:38 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | [F](_node_modules_bls12377js_src_f_.f.md) | - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### toBig - -▸ **toBig**(): *BigInteger* - -Defined in node_modules/bls12377js/src/f.ts:61 - -**Returns:** *BigInteger* - -___ - -### toString - -▸ **toString**(`base?`: undefined | number): *string* - -*Implementation of [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)* - -Defined in node_modules/bls12377js/src/f.ts:132 - -**Parameters:** - -Name | Type | ------- | ------ | -`base?` | undefined | number | - -**Returns:** *string* - -___ - -### `Static` fromBig - -▸ **fromBig**(`num`: BigInteger): *[F](_node_modules_bls12377js_src_f_.f.md)* - -Defined in node_modules/bls12377js/src/f.ts:20 - -**Parameters:** - -Name | Type | ------- | ------ | -`num` | BigInteger | - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### `Static` fromString - -▸ **fromString**(`num`: string, `base?`: undefined | number): *[F](_node_modules_bls12377js_src_f_.f.md)* - -Defined in node_modules/bls12377js/src/f.ts:10 - -**Parameters:** - -Name | Type | ------- | ------ | -`num` | string | -`base?` | undefined | number | - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### `Static` one - -▸ **one**(): *[F](_node_modules_bls12377js_src_f_.f.md)* - -Defined in node_modules/bls12377js/src/f.ts:120 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### `Static` zero - -▸ **zero**(): *[F](_node_modules_bls12377js_src_f_.f.md)* - -Defined in node_modules/bls12377js/src/f.ts:124 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* diff --git a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_g1_.g1.md b/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_g1_.g1.md deleted file mode 100644 index 16149598c92..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_g1_.g1.md +++ /dev/null @@ -1,182 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/g1"](../modules/_node_modules_bls12377js_src_g1_.md) › [G1](_node_modules_bls12377js_src_g1_.g1.md) - -# Class: G1 - -## Hierarchy - -* **G1** - -## Implements - -* [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)‹[F](_node_modules_bls12377js_src_f_.f.md), [G1](_node_modules_bls12377js_src_g1_.g1.md)› - -## Index - -### Methods - -* [add](_node_modules_bls12377js_src_g1_.g1.md#add) -* [dbl](_node_modules_bls12377js_src_g1_.g1.md#dbl) -* [equals](_node_modules_bls12377js_src_g1_.g1.md#equals) -* [negate](_node_modules_bls12377js_src_g1_.g1.md#negate) -* [scalarMult](_node_modules_bls12377js_src_g1_.g1.md#scalarmult) -* [toAffine](_node_modules_bls12377js_src_g1_.g1.md#toaffine) -* [toString](_node_modules_bls12377js_src_g1_.g1.md#tostring) -* [x](_node_modules_bls12377js_src_g1_.g1.md#x) -* [y](_node_modules_bls12377js_src_g1_.g1.md#y) -* [z](_node_modules_bls12377js_src_g1_.g1.md#z) -* [fromElements](_node_modules_bls12377js_src_g1_.g1.md#static-fromelements) - -## Methods - -### add - -▸ **add**(`p2`: [G1](_node_modules_bls12377js_src_g1_.g1.md)): *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -Defined in node_modules/bls12377js/src/g1.ts:22 - -**Parameters:** - -Name | Type | ------- | ------ | -`p2` | [G1](_node_modules_bls12377js_src_g1_.g1.md) | - -**Returns:** *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -___ - -### dbl - -▸ **dbl**(): *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g1.ts:29 - -**Returns:** *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -___ - -### equals - -▸ **equals**(`p2`: [G1](_node_modules_bls12377js_src_g1_.g1.md)): *boolean* - -Defined in node_modules/bls12377js/src/g1.ts:44 - -**Parameters:** - -Name | Type | ------- | ------ | -`p2` | [G1](_node_modules_bls12377js_src_g1_.g1.md) | - -**Returns:** *boolean* - -___ - -### negate - -▸ **negate**(): *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -Defined in node_modules/bls12377js/src/g1.ts:48 - -**Returns:** *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -___ - -### scalarMult - -▸ **scalarMult**(`s`: BigInteger): *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g1.ts:36 - -**Parameters:** - -Name | Type | ------- | ------ | -`s` | BigInteger | - -**Returns:** *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -___ - -### toAffine - -▸ **toAffine**(): *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g1.ts:56 - -**Returns:** *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -___ - -### toString - -▸ **toString**(`base?`: undefined | number): *string* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g1.ts:74 - -**Parameters:** - -Name | Type | ------- | ------ | -`base?` | undefined | number | - -**Returns:** *string* - -___ - -### x - -▸ **x**(): *[F](_node_modules_bls12377js_src_f_.f.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g1.ts:62 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### y - -▸ **y**(): *[F](_node_modules_bls12377js_src_f_.f.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g1.ts:66 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### z - -▸ **z**(): *[F](_node_modules_bls12377js_src_f_.f.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g1.ts:70 - -**Returns:** *[F](_node_modules_bls12377js_src_f_.f.md)* - -___ - -### `Static` fromElements - -▸ **fromElements**(`x`: [F](_node_modules_bls12377js_src_f_.f.md), `y`: [F](_node_modules_bls12377js_src_f_.f.md)): *[G1](_node_modules_bls12377js_src_g1_.g1.md)* - -Defined in node_modules/bls12377js/src/g1.ts:16 - -**Parameters:** - -Name | Type | ------- | ------ | -`x` | [F](_node_modules_bls12377js_src_f_.f.md) | -`y` | [F](_node_modules_bls12377js_src_f_.f.md) | - -**Returns:** *[G1](_node_modules_bls12377js_src_g1_.g1.md)* diff --git a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_g2_.g2.md b/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_g2_.g2.md deleted file mode 100644 index 87a43eb6070..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_g2_.g2.md +++ /dev/null @@ -1,182 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/g2"](../modules/_node_modules_bls12377js_src_g2_.md) › [G2](_node_modules_bls12377js_src_g2_.g2.md) - -# Class: G2 - -## Hierarchy - -* **G2** - -## Implements - -* [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)‹[F2](_node_modules_bls12377js_src_f2_.f2.md), [G2](_node_modules_bls12377js_src_g2_.g2.md)› - -## Index - -### Methods - -* [add](_node_modules_bls12377js_src_g2_.g2.md#add) -* [dbl](_node_modules_bls12377js_src_g2_.g2.md#dbl) -* [equals](_node_modules_bls12377js_src_g2_.g2.md#equals) -* [negate](_node_modules_bls12377js_src_g2_.g2.md#negate) -* [scalarMult](_node_modules_bls12377js_src_g2_.g2.md#scalarmult) -* [toAffine](_node_modules_bls12377js_src_g2_.g2.md#toaffine) -* [toString](_node_modules_bls12377js_src_g2_.g2.md#tostring) -* [x](_node_modules_bls12377js_src_g2_.g2.md#x) -* [y](_node_modules_bls12377js_src_g2_.g2.md#y) -* [z](_node_modules_bls12377js_src_g2_.g2.md#z) -* [fromElements](_node_modules_bls12377js_src_g2_.g2.md#static-fromelements) - -## Methods - -### add - -▸ **add**(`p2`: [G2](_node_modules_bls12377js_src_g2_.g2.md)): *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -Defined in node_modules/bls12377js/src/g2.ts:26 - -**Parameters:** - -Name | Type | ------- | ------ | -`p2` | [G2](_node_modules_bls12377js_src_g2_.g2.md) | - -**Returns:** *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -___ - -### dbl - -▸ **dbl**(): *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g2.ts:33 - -**Returns:** *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -___ - -### equals - -▸ **equals**(`p2`: [G2](_node_modules_bls12377js_src_g2_.g2.md)): *boolean* - -Defined in node_modules/bls12377js/src/g2.ts:56 - -**Parameters:** - -Name | Type | ------- | ------ | -`p2` | [G2](_node_modules_bls12377js_src_g2_.g2.md) | - -**Returns:** *boolean* - -___ - -### negate - -▸ **negate**(): *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -Defined in node_modules/bls12377js/src/g2.ts:48 - -**Returns:** *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -___ - -### scalarMult - -▸ **scalarMult**(`s`: BigInteger): *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g2.ts:40 - -**Parameters:** - -Name | Type | ------- | ------ | -`s` | BigInteger | - -**Returns:** *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -___ - -### toAffine - -▸ **toAffine**(): *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g2.ts:60 - -**Returns:** *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -___ - -### toString - -▸ **toString**(`base?`: undefined | number): *string* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g2.ts:78 - -**Parameters:** - -Name | Type | ------- | ------ | -`base?` | undefined | number | - -**Returns:** *string* - -___ - -### x - -▸ **x**(): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g2.ts:66 - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### y - -▸ **y**(): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g2.ts:70 - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### z - -▸ **z**(): *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -*Implementation of [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md)* - -Defined in node_modules/bls12377js/src/g2.ts:74 - -**Returns:** *[F2](_node_modules_bls12377js_src_f2_.f2.md)* - -___ - -### `Static` fromElements - -▸ **fromElements**(`x`: [F2](_node_modules_bls12377js_src_f2_.f2.md), `y`: [F2](_node_modules_bls12377js_src_f2_.f2.md)): *[G2](_node_modules_bls12377js_src_g2_.g2.md)* - -Defined in node_modules/bls12377js/src/g2.ts:20 - -**Parameters:** - -Name | Type | ------- | ------ | -`x` | [F2](_node_modules_bls12377js_src_f2_.f2.md) | -`y` | [F2](_node_modules_bls12377js_src_f2_.f2.md) | - -**Returns:** *[G2](_node_modules_bls12377js_src_g2_.g2.md)* diff --git a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_group_.group.md b/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_group_.group.md deleted file mode 100644 index 2d11993fff7..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/classes/_node_modules_bls12377js_src_group_.group.md +++ /dev/null @@ -1,226 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/group"](../modules/_node_modules_bls12377js_src_group_.md) › [Group](_node_modules_bls12377js_src_group_.group.md) - -# Class: Group <**T**> - -## Type parameters - -▪ **T**: *[FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)‹T›* - -## Hierarchy - -* **Group** - -## Index - -### Methods - -* [_add](_node_modules_bls12377js_src_group_.group.md#_add) -* [_double](_node_modules_bls12377js_src_group_.group.md#_double) -* [_scalarMult](_node_modules_bls12377js_src_group_.group.md#_scalarmult) -* [clone](_node_modules_bls12377js_src_group_.group.md#clone) -* [equals](_node_modules_bls12377js_src_group_.group.md#equals) -* [equalsProjective](_node_modules_bls12377js_src_group_.group.md#equalsprojective) -* [isInfinity](_node_modules_bls12377js_src_group_.group.md#isinfinity) -* [toAffine](_node_modules_bls12377js_src_group_.group.md#toaffine) -* [toString](_node_modules_bls12377js_src_group_.group.md#tostring) -* [x](_node_modules_bls12377js_src_group_.group.md#x) -* [y](_node_modules_bls12377js_src_group_.group.md#y) -* [z](_node_modules_bls12377js_src_group_.group.md#z) -* [fromElements](_node_modules_bls12377js_src_group_.group.md#static-fromelements) - -## Methods - -### _add - -▸ **_add**(`b`: T, `zero`: T, `one`: T, `p2`: [Group](_node_modules_bls12377js_src_group_.group.md)‹T›): *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -Defined in node_modules/bls12377js/src/group.ts:40 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | T | -`zero` | T | -`one` | T | -`p2` | [Group](_node_modules_bls12377js_src_group_.group.md)‹T› | - -**Returns:** *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -___ - -### _double - -▸ **_double**(`_`: T, `zero`: T, `one`: T): *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -Defined in node_modules/bls12377js/src/group.ts:70 - -**Parameters:** - -Name | Type | ------- | ------ | -`_` | T | -`zero` | T | -`one` | T | - -**Returns:** *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -___ - -### _scalarMult - -▸ **_scalarMult**(`b`: T, `infinity`: [Group](_node_modules_bls12377js_src_group_.group.md)‹T›, `zero`: T, `one`: T, `s`: BigInteger): *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -Defined in node_modules/bls12377js/src/group.ts:97 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | T | -`infinity` | [Group](_node_modules_bls12377js_src_group_.group.md)‹T› | -`zero` | T | -`one` | T | -`s` | BigInteger | - -**Returns:** *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -___ - -### clone - -▸ **clone**(): *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -Defined in node_modules/bls12377js/src/group.ts:141 - -**Returns:** *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -___ - -### equals - -▸ **equals**(`p2`: [Group](_node_modules_bls12377js_src_group_.group.md)‹T›): *boolean* - -Defined in node_modules/bls12377js/src/group.ts:128 - -**Parameters:** - -Name | Type | ------- | ------ | -`p2` | [Group](_node_modules_bls12377js_src_group_.group.md)‹T› | - -**Returns:** *boolean* - -___ - -### equalsProjective - -▸ **equalsProjective**(`p2`: [Group](_node_modules_bls12377js_src_group_.group.md)‹T›): *boolean* - -Defined in node_modules/bls12377js/src/group.ts:133 - -**Parameters:** - -Name | Type | ------- | ------ | -`p2` | [Group](_node_modules_bls12377js_src_group_.group.md)‹T› | - -**Returns:** *boolean* - -___ - -### isInfinity - -▸ **isInfinity**(`zero`: T, `one`: T): *boolean* - -Defined in node_modules/bls12377js/src/group.ts:137 - -**Parameters:** - -Name | Type | ------- | ------ | -`zero` | T | -`one` | T | - -**Returns:** *boolean* - -___ - -### toAffine - -▸ **toAffine**(): *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -Defined in node_modules/bls12377js/src/group.ts:118 - -**Returns:** *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -___ - -### toString - -▸ **toString**(`base?`: undefined | number): *string* - -Defined in node_modules/bls12377js/src/group.ts:150 - -**Parameters:** - -Name | Type | ------- | ------ | -`base?` | undefined | number | - -**Returns:** *string* - -___ - -### x - -▸ **x**(): *T* - -Defined in node_modules/bls12377js/src/group.ts:28 - -**Returns:** *T* - -___ - -### y - -▸ **y**(): *T* - -Defined in node_modules/bls12377js/src/group.ts:32 - -**Returns:** *T* - -___ - -### z - -▸ **z**(): *T* - -Defined in node_modules/bls12377js/src/group.ts:36 - -**Returns:** *T* - -___ - -### `Static` fromElements - -▸ **fromElements**<**T**>(`b`: T, `zero`: T, `one`: T, `x`: T, `y`: T, `z`: T): *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* - -Defined in node_modules/bls12377js/src/group.ts:14 - -**Type parameters:** - -▪ **T**: *[FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md)‹T›* - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | T | -`zero` | T | -`one` | T | -`x` | T | -`y` | T | -`z` | T | - -**Returns:** *[Group](_node_modules_bls12377js_src_group_.group.md)‹T›* diff --git a/packages/docs/sdk/docs/cryptographic-utils/globals.md b/packages/docs/sdk/docs/cryptographic-utils/globals.md deleted file mode 100644 index 953c63aafa1..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/globals.md +++ /dev/null @@ -1,19 +0,0 @@ -[@celo/cryptographic-utils](README.md) › [Globals](globals.md) - -# @celo/cryptographic-utils - -## Index - -### Modules - -* ["node_modules/bls12377js/src/bls"](modules/_node_modules_bls12377js_src_bls_.md) -* ["node_modules/bls12377js/src/defs"](modules/_node_modules_bls12377js_src_defs_.md) -* ["node_modules/bls12377js/src/f"](modules/_node_modules_bls12377js_src_f_.md) -* ["node_modules/bls12377js/src/f2"](modules/_node_modules_bls12377js_src_f2_.md) -* ["node_modules/bls12377js/src/g1"](modules/_node_modules_bls12377js_src_g1_.md) -* ["node_modules/bls12377js/src/g2"](modules/_node_modules_bls12377js_src_g2_.md) -* ["node_modules/bls12377js/src/group"](modules/_node_modules_bls12377js_src_group_.md) -* ["packages/sdk/cryptographic-utils/src/account"](modules/_packages_sdk_cryptographic_utils_src_account_.md) -* ["packages/sdk/cryptographic-utils/src/bls"](modules/_packages_sdk_cryptographic_utils_src_bls_.md) -* ["packages/sdk/cryptographic-utils/src/commentEncryption"](modules/_packages_sdk_cryptographic_utils_src_commentencryption_.md) -* ["packages/sdk/cryptographic-utils/src/dataEncryptionKey"](modules/_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md) diff --git a/packages/docs/sdk/docs/cryptographic-utils/interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md b/packages/docs/sdk/docs/cryptographic-utils/interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md deleted file mode 100644 index ede00fb4f3c..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md +++ /dev/null @@ -1,167 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/defs"](../modules/_node_modules_bls12377js_src_defs_.md) › [FieldSpec](_node_modules_bls12377js_src_defs_.fieldspec.md) - -# Interface: FieldSpec <**T**> - -## Type parameters - -▪ **T** - -## Hierarchy - -* **FieldSpec** - -## Implemented by - -* [F](../classes/_node_modules_bls12377js_src_f_.f.md) -* [F2](../classes/_node_modules_bls12377js_src_f2_.f2.md) - -## Index - -### Methods - -* [add](_node_modules_bls12377js_src_defs_.fieldspec.md#add) -* [clone](_node_modules_bls12377js_src_defs_.fieldspec.md#clone) -* [equals](_node_modules_bls12377js_src_defs_.fieldspec.md#equals) -* [inverse](_node_modules_bls12377js_src_defs_.fieldspec.md#inverse) -* [multiply](_node_modules_bls12377js_src_defs_.fieldspec.md#multiply) -* [negate](_node_modules_bls12377js_src_defs_.fieldspec.md#negate) -* [power](_node_modules_bls12377js_src_defs_.fieldspec.md#power) -* [sqrt](_node_modules_bls12377js_src_defs_.fieldspec.md#sqrt) -* [subtract](_node_modules_bls12377js_src_defs_.fieldspec.md#subtract) -* [toString](_node_modules_bls12377js_src_defs_.fieldspec.md#tostring) - -## Methods - -### add - -▸ **add**(`b`: T): *T* - -Defined in node_modules/bls12377js/src/defs.ts:37 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | T | - -**Returns:** *T* - -___ - -### clone - -▸ **clone**(): *T* - -Defined in node_modules/bls12377js/src/defs.ts:44 - -**Returns:** *T* - -___ - -### equals - -▸ **equals**(`b`: T): *boolean* - -Defined in node_modules/bls12377js/src/defs.ts:36 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | T | - -**Returns:** *boolean* - -___ - -### inverse - -▸ **inverse**(): *T* - -Defined in node_modules/bls12377js/src/defs.ts:42 - -**Returns:** *T* - -___ - -### multiply - -▸ **multiply**(`b`: T): *T* - -Defined in node_modules/bls12377js/src/defs.ts:39 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | T | - -**Returns:** *T* - -___ - -### negate - -▸ **negate**(): *T* - -Defined in node_modules/bls12377js/src/defs.ts:43 - -**Returns:** *T* - -___ - -### power - -▸ **power**(`e`: BigInteger): *T* - -Defined in node_modules/bls12377js/src/defs.ts:40 - -**Parameters:** - -Name | Type | ------- | ------ | -`e` | BigInteger | - -**Returns:** *T* - -___ - -### sqrt - -▸ **sqrt**(): *T* - -Defined in node_modules/bls12377js/src/defs.ts:41 - -**Returns:** *T* - -___ - -### subtract - -▸ **subtract**(`b`: T): *T* - -Defined in node_modules/bls12377js/src/defs.ts:38 - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | T | - -**Returns:** *T* - -___ - -### toString - -▸ **toString**(`base?`: undefined | number): *string* - -Defined in node_modules/bls12377js/src/defs.ts:45 - -**Parameters:** - -Name | Type | ------- | ------ | -`base?` | undefined | number | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/cryptographic-utils/interfaces/_node_modules_bls12377js_src_defs_.groupspec.md b/packages/docs/sdk/docs/cryptographic-utils/interfaces/_node_modules_bls12377js_src_defs_.groupspec.md deleted file mode 100644 index c77d318ffe9..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/interfaces/_node_modules_bls12377js_src_defs_.groupspec.md +++ /dev/null @@ -1,146 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/defs"](../modules/_node_modules_bls12377js_src_defs_.md) › [GroupSpec](_node_modules_bls12377js_src_defs_.groupspec.md) - -# Interface: GroupSpec <**T, G**> - -## Type parameters - -▪ **T** - -▪ **G** - -## Hierarchy - -* **GroupSpec** - -## Implemented by - -* [G1](../classes/_node_modules_bls12377js_src_g1_.g1.md) -* [G2](../classes/_node_modules_bls12377js_src_g2_.g2.md) - -## Index - -### Methods - -* [add](_node_modules_bls12377js_src_defs_.groupspec.md#add) -* [dbl](_node_modules_bls12377js_src_defs_.groupspec.md#dbl) -* [equals](_node_modules_bls12377js_src_defs_.groupspec.md#equals) -* [scalarMult](_node_modules_bls12377js_src_defs_.groupspec.md#scalarmult) -* [toAffine](_node_modules_bls12377js_src_defs_.groupspec.md#toaffine) -* [toString](_node_modules_bls12377js_src_defs_.groupspec.md#tostring) -* [x](_node_modules_bls12377js_src_defs_.groupspec.md#x) -* [y](_node_modules_bls12377js_src_defs_.groupspec.md#y) -* [z](_node_modules_bls12377js_src_defs_.groupspec.md#z) - -## Methods - -### add - -▸ **add**(`p2`: G): *G* - -Defined in node_modules/bls12377js/src/defs.ts:49 - -**Parameters:** - -Name | Type | ------- | ------ | -`p2` | G | - -**Returns:** *G* - -___ - -### dbl - -▸ **dbl**(): *G* - -Defined in node_modules/bls12377js/src/defs.ts:50 - -**Returns:** *G* - -___ - -### equals - -▸ **equals**(`p2`: G): *boolean* - -Defined in node_modules/bls12377js/src/defs.ts:52 - -**Parameters:** - -Name | Type | ------- | ------ | -`p2` | G | - -**Returns:** *boolean* - -___ - -### scalarMult - -▸ **scalarMult**(`s`: BigInteger): *G* - -Defined in node_modules/bls12377js/src/defs.ts:51 - -**Parameters:** - -Name | Type | ------- | ------ | -`s` | BigInteger | - -**Returns:** *G* - -___ - -### toAffine - -▸ **toAffine**(): *G* - -Defined in node_modules/bls12377js/src/defs.ts:53 - -**Returns:** *G* - -___ - -### toString - -▸ **toString**(`base?`: undefined | number): *string* - -Defined in node_modules/bls12377js/src/defs.ts:57 - -**Parameters:** - -Name | Type | ------- | ------ | -`base?` | undefined | number | - -**Returns:** *string* - -___ - -### x - -▸ **x**(): *T* - -Defined in node_modules/bls12377js/src/defs.ts:54 - -**Returns:** *T* - -___ - -### y - -▸ **y**(): *T* - -Defined in node_modules/bls12377js/src/defs.ts:55 - -**Returns:** *T* - -___ - -### z - -▸ **z**(): *T* - -Defined in node_modules/bls12377js/src/defs.ts:56 - -**Returns:** *T* diff --git a/packages/docs/sdk/docs/cryptographic-utils/interfaces/_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md b/packages/docs/sdk/docs/cryptographic-utils/interfaces/_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md deleted file mode 100644 index 619689c1a6e..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/interfaces/_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["packages/sdk/cryptographic-utils/src/commentEncryption"](../modules/_packages_sdk_cryptographic_utils_src_commentencryption_.md) › [EncryptionStatus](_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md) - -# Interface: EncryptionStatus - -## Hierarchy - -* **EncryptionStatus** - -## Index - -### Properties - -* [comment](_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md#comment) -* [success](_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md#success) - -## Properties - -### comment - -• **comment**: *string* - -*Defined in [packages/sdk/cryptographic-utils/src/commentEncryption.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/commentEncryption.ts#L16)* - -___ - -### success - -• **success**: *boolean* - -*Defined in [packages/sdk/cryptographic-utils/src/commentEncryption.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/commentEncryption.ts#L15)* diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_bls_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_bls_.md deleted file mode 100644 index 5378f4be84a..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_bls_.md +++ /dev/null @@ -1,320 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/bls"](_node_modules_bls12377js_src_bls_.md) - -# Module: "node_modules/bls12377js/src/bls" - -## Index - -### Functions - -* [arrayToBuffer](_node_modules_bls12377js_src_bls_.md#arraytobuffer) -* [bigToBuffer](_node_modules_bls12377js_src_bls_.md#bigtobuffer) -* [bufferToArray](_node_modules_bls12377js_src_bls_.md#buffertoarray) -* [bufferToBig](_node_modules_bls12377js_src_bls_.md#buffertobig) -* [compressG1](_node_modules_bls12377js_src_bls_.md#compressg1) -* [compressG2](_node_modules_bls12377js_src_bls_.md#compressg2) -* [decompressG1](_node_modules_bls12377js_src_bls_.md#decompressg1) -* [decompressG2](_node_modules_bls12377js_src_bls_.md#decompressg2) -* [g1Generator](_node_modules_bls12377js_src_bls_.md#g1generator) -* [g2Generator](_node_modules_bls12377js_src_bls_.md#g2generator) -* [getMiddlePoint](_node_modules_bls12377js_src_bls_.md#getmiddlepoint) -* [padBytes](_node_modules_bls12377js_src_bls_.md#padbytes) -* [privateToPublicBytes](_node_modules_bls12377js_src_bls_.md#privatetopublicbytes) -* [reverse](_node_modules_bls12377js_src_bls_.md#reverse) -* [signPoP](_node_modules_bls12377js_src_bls_.md#signpop) -* [signPoPCommon](_node_modules_bls12377js_src_bls_.md#signpopcommon) -* [signPoPNonCompat](_node_modules_bls12377js_src_bls_.md#signpopnoncompat) -* [tryAndIncrement](_node_modules_bls12377js_src_bls_.md#tryandincrement) -* [uint8ArrayToBuffer](_node_modules_bls12377js_src_bls_.md#uint8arraytobuffer) - -## Functions - -### arrayToBuffer - -▸ **arrayToBuffer**(`arr`: number[]): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:34 - -**Parameters:** - -Name | Type | ------- | ------ | -`arr` | number[] | - -**Returns:** *Buffer* - -___ - -### bigToBuffer - -▸ **bigToBuffer**(`num`: BigInteger): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:43 - -**Parameters:** - -Name | Type | ------- | ------ | -`num` | BigInteger | - -**Returns:** *Buffer* - -___ - -### bufferToArray - -▸ **bufferToArray**(`buf`: Buffer): *number[]* - -Defined in node_modules/bls12377js/src/bls.ts:30 - -**Parameters:** - -Name | Type | ------- | ------ | -`buf` | Buffer | - -**Returns:** *number[]* - -___ - -### bufferToBig - -▸ **bufferToBig**(`buf`: Buffer): *BigInteger* - -Defined in node_modules/bls12377js/src/bls.ts:38 - -**Parameters:** - -Name | Type | ------- | ------ | -`buf` | Buffer | - -**Returns:** *BigInteger* - -___ - -### compressG1 - -▸ **compressG1**(`g`: [G1](../classes/_node_modules_bls12377js_src_g1_.g1.md)): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:53 - -**Parameters:** - -Name | Type | ------- | ------ | -`g` | [G1](../classes/_node_modules_bls12377js_src_g1_.g1.md) | - -**Returns:** *Buffer* - -___ - -### compressG2 - -▸ **compressG2**(`g`: [G2](../classes/_node_modules_bls12377js_src_g2_.g2.md)): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:90 - -**Parameters:** - -Name | Type | ------- | ------ | -`g` | [G2](../classes/_node_modules_bls12377js_src_g2_.g2.md) | - -**Returns:** *Buffer* - -___ - -### decompressG1 - -▸ **decompressG1**(`bytes`: Buffer): *[G1](../classes/_node_modules_bls12377js_src_g1_.g1.md)* - -Defined in node_modules/bls12377js/src/bls.ts:63 - -**Parameters:** - -Name | Type | ------- | ------ | -`bytes` | Buffer | - -**Returns:** *[G1](../classes/_node_modules_bls12377js_src_g1_.g1.md)* - -___ - -### decompressG2 - -▸ **decompressG2**(`bytes`: Buffer): *[G2](../classes/_node_modules_bls12377js_src_g2_.g2.md)* - -Defined in node_modules/bls12377js/src/bls.ts:111 - -**Parameters:** - -Name | Type | ------- | ------ | -`bytes` | Buffer | - -**Returns:** *[G2](../classes/_node_modules_bls12377js_src_g2_.g2.md)* - -___ - -### g1Generator - -▸ **g1Generator**(): *[G1](../classes/_node_modules_bls12377js_src_g1_.g1.md)* - -Defined in node_modules/bls12377js/src/bls.ts:155 - -**Returns:** *[G1](../classes/_node_modules_bls12377js_src_g1_.g1.md)* - -___ - -### g2Generator - -▸ **g2Generator**(): *[G2](../classes/_node_modules_bls12377js_src_g2_.g2.md)* - -Defined in node_modules/bls12377js/src/bls.ts:162 - -**Returns:** *[G2](../classes/_node_modules_bls12377js_src_g2_.g2.md)* - -___ - -### getMiddlePoint - -▸ **getMiddlePoint**(): *BigInteger* - -Defined in node_modules/bls12377js/src/bls.ts:48 - -**Returns:** *BigInteger* - -___ - -### padBytes - -▸ **padBytes**(`buf`: Buffer, `expectedLength`: number): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:175 - -**Parameters:** - -Name | Type | ------- | ------ | -`buf` | Buffer | -`expectedLength` | number | - -**Returns:** *Buffer* - -___ - -### privateToPublicBytes - -▸ **privateToPublicBytes**(`privateKey`: Buffer): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:186 - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | Buffer | - -**Returns:** *Buffer* - -___ - -### reverse - -▸ **reverse**(`src`: Buffer): *Buffer‹›* - -Defined in node_modules/bls12377js/src/bls.ts:10 - -**Parameters:** - -Name | Type | ------- | ------ | -`src` | Buffer | - -**Returns:** *Buffer‹›* - -___ - -### signPoP - -▸ **signPoP**(`privateKey`: Buffer, `address`: Buffer): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:192 - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | Buffer | -`address` | Buffer | - -**Returns:** *Buffer* - -___ - -### signPoPCommon - -▸ **signPoPCommon**(`privateKey`: Buffer, `address`: Buffer, `compat`: Boolean): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:200 - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | Buffer | -`address` | Buffer | -`compat` | Boolean | - -**Returns:** *Buffer* - -___ - -### signPoPNonCompat - -▸ **signPoPNonCompat**(`privateKey`: Buffer, `address`: Buffer): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:196 - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | Buffer | -`address` | Buffer | - -**Returns:** *Buffer* - -___ - -### tryAndIncrement - -▸ **tryAndIncrement**(`domain`: Buffer, `message`: Buffer, `compat`: Boolean): *[G1](../classes/_node_modules_bls12377js_src_g1_.g1.md)* - -Defined in node_modules/bls12377js/src/bls.ts:213 - -**Parameters:** - -Name | Type | ------- | ------ | -`domain` | Buffer | -`message` | Buffer | -`compat` | Boolean | - -**Returns:** *[G1](../classes/_node_modules_bls12377js_src_g1_.g1.md)* - -___ - -### uint8ArrayToBuffer - -▸ **uint8ArrayToBuffer**(`src`: Uint8Array): *Buffer* - -Defined in node_modules/bls12377js/src/bls.ts:21 - -**Parameters:** - -Name | Type | ------- | ------ | -`src` | Uint8Array | - -**Returns:** *Buffer* diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_defs_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_defs_.md deleted file mode 100644 index 2a487748782..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_defs_.md +++ /dev/null @@ -1,106 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/defs"](_node_modules_bls12377js_src_defs_.md) - -# Module: "node_modules/bls12377js/src/defs" - -## Index - -### Interfaces - -* [FieldSpec](../interfaces/_node_modules_bls12377js_src_defs_.fieldspec.md) -* [GroupSpec](../interfaces/_node_modules_bls12377js_src_defs_.groupspec.md) - -### Object literals - -* [Defs](_node_modules_bls12377js_src_defs_.md#const-defs) - -## Object literals - -### `Const` Defs - -### ▪ **Defs**: *object* - -Defined in node_modules/bls12377js/src/defs.ts:3 - -### b - -• **b**: *BigInteger* = bigInt(1) - -Defined in node_modules/bls12377js/src/defs.ts:11 - -### bTwist - -• **bTwist**: *BigInteger[]* = [ - bigInt(0), - bigInt('155198655607781456406391640216936120121836107652948796323930557600032281009004493664981332883744016074664192874906'), - ] - -Defined in node_modules/bls12377js/src/defs.ts:12 - -### blsX - -• **blsX**: *BigInteger* = bigInt('8508c00000000001', 16) - -Defined in node_modules/bls12377js/src/defs.ts:32 - -### fByteSize - -• **fByteSize**: *number* = 48 - -Defined in node_modules/bls12377js/src/defs.ts:10 - -### g1Cofactor - -• **g1Cofactor**: *BigInteger* = bigInt('30631250834960419227450344600217059328') - -Defined in node_modules/bls12377js/src/defs.ts:30 - -### g1Generator - -• **g1Generator**: *BigInteger[]* = [ - bigInt('81937999373150964239938255573465948239988671502647976594219695644855304257327692006745978603320413799295628339695'), - bigInt('241266749859715473739788878240585681733927191168601896383759122102112907357779751001206799952863815012735208165030'), - ] - -Defined in node_modules/bls12377js/src/defs.ts:16 - -### g2Cofactor - -• **g2Cofactor**: *BigInteger* = bigInt('7923214915284317143930293550643874566881017850177945424769256759165301436616933228209277966774092486467289478618404761412630691835764674559376407658497') - -Defined in node_modules/bls12377js/src/defs.ts:31 - -### g2Generator - -• **g2Generator**: *BigInteger[][]* = [ - [ - bigInt('233578398248691099356572568220835526895379068987715365179118596935057653620464273615301663571204657964920925606294'), - bigInt('140913150380207355837477652521042157274541796891053068589147167627541651775299824604154852141315666357241556069118'), - ], - [ - bigInt('63160294768292073209381361943935198908131692476676907196754037919244929611450776219210369229519898517858833747423'), - bigInt('149157405641012693445398062341192467754805999074082136895788947234480009303640899064710353187729182149407503257491'), - ], - ] - -Defined in node_modules/bls12377js/src/defs.ts:20 - -### modulus - -• **modulus**: *BigInteger* = bigInt('258664426012969094010652733694893533536393512754914660539884262666720468348340822774968888139573360124440321458177') - -Defined in node_modules/bls12377js/src/defs.ts:4 - -### nonresidue - -• **nonresidue**: *BigInteger* = bigInt('-5') - -Defined in node_modules/bls12377js/src/defs.ts:5 - -### quadraticNonresidue - -• **quadraticNonresidue**: *BigInteger[]* = [ - bigInt(0), - bigInt(1), - ] - -Defined in node_modules/bls12377js/src/defs.ts:6 diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_f2_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_f2_.md deleted file mode 100644 index e33d7d5df86..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_f2_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/f2"](_node_modules_bls12377js_src_f2_.md) - -# Module: "node_modules/bls12377js/src/f2" - -## Index - -### Classes - -* [F2](../classes/_node_modules_bls12377js_src_f2_.f2.md) diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_f_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_f_.md deleted file mode 100644 index 020abe6ae61..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_f_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/f"](_node_modules_bls12377js_src_f_.md) - -# Module: "node_modules/bls12377js/src/f" - -## Index - -### Classes - -* [F](../classes/_node_modules_bls12377js_src_f_.f.md) diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_g1_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_g1_.md deleted file mode 100644 index 7a3618d1b8a..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_g1_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/g1"](_node_modules_bls12377js_src_g1_.md) - -# Module: "node_modules/bls12377js/src/g1" - -## Index - -### Classes - -* [G1](../classes/_node_modules_bls12377js_src_g1_.g1.md) diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_g2_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_g2_.md deleted file mode 100644 index 717d50b111c..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_g2_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/g2"](_node_modules_bls12377js_src_g2_.md) - -# Module: "node_modules/bls12377js/src/g2" - -## Index - -### Classes - -* [G2](../classes/_node_modules_bls12377js_src_g2_.g2.md) diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_group_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_group_.md deleted file mode 100644 index 5a2e718ada6..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_node_modules_bls12377js_src_group_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["node_modules/bls12377js/src/group"](_node_modules_bls12377js_src_group_.md) - -# Module: "node_modules/bls12377js/src/group" - -## Index - -### Classes - -* [Group](../classes/_node_modules_bls12377js_src_group_.group.md) diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_account_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_account_.md deleted file mode 100644 index 19242457fc9..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_account_.md +++ /dev/null @@ -1,403 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["packages/sdk/cryptographic-utils/src/account"](_packages_sdk_cryptographic_utils_src_account_.md) - -# Module: "packages/sdk/cryptographic-utils/src/account" - -## Index - -### References - -* [Bip39](_packages_sdk_cryptographic_utils_src_account_.md#bip39) -* [CELO_DERIVATION_PATH_BASE](_packages_sdk_cryptographic_utils_src_account_.md#celo_derivation_path_base) -* [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages) -* [MnemonicStrength](_packages_sdk_cryptographic_utils_src_account_.md#mnemonicstrength) -* [RandomNumberGenerator](_packages_sdk_cryptographic_utils_src_account_.md#randomnumbergenerator) - -### Functions - -* [detectMnemonicLanguage](_packages_sdk_cryptographic_utils_src_account_.md#detectmnemoniclanguage) -* [formatNonAccentedCharacters](_packages_sdk_cryptographic_utils_src_account_.md#formatnonaccentedcharacters) -* [generateDeterministicInviteCode](_packages_sdk_cryptographic_utils_src_account_.md#generatedeterministicinvitecode) -* [generateKeys](_packages_sdk_cryptographic_utils_src_account_.md#generatekeys) -* [generateKeysFromSeed](_packages_sdk_cryptographic_utils_src_account_.md#generatekeysfromseed) -* [generateMnemonic](_packages_sdk_cryptographic_utils_src_account_.md#generatemnemonic) -* [generateSeed](_packages_sdk_cryptographic_utils_src_account_.md#generateseed) -* [getAllLanguages](_packages_sdk_cryptographic_utils_src_account_.md#getalllanguages) -* [invalidMnemonicWords](_packages_sdk_cryptographic_utils_src_account_.md#invalidmnemonicwords) -* [mnemonicLengthFromStrength](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclengthfromstrength) -* [normalizeMnemonic](_packages_sdk_cryptographic_utils_src_account_.md#normalizemnemonic) -* [suggestMnemonicCorrections](_packages_sdk_cryptographic_utils_src_account_.md#suggestmnemoniccorrections) -* [validateMnemonic](_packages_sdk_cryptographic_utils_src_account_.md#validatemnemonic) - -### Object literals - -* [AccountUtils](_packages_sdk_cryptographic_utils_src_account_.md#const-accountutils) - -## References - -### Bip39 - -• **Bip39**: - -___ - -### CELO_DERIVATION_PATH_BASE - -• **CELO_DERIVATION_PATH_BASE**: - -___ - -### MnemonicLanguages - -• **MnemonicLanguages**: - -___ - -### MnemonicStrength - -• **MnemonicStrength**: - -___ - -### RandomNumberGenerator - -• **RandomNumberGenerator**: - -## Functions - -### detectMnemonicLanguage - -▸ **detectMnemonicLanguage**(`words`: string[], `candidates?`: [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages)[]): *[MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages) | undefined* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:230](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L230)* - -Detects the language of tokenized mnemonic phrase by applying a heuristic. - -**`remarks`** Uses a heuristic of returning the language with the most matching words. In practice, we -expect all words to come from a single language, also some may be misspelled or otherwise -malformed. It may occasionally occur that a typo results in word from another language (e.g. bag --> bagr) but this should occur at most once or twice per phrase. - -**Parameters:** - -Name | Type | ------- | ------ | -`words` | string[] | -`candidates?` | [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages)[] | - -**Returns:** *[MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages) | undefined* - -___ - -### formatNonAccentedCharacters - -▸ **formatNonAccentedCharacters**(`mnemonic`: string): *string* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:156](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L156)* - -**`deprecated`** now an alias for normalizeMnemonic. - -**Parameters:** - -Name | Type | ------- | ------ | -`mnemonic` | string | - -**Returns:** *string* - -___ - -### generateDeterministicInviteCode - -▸ **generateDeterministicInviteCode**(`recipientPhoneHash`: string, `recipientPepper`: string, `addressIndex`: number, `changeIndex`: number, `derivationPath`: string): *object* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:412](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L412)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`recipientPhoneHash` | string | - | -`recipientPepper` | string | - | -`addressIndex` | number | 0 | -`changeIndex` | number | 0 | -`derivationPath` | string | CELO_DERIVATION_PATH_BASE | - -**Returns:** *object* - -* **privateKey**: *string* - -* **publicKey**: *string* - -___ - -### generateKeys - -▸ **generateKeys**(`mnemonic`: string, `password?`: undefined | string, `changeIndex`: number, `addressIndex`: number, `bip39ToUse`: Bip39, `derivationPath`: string): *Promise‹object›* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:400](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L400)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`mnemonic` | string | - | -`password?` | undefined | string | - | -`changeIndex` | number | 0 | -`addressIndex` | number | 0 | -`bip39ToUse` | Bip39 | bip39Wrapper | -`derivationPath` | string | CELO_DERIVATION_PATH_BASE | - -**Returns:** *Promise‹object›* - -___ - -### generateKeysFromSeed - -▸ **generateKeysFromSeed**(`seed`: Buffer, `changeIndex`: number, `addressIndex`: number, `derivationPath`: string): *object* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:440](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L440)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`seed` | Buffer | - | -`changeIndex` | number | 0 | -`addressIndex` | number | 0 | -`derivationPath` | string | CELO_DERIVATION_PATH_BASE | - -**Returns:** *object* - -* **address**: *string* - -* **privateKey**: *string* - -* **publicKey**: *string* - -___ - -### generateMnemonic - -▸ **generateMnemonic**(`strength`: [MnemonicStrength](_packages_sdk_cryptographic_utils_src_account_.md#mnemonicstrength), `language?`: [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages), `bip39ToUse`: Bip39): *Promise‹string›* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L51)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`strength` | [MnemonicStrength](_packages_sdk_cryptographic_utils_src_account_.md#mnemonicstrength) | MnemonicStrength.s256_24words | -`language?` | [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages) | - | -`bip39ToUse` | Bip39 | bip39Wrapper | - -**Returns:** *Promise‹string›* - -___ - -### generateSeed - -▸ **generateSeed**(`mnemonic`: string, `password?`: undefined | string, `bip39ToUse`: Bip39, `keyByteLength`: number): *Promise‹Buffer›* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:425](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L425)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`mnemonic` | string | - | -`password?` | undefined | string | - | -`bip39ToUse` | Bip39 | bip39Wrapper | -`keyByteLength` | number | 64 | - -**Returns:** *Promise‹Buffer›* - -___ - -### getAllLanguages - -▸ **getAllLanguages**(): *[MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages)[]* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:185](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L185)* - -**Returns:** *[MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages)[]* - -___ - -### invalidMnemonicWords - -▸ **invalidMnemonicWords**(`mnemonic`: string, `language?`: [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages)): *string[] | undefined* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:85](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L85)* - -Return a list of the words in the mnemonic that are not in the list of valid BIP-39 words for the -specified or detected language. - -**`remarks`** Will return undefined if the language cannot be detected (e.g. all the words are -invalid, or half of the valid words are from one language and the other half from another.) - -**Parameters:** - -Name | Type | ------- | ------ | -`mnemonic` | string | -`language?` | [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages) | - -**Returns:** *string[] | undefined* - -___ - -### mnemonicLengthFromStrength - -▸ **mnemonicLengthFromStrength**(`strength`: [MnemonicStrength](_packages_sdk_cryptographic_utils_src_account_.md#mnemonicstrength)): *number* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:199](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L199)* - -**Parameters:** - -Name | Type | ------- | ------ | -`strength` | [MnemonicStrength](_packages_sdk_cryptographic_utils_src_account_.md#mnemonicstrength) | - -**Returns:** *number* - -___ - -### normalizeMnemonic - -▸ **normalizeMnemonic**(`mnemonic`: string, `language?`: [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages)): *string* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L106)* - -Normalize the mnemonic phrase to eliminate a number of inconsistencies with standard BIP-39 -phrases that are likely to arise when a user manually enters a phrase. - -**`remarks`** Note that this does not guarantee that the output is a valid mnemonic phrase, or even -that all the words in the phrase are contained in a valid wordlist. - -**Parameters:** - -Name | Type | ------- | ------ | -`mnemonic` | string | -`language?` | [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages) | - -**Returns:** *string* - -___ - -### suggestMnemonicCorrections - -▸ **suggestMnemonicCorrections**(`mnemonic`: string, `language?`: [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages), `strength?`: [MnemonicStrength](_packages_sdk_cryptographic_utils_src_account_.md#mnemonicstrength)): *Generator‹string›* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:285](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L285)* - -Generates a list of suggested corrections to the mnemonic phrase based on a set of heuristics. - -**`remarks`** -Each yielded suggestion represents an attempt to correct the seed phrase by replacing any invalid -words with the most likely valid words. Returned suggestions phrases are ordered by probability -based on a noisy channel model, described in detail in CIP-39. - -The generated list of suggestions is exponential in size, and effectively infinite. One should -not attempt to generate the entire list. - -All yielded suggestions will have a valid checksum, but are not guaranteed to correspond to any -given wallet. If the phrase is being used to recover a wallet with non-zero balance, it is -suggested that the caller check the balance of the derived wallet address. If the balance is -non-zero, they can be sure that the phrase is correct. If it is zero, then they should continue -and try the next suggestion. - -It is recommended to normalize the mnemonic phrase before inputting to this function. - -**`privateremarks`** -TODO(victor): Include a heuristic rule for phrase-level corrections, such as word ordering swaps. - -**Parameters:** - -Name | Type | ------- | ------ | -`mnemonic` | string | -`language?` | [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages) | -`strength?` | [MnemonicStrength](_packages_sdk_cryptographic_utils_src_account_.md#mnemonicstrength) | - -**Returns:** *Generator‹string›* - -___ - -### validateMnemonic - -▸ **validateMnemonic**(`mnemonic`: string, `bip39ToUse`: Bip39, `language?`: [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages)): *boolean* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L59)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`mnemonic` | string | - | -`bip39ToUse` | Bip39 | bip39Wrapper | -`language?` | [MnemonicLanguages](_packages_sdk_cryptographic_utils_src_account_.md#mnemoniclanguages) | - | - -**Returns:** *boolean* - -## Object literals - -### `Const` AccountUtils - -### ▪ **AccountUtils**: *object* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:461](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L461)* - -### detectMnemonicLanguage - -• **detectMnemonicLanguage**: *[detectMnemonicLanguage](_packages_sdk_cryptographic_utils_src_account_.md#detectmnemoniclanguage)* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:462](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L462)* - -### generateKeys - -• **generateKeys**: *[generateKeys](_packages_sdk_cryptographic_utils_src_account_.md#generatekeys)* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:468](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L468)* - -### generateKeysFromSeed - -• **generateKeysFromSeed**: *[generateKeysFromSeed](_packages_sdk_cryptographic_utils_src_account_.md#generatekeysfromseed)* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:470](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L470)* - -### generateMnemonic - -• **generateMnemonic**: *[generateMnemonic](_packages_sdk_cryptographic_utils_src_account_.md#generatemnemonic)* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:463](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L463)* - -### generateSeed - -• **generateSeed**: *[generateSeed](_packages_sdk_cryptographic_utils_src_account_.md#generateseed)* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:469](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L469)* - -### invalidMnemonicWords - -• **invalidMnemonicWords**: *[invalidMnemonicWords](_packages_sdk_cryptographic_utils_src_account_.md#invalidmnemonicwords)* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:466](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L466)* - -### normalizeMnemonic - -• **normalizeMnemonic**: *[normalizeMnemonic](_packages_sdk_cryptographic_utils_src_account_.md#normalizemnemonic)* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:464](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L464)* - -### suggestMnemonicCorrections - -• **suggestMnemonicCorrections**: *[suggestMnemonicCorrections](_packages_sdk_cryptographic_utils_src_account_.md#suggestmnemoniccorrections)* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:467](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L467)* - -### validateMnemonic - -• **validateMnemonic**: *[validateMnemonic](_packages_sdk_cryptographic_utils_src_account_.md#validatemnemonic)* - -*Defined in [packages/sdk/cryptographic-utils/src/account.ts:465](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/account.ts#L465)* diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_bls_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_bls_.md deleted file mode 100644 index c5816514771..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_bls_.md +++ /dev/null @@ -1,81 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["packages/sdk/cryptographic-utils/src/bls"](_packages_sdk_cryptographic_utils_src_bls_.md) - -# Module: "packages/sdk/cryptographic-utils/src/bls" - -## Index - -### Variables - -* [BLS_POP_SIZE](_packages_sdk_cryptographic_utils_src_bls_.md#const-bls_pop_size) -* [BLS_PUBLIC_KEY_SIZE](_packages_sdk_cryptographic_utils_src_bls_.md#const-bls_public_key_size) - -### Functions - -* [blsPrivateKeyToProcessedPrivateKey](_packages_sdk_cryptographic_utils_src_bls_.md#const-blsprivatekeytoprocessedprivatekey) -* [getBlsPoP](_packages_sdk_cryptographic_utils_src_bls_.md#const-getblspop) -* [getBlsPublicKey](_packages_sdk_cryptographic_utils_src_bls_.md#const-getblspublickey) - -## Variables - -### `Const` BLS_POP_SIZE - -• **BLS_POP_SIZE**: *48* = 48 - -*Defined in [packages/sdk/cryptographic-utils/src/bls.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/bls.ts#L12)* - -___ - -### `Const` BLS_PUBLIC_KEY_SIZE - -• **BLS_PUBLIC_KEY_SIZE**: *96* = 96 - -*Defined in [packages/sdk/cryptographic-utils/src/bls.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/bls.ts#L11)* - -## Functions - -### `Const` blsPrivateKeyToProcessedPrivateKey - -▸ **blsPrivateKeyToProcessedPrivateKey**(`privateKeyHex`: string): *any* - -*Defined in [packages/sdk/cryptographic-utils/src/bls.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/bls.ts#L14)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKeyHex` | string | - -**Returns:** *any* - -___ - -### `Const` getBlsPoP - -▸ **getBlsPoP**(`address`: string, `privateKeyHex`: string): *string* - -*Defined in [packages/sdk/cryptographic-utils/src/bls.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/bls.ts#L53)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`privateKeyHex` | string | - -**Returns:** *string* - -___ - -### `Const` getBlsPublicKey - -▸ **getBlsPublicKey**(`privateKeyHex`: string): *string* - -*Defined in [packages/sdk/cryptographic-utils/src/bls.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/bls.ts#L48)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKeyHex` | string | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_commentencryption_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_commentencryption_.md deleted file mode 100644 index 9bdb0d0c7f7..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_commentencryption_.md +++ /dev/null @@ -1,131 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["packages/sdk/cryptographic-utils/src/commentEncryption"](_packages_sdk_cryptographic_utils_src_commentencryption_.md) - -# Module: "packages/sdk/cryptographic-utils/src/commentEncryption" - -## Index - -### Interfaces - -* [EncryptionStatus](../interfaces/_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md) - -### Functions - -* [decryptComment](_packages_sdk_cryptographic_utils_src_commentencryption_.md#decryptcomment) -* [decryptData](_packages_sdk_cryptographic_utils_src_commentencryption_.md#decryptdata) -* [encryptComment](_packages_sdk_cryptographic_utils_src_commentencryption_.md#encryptcomment) -* [encryptData](_packages_sdk_cryptographic_utils_src_commentencryption_.md#encryptdata) - -### Object literals - -* [CommentEncryptionUtils](_packages_sdk_cryptographic_utils_src_commentencryption_.md#const-commentencryptionutils) - -## Functions - -### decryptComment - -▸ **decryptComment**(`comment`: string, `key`: Buffer, `sender`: boolean): *[EncryptionStatus](../interfaces/_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md)* - -*Defined in [packages/sdk/cryptographic-utils/src/commentEncryption.ts:104](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/commentEncryption.ts#L104)* - -Decrypts a comments encrypted by encryptComment. If it cannot decrypt the comment (i.e. comment was -never encrypted in the first place), it returns the comments without any changes. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`comment` | string | Comment to decrypt. If encrypted, base64 encoded. May be plaintext. | -`key` | Buffer | Private key to decrypt the message with. | -`sender` | boolean | If the decryptor is the sender of the message. | - -**Returns:** *[EncryptionStatus](../interfaces/_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md)* - -Decrypted comment if can decrypt, otherwise comment. - -___ - -### decryptData - -▸ **decryptData**(`data`: Buffer, `key`: Buffer, `sender`: boolean): *Buffer* - -*Defined in [packages/sdk/cryptographic-utils/src/commentEncryption.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/commentEncryption.ts#L45)* - -Decrypts raw data that was encrypted by encryptData. Throws on error. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`data` | Buffer | Data to decrypt. | -`key` | Buffer | Private key to decrypt the message with. | -`sender` | boolean | If the decryptor is the sender of the message. | - -**Returns:** *Buffer* - -Decrypted data. - -___ - -### encryptComment - -▸ **encryptComment**(`comment`: string, `pubKeyRecipient`: Buffer, `pubKeySelf`: Buffer): *[EncryptionStatus](../interfaces/_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md)* - -*Defined in [packages/sdk/cryptographic-utils/src/commentEncryption.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/commentEncryption.ts#L69)* - -Encrypts a comment. If it can encrypt, it returns a base64 string with the following: - ECIES(session key to other) + ECIES(session key to self) + AES(comment) -If it fails to encrypt, it returns the comment without any changes. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`comment` | string | Comment to encrypt. | -`pubKeyRecipient` | Buffer | Public key of the recipient. May be compressed. | -`pubKeySelf` | Buffer | Public key of the sender. May be compressed. | - -**Returns:** *[EncryptionStatus](../interfaces/_packages_sdk_cryptographic_utils_src_commentencryption_.encryptionstatus.md)* - -base64 string of encrypted comment if can encrypt, otherwise comment. - -___ - -### encryptData - -▸ **encryptData**(`data`: Buffer, `pubKeyRecipient`: Buffer, `pubKeySelf`: Buffer): *Buffer* - -*Defined in [packages/sdk/cryptographic-utils/src/commentEncryption.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/commentEncryption.ts#L27)* - -Encrypts a buffer to two recipients. Throws on error. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`data` | Buffer | Data to encrypt | -`pubKeyRecipient` | Buffer | Public key of the recipient. Uncompressed without leading 0x04. | -`pubKeySelf` | Buffer | Public key of the sender. Uncompressed without leading 0x04. | - -**Returns:** *Buffer* - -Encrypted data to sender and recipient. - -## Object literals - -### `Const` CommentEncryptionUtils - -### ▪ **CommentEncryptionUtils**: *object* - -*Defined in [packages/sdk/cryptographic-utils/src/commentEncryption.ts:115](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/commentEncryption.ts#L115)* - -### decryptComment - -• **decryptComment**: *[decryptComment](_packages_sdk_cryptographic_utils_src_commentencryption_.md#decryptcomment)* - -*Defined in [packages/sdk/cryptographic-utils/src/commentEncryption.ts:117](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/commentEncryption.ts#L117)* - -### encryptComment - -• **encryptComment**: *[encryptComment](_packages_sdk_cryptographic_utils_src_commentencryption_.md#encryptcomment)* - -*Defined in [packages/sdk/cryptographic-utils/src/commentEncryption.ts:116](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/commentEncryption.ts#L116)* diff --git a/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md b/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md deleted file mode 100644 index 4eafcb54926..00000000000 --- a/packages/docs/sdk/docs/cryptographic-utils/modules/_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md +++ /dev/null @@ -1,103 +0,0 @@ -[@celo/cryptographic-utils](../README.md) › [Globals](../globals.md) › ["packages/sdk/cryptographic-utils/src/dataEncryptionKey"](_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md) - -# Module: "packages/sdk/cryptographic-utils/src/dataEncryptionKey" - -## Index - -### Functions - -* [compressedPubKey](_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md#compressedpubkey) -* [decompressPublicKey](_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md#decompresspublickey) -* [deriveDek](_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md#derivedek) - -### Object literals - -* [DataEncryptionKeyUtils](_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md#const-dataencryptionkeyutils) - -## Functions - -### compressedPubKey - -▸ **compressedPubKey**(`privateKey`: Buffer): *string* - -*Defined in [packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts#L10)* - -Turns a private key to a compressed public key (hex string with hex leader). - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`privateKey` | Buffer | Private key. | - -**Returns:** *string* - -Corresponding compessed public key in hex encoding with '0x' leader. - -___ - -### decompressPublicKey - -▸ **decompressPublicKey**(`publicKey`: Buffer): *Buffer* - -*Defined in [packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts#L27)* - -Decompresses a public key and strips out the '0x04' leading constant. This makes -any public key suitable to be used with this ECIES implementation. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`publicKey` | Buffer | Public key in standard form (with 0x02, 0x03, or 0x04 prefix) | - -**Returns:** *Buffer* - -Decompresssed public key without prefix. - -___ - -### deriveDek - -▸ **deriveDek**(`mnemonic`: string, `bip39ToUse?`: [Bip39](_packages_sdk_cryptographic_utils_src_account_.md#bip39)): *Promise‹object›* - -*Defined in [packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts#L42)* - -Derives a data encryption key from the mnemonic - -**Parameters:** - -Name | Type | ------- | ------ | -`mnemonic` | string | -`bip39ToUse?` | [Bip39](_packages_sdk_cryptographic_utils_src_account_.md#bip39) | - -**Returns:** *Promise‹object›* - -Comment Encryption Private key. - -## Object literals - -### `Const` DataEncryptionKeyUtils - -### ▪ **DataEncryptionKeyUtils**: *object* - -*Defined in [packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts#L56)* - -### compressedPubKey - -• **compressedPubKey**: *[compressedPubKey](_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md#compressedpubkey)* - -*Defined in [packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts#L57)* - -### decompressPublicKey - -• **decompressPublicKey**: *[decompressPublicKey](_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md#decompresspublickey)* - -*Defined in [packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts#L58)* - -### deriveDek - -• **deriveDek**: *[deriveDek](_packages_sdk_cryptographic_utils_src_dataencryptionkey_.md#derivedek)* - -*Defined in [packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts#L59)* diff --git a/packages/docs/sdk/docs/explorer/README.md b/packages/docs/sdk/docs/explorer/README.md deleted file mode 100644 index b3c1df6a6fe..00000000000 --- a/packages/docs/sdk/docs/explorer/README.md +++ /dev/null @@ -1,11 +0,0 @@ -[@celo/explorer](README.md) - -# @celo/explorer - -## Index - -### Modules - -* ["base"](modules/_base_.md) -* ["block-explorer"](modules/_block_explorer_.md) -* ["log-explorer"](modules/_log_explorer_.md) diff --git a/packages/docs/sdk/docs/explorer/classes/_block_explorer_.blockexplorer.md b/packages/docs/sdk/docs/explorer/classes/_block_explorer_.blockexplorer.md deleted file mode 100644 index 304dc85ef47..00000000000 --- a/packages/docs/sdk/docs/explorer/classes/_block_explorer_.blockexplorer.md +++ /dev/null @@ -1,189 +0,0 @@ -[@celo/explorer](../README.md) › ["block-explorer"](../modules/_block_explorer_.md) › [BlockExplorer](_block_explorer_.blockexplorer.md) - -# Class: BlockExplorer - -## Hierarchy - -* **BlockExplorer** - -## Index - -### Constructors - -* [constructor](_block_explorer_.blockexplorer.md#constructor) - -### Properties - -* [contractDetails](_block_explorer_.blockexplorer.md#readonly-contractdetails) - -### Methods - -* [fetchBlock](_block_explorer_.blockexplorer.md#fetchblock) -* [fetchBlockByHash](_block_explorer_.blockexplorer.md#fetchblockbyhash) -* [fetchBlockRange](_block_explorer_.blockexplorer.md#fetchblockrange) -* [getContractMethodAbi](_block_explorer_.blockexplorer.md#getcontractmethodabi) -* [parseBlock](_block_explorer_.blockexplorer.md#parseblock) -* [tryParseTx](_block_explorer_.blockexplorer.md#tryparsetx) -* [tryParseTxInput](_block_explorer_.blockexplorer.md#tryparsetxinput) -* [updateContractDetailsMapping](_block_explorer_.blockexplorer.md#updatecontractdetailsmapping) - -## Constructors - -### constructor - -\+ **new BlockExplorer**(`kit`: ContractKit, `contractDetails`: [ContractDetails](../interfaces/_base_.contractdetails.md)[]): *[BlockExplorer](_block_explorer_.blockexplorer.md)* - -*Defined in [block-explorer.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L52)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | ContractKit | -`contractDetails` | [ContractDetails](../interfaces/_base_.contractdetails.md)[] | - -**Returns:** *[BlockExplorer](_block_explorer_.blockexplorer.md)* - -## Properties - -### `Readonly` contractDetails - -• **contractDetails**: *[ContractDetails](../interfaces/_base_.contractdetails.md)[]* - -*Defined in [block-explorer.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L54)* - -## Methods - -### fetchBlock - -▸ **fetchBlock**(`blockNumber`: number): *Promise‹Block›* - -*Defined in [block-explorer.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L68)* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockNumber` | number | - -**Returns:** *Promise‹Block›* - -___ - -### fetchBlockByHash - -▸ **fetchBlockByHash**(`blockHash`: string): *Promise‹Block›* - -*Defined in [block-explorer.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L65)* - -**Parameters:** - -Name | Type | ------- | ------ | -`blockHash` | string | - -**Returns:** *Promise‹Block›* - -___ - -### fetchBlockRange - -▸ **fetchBlockRange**(`from`: number, `to`: number): *Promise‹Block[]›* - -*Defined in [block-explorer.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L72)* - -**Parameters:** - -Name | Type | ------- | ------ | -`from` | number | -`to` | number | - -**Returns:** *Promise‹Block[]›* - -___ - -### getContractMethodAbi - -▸ **getContractMethodAbi**(`address`: string, `callSignature`: string): *object* - -*Defined in [block-explorer.ts:109](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L109)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`callSignature` | string | - -**Returns:** *object* - -* **abi**: *undefined | ABIDefinition* = contractMapping?.fnMapping.get(callSignature) - -* **contract**: *undefined | string* = contractMapping?.details.name - -___ - -### parseBlock - -▸ **parseBlock**(`block`: Block): *Promise‹[ParsedBlock](../interfaces/_block_explorer_.parsedblock.md)›* - -*Defined in [block-explorer.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L80)* - -**Parameters:** - -Name | Type | ------- | ------ | -`block` | Block | - -**Returns:** *Promise‹[ParsedBlock](../interfaces/_block_explorer_.parsedblock.md)›* - -___ - -### tryParseTx - -▸ **tryParseTx**(`tx`: CeloTxPending): *Promise‹null | [ParsedTx](../interfaces/_block_explorer_.parsedtx.md)›* - -*Defined in [block-explorer.ts:97](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L97)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | CeloTxPending | - -**Returns:** *Promise‹null | [ParsedTx](../interfaces/_block_explorer_.parsedtx.md)›* - -___ - -### tryParseTxInput - -▸ **tryParseTxInput**(`address`: string, `input`: string): *Promise‹null | [CallDetails](../interfaces/_block_explorer_.calldetails.md)›* - -*Defined in [block-explorer.ts:117](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L117)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`input` | string | - -**Returns:** *Promise‹null | [CallDetails](../interfaces/_block_explorer_.calldetails.md)›* - -___ - -### updateContractDetailsMapping - -▸ **updateContractDetailsMapping**(`name`: CeloContract, `address`: string): *Promise‹void›* - -*Defined in [block-explorer.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L60)* - -**Parameters:** - -Name | Type | ------- | ------ | -`name` | CeloContract | -`address` | string | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/explorer/classes/_log_explorer_.logexplorer.md b/packages/docs/sdk/docs/explorer/classes/_log_explorer_.logexplorer.md deleted file mode 100644 index acc2c535eab..00000000000 --- a/packages/docs/sdk/docs/explorer/classes/_log_explorer_.logexplorer.md +++ /dev/null @@ -1,96 +0,0 @@ -[@celo/explorer](../README.md) › ["log-explorer"](../modules/_log_explorer_.md) › [LogExplorer](_log_explorer_.logexplorer.md) - -# Class: LogExplorer - -## Hierarchy - -* **LogExplorer** - -## Index - -### Constructors - -* [constructor](_log_explorer_.logexplorer.md#constructor) - -### Properties - -* [contractDetails](_log_explorer_.logexplorer.md#readonly-contractdetails) - -### Methods - -* [fetchTxReceipt](_log_explorer_.logexplorer.md#fetchtxreceipt) -* [getKnownLogs](_log_explorer_.logexplorer.md#getknownlogs) -* [tryParseLog](_log_explorer_.logexplorer.md#tryparselog) - -## Constructors - -### constructor - -\+ **new LogExplorer**(`kit`: ContractKit, `contractDetails`: [ContractDetails](../interfaces/_base_.contractdetails.md)[]): *[LogExplorer](_log_explorer_.logexplorer.md)* - -*Defined in [log-explorer.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/log-explorer.ts#L15)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | ContractKit | -`contractDetails` | [ContractDetails](../interfaces/_base_.contractdetails.md)[] | - -**Returns:** *[LogExplorer](_log_explorer_.logexplorer.md)* - -## Properties - -### `Readonly` contractDetails - -• **contractDetails**: *[ContractDetails](../interfaces/_base_.contractdetails.md)[]* - -*Defined in [log-explorer.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/log-explorer.ts#L17)* - -## Methods - -### fetchTxReceipt - -▸ **fetchTxReceipt**(`txhash`: string): *Promise‹CeloTxReceipt | null›* - -*Defined in [log-explorer.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/log-explorer.ts#L47)* - -**Parameters:** - -Name | Type | ------- | ------ | -`txhash` | string | - -**Returns:** *Promise‹CeloTxReceipt | null›* - -___ - -### getKnownLogs - -▸ **getKnownLogs**(`tx`: CeloTxReceipt): *EventLog[]* - -*Defined in [log-explorer.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/log-explorer.ts#L51)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | CeloTxReceipt | - -**Returns:** *EventLog[]* - -___ - -### tryParseLog - -▸ **tryParseLog**(`log`: Log): *null | EventLog* - -*Defined in [log-explorer.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/log-explorer.ts#L62)* - -**Parameters:** - -Name | Type | ------- | ------ | -`log` | Log | - -**Returns:** *null | EventLog* diff --git a/packages/docs/sdk/docs/explorer/interfaces/_base_.contractdetails.md b/packages/docs/sdk/docs/explorer/interfaces/_base_.contractdetails.md deleted file mode 100644 index 3bfbf87ef90..00000000000 --- a/packages/docs/sdk/docs/explorer/interfaces/_base_.contractdetails.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/explorer](../README.md) › ["base"](../modules/_base_.md) › [ContractDetails](_base_.contractdetails.md) - -# Interface: ContractDetails - -## Hierarchy - -* **ContractDetails** - -## Index - -### Properties - -* [address](_base_.contractdetails.md#address) -* [jsonInterface](_base_.contractdetails.md#jsoninterface) -* [name](_base_.contractdetails.md#name) - -## Properties - -### address - -• **address**: *Address* - -*Defined in [base.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/base.ts#L7)* - -___ - -### jsonInterface - -• **jsonInterface**: *AbiItem[]* - -*Defined in [base.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/base.ts#L8)* - -___ - -### name - -• **name**: *string* - -*Defined in [base.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/base.ts#L6)* diff --git a/packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.calldetails.md b/packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.calldetails.md deleted file mode 100644 index a189144f000..00000000000 --- a/packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.calldetails.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/explorer](../README.md) › ["block-explorer"](../modules/_block_explorer_.md) › [CallDetails](_block_explorer_.calldetails.md) - -# Interface: CallDetails - -## Hierarchy - -* **CallDetails** - -## Index - -### Properties - -* [argList](_block_explorer_.calldetails.md#arglist) -* [contract](_block_explorer_.calldetails.md#contract) -* [function](_block_explorer_.calldetails.md#function) -* [paramMap](_block_explorer_.calldetails.md#parammap) - -## Properties - -### argList - -• **argList**: *any[]* - -*Defined in [block-explorer.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L20)* - -___ - -### contract - -• **contract**: *string* - -*Defined in [block-explorer.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L17)* - -___ - -### function - -• **function**: *string* - -*Defined in [block-explorer.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L18)* - -___ - -### paramMap - -• **paramMap**: *Record‹string, any›* - -*Defined in [block-explorer.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L19)* diff --git a/packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.parsedblock.md b/packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.parsedblock.md deleted file mode 100644 index dfb9b19c6c4..00000000000 --- a/packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.parsedblock.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/explorer](../README.md) › ["block-explorer"](../modules/_block_explorer_.md) › [ParsedBlock](_block_explorer_.parsedblock.md) - -# Interface: ParsedBlock - -## Hierarchy - -* **ParsedBlock** - -## Index - -### Properties - -* [block](_block_explorer_.parsedblock.md#block) -* [parsedTx](_block_explorer_.parsedblock.md#parsedtx) - -## Properties - -### block - -• **block**: *Block* - -*Defined in [block-explorer.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L29)* - -___ - -### parsedTx - -• **parsedTx**: *[ParsedTx](_block_explorer_.parsedtx.md)[]* - -*Defined in [block-explorer.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L30)* diff --git a/packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.parsedtx.md b/packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.parsedtx.md deleted file mode 100644 index 777d19eb886..00000000000 --- a/packages/docs/sdk/docs/explorer/interfaces/_block_explorer_.parsedtx.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/explorer](../README.md) › ["block-explorer"](../modules/_block_explorer_.md) › [ParsedTx](_block_explorer_.parsedtx.md) - -# Interface: ParsedTx - -## Hierarchy - -* **ParsedTx** - -## Index - -### Properties - -* [callDetails](_block_explorer_.parsedtx.md#calldetails) -* [tx](_block_explorer_.parsedtx.md#tx) - -## Properties - -### callDetails - -• **callDetails**: *[CallDetails](_block_explorer_.calldetails.md)* - -*Defined in [block-explorer.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L24)* - -___ - -### tx - -• **tx**: *CeloTxPending* - -*Defined in [block-explorer.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L25)* diff --git a/packages/docs/sdk/docs/explorer/modules/_base_.md b/packages/docs/sdk/docs/explorer/modules/_base_.md deleted file mode 100644 index 0eedf393688..00000000000 --- a/packages/docs/sdk/docs/explorer/modules/_base_.md +++ /dev/null @@ -1,71 +0,0 @@ -[@celo/explorer](../README.md) › ["base"](_base_.md) - -# Module: "base" - -## Index - -### Interfaces - -* [ContractDetails](../interfaces/_base_.contractdetails.md) - -### Functions - -* [getContractDetailsFromContract](_base_.md#const-getcontractdetailsfromcontract) -* [mapFromPairs](_base_.md#mapfrompairs) -* [obtainKitContractDetails](_base_.md#obtainkitcontractdetails) - -## Functions - -### `Const` getContractDetailsFromContract - -▸ **getContractDetailsFromContract**(`kit`: ContractKit, `celoContract`: CeloContract, `address?`: undefined | string): *Promise‹object›* - -*Defined in [base.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/base.ts#L11)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | ContractKit | -`celoContract` | CeloContract | -`address?` | undefined | string | - -**Returns:** *Promise‹object›* - -___ - -### mapFromPairs - -▸ **mapFromPairs**<**A**, **B**>(`pairs`: Array‹[A, B]›): *Map‹A, B›* - -*Defined in [base.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/base.ts#L31)* - -**Type parameters:** - -▪ **A** - -▪ **B** - -**Parameters:** - -Name | Type | ------- | ------ | -`pairs` | Array‹[A, B]› | - -**Returns:** *Map‹A, B›* - -___ - -### obtainKitContractDetails - -▸ **obtainKitContractDetails**(`kit`: ContractKit): *Promise‹[ContractDetails](../interfaces/_base_.contractdetails.md)[]›* - -*Defined in [base.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/base.ts#L24)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | ContractKit | - -**Returns:** *Promise‹[ContractDetails](../interfaces/_base_.contractdetails.md)[]›* diff --git a/packages/docs/sdk/docs/explorer/modules/_block_explorer_.md b/packages/docs/sdk/docs/explorer/modules/_block_explorer_.md deleted file mode 100644 index 8db16b4d599..00000000000 --- a/packages/docs/sdk/docs/explorer/modules/_block_explorer_.md +++ /dev/null @@ -1,35 +0,0 @@ -[@celo/explorer](../README.md) › ["block-explorer"](_block_explorer_.md) - -# Module: "block-explorer" - -## Index - -### Classes - -* [BlockExplorer](../classes/_block_explorer_.blockexplorer.md) - -### Interfaces - -* [CallDetails](../interfaces/_block_explorer_.calldetails.md) -* [ParsedBlock](../interfaces/_block_explorer_.parsedblock.md) -* [ParsedTx](../interfaces/_block_explorer_.parsedtx.md) - -### Functions - -* [newBlockExplorer](_block_explorer_.md#newblockexplorer) - -## Functions - -### newBlockExplorer - -▸ **newBlockExplorer**(`kit`: ContractKit): *Promise‹[BlockExplorer](../classes/_block_explorer_.blockexplorer.md)‹››* - -*Defined in [block-explorer.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/block-explorer.ts#L38)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | ContractKit | - -**Returns:** *Promise‹[BlockExplorer](../classes/_block_explorer_.blockexplorer.md)‹››* diff --git a/packages/docs/sdk/docs/explorer/modules/_log_explorer_.md b/packages/docs/sdk/docs/explorer/modules/_log_explorer_.md deleted file mode 100644 index a5cba03d271..00000000000 --- a/packages/docs/sdk/docs/explorer/modules/_log_explorer_.md +++ /dev/null @@ -1,29 +0,0 @@ -[@celo/explorer](../README.md) › ["log-explorer"](_log_explorer_.md) - -# Module: "log-explorer" - -## Index - -### Classes - -* [LogExplorer](../classes/_log_explorer_.logexplorer.md) - -### Functions - -* [newLogExplorer](_log_explorer_.md#newlogexplorer) - -## Functions - -### newLogExplorer - -▸ **newLogExplorer**(`kit`: ContractKit): *Promise‹[LogExplorer](../classes/_log_explorer_.logexplorer.md)‹››* - -*Defined in [log-explorer.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/explorer/src/log-explorer.ts#L10)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | ContractKit | - -**Returns:** *Promise‹[LogExplorer](../classes/_log_explorer_.logexplorer.md)‹››* diff --git a/packages/docs/sdk/docs/governance/README.md b/packages/docs/sdk/docs/governance/README.md deleted file mode 100644 index 7b980fae238..00000000000 --- a/packages/docs/sdk/docs/governance/README.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/governance](README.md) - -# @celo/governance - -## Index - -### Modules - -* ["proposals"](modules/_proposals_.md) diff --git a/packages/docs/sdk/docs/governance/classes/_proposals_.interactiveproposalbuilder.md b/packages/docs/sdk/docs/governance/classes/_proposals_.interactiveproposalbuilder.md deleted file mode 100644 index c8f2a25a071..00000000000 --- a/packages/docs/sdk/docs/governance/classes/_proposals_.interactiveproposalbuilder.md +++ /dev/null @@ -1,54 +0,0 @@ -[@celo/governance](../README.md) › ["proposals"](../modules/_proposals_.md) › [InteractiveProposalBuilder](_proposals_.interactiveproposalbuilder.md) - -# Class: InteractiveProposalBuilder - -## Hierarchy - -* **InteractiveProposalBuilder** - -## Index - -### Constructors - -* [constructor](_proposals_.interactiveproposalbuilder.md#constructor) - -### Methods - -* [outputTransactions](_proposals_.interactiveproposalbuilder.md#outputtransactions) -* [promptTransactions](_proposals_.interactiveproposalbuilder.md#prompttransactions) - -## Constructors - -### constructor - -\+ **new InteractiveProposalBuilder**(`builder`: [ProposalBuilder](_proposals_.proposalbuilder.md)): *[InteractiveProposalBuilder](_proposals_.interactiveproposalbuilder.md)* - -*Defined in [proposals.ts:344](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L344)* - -**Parameters:** - -Name | Type | ------- | ------ | -`builder` | [ProposalBuilder](_proposals_.proposalbuilder.md) | - -**Returns:** *[InteractiveProposalBuilder](_proposals_.interactiveproposalbuilder.md)* - -## Methods - -### outputTransactions - -▸ **outputTransactions**(): *Promise‹void›* - -*Defined in [proposals.ts:347](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L347)* - -**Returns:** *Promise‹void›* - -___ - -### promptTransactions - -▸ **promptTransactions**(): *Promise‹[ProposalTransactionJSON](../interfaces/_proposals_.proposaltransactionjson.md)[]›* - -*Defined in [proposals.ts:352](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L352)* - -**Returns:** *Promise‹[ProposalTransactionJSON](../interfaces/_proposals_.proposaltransactionjson.md)[]›* diff --git a/packages/docs/sdk/docs/governance/classes/_proposals_.proposalbuilder.md b/packages/docs/sdk/docs/governance/classes/_proposals_.proposalbuilder.md deleted file mode 100644 index a5f64185353..00000000000 --- a/packages/docs/sdk/docs/governance/classes/_proposals_.proposalbuilder.md +++ /dev/null @@ -1,229 +0,0 @@ -[@celo/governance](../README.md) › ["proposals"](../modules/_proposals_.md) › [ProposalBuilder](_proposals_.proposalbuilder.md) - -# Class: ProposalBuilder - -Builder class to construct proposals from JSON or transaction objects. - -## Hierarchy - -* **ProposalBuilder** - -## Index - -### Constructors - -* [constructor](_proposals_.proposalbuilder.md#constructor) - -### Properties - -* [registryAdditions](_proposals_.proposalbuilder.md#readonly-registryadditions) - -### Methods - -* [addJsonTx](_proposals_.proposalbuilder.md#addjsontx) -* [addProxyRepointingTx](_proposals_.proposalbuilder.md#addproxyrepointingtx) -* [addTx](_proposals_.proposalbuilder.md#addtx) -* [addWeb3Tx](_proposals_.proposalbuilder.md#addweb3tx) -* [build](_proposals_.proposalbuilder.md#build) -* [fromJsonTx](_proposals_.proposalbuilder.md#fromjsontx) -* [fromWeb3tx](_proposals_.proposalbuilder.md#fromweb3tx) -* [getRegistryAddition](_proposals_.proposalbuilder.md#getregistryaddition) -* [isRegistered](_proposals_.proposalbuilder.md#isregistered) -* [setRegistryAddition](_proposals_.proposalbuilder.md#setregistryaddition) - -## Constructors - -### constructor - -\+ **new ProposalBuilder**(`kit`: ContractKit, `builders`: Array‹function›, `registryAdditions`: RegistryAdditions): *[ProposalBuilder](_proposals_.proposalbuilder.md)* - -*Defined in [proposals.ts:212](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L212)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`kit` | ContractKit | - | -`builders` | Array‹function› | [] | -`registryAdditions` | RegistryAdditions | {} | - -**Returns:** *[ProposalBuilder](_proposals_.proposalbuilder.md)* - -## Properties - -### `Readonly` registryAdditions - -• **registryAdditions**: *RegistryAdditions* - -*Defined in [proposals.ts:216](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L216)* - -## Methods - -### addJsonTx - -▸ **addJsonTx**(`tx`: [ProposalTransactionJSON](../interfaces/_proposals_.proposaltransactionjson.md)): *number* - -*Defined in [proposals.ts:339](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L339)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | [ProposalTransactionJSON](../interfaces/_proposals_.proposaltransactionjson.md) | - -**Returns:** *number* - -___ - -### addProxyRepointingTx - -▸ **addProxyRepointingTx**(`contract`: CeloContract, `newImplementationAddress`: string): *void* - -*Defined in [proposals.ts:247](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L247)* - -Adds a transaction to set the implementation on a proxy to the given address. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`contract` | CeloContract | Celo contract name of the proxy which should have its implementation set. | -`newImplementationAddress` | string | Address of the new contract implementation. | - -**Returns:** *void* - -___ - -### addTx - -▸ **addTx**(`tx`: CeloTransactionObject‹any›, `params`: Partial‹ProposalTxParams›): *void* - -*Defined in [proposals.ts:273](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L273)* - -Adds a Celo transaction to the list for proposal construction. - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`tx` | CeloTransactionObject‹any› | - | A Celo transaction object to add to the proposal. | -`params` | Partial‹ProposalTxParams› | {} | Optional parameters for how the transaction should be executed. | - -**Returns:** *void* - -___ - -### addWeb3Tx - -▸ **addWeb3Tx**(`tx`: CeloTxObject‹any›, `params`: ProposalTxParams): *number* - -*Defined in [proposals.ts:265](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L265)* - -Adds a Web3 transaction to the list for proposal construction. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tx` | CeloTxObject‹any› | A Web3 transaction object to add to the proposal. | -`params` | ProposalTxParams | Parameters for how the transaction should be executed. | - -**Returns:** *number* - -___ - -### build - -▸ **build**(): *Promise‹ProposalTransaction[]›* - -*Defined in [proposals.ts:223](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L223)* - -Build calls all of the added build steps and returns the final proposal. - -**Returns:** *Promise‹ProposalTransaction[]›* - -A constructed Proposal object (i.e. a list of ProposalTransaction) - -___ - -### fromJsonTx - -▸ **fromJsonTx**(`tx`: [ProposalTransactionJSON](../interfaces/_proposals_.proposaltransactionjson.md)): *Promise‹ProposalTransaction›* - -*Defined in [proposals.ts:293](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L293)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | [ProposalTransactionJSON](../interfaces/_proposals_.proposaltransactionjson.md) | - -**Returns:** *Promise‹ProposalTransaction›* - -___ - -### fromWeb3tx - -▸ **fromWeb3tx**(`tx`: CeloTxObject‹any›, `params`: ProposalTxParams): *ProposalTransaction* - -*Defined in [proposals.ts:236](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L236)* - -Converts a Web3 transaction into a proposal transaction object. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`tx` | CeloTxObject‹any› | A Web3 transaction object to convert. | -`params` | ProposalTxParams | Parameters for how the transaction should be executed. | - -**Returns:** *ProposalTransaction* - -___ - -### getRegistryAddition - -▸ **getRegistryAddition**(`contract`: CeloContract): *string | undefined* - -*Defined in [proposals.ts:286](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L286)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | CeloContract | - -**Returns:** *string | undefined* - -___ - -### isRegistered - -▸ **isRegistered**(`contract`: CeloContract): *boolean* - -*Defined in [proposals.ts:289](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L289)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | CeloContract | - -**Returns:** *boolean* - -___ - -### setRegistryAddition - -▸ **setRegistryAddition**(`contract`: CeloContract, `address`: string): *string* - -*Defined in [proposals.ts:283](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L283)* - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | CeloContract | -`address` | string | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/governance/interfaces/_proposals_.proposaltransactionjson.md b/packages/docs/sdk/docs/governance/interfaces/_proposals_.proposaltransactionjson.md deleted file mode 100644 index 4530ec3f8f2..00000000000 --- a/packages/docs/sdk/docs/governance/interfaces/_proposals_.proposaltransactionjson.md +++ /dev/null @@ -1,69 +0,0 @@ -[@celo/governance](../README.md) › ["proposals"](../modules/_proposals_.md) › [ProposalTransactionJSON](_proposals_.proposaltransactionjson.md) - -# Interface: ProposalTransactionJSON - -JSON encoding of a proposal transaction. - -Example: -```json -{ - "contract": "Election", - "function": "setElectableValidators", - "args": [ "1", "120" ], - "value": "0" -} -``` - -## Hierarchy - -* **ProposalTransactionJSON** - -## Index - -### Properties - -* [args](_proposals_.proposaltransactionjson.md#args) -* [contract](_proposals_.proposaltransactionjson.md#contract) -* [function](_proposals_.proposaltransactionjson.md#function) -* [params](_proposals_.proposaltransactionjson.md#optional-params) -* [value](_proposals_.proposaltransactionjson.md#value) - -## Properties - -### args - -• **args**: *any[]* - -*Defined in [proposals.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L72)* - -___ - -### contract - -• **contract**: *CeloContract* - -*Defined in [proposals.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L70)* - -___ - -### function - -• **function**: *string* - -*Defined in [proposals.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L71)* - -___ - -### `Optional` params - -• **params**? : *Record‹string, any›* - -*Defined in [proposals.ts:73](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L73)* - -___ - -### value - -• **value**: *string* - -*Defined in [proposals.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L74)* diff --git a/packages/docs/sdk/docs/governance/modules/_proposals_.md b/packages/docs/sdk/docs/governance/modules/_proposals_.md deleted file mode 100644 index 35ddfbf966e..00000000000 --- a/packages/docs/sdk/docs/governance/modules/_proposals_.md +++ /dev/null @@ -1,90 +0,0 @@ -[@celo/governance](../README.md) › ["proposals"](_proposals_.md) - -# Module: "proposals" - -## Index - -### Classes - -* [InteractiveProposalBuilder](../classes/_proposals_.interactiveproposalbuilder.md) -* [ProposalBuilder](../classes/_proposals_.proposalbuilder.md) - -### Interfaces - -* [ProposalTransactionJSON](../interfaces/_proposals_.proposaltransactionjson.md) - -### Variables - -* [hotfixExecuteAbi](_proposals_.md#const-hotfixexecuteabi) - -### Functions - -* [hotfixToEncodedParams](_proposals_.md#const-hotfixtoencodedparams) -* [hotfixToHash](_proposals_.md#const-hotfixtohash) -* [proposalToJSON](_proposals_.md#const-proposaltojson) - -## Variables - -### `Const` hotfixExecuteAbi - -• **hotfixExecuteAbi**: *AbiItem* = getAbiByName(GovernanceABI, 'executeHotfix') - -*Defined in [proposals.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L45)* - -## Functions - -### `Const` hotfixToEncodedParams - -▸ **hotfixToEncodedParams**(`kit`: ContractKit, `proposal`: Proposal, `salt`: Buffer): *string* - -*Defined in [proposals.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L47)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | ContractKit | -`proposal` | Proposal | -`salt` | Buffer | - -**Returns:** *string* - -___ - -### `Const` hotfixToHash - -▸ **hotfixToHash**(`kit`: ContractKit, `proposal`: Proposal, `salt`: Buffer): *Buffer‹›* - -*Defined in [proposals.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L53)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kit` | ContractKit | -`proposal` | Proposal | -`salt` | Buffer | - -**Returns:** *Buffer‹›* - -___ - -### `Const` proposalToJSON - -▸ **proposalToJSON**(`kit`: ContractKit, `proposal`: Proposal, `registryAdditions?`: RegistryAdditions): *Promise‹[ProposalTransactionJSON](../interfaces/_proposals_.proposaltransactionjson.md)[]›* - -*Defined in [proposals.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/governance/src/proposals.ts#L123)* - -Convert a compiled proposal to a human-readable JSON form using network information. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`kit` | ContractKit | Contract kit instance used to resolve addresses to contract names. | -`proposal` | Proposal | A constructed proposal object. | -`registryAdditions?` | RegistryAdditions | Registry remappings prior to parsing the proposal as a map of name to corresponding contract address. | - -**Returns:** *Promise‹[ProposalTransactionJSON](../interfaces/_proposals_.proposaltransactionjson.md)[]›* - -The JSON encoding of the proposal. diff --git a/packages/docs/sdk/docs/identity/README.md b/packages/docs/sdk/docs/identity/README.md deleted file mode 100644 index f5b83cbfc25..00000000000 --- a/packages/docs/sdk/docs/identity/README.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/identity](README.md) - -# @celo/identity - -## Index - -### Modules - -* ["odis/bls-blinding-client"](modules/_odis_bls_blinding_client_.md) -* ["odis/circuit-breaker"](modules/_odis_circuit_breaker_.md) -* ["odis/circuit-breaker.mock"](modules/_odis_circuit_breaker_mock_.md) -* ["odis/matchmaking"](modules/_odis_matchmaking_.md) -* ["odis/phone-number-identifier"](modules/_odis_phone_number_identifier_.md) -* ["odis/query"](modules/_odis_query_.md) -* ["offchain-data-wrapper"](modules/_offchain_data_wrapper_.md) -* ["offchain/accessors/authorized-signer"](modules/_offchain_accessors_authorized_signer_.md) -* ["offchain/accessors/binary"](modules/_offchain_accessors_binary_.md) -* ["offchain/accessors/errors"](modules/_offchain_accessors_errors_.md) -* ["offchain/accessors/interfaces"](modules/_offchain_accessors_interfaces_.md) -* ["offchain/accessors/name"](modules/_offchain_accessors_name_.md) -* ["offchain/accessors/pictures"](modules/_offchain_accessors_pictures_.md) -* ["offchain/accessors/simple"](modules/_offchain_accessors_simple_.md) -* ["offchain/storage-writers"](modules/_offchain_storage_writers_.md) -* ["offchain/utils"](modules/_offchain_utils_.md) -* ["test-utils/setup.global"](modules/_test_utils_setup_global_.md) -* ["test-utils/teardown.global"](modules/_test_utils_teardown_global_.md) diff --git a/packages/docs/sdk/docs/identity/classes/_odis_bls_blinding_client_.wasmblsblindingclient.md b/packages/docs/sdk/docs/identity/classes/_odis_bls_blinding_client_.wasmblsblindingclient.md deleted file mode 100644 index 48bb29242a6..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_odis_bls_blinding_client_.wasmblsblindingclient.md +++ /dev/null @@ -1,71 +0,0 @@ -[@celo/identity](../README.md) › ["odis/bls-blinding-client"](../modules/_odis_bls_blinding_client_.md) › [WasmBlsBlindingClient](_odis_bls_blinding_client_.wasmblsblindingclient.md) - -# Class: WasmBlsBlindingClient - -## Hierarchy - -* **WasmBlsBlindingClient** - -## Implements - -* [BlsBlindingClient](../interfaces/_odis_bls_blinding_client_.blsblindingclient.md) - -## Index - -### Constructors - -* [constructor](_odis_bls_blinding_client_.wasmblsblindingclient.md#constructor) - -### Methods - -* [blindMessage](_odis_bls_blinding_client_.wasmblsblindingclient.md#blindmessage) -* [unblindAndVerifyMessage](_odis_bls_blinding_client_.wasmblsblindingclient.md#unblindandverifymessage) - -## Constructors - -### constructor - -\+ **new WasmBlsBlindingClient**(`odisPubKey`: string): *[WasmBlsBlindingClient](_odis_bls_blinding_client_.wasmblsblindingclient.md)* - -*Defined in [packages/sdk/identity/src/odis/bls-blinding-client.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/bls-blinding-client.ts#L25)* - -**Parameters:** - -Name | Type | ------- | ------ | -`odisPubKey` | string | - -**Returns:** *[WasmBlsBlindingClient](_odis_bls_blinding_client_.wasmblsblindingclient.md)* - -## Methods - -### blindMessage - -▸ **blindMessage**(`base64PhoneNumber`: string, `seed?`: Buffer): *Promise‹string›* - -*Defined in [packages/sdk/identity/src/odis/bls-blinding-client.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/bls-blinding-client.ts#L39)* - -**Parameters:** - -Name | Type | ------- | ------ | -`base64PhoneNumber` | string | -`seed?` | Buffer | - -**Returns:** *Promise‹string›* - -___ - -### unblindAndVerifyMessage - -▸ **unblindAndVerifyMessage**(`base64BlindSig`: string): *Promise‹string›* - -*Defined in [packages/sdk/identity/src/odis/bls-blinding-client.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/bls-blinding-client.ts#L52)* - -**Parameters:** - -Name | Type | ------- | ------ | -`base64BlindSig` | string | - -**Returns:** *Promise‹string›* diff --git a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerclient.md b/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerclient.md deleted file mode 100644 index f2b1a4fe002..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerclient.md +++ /dev/null @@ -1,119 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerClient](_odis_circuit_breaker_.circuitbreakerclient.md) - -# Class: CircuitBreakerClient - -Client for interacting with a circuit breaker service for encrypted cloud backups. - -**`remarks`** A circuit breaker is a service supporting a public decryption function backed by an HSM -key. If the need arises, the circuit breaker operator may take the decryption function offline. -A client can encrypt data to the circuit breaker public key and store it in a non-public place. -This data will then be available under normal circumstances, but become unavailable in the case -of an emergency. - -It is intended for use in password-based key derivation when ODIS is used as a key hardening -function. Clients may include in their key dervivation a random value which they encrypt to the -circuit breaker public key. This allows the circuit breaker operator to disable key derivation, -by restricting access to the encrypted keying material, in the event that ODIS is conpromised. -This acts as a safety measure to allow wallet providers, or other users of ODIS key hardening, to -prevent attackers from being able to brute force their users' derived keys in the event that -ODIS is compromised such that it can no longer add to the key hardening. - -The circuit breaker service is designed for use in the encrypted cloud backup protocol. More -information about encrypted cloud backup and the circuit breaker service can be found in the -official [Celo documentation](https://docs.celo.org/celo-codebase/protocol/identity/encrypted-cloud-backup) - -## Hierarchy - -* **CircuitBreakerClient** - -## Index - -### Constructors - -* [constructor](_odis_circuit_breaker_.circuitbreakerclient.md#constructor) - -### Properties - -* [environment](_odis_circuit_breaker_.circuitbreakerclient.md#readonly-environment) - -### Methods - -* [status](_odis_circuit_breaker_.circuitbreakerclient.md#status) -* [unwrapKey](_odis_circuit_breaker_.circuitbreakerclient.md#unwrapkey) -* [wrapKey](_odis_circuit_breaker_.circuitbreakerclient.md#wrapkey) - -## Constructors - -### constructor - -\+ **new CircuitBreakerClient**(`environment`: [CircuitBreakerServiceContext](../interfaces/_odis_circuit_breaker_.circuitbreakerservicecontext.md)): *[CircuitBreakerClient](_odis_circuit_breaker_.circuitbreakerclient.md)* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:135](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L135)* - -**Parameters:** - -Name | Type | ------- | ------ | -`environment` | [CircuitBreakerServiceContext](../interfaces/_odis_circuit_breaker_.circuitbreakerservicecontext.md) | - -**Returns:** *[CircuitBreakerClient](_odis_circuit_breaker_.circuitbreakerclient.md)* - -## Properties - -### `Readonly` environment - -• **environment**: *[CircuitBreakerServiceContext](../interfaces/_odis_circuit_breaker_.circuitbreakerservicecontext.md)* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:136](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L136)* - -## Methods - -### status - -▸ **status**(): *Promise‹Result‹[CircuitBreakerKeyStatus](../enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md), [CircuitBreakerError](../modules/_odis_circuit_breaker_.md#circuitbreakererror)››* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:148](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L148)* - -Check the current status of the circuit breaker service. Result will reflect whether or not -the circuit breaker keys are currently available. - -**Returns:** *Promise‹Result‹[CircuitBreakerKeyStatus](../enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md), [CircuitBreakerError](../modules/_odis_circuit_breaker_.md#circuitbreakererror)››* - -___ - -### unwrapKey - -▸ **unwrapKey**(`ciphertext`: Buffer): *Promise‹Result‹Buffer, [CircuitBreakerError](../modules/_odis_circuit_breaker_.md#circuitbreakererror)››* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:211](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L211)* - -Request the circuit breaker service to decrypt the provided encrypted key value - -**Parameters:** - -Name | Type | ------- | ------ | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Result‹Buffer, [CircuitBreakerError](../modules/_odis_circuit_breaker_.md#circuitbreakererror)››* - -___ - -### wrapKey - -▸ **wrapKey**(`plaintext`: Buffer): *Result‹Buffer, [EncryptionError](_odis_circuit_breaker_.encryptionerror.md)›* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:192](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L192)* - -RSA-OAEP-256 Encrypt the provided key value against the public key of the circuit breaker. - -**`remarks`** Note that this is an entirely local procedure and does not require interaction with -the circuit breaker service. Encryption occurs only against the service public key. - -**Parameters:** - -Name | Type | ------- | ------ | -`plaintext` | Buffer | - -**Returns:** *Result‹Buffer, [EncryptionError](_odis_circuit_breaker_.encryptionerror.md)›* diff --git a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerserviceerror.md b/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerserviceerror.md deleted file mode 100644 index e3e2bfb104e..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerserviceerror.md +++ /dev/null @@ -1,103 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerServiceError](_odis_circuit_breaker_.circuitbreakerserviceerror.md) - -# Class: CircuitBreakerServiceError - -## Hierarchy - -* RootError‹[SERVICE_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#service_error)› - - ↳ **CircuitBreakerServiceError** - -## Implements - -* BaseError‹[SERVICE_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#service_error)› - -## Index - -### Constructors - -* [constructor](_odis_circuit_breaker_.circuitbreakerserviceerror.md#constructor) - -### Properties - -* [error](_odis_circuit_breaker_.circuitbreakerserviceerror.md#optional-readonly-error) -* [errorType](_odis_circuit_breaker_.circuitbreakerserviceerror.md#readonly-errortype) -* [message](_odis_circuit_breaker_.circuitbreakerserviceerror.md#message) -* [name](_odis_circuit_breaker_.circuitbreakerserviceerror.md#name) -* [stack](_odis_circuit_breaker_.circuitbreakerserviceerror.md#optional-stack) -* [status](_odis_circuit_breaker_.circuitbreakerserviceerror.md#readonly-status) - -## Constructors - -### constructor - -\+ **new CircuitBreakerServiceError**(`status`: number, `error?`: Error): *[CircuitBreakerServiceError](_odis_circuit_breaker_.circuitbreakerserviceerror.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:83](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L83)* - -**Parameters:** - -Name | Type | ------- | ------ | -`status` | number | -`error?` | Error | - -**Returns:** *[CircuitBreakerServiceError](_odis_circuit_breaker_.circuitbreakerserviceerror.md)* - -## Properties - -### `Optional` `Readonly` error - -• **error**? : *Error* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:84](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L84)* - -___ - -### `Readonly` errorType - -• **errorType**: *[SERVICE_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#service_error)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 - -___ - -### `Readonly` status - -• **status**: *number* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:84](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L84)* diff --git a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerunavailableerror.md b/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerunavailableerror.md deleted file mode 100644 index 2d0698658e3..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.circuitbreakerunavailableerror.md +++ /dev/null @@ -1,93 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerUnavailableError](_odis_circuit_breaker_.circuitbreakerunavailableerror.md) - -# Class: CircuitBreakerUnavailableError - -## Hierarchy - -* RootError‹[UNAVAILABLE_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#unavailable_error)› - - ↳ **CircuitBreakerUnavailableError** - -## Implements - -* BaseError‹[UNAVAILABLE_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#unavailable_error)› - -## Index - -### Constructors - -* [constructor](_odis_circuit_breaker_.circuitbreakerunavailableerror.md#constructor) - -### Properties - -* [errorType](_odis_circuit_breaker_.circuitbreakerunavailableerror.md#readonly-errortype) -* [message](_odis_circuit_breaker_.circuitbreakerunavailableerror.md#message) -* [name](_odis_circuit_breaker_.circuitbreakerunavailableerror.md#name) -* [stack](_odis_circuit_breaker_.circuitbreakerunavailableerror.md#optional-stack) -* [status](_odis_circuit_breaker_.circuitbreakerunavailableerror.md#readonly-status) - -## Constructors - -### constructor - -\+ **new CircuitBreakerUnavailableError**(`status`: [CircuitBreakerKeyStatus](../enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md)): *[CircuitBreakerUnavailableError](_odis_circuit_breaker_.circuitbreakerunavailableerror.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:89](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L89)* - -**Parameters:** - -Name | Type | ------- | ------ | -`status` | [CircuitBreakerKeyStatus](../enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md) | - -**Returns:** *[CircuitBreakerUnavailableError](_odis_circuit_breaker_.circuitbreakerunavailableerror.md)* - -## Properties - -### `Readonly` errorType - -• **errorType**: *[UNAVAILABLE_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#unavailable_error)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 - -___ - -### `Readonly` status - -• **status**: *[CircuitBreakerKeyStatus](../enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md)* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:90](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L90)* diff --git a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.encryptionerror.md b/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.encryptionerror.md deleted file mode 100644 index 4ee5172fba6..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.encryptionerror.md +++ /dev/null @@ -1,93 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [EncryptionError](_odis_circuit_breaker_.encryptionerror.md) - -# Class: EncryptionError - -## Hierarchy - -* RootError‹[ENCRYPTION_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#encryption_error)› - - ↳ **EncryptionError** - -## Implements - -* BaseError‹[ENCRYPTION_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#encryption_error)› - -## Index - -### Constructors - -* [constructor](_odis_circuit_breaker_.encryptionerror.md#constructor) - -### Properties - -* [error](_odis_circuit_breaker_.encryptionerror.md#optional-readonly-error) -* [errorType](_odis_circuit_breaker_.encryptionerror.md#readonly-errortype) -* [message](_odis_circuit_breaker_.encryptionerror.md#message) -* [name](_odis_circuit_breaker_.encryptionerror.md#name) -* [stack](_odis_circuit_breaker_.encryptionerror.md#optional-stack) - -## Constructors - -### constructor - -\+ **new EncryptionError**(`error?`: Error): *[EncryptionError](_odis_circuit_breaker_.encryptionerror.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:95](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L95)* - -**Parameters:** - -Name | Type | ------- | ------ | -`error?` | Error | - -**Returns:** *[EncryptionError](_odis_circuit_breaker_.encryptionerror.md)* - -## Properties - -### `Optional` `Readonly` error - -• **error**? : *Error* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L96)* - -___ - -### `Readonly` errorType - -• **errorType**: *[ENCRYPTION_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#encryption_error)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.fetcherror.md b/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.fetcherror.md deleted file mode 100644 index fc5bb078910..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_.fetcherror.md +++ /dev/null @@ -1,93 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [FetchError](_odis_circuit_breaker_.fetcherror.md) - -# Class: FetchError - -## Hierarchy - -* RootError‹[FETCH_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#fetch_error)› - - ↳ **FetchError** - -## Implements - -* BaseError‹[FETCH_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#fetch_error)› - -## Index - -### Constructors - -* [constructor](_odis_circuit_breaker_.fetcherror.md#constructor) - -### Properties - -* [error](_odis_circuit_breaker_.fetcherror.md#optional-readonly-error) -* [errorType](_odis_circuit_breaker_.fetcherror.md#readonly-errortype) -* [message](_odis_circuit_breaker_.fetcherror.md#message) -* [name](_odis_circuit_breaker_.fetcherror.md#name) -* [stack](_odis_circuit_breaker_.fetcherror.md#optional-stack) - -## Constructors - -### constructor - -\+ **new FetchError**(`error?`: Error): *[FetchError](_odis_circuit_breaker_.fetcherror.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:101](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L101)* - -**Parameters:** - -Name | Type | ------- | ------ | -`error?` | Error | - -**Returns:** *[FetchError](_odis_circuit_breaker_.fetcherror.md)* - -## Properties - -### `Optional` `Readonly` error - -• **error**? : *Error* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:102](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L102)* - -___ - -### `Readonly` errorType - -• **errorType**: *[FETCH_ERROR](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md#fetch_error)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_mock_.mockcircuitbreaker.md b/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_mock_.mockcircuitbreaker.md deleted file mode 100644 index 599b1f18665..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_odis_circuit_breaker_mock_.mockcircuitbreaker.md +++ /dev/null @@ -1,163 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker.mock"](../modules/_odis_circuit_breaker_mock_.md) › [MockCircuitBreaker](_odis_circuit_breaker_mock_.mockcircuitbreaker.md) - -# Class: MockCircuitBreaker - -Mock circuit breaker implementation based on Valora implementaion -github.com/valora-inc/wallet/tree/main/packages/cloud-functions/src/circuitBreaker/circuitBreaker.ts - -## Hierarchy - -* **MockCircuitBreaker** - -## Index - -### Properties - -* [keyStatus](_odis_circuit_breaker_mock_.mockcircuitbreaker.md#keystatus) -* [environment](_odis_circuit_breaker_mock_.mockcircuitbreaker.md#static-readonly-environment) -* [privateKey](_odis_circuit_breaker_mock_.mockcircuitbreaker.md#static-readonly-privatekey) -* [publicKey](_odis_circuit_breaker_mock_.mockcircuitbreaker.md#static-readonly-publickey) - -### Methods - -* [install](_odis_circuit_breaker_mock_.mockcircuitbreaker.md#install) -* [installStatusEndpoint](_odis_circuit_breaker_mock_.mockcircuitbreaker.md#installstatusendpoint) -* [installUnwrapKeyEndpoint](_odis_circuit_breaker_mock_.mockcircuitbreaker.md#installunwrapkeyendpoint) -* [status](_odis_circuit_breaker_mock_.mockcircuitbreaker.md#status) -* [unwrapKey](_odis_circuit_breaker_mock_.mockcircuitbreaker.md#unwrapkey) - -## Properties - -### keyStatus - -• **keyStatus**: *[CircuitBreakerKeyStatus](../enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md)* = CircuitBreakerKeyStatus.ENABLED - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L53)* - -___ - -### `Static` `Readonly` environment - -▪ **environment**: *[CircuitBreakerServiceContext](../interfaces/_odis_circuit_breaker_.circuitbreakerservicecontext.md)* = MOCK_CIRCUIT_BREAKER_ENVIRONMENT - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L51)* - -___ - -### `Static` `Readonly` privateKey - -▪ **privateKey**: *"-----BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMa3FQ+WO36gcUF/ -dGsNkc31NtOIjSQrhu/TZnZY/uRT89AKKRao2X39WMZVe4YyV/ClxZmuNbAlr6QG -VRhFcf+KddZQo7k+pOdpRdLUAtqwYBS/NHPdW/MLGmMqyNVLz+ACgltjYibCivjf -Y4us6yw2gruNuXVOBpXjvIYIrAX3AgMBAAECgYBGPqv8QZAweAjxLVv7B+X112wV -JN033wcpOiKrTVR1ZFP4w864iuGvTuKV4dvzmVJK6F7Mr6+c4AWRxwdHuCzOlwxj -O9RySFAXhoENu70zg8W2w4i8GMHsmdnNk045cF01Mb3GtQ6Y3uGb637XYTIwMEbC -Q74TbkrfPZPcSIpPEQJBAP4VModTr47oNvdyJITQ3fzIarRSDU0deZTpn6MXB3a1 -abOAzlqYK3CSvLyyM9GOB9C5wvIZev+aNU9SkqPzU38CQQDINu7nOqS2X8UXQ5sS -wFrnoBQcU78i7Jaopvw0kOvkvklHlKVvXVkWP8PaWYdUAO9fpEdKdRnfaOEnqBwT -aymJAkEAgTXmbEtyjAoracryJ1jQiyyglvLjMMQ8gC4OsLGVahj3mAF47zlTXfxB -XvSAxaCk+NB/Av9SPYn+ckhbqmSjoQJAYb6H1bVIkoyg0OG9hGMKPkhlaQrtpmQw -jTewqw0RTQQlDGAigALnqjgJKsFIkxc9xciS0WPn9KzkNxMYWdaYWQJBAI8asXXb -XF5Lg2AAM2xJ/SS+h+si4f70eZey4vo9pWB3Q+VKbtRZu2pCjlR1A1nIqigJxdlc -1jHX+4GiW+t0w8Q= ------END PRIVATE KEY-----"* = MOCK_CIRCUIT_BREAKER_PRIVATE_KEY - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L50)* - -___ - -### `Static` `Readonly` publicKey - -▪ **publicKey**: *"-----BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGtxUPljt+oHFBf3RrDZHN9TbT -iI0kK4bv02Z2WP7kU/PQCikWqNl9/VjGVXuGMlfwpcWZrjWwJa+kBlUYRXH/inXW -UKO5PqTnaUXS1ALasGAUvzRz3VvzCxpjKsjVS8/gAoJbY2Imwor432OLrOssNoK7 -jbl1TgaV47yGCKwF9wIDAQAB ------END PUBLIC KEY-----"* = MOCK_CIRCUIT_BREAKER_PUBLIC_KEY - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L49)* - -## Methods - -### install - -▸ **install**(`mock`: typeof fetchMock): *void* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:133](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L133)* - -**Parameters:** - -Name | Type | ------- | ------ | -`mock` | typeof fetchMock | - -**Returns:** *void* - -___ - -### installStatusEndpoint - -▸ **installStatusEndpoint**(`mock`: typeof fetchMock, `override?`: any): *void* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L105)* - -**Parameters:** - -Name | Type | ------- | ------ | -`mock` | typeof fetchMock | -`override?` | any | - -**Returns:** *void* - -___ - -### installUnwrapKeyEndpoint - -▸ **installUnwrapKeyEndpoint**(`mock`: typeof fetchMock, `override?`: any): *void* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:119](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L119)* - -**Parameters:** - -Name | Type | ------- | ------ | -`mock` | typeof fetchMock | -`override?` | any | - -**Returns:** *void* - -___ - -### status - -▸ **status**(): *object* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L55)* - -**Returns:** *object* - -* **body**: *[CircuitBreakerStatusResponse](../interfaces/_odis_circuit_breaker_.circuitbreakerstatusresponse.md)* - -* **status**: *number* - -___ - -### unwrapKey - -▸ **unwrapKey**(`req`: [CircuitBreakerUnwrapKeyRequest](../interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyrequest.md)): *object* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L62)* - -**Parameters:** - -Name | Type | ------- | ------ | -`req` | [CircuitBreakerUnwrapKeyRequest](../interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyrequest.md) | - -**Returns:** *object* - -* **body**: *[CircuitBreakerUnwrapKeyResponse](../interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md)* - -* **status**: *number* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md deleted file mode 100644 index 781268c57b6..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md +++ /dev/null @@ -1,109 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/authorized-signer"](../modules/_offchain_accessors_authorized_signer_.md) › [AuthorizedSignerAccessor](_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md) - -# Class: AuthorizedSignerAccessor - -## Hierarchy - -* **AuthorizedSignerAccessor** - -## Index - -### Constructors - -* [constructor](_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md#constructor) - -### Properties - -* [basePath](_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md#basepath) -* [read](_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md#read) -* [wrapper](_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md#readonly-wrapper) - -### Methods - -* [readAsResult](_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md#readasresult) -* [write](_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md#write) - -## Constructors - -### constructor - -\+ **new AuthorizedSignerAccessor**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)): *[AuthorizedSignerAccessor](_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/authorized-signer.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/authorized-signer.ts#L17)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | - -**Returns:** *[AuthorizedSignerAccessor](_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md)* - -## Properties - -### basePath - -• **basePath**: *string* = "/account/authorizedSigners" - -*Defined in [packages/sdk/identity/src/offchain/accessors/authorized-signer.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/authorized-signer.ts#L17)* - -___ - -### read - -• **read**: *function* = makeAsyncThrowable(this.readAsResult.bind(this)) - -*Defined in [packages/sdk/identity/src/offchain/accessors/authorized-signer.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/authorized-signer.ts#L35)* - -#### Type declaration: - -▸ (...`args`: TArgs): *Promise‹TResult›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -___ - -### `Readonly` wrapper - -• **wrapper**: *[OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/authorized-signer.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/authorized-signer.ts#L18)* - -## Methods - -### readAsResult - -▸ **readAsResult**(`account`: Address, `signer`: Address): *Promise‹Result‹object, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/authorized-signer.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/authorized-signer.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`signer` | Address | - -**Returns:** *Promise‹Result‹object, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -___ - -### write - -▸ **write**(`signer`: Address, `proofOfPossession`: string, `filteredDataPaths`: string): *Promise‹[OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors) | void›* - -*Defined in [packages/sdk/identity/src/offchain/accessors/authorized-signer.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/authorized-signer.ts#L37)* - -**Parameters:** - -Name | Type | ------- | ------ | -`signer` | Address | -`proofOfPossession` | string | -`filteredDataPaths` | string | - -**Returns:** *Promise‹[OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors) | void›* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_binary_.privatebinaryaccessor.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_binary_.privatebinaryaccessor.md deleted file mode 100644 index d701e5290f2..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_binary_.privatebinaryaccessor.md +++ /dev/null @@ -1,137 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/binary"](../modules/_offchain_accessors_binary_.md) › [PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md) - -# Class: PrivateBinaryAccessor - -Schema for writing any encrypted binary data. - -## Hierarchy - -* **PrivateBinaryAccessor** - - ↳ [PrivatePictureAccessor](_offchain_accessors_pictures_.privatepictureaccessor.md) - -## Implements - -* [PrivateAccessor](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md)‹Buffer› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_binary_.privatebinaryaccessor.md#constructor) - -### Properties - -* [dataPath](_offchain_accessors_binary_.privatebinaryaccessor.md#readonly-datapath) -* [read](_offchain_accessors_binary_.privatebinaryaccessor.md#read) -* [wrapper](_offchain_accessors_binary_.privatebinaryaccessor.md#readonly-wrapper) - -### Methods - -* [allowAccess](_offchain_accessors_binary_.privatebinaryaccessor.md#allowaccess) -* [readAsResult](_offchain_accessors_binary_.privatebinaryaccessor.md#readasresult) -* [write](_offchain_accessors_binary_.privatebinaryaccessor.md#write) - -## Constructors - -### constructor - -\+ **new PrivateBinaryAccessor**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md), `dataPath`: string): *[PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L41)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | -`dataPath` | string | - -**Returns:** *[PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md)* - -## Properties - -### `Readonly` dataPath - -• **dataPath**: *string* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L42)* - -___ - -### read - -• **read**: *function* = makeAsyncThrowable(this.readAsResult.bind(this)) - -*Implementation of [PrivateAccessor](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md).[read](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md#read)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L56)* - -#### Type declaration: - -▸ (...`args`: TArgs): *Promise‹TResult›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -___ - -### `Readonly` wrapper - -• **wrapper**: *[OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L42)* - -## Methods - -### allowAccess - -▸ **allowAccess**(`toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L48)* - -**Parameters:** - -Name | Type | ------- | ------ | -`toAddresses` | Address[] | -`symmetricKey?` | Buffer | - -**Returns:** *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -___ - -### readAsResult - -▸ **readAsResult**(`account`: Address): *Promise‹Result‹Buffer‹›, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L52)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹Result‹Buffer‹›, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -___ - -### write - -▸ **write**(`data`: Buffer, `toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L44)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | -`toAddresses` | Address[] | -`symmetricKey?` | Buffer | - -**Returns:** *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_binary_.publicbinaryaccessor.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_binary_.publicbinaryaccessor.md deleted file mode 100644 index 99ce2ef8ea3..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_binary_.publicbinaryaccessor.md +++ /dev/null @@ -1,117 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/binary"](../modules/_offchain_accessors_binary_.md) › [PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md) - -# Class: PublicBinaryAccessor - -Schema for writing any generic binary data - -## Hierarchy - -* **PublicBinaryAccessor** - - ↳ [PublicPictureAccessor](_offchain_accessors_pictures_.publicpictureaccessor.md) - -## Implements - -* [PublicAccessor](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md)‹Buffer› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_binary_.publicbinaryaccessor.md#constructor) - -### Properties - -* [dataPath](_offchain_accessors_binary_.publicbinaryaccessor.md#readonly-datapath) -* [read](_offchain_accessors_binary_.publicbinaryaccessor.md#read) -* [wrapper](_offchain_accessors_binary_.publicbinaryaccessor.md#readonly-wrapper) - -### Methods - -* [readAsResult](_offchain_accessors_binary_.publicbinaryaccessor.md#readasresult) -* [write](_offchain_accessors_binary_.publicbinaryaccessor.md#write) - -## Constructors - -### constructor - -\+ **new PublicBinaryAccessor**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md), `dataPath`: string): *[PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L11)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | -`dataPath` | string | - -**Returns:** *[PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md)* - -## Properties - -### `Readonly` dataPath - -• **dataPath**: *string* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L12)* - -___ - -### read - -• **read**: *function* = makeAsyncThrowable(this.readAsResult.bind(this)) - -*Implementation of [PublicAccessor](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md).[read](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md#read)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L35)* - -#### Type declaration: - -▸ (...`args`: TArgs): *Promise‹TResult›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -___ - -### `Readonly` wrapper - -• **wrapper**: *[OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L12)* - -## Methods - -### readAsResult - -▸ **readAsResult**(`account`: Address): *Promise‹OkResult‹Buffer‹›› | ErrorResult‹[OffchainError](_offchain_accessors_errors_.offchainerror.md)‹›››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L26)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹OkResult‹Buffer‹›› | ErrorResult‹[OffchainError](_offchain_accessors_errors_.offchainerror.md)‹›››* - -___ - -### write - -▸ **write**(`data`: Buffer): *Promise‹undefined | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L14)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | - -**Returns:** *Promise‹undefined | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹››* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.invaliddataerror.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.invaliddataerror.md deleted file mode 100644 index cb1974fdeb4..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.invaliddataerror.md +++ /dev/null @@ -1,78 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/errors"](../modules/_offchain_accessors_errors_.md) › [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md) - -# Class: InvalidDataError - -## Hierarchy - -* RootError‹[InvalidDataError](../enums/_offchain_accessors_errors_.schemaerrortypes.md#invaliddataerror)› - - ↳ **InvalidDataError** - -## Implements - -* BaseError‹[InvalidDataError](../enums/_offchain_accessors_errors_.schemaerrortypes.md#invaliddataerror)› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_errors_.invaliddataerror.md#constructor) - -### Properties - -* [errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype) -* [message](_offchain_accessors_errors_.invaliddataerror.md#message) -* [name](_offchain_accessors_errors_.invaliddataerror.md#name) -* [stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack) - -## Constructors - -### constructor - -\+ **new InvalidDataError**(): *[InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L13)* - -**Returns:** *[InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)* - -## Properties - -### `Readonly` errorType - -• **errorType**: *[InvalidDataError](../enums/_offchain_accessors_errors_.schemaerrortypes.md#invaliddataerror)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.invalidkey.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.invalidkey.md deleted file mode 100644 index 6c6784689f7..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.invalidkey.md +++ /dev/null @@ -1,78 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/errors"](../modules/_offchain_accessors_errors_.md) › [InvalidKey](_offchain_accessors_errors_.invalidkey.md) - -# Class: InvalidKey - -## Hierarchy - -* RootError‹[InvalidKey](../enums/_offchain_accessors_errors_.schemaerrortypes.md#invalidkey)› - - ↳ **InvalidKey** - -## Implements - -* BaseError‹[InvalidKey](../enums/_offchain_accessors_errors_.schemaerrortypes.md#invalidkey)› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_errors_.invalidkey.md#constructor) - -### Properties - -* [errorType](_offchain_accessors_errors_.invalidkey.md#readonly-errortype) -* [message](_offchain_accessors_errors_.invalidkey.md#message) -* [name](_offchain_accessors_errors_.invalidkey.md#name) -* [stack](_offchain_accessors_errors_.invalidkey.md#optional-stack) - -## Constructors - -### constructor - -\+ **new InvalidKey**(): *[InvalidKey](_offchain_accessors_errors_.invalidkey.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L38)* - -**Returns:** *[InvalidKey](_offchain_accessors_errors_.invalidkey.md)* - -## Properties - -### `Readonly` errorType - -• **errorType**: *[InvalidKey](../enums/_offchain_accessors_errors_.schemaerrortypes.md#invalidkey)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.offchainerror.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.offchainerror.md deleted file mode 100644 index 87ea94a28ea..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.offchainerror.md +++ /dev/null @@ -1,93 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/errors"](../modules/_offchain_accessors_errors_.md) › [OffchainError](_offchain_accessors_errors_.offchainerror.md) - -# Class: OffchainError - -## Hierarchy - -* RootError‹[OffchainError](../enums/_offchain_accessors_errors_.schemaerrortypes.md#offchainerror)› - - ↳ **OffchainError** - -## Implements - -* BaseError‹[OffchainError](../enums/_offchain_accessors_errors_.schemaerrortypes.md#offchainerror)› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_errors_.offchainerror.md#constructor) - -### Properties - -* [error](_offchain_accessors_errors_.offchainerror.md#readonly-error) -* [errorType](_offchain_accessors_errors_.offchainerror.md#readonly-errortype) -* [message](_offchain_accessors_errors_.offchainerror.md#message) -* [name](_offchain_accessors_errors_.offchainerror.md#name) -* [stack](_offchain_accessors_errors_.offchainerror.md#optional-stack) - -## Constructors - -### constructor - -\+ **new OffchainError**(`error`: [OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors)): *[OffchainError](_offchain_accessors_errors_.offchainerror.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L19)* - -**Parameters:** - -Name | Type | ------- | ------ | -`error` | [OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors) | - -**Returns:** *[OffchainError](_offchain_accessors_errors_.offchainerror.md)* - -## Properties - -### `Readonly` error - -• **error**: *[OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L20)* - -___ - -### `Readonly` errorType - -• **errorType**: *[OffchainError](../enums/_offchain_accessors_errors_.schemaerrortypes.md#offchainerror)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.unavailablekey.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.unavailablekey.md deleted file mode 100644 index 4c230a20519..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.unavailablekey.md +++ /dev/null @@ -1,93 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/errors"](../modules/_offchain_accessors_errors_.md) › [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md) - -# Class: UnavailableKey - -## Hierarchy - -* RootError‹[UnavailableKey](../enums/_offchain_accessors_errors_.schemaerrortypes.md#unavailablekey)› - - ↳ **UnavailableKey** - -## Implements - -* BaseError‹[UnavailableKey](../enums/_offchain_accessors_errors_.schemaerrortypes.md#unavailablekey)› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_errors_.unavailablekey.md#constructor) - -### Properties - -* [account](_offchain_accessors_errors_.unavailablekey.md#readonly-account) -* [errorType](_offchain_accessors_errors_.unavailablekey.md#readonly-errortype) -* [message](_offchain_accessors_errors_.unavailablekey.md#message) -* [name](_offchain_accessors_errors_.unavailablekey.md#name) -* [stack](_offchain_accessors_errors_.unavailablekey.md#optional-stack) - -## Constructors - -### constructor - -\+ **new UnavailableKey**(`account`: Address): *[UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L31)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *[UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)* - -## Properties - -### `Readonly` account - -• **account**: *Address* - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L32)* - -___ - -### `Readonly` errorType - -• **errorType**: *[UnavailableKey](../enums/_offchain_accessors_errors_.schemaerrortypes.md#unavailablekey)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.unknownciphertext.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.unknownciphertext.md deleted file mode 100644 index a73fbccb7ab..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_errors_.unknownciphertext.md +++ /dev/null @@ -1,78 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/errors"](../modules/_offchain_accessors_errors_.md) › [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md) - -# Class: UnknownCiphertext - -## Hierarchy - -* RootError‹[UnknownCiphertext](../enums/_offchain_accessors_errors_.schemaerrortypes.md#unknownciphertext)› - - ↳ **UnknownCiphertext** - -## Implements - -* BaseError‹[UnknownCiphertext](../enums/_offchain_accessors_errors_.schemaerrortypes.md#unknownciphertext)› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_errors_.unknownciphertext.md#constructor) - -### Properties - -* [errorType](_offchain_accessors_errors_.unknownciphertext.md#readonly-errortype) -* [message](_offchain_accessors_errors_.unknownciphertext.md#message) -* [name](_offchain_accessors_errors_.unknownciphertext.md#name) -* [stack](_offchain_accessors_errors_.unknownciphertext.md#optional-stack) - -## Constructors - -### constructor - -\+ **new UnknownCiphertext**(): *[UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L25)* - -**Returns:** *[UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)* - -## Properties - -### `Readonly` errorType - -• **errorType**: *[UnknownCiphertext](../enums/_offchain_accessors_errors_.schemaerrortypes.md#unknownciphertext)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_name_.privatenameaccessor.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_name_.privatenameaccessor.md deleted file mode 100644 index 18da59e6df9..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_name_.privatenameaccessor.md +++ /dev/null @@ -1,159 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/name"](../modules/_offchain_accessors_name_.md) › [PrivateNameAccessor](_offchain_accessors_name_.privatenameaccessor.md) - -# Class: PrivateNameAccessor - -## Hierarchy - -* [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md)‹[NameType](../modules/_offchain_accessors_name_.md#nametype)› - - ↳ **PrivateNameAccessor** - -## Implements - -* [PrivateAccessor](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md)‹[NameType](../modules/_offchain_accessors_name_.md#nametype)› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_name_.privatenameaccessor.md#constructor) - -### Properties - -* [dataPath](_offchain_accessors_name_.privatenameaccessor.md#readonly-datapath) -* [read](_offchain_accessors_name_.privatenameaccessor.md#read) -* [type](_offchain_accessors_name_.privatenameaccessor.md#readonly-type) -* [wrapper](_offchain_accessors_name_.privatenameaccessor.md#readonly-wrapper) - -### Methods - -* [allowAccess](_offchain_accessors_name_.privatenameaccessor.md#allowaccess) -* [readAsResult](_offchain_accessors_name_.privatenameaccessor.md#readasresult) -* [write](_offchain_accessors_name_.privatenameaccessor.md#write) - -## Constructors - -### constructor - -\+ **new PrivateNameAccessor**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)): *[PrivateNameAccessor](_offchain_accessors_name_.privatenameaccessor.md)* - -*Overrides [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md).[constructor](_offchain_accessors_simple_.privatesimpleaccessor.md#constructor)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/name.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/name.ts#L17)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | - -**Returns:** *[PrivateNameAccessor](_offchain_accessors_name_.privatenameaccessor.md)* - -## Properties - -### `Readonly` dataPath - -• **dataPath**: *string* - -*Inherited from [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md).[dataPath](_offchain_accessors_simple_.privatesimpleaccessor.md#readonly-datapath)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L78)* - -___ - -### read - -• **read**: *function* = makeAsyncThrowable(this.readAsResult.bind(this)) - -*Implementation of [PrivateAccessor](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md).[read](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md#read)* - -*Inherited from [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md).[read](_offchain_accessors_simple_.privatesimpleaccessor.md#read)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:103](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L103)* - -#### Type declaration: - -▸ (...`args`: TArgs): *Promise‹TResult›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -___ - -### `Readonly` type - -• **type**: *Type‹[NameType](../modules/_offchain_accessors_name_.md#nametype)›* - -*Inherited from [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md).[type](_offchain_accessors_simple_.privatesimpleaccessor.md#readonly-type)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L77)* - -___ - -### `Readonly` wrapper - -• **wrapper**: *[OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Overrides [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md).[wrapper](_offchain_accessors_simple_.privatesimpleaccessor.md#readonly-wrapper)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/name.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/name.ts#L18)* - -## Methods - -### allowAccess - -▸ **allowAccess**(`toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -*Inherited from [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md).[allowAccess](_offchain_accessors_simple_.privatesimpleaccessor.md#allowaccess)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:89](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L89)* - -**Parameters:** - -Name | Type | ------- | ------ | -`toAddresses` | Address[] | -`symmetricKey?` | Buffer | - -**Returns:** *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -___ - -### readAsResult - -▸ **readAsResult**(`account`: Address): *Promise‹Result‹[NameType](../modules/_offchain_accessors_name_.md#nametype), [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -*Inherited from [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md).[readAsResult](_offchain_accessors_simple_.privatesimpleaccessor.md#readasresult)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:93](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L93)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹Result‹[NameType](../modules/_offchain_accessors_name_.md#nametype), [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -___ - -### write - -▸ **write**(`data`: [NameType](../modules/_offchain_accessors_name_.md#nametype), `toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -*Inherited from [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md).[write](_offchain_accessors_simple_.privatesimpleaccessor.md#write)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L81)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | [NameType](../modules/_offchain_accessors_name_.md#nametype) | -`toAddresses` | Address[] | -`symmetricKey?` | Buffer | - -**Returns:** *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_name_.publicnameaccessor.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_name_.publicnameaccessor.md deleted file mode 100644 index 67660882900..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_name_.publicnameaccessor.md +++ /dev/null @@ -1,137 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/name"](../modules/_offchain_accessors_name_.md) › [PublicNameAccessor](_offchain_accessors_name_.publicnameaccessor.md) - -# Class: PublicNameAccessor - -## Hierarchy - -* [PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md)‹[NameType](../modules/_offchain_accessors_name_.md#nametype)› - - ↳ **PublicNameAccessor** - -## Implements - -* [PublicAccessor](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md)‹[NameType](../modules/_offchain_accessors_name_.md#nametype)› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_name_.publicnameaccessor.md#constructor) - -### Properties - -* [dataPath](_offchain_accessors_name_.publicnameaccessor.md#readonly-datapath) -* [read](_offchain_accessors_name_.publicnameaccessor.md#read) -* [type](_offchain_accessors_name_.publicnameaccessor.md#readonly-type) -* [wrapper](_offchain_accessors_name_.publicnameaccessor.md#readonly-wrapper) - -### Methods - -* [readAsResult](_offchain_accessors_name_.publicnameaccessor.md#readasresult) -* [write](_offchain_accessors_name_.publicnameaccessor.md#write) - -## Constructors - -### constructor - -\+ **new PublicNameAccessor**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)): *[PublicNameAccessor](_offchain_accessors_name_.publicnameaccessor.md)* - -*Overrides [PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md).[constructor](_offchain_accessors_simple_.publicsimpleaccessor.md#constructor)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/name.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/name.ts#L11)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | - -**Returns:** *[PublicNameAccessor](_offchain_accessors_name_.publicnameaccessor.md)* - -## Properties - -### `Readonly` dataPath - -• **dataPath**: *string* - -*Inherited from [PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md).[dataPath](_offchain_accessors_simple_.publicsimpleaccessor.md#readonly-datapath)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L27)* - -___ - -### read - -• **read**: *function* = makeAsyncThrowable(this.readAsResult.bind(this)) - -*Implementation of [PublicAccessor](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md).[read](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md#read)* - -*Inherited from [PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md).[read](_offchain_accessors_simple_.publicsimpleaccessor.md#read)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L67)* - -#### Type declaration: - -▸ (...`args`: TArgs): *Promise‹TResult›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -___ - -### `Readonly` type - -• **type**: *Type‹[NameType](../modules/_offchain_accessors_name_.md#nametype)›* - -*Inherited from [PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md).[type](_offchain_accessors_simple_.publicsimpleaccessor.md#readonly-type)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L26)* - -___ - -### `Readonly` wrapper - -• **wrapper**: *[OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Overrides [PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md).[wrapper](_offchain_accessors_simple_.publicsimpleaccessor.md#readonly-wrapper)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/name.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/name.ts#L12)* - -## Methods - -### readAsResult - -▸ **readAsResult**(`account`: Address): *Promise‹Result‹[NameType](../modules/_offchain_accessors_name_.md#nametype), [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -*Inherited from [PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md).[readAsResult](_offchain_accessors_simple_.publicsimpleaccessor.md#readasresult)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L52)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹Result‹[NameType](../modules/_offchain_accessors_name_.md#nametype), [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -___ - -### write - -▸ **write**(`data`: [NameType](../modules/_offchain_accessors_name_.md#nametype)): *Promise‹undefined | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹››* - -*Inherited from [PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md).[write](_offchain_accessors_simple_.publicsimpleaccessor.md#write)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L36)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | [NameType](../modules/_offchain_accessors_name_.md#nametype) | - -**Returns:** *Promise‹undefined | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹››* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_pictures_.privatepictureaccessor.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_pictures_.privatepictureaccessor.md deleted file mode 100644 index 836211dd9da..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_pictures_.privatepictureaccessor.md +++ /dev/null @@ -1,148 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/pictures"](../modules/_offchain_accessors_pictures_.md) › [PrivatePictureAccessor](_offchain_accessors_pictures_.privatepictureaccessor.md) - -# Class: PrivatePictureAccessor - -## Hierarchy - -* [PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md) - - ↳ **PrivatePictureAccessor** - -## Implements - -* [PrivateAccessor](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md)‹Buffer› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_pictures_.privatepictureaccessor.md#constructor) - -### Properties - -* [dataPath](_offchain_accessors_pictures_.privatepictureaccessor.md#readonly-datapath) -* [read](_offchain_accessors_pictures_.privatepictureaccessor.md#read) -* [wrapper](_offchain_accessors_pictures_.privatepictureaccessor.md#readonly-wrapper) - -### Methods - -* [allowAccess](_offchain_accessors_pictures_.privatepictureaccessor.md#allowaccess) -* [readAsResult](_offchain_accessors_pictures_.privatepictureaccessor.md#readasresult) -* [write](_offchain_accessors_pictures_.privatepictureaccessor.md#write) - -## Constructors - -### constructor - -\+ **new PrivatePictureAccessor**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)): *[PrivatePictureAccessor](_offchain_accessors_pictures_.privatepictureaccessor.md)* - -*Overrides [PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md).[constructor](_offchain_accessors_binary_.privatebinaryaccessor.md#constructor)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/pictures.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/pictures.ts#L10)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | - -**Returns:** *[PrivatePictureAccessor](_offchain_accessors_pictures_.privatepictureaccessor.md)* - -## Properties - -### `Readonly` dataPath - -• **dataPath**: *string* - -*Inherited from [PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md).[dataPath](_offchain_accessors_binary_.privatebinaryaccessor.md#readonly-datapath)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L42)* - -___ - -### read - -• **read**: *function* = makeAsyncThrowable(this.readAsResult.bind(this)) - -*Implementation of [PrivateAccessor](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md).[read](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md#read)* - -*Inherited from [PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md).[read](_offchain_accessors_binary_.privatebinaryaccessor.md#read)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L56)* - -#### Type declaration: - -▸ (...`args`: TArgs): *Promise‹TResult›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -___ - -### `Readonly` wrapper - -• **wrapper**: *[OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Overrides [PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md).[wrapper](_offchain_accessors_binary_.privatebinaryaccessor.md#readonly-wrapper)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/pictures.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/pictures.ts#L11)* - -## Methods - -### allowAccess - -▸ **allowAccess**(`toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -*Inherited from [PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md).[allowAccess](_offchain_accessors_binary_.privatebinaryaccessor.md#allowaccess)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L48)* - -**Parameters:** - -Name | Type | ------- | ------ | -`toAddresses` | Address[] | -`symmetricKey?` | Buffer | - -**Returns:** *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -___ - -### readAsResult - -▸ **readAsResult**(`account`: Address): *Promise‹Result‹Buffer‹›, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -*Inherited from [PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md).[readAsResult](_offchain_accessors_binary_.privatebinaryaccessor.md#readasresult)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L52)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹Result‹Buffer‹›, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -___ - -### write - -▸ **write**(`data`: Buffer, `toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -*Inherited from [PrivateBinaryAccessor](_offchain_accessors_binary_.privatebinaryaccessor.md).[write](_offchain_accessors_binary_.privatebinaryaccessor.md#write)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L44)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | -`toAddresses` | Address[] | -`symmetricKey?` | Buffer | - -**Returns:** *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_pictures_.publicpictureaccessor.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_pictures_.publicpictureaccessor.md deleted file mode 100644 index 534281e777c..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_pictures_.publicpictureaccessor.md +++ /dev/null @@ -1,126 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/pictures"](../modules/_offchain_accessors_pictures_.md) › [PublicPictureAccessor](_offchain_accessors_pictures_.publicpictureaccessor.md) - -# Class: PublicPictureAccessor - -## Hierarchy - -* [PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md) - - ↳ **PublicPictureAccessor** - -## Implements - -* [PublicAccessor](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md)‹Buffer› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_pictures_.publicpictureaccessor.md#constructor) - -### Properties - -* [dataPath](_offchain_accessors_pictures_.publicpictureaccessor.md#readonly-datapath) -* [read](_offchain_accessors_pictures_.publicpictureaccessor.md#read) -* [wrapper](_offchain_accessors_pictures_.publicpictureaccessor.md#readonly-wrapper) - -### Methods - -* [readAsResult](_offchain_accessors_pictures_.publicpictureaccessor.md#readasresult) -* [write](_offchain_accessors_pictures_.publicpictureaccessor.md#write) - -## Constructors - -### constructor - -\+ **new PublicPictureAccessor**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)): *[PublicPictureAccessor](_offchain_accessors_pictures_.publicpictureaccessor.md)* - -*Overrides [PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md).[constructor](_offchain_accessors_binary_.publicbinaryaccessor.md#constructor)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/pictures.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/pictures.ts#L4)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | - -**Returns:** *[PublicPictureAccessor](_offchain_accessors_pictures_.publicpictureaccessor.md)* - -## Properties - -### `Readonly` dataPath - -• **dataPath**: *string* - -*Inherited from [PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md).[dataPath](_offchain_accessors_binary_.publicbinaryaccessor.md#readonly-datapath)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L12)* - -___ - -### read - -• **read**: *function* = makeAsyncThrowable(this.readAsResult.bind(this)) - -*Implementation of [PublicAccessor](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md).[read](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md#read)* - -*Inherited from [PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md).[read](_offchain_accessors_binary_.publicbinaryaccessor.md#read)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L35)* - -#### Type declaration: - -▸ (...`args`: TArgs): *Promise‹TResult›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -___ - -### `Readonly` wrapper - -• **wrapper**: *[OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Overrides [PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md).[wrapper](_offchain_accessors_binary_.publicbinaryaccessor.md#readonly-wrapper)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/pictures.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/pictures.ts#L5)* - -## Methods - -### readAsResult - -▸ **readAsResult**(`account`: Address): *Promise‹OkResult‹Buffer‹›› | ErrorResult‹[OffchainError](_offchain_accessors_errors_.offchainerror.md)‹›››* - -*Inherited from [PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md).[readAsResult](_offchain_accessors_binary_.publicbinaryaccessor.md#readasresult)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L26)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹OkResult‹Buffer‹›› | ErrorResult‹[OffchainError](_offchain_accessors_errors_.offchainerror.md)‹›››* - -___ - -### write - -▸ **write**(`data`: Buffer): *Promise‹undefined | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹››* - -*Inherited from [PublicBinaryAccessor](_offchain_accessors_binary_.publicbinaryaccessor.md).[write](_offchain_accessors_binary_.publicbinaryaccessor.md#write)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/binary.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/binary.ts#L14)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | - -**Returns:** *Promise‹undefined | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹››* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_simple_.privatesimpleaccessor.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_simple_.privatesimpleaccessor.md deleted file mode 100644 index 515b62babec..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_simple_.privatesimpleaccessor.md +++ /dev/null @@ -1,152 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/simple"](../modules/_offchain_accessors_simple_.md) › [PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md) - -# Class: PrivateSimpleAccessor <**DataType**> - -A generic schema for writing and reading encrypted objects to and from storage. Passing -in a type parameter is supported for runtime type safety. - -## Type parameters - -▪ **DataType** - -## Hierarchy - -* **PrivateSimpleAccessor** - - ↳ [PrivateNameAccessor](_offchain_accessors_name_.privatenameaccessor.md) - -## Implements - -* [PrivateAccessor](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md)‹DataType› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_simple_.privatesimpleaccessor.md#constructor) - -### Properties - -* [dataPath](_offchain_accessors_simple_.privatesimpleaccessor.md#readonly-datapath) -* [read](_offchain_accessors_simple_.privatesimpleaccessor.md#read) -* [type](_offchain_accessors_simple_.privatesimpleaccessor.md#readonly-type) -* [wrapper](_offchain_accessors_simple_.privatesimpleaccessor.md#readonly-wrapper) - -### Methods - -* [allowAccess](_offchain_accessors_simple_.privatesimpleaccessor.md#allowaccess) -* [readAsResult](_offchain_accessors_simple_.privatesimpleaccessor.md#readasresult) -* [write](_offchain_accessors_simple_.privatesimpleaccessor.md#write) - -## Constructors - -### constructor - -\+ **new PrivateSimpleAccessor**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md), `type`: Type‹DataType›, `dataPath`: string): *[PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L74)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | -`type` | Type‹DataType› | -`dataPath` | string | - -**Returns:** *[PrivateSimpleAccessor](_offchain_accessors_simple_.privatesimpleaccessor.md)* - -## Properties - -### `Readonly` dataPath - -• **dataPath**: *string* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L78)* - -___ - -### read - -• **read**: *function* = makeAsyncThrowable(this.readAsResult.bind(this)) - -*Implementation of [PrivateAccessor](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md).[read](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md#read)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:103](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L103)* - -#### Type declaration: - -▸ (...`args`: TArgs): *Promise‹TResult›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -___ - -### `Readonly` type - -• **type**: *Type‹DataType›* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L77)* - -___ - -### `Readonly` wrapper - -• **wrapper**: *[OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:76](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L76)* - -## Methods - -### allowAccess - -▸ **allowAccess**(`toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:89](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L89)* - -**Parameters:** - -Name | Type | ------- | ------ | -`toAddresses` | Address[] | -`symmetricKey?` | Buffer | - -**Returns:** *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -___ - -### readAsResult - -▸ **readAsResult**(`account`: Address): *Promise‹Result‹DataType, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:93](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L93)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹Result‹DataType, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -___ - -### write - -▸ **write**(`data`: DataType, `toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L81)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | DataType | -`toAddresses` | Address[] | -`symmetricKey?` | Buffer | - -**Returns:** *Promise‹void | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹› | [UnknownCiphertext](_offchain_accessors_errors_.unknownciphertext.md)‹› | [UnavailableKey](_offchain_accessors_errors_.unavailablekey.md)‹› | [InvalidKey](_offchain_accessors_errors_.invalidkey.md)‹››* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_simple_.publicsimpleaccessor.md b/packages/docs/sdk/docs/identity/classes/_offchain_accessors_simple_.publicsimpleaccessor.md deleted file mode 100644 index 60ece351030..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_accessors_simple_.publicsimpleaccessor.md +++ /dev/null @@ -1,132 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/simple"](../modules/_offchain_accessors_simple_.md) › [PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md) - -# Class: PublicSimpleAccessor <**DataType**> - -A generic schema for reading and writing objects to and from storage. Passing -in a type parameter is supported for runtime type safety. - -## Type parameters - -▪ **DataType** - -## Hierarchy - -* **PublicSimpleAccessor** - - ↳ [PublicNameAccessor](_offchain_accessors_name_.publicnameaccessor.md) - -## Implements - -* [PublicAccessor](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md)‹DataType› - -## Index - -### Constructors - -* [constructor](_offchain_accessors_simple_.publicsimpleaccessor.md#constructor) - -### Properties - -* [dataPath](_offchain_accessors_simple_.publicsimpleaccessor.md#readonly-datapath) -* [read](_offchain_accessors_simple_.publicsimpleaccessor.md#read) -* [type](_offchain_accessors_simple_.publicsimpleaccessor.md#readonly-type) -* [wrapper](_offchain_accessors_simple_.publicsimpleaccessor.md#readonly-wrapper) - -### Methods - -* [readAsResult](_offchain_accessors_simple_.publicsimpleaccessor.md#readasresult) -* [write](_offchain_accessors_simple_.publicsimpleaccessor.md#write) - -## Constructors - -### constructor - -\+ **new PublicSimpleAccessor**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md), `type`: Type‹DataType›, `dataPath`: string): *[PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L23)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | -`type` | Type‹DataType› | -`dataPath` | string | - -**Returns:** *[PublicSimpleAccessor](_offchain_accessors_simple_.publicsimpleaccessor.md)* - -## Properties - -### `Readonly` dataPath - -• **dataPath**: *string* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L27)* - -___ - -### read - -• **read**: *function* = makeAsyncThrowable(this.readAsResult.bind(this)) - -*Implementation of [PublicAccessor](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md).[read](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md#read)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L67)* - -#### Type declaration: - -▸ (...`args`: TArgs): *Promise‹TResult›* - -**Parameters:** - -Name | Type | ------- | ------ | -`...args` | TArgs | - -___ - -### `Readonly` type - -• **type**: *Type‹DataType›* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L26)* - -___ - -### `Readonly` wrapper - -• **wrapper**: *[OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L25)* - -## Methods - -### readAsResult - -▸ **readAsResult**(`account`: Address): *Promise‹Result‹DataType, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L52)* - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | - -**Returns:** *Promise‹Result‹DataType, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -___ - -### write - -▸ **write**(`data`: DataType): *Promise‹undefined | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹››* - -*Defined in [packages/sdk/identity/src/offchain/accessors/simple.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/simple.ts#L36)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | DataType | - -**Returns:** *Promise‹undefined | [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md)‹› | [OffchainError](_offchain_accessors_errors_.offchainerror.md)‹››* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.basicdatawrapper.md b/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.basicdatawrapper.md deleted file mode 100644 index cc6f62fa94d..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.basicdatawrapper.md +++ /dev/null @@ -1,139 +0,0 @@ -[@celo/identity](../README.md) › ["offchain-data-wrapper"](../modules/_offchain_data_wrapper_.md) › [BasicDataWrapper](_offchain_data_wrapper_.basicdatawrapper.md) - -# Class: BasicDataWrapper - -## Hierarchy - -* **BasicDataWrapper** - -## Implements - -* [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) - -## Index - -### Constructors - -* [constructor](_offchain_data_wrapper_.basicdatawrapper.md#constructor) - -### Properties - -* [kit](_offchain_data_wrapper_.basicdatawrapper.md#readonly-kit) -* [readDataFrom](_offchain_data_wrapper_.basicdatawrapper.md#readdatafrom) -* [self](_offchain_data_wrapper_.basicdatawrapper.md#readonly-self) -* [signer](_offchain_data_wrapper_.basicdatawrapper.md#signer) -* [storageWriter](_offchain_data_wrapper_.basicdatawrapper.md#storagewriter) - -### Methods - -* [readDataFromAsResult](_offchain_data_wrapper_.basicdatawrapper.md#readdatafromasresult) -* [writeDataTo](_offchain_data_wrapper_.basicdatawrapper.md#writedatato) - -## Constructors - -### constructor - -\+ **new BasicDataWrapper**(`self`: string, `kit`: ContractKit, `signer?`: undefined | string): *[BasicDataWrapper](_offchain_data_wrapper_.basicdatawrapper.md)* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L75)* - -**Parameters:** - -Name | Type | ------- | ------ | -`self` | string | -`kit` | ContractKit | -`signer?` | undefined | string | - -**Returns:** *[BasicDataWrapper](_offchain_data_wrapper_.basicdatawrapper.md)* - -## Properties - -### `Readonly` kit - -• **kit**: *ContractKit* - -*Implementation of [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md).[kit](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md#kit)* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L77)* - -___ - -### readDataFrom - -• **readDataFrom**: *Object* = makeAsyncThrowable(this.readDataFromAsResult.bind(this)) - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:112](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L112)* - -___ - -### `Readonly` self - -• **self**: *string* - -*Implementation of [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md).[self](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md#self)* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L77)* - -___ - -### signer - -• **signer**: *string* - -*Implementation of [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md).[signer](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md#signer)* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L75)* - -___ - -### storageWriter - -• **storageWriter**: *[StorageWriter](_offchain_storage_writers_.storagewriter.md) | undefined* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L74)* - -## Methods - -### readDataFromAsResult - -▸ **readDataFromAsResult**<**DataType**>(`account`: Address, `dataPath`: string, `checkOffchainSigners`: boolean, `type?`: t.Type‹DataType›): *Promise‹Result‹Buffer, [OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors)››* - -*Implementation of [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L81)* - -**Type parameters:** - -▪ **DataType** - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`dataPath` | string | -`checkOffchainSigners` | boolean | -`type?` | t.Type‹DataType› | - -**Returns:** *Promise‹Result‹Buffer, [OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors)››* - -___ - -### writeDataTo - -▸ **writeDataTo**(`data`: Buffer, `signature`: Buffer, `dataPath`: string): *Promise‹[OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors) | void›* - -*Implementation of [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md)* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:114](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L114)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | -`signature` | Buffer | -`dataPath` | string | - -**Returns:** *Promise‹[OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors) | void›* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.fetcherror.md b/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.fetcherror.md deleted file mode 100644 index 626c64a791e..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.fetcherror.md +++ /dev/null @@ -1,84 +0,0 @@ -[@celo/identity](../README.md) › ["offchain-data-wrapper"](../modules/_offchain_data_wrapper_.md) › [FetchError](_offchain_data_wrapper_.fetcherror.md) - -# Class: FetchError - -## Hierarchy - -* RootError‹[FetchError](../enums/_offchain_data_wrapper_.offchainerrortypes.md#fetcherror)› - - ↳ **FetchError** - -## Implements - -* BaseError‹[FetchError](../enums/_offchain_data_wrapper_.offchainerrortypes.md#fetcherror)› - -## Index - -### Constructors - -* [constructor](_offchain_data_wrapper_.fetcherror.md#constructor) - -### Properties - -* [errorType](_offchain_data_wrapper_.fetcherror.md#readonly-errortype) -* [message](_offchain_data_wrapper_.fetcherror.md#message) -* [name](_offchain_data_wrapper_.fetcherror.md#name) -* [stack](_offchain_data_wrapper_.fetcherror.md#optional-stack) - -## Constructors - -### constructor - -\+ **new FetchError**(`error`: Error): *[FetchError](_offchain_data_wrapper_.fetcherror.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L29)* - -**Parameters:** - -Name | Type | ------- | ------ | -`error` | Error | - -**Returns:** *[FetchError](_offchain_data_wrapper_.fetcherror.md)* - -## Properties - -### `Readonly` errorType - -• **errorType**: *[FetchError](../enums/_offchain_data_wrapper_.offchainerrortypes.md#fetcherror)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.invalidsignature.md b/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.invalidsignature.md deleted file mode 100644 index d8053c39f92..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.invalidsignature.md +++ /dev/null @@ -1,78 +0,0 @@ -[@celo/identity](../README.md) › ["offchain-data-wrapper"](../modules/_offchain_data_wrapper_.md) › [InvalidSignature](_offchain_data_wrapper_.invalidsignature.md) - -# Class: InvalidSignature - -## Hierarchy - -* RootError‹[InvalidSignature](../enums/_offchain_data_wrapper_.offchainerrortypes.md#invalidsignature)› - - ↳ **InvalidSignature** - -## Implements - -* BaseError‹[InvalidSignature](../enums/_offchain_data_wrapper_.offchainerrortypes.md#invalidsignature)› - -## Index - -### Constructors - -* [constructor](_offchain_data_wrapper_.invalidsignature.md#constructor) - -### Properties - -* [errorType](_offchain_data_wrapper_.invalidsignature.md#readonly-errortype) -* [message](_offchain_data_wrapper_.invalidsignature.md#message) -* [name](_offchain_data_wrapper_.invalidsignature.md#name) -* [stack](_offchain_data_wrapper_.invalidsignature.md#optional-stack) - -## Constructors - -### constructor - -\+ **new InvalidSignature**(): *[InvalidSignature](_offchain_data_wrapper_.invalidsignature.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L36)* - -**Returns:** *[InvalidSignature](_offchain_data_wrapper_.invalidsignature.md)* - -## Properties - -### `Readonly` errorType - -• **errorType**: *[InvalidSignature](../enums/_offchain_data_wrapper_.offchainerrortypes.md#invalidsignature)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.nostorageprovider.md b/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.nostorageprovider.md deleted file mode 100644 index 7f3c4281232..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.nostorageprovider.md +++ /dev/null @@ -1,78 +0,0 @@ -[@celo/identity](../README.md) › ["offchain-data-wrapper"](../modules/_offchain_data_wrapper_.md) › [NoStorageProvider](_offchain_data_wrapper_.nostorageprovider.md) - -# Class: NoStorageProvider - -## Hierarchy - -* RootError‹[NoStorageProvider](../enums/_offchain_data_wrapper_.offchainerrortypes.md#nostorageprovider)› - - ↳ **NoStorageProvider** - -## Implements - -* BaseError‹[NoStorageProvider](../enums/_offchain_data_wrapper_.offchainerrortypes.md#nostorageprovider)› - -## Index - -### Constructors - -* [constructor](_offchain_data_wrapper_.nostorageprovider.md#constructor) - -### Properties - -* [errorType](_offchain_data_wrapper_.nostorageprovider.md#readonly-errortype) -* [message](_offchain_data_wrapper_.nostorageprovider.md#message) -* [name](_offchain_data_wrapper_.nostorageprovider.md#name) -* [stack](_offchain_data_wrapper_.nostorageprovider.md#optional-stack) - -## Constructors - -### constructor - -\+ **new NoStorageProvider**(): *[NoStorageProvider](_offchain_data_wrapper_.nostorageprovider.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L48)* - -**Returns:** *[NoStorageProvider](_offchain_data_wrapper_.nostorageprovider.md)* - -## Properties - -### `Readonly` errorType - -• **errorType**: *[NoStorageProvider](../enums/_offchain_data_wrapper_.offchainerrortypes.md#nostorageprovider)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.nostoragerootprovideddata.md b/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.nostoragerootprovideddata.md deleted file mode 100644 index b0680fc2a21..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_data_wrapper_.nostoragerootprovideddata.md +++ /dev/null @@ -1,78 +0,0 @@ -[@celo/identity](../README.md) › ["offchain-data-wrapper"](../modules/_offchain_data_wrapper_.md) › [NoStorageRootProvidedData](_offchain_data_wrapper_.nostoragerootprovideddata.md) - -# Class: NoStorageRootProvidedData - -## Hierarchy - -* RootError‹[NoStorageRootProvidedData](../enums/_offchain_data_wrapper_.offchainerrortypes.md#nostoragerootprovideddata)› - - ↳ **NoStorageRootProvidedData** - -## Implements - -* BaseError‹[NoStorageRootProvidedData](../enums/_offchain_data_wrapper_.offchainerrortypes.md#nostoragerootprovideddata)› - -## Index - -### Constructors - -* [constructor](_offchain_data_wrapper_.nostoragerootprovideddata.md#constructor) - -### Properties - -* [errorType](_offchain_data_wrapper_.nostoragerootprovideddata.md#readonly-errortype) -* [message](_offchain_data_wrapper_.nostoragerootprovideddata.md#message) -* [name](_offchain_data_wrapper_.nostoragerootprovideddata.md#name) -* [stack](_offchain_data_wrapper_.nostoragerootprovideddata.md#optional-stack) - -## Constructors - -### constructor - -\+ **new NoStorageRootProvidedData**(): *[NoStorageRootProvidedData](_offchain_data_wrapper_.nostoragerootprovideddata.md)* - -*Overrides void* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L42)* - -**Returns:** *[NoStorageRootProvidedData](_offchain_data_wrapper_.nostoragerootprovideddata.md)* - -## Properties - -### `Readonly` errorType - -• **errorType**: *[NoStorageRootProvidedData](../enums/_offchain_data_wrapper_.offchainerrortypes.md#nostoragerootprovideddata)* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[errorType](_offchain_accessors_errors_.invaliddataerror.md#readonly-errortype)* - -Defined in packages/sdk/base/lib/result.d.ts:19 - -___ - -### message - -• **message**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[message](_offchain_accessors_errors_.invaliddataerror.md#message)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:974 - -___ - -### name - -• **name**: *string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[name](_offchain_accessors_errors_.invaliddataerror.md#name)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:973 - -___ - -### `Optional` stack - -• **stack**? : *undefined | string* - -*Inherited from [InvalidDataError](_offchain_accessors_errors_.invaliddataerror.md).[stack](_offchain_accessors_errors_.invaliddataerror.md#optional-stack)* - -Defined in node_modules/typescript/lib/lib.es5.d.ts:975 diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.awsstoragewriter.md b/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.awsstoragewriter.md deleted file mode 100644 index f863874be98..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.awsstoragewriter.md +++ /dev/null @@ -1,80 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/storage-writers"](../modules/_offchain_storage_writers_.md) › [AwsStorageWriter](_offchain_storage_writers_.awsstoragewriter.md) - -# Class: AwsStorageWriter - -## Hierarchy - - ↳ [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md) - - ↳ **AwsStorageWriter** - -## Index - -### Constructors - -* [constructor](_offchain_storage_writers_.awsstoragewriter.md#constructor) - -### Properties - -* [local](_offchain_storage_writers_.awsstoragewriter.md#readonly-local) -* [root](_offchain_storage_writers_.awsstoragewriter.md#readonly-root) - -### Methods - -* [write](_offchain_storage_writers_.awsstoragewriter.md#write) - -## Constructors - -### constructor - -\+ **new AwsStorageWriter**(`local`: string, `bucket`: string): *[AwsStorageWriter](_offchain_storage_writers_.awsstoragewriter.md)* - -*Overrides [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[constructor](_offchain_storage_writers_.localstoragewriter.md#constructor)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L54)* - -**Parameters:** - -Name | Type | ------- | ------ | -`local` | string | -`bucket` | string | - -**Returns:** *[AwsStorageWriter](_offchain_storage_writers_.awsstoragewriter.md)* - -## Properties - -### `Readonly` local - -• **local**: *string* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L56)* - -___ - -### `Readonly` root - -• **root**: *string* - -*Inherited from [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[root](_offchain_storage_writers_.localstoragewriter.md#readonly-root)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L11)* - -## Methods - -### write - -▸ **write**(`data`: Buffer, `dataPath`: string): *Promise‹void›* - -*Overrides [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[write](_offchain_storage_writers_.localstoragewriter.md#write)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L61)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | -`dataPath` | string | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.gitstoragewriter.md b/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.gitstoragewriter.md deleted file mode 100644 index 0ecdfaba30c..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.gitstoragewriter.md +++ /dev/null @@ -1,70 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/storage-writers"](../modules/_offchain_storage_writers_.md) › [GitStorageWriter](_offchain_storage_writers_.gitstoragewriter.md) - -# Class: GitStorageWriter - -## Hierarchy - - ↳ [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md) - - ↳ **GitStorageWriter** - -## Index - -### Constructors - -* [constructor](_offchain_storage_writers_.gitstoragewriter.md#constructor) - -### Properties - -* [root](_offchain_storage_writers_.gitstoragewriter.md#readonly-root) - -### Methods - -* [write](_offchain_storage_writers_.gitstoragewriter.md#write) - -## Constructors - -### constructor - -\+ **new GitStorageWriter**(`root`: string): *[GitStorageWriter](_offchain_storage_writers_.gitstoragewriter.md)* - -*Inherited from [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[constructor](_offchain_storage_writers_.localstoragewriter.md#constructor)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L10)* - -**Parameters:** - -Name | Type | ------- | ------ | -`root` | string | - -**Returns:** *[GitStorageWriter](_offchain_storage_writers_.gitstoragewriter.md)* - -## Properties - -### `Readonly` root - -• **root**: *string* - -*Inherited from [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[root](_offchain_storage_writers_.localstoragewriter.md#readonly-root)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L11)* - -## Methods - -### write - -▸ **write**(`data`: Buffer, `dataPath`: string): *Promise‹void›* - -*Overrides [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[write](_offchain_storage_writers_.localstoragewriter.md#write)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L26)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | -`dataPath` | string | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.googlestoragewriter.md b/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.googlestoragewriter.md deleted file mode 100644 index 524557657f4..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.googlestoragewriter.md +++ /dev/null @@ -1,80 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/storage-writers"](../modules/_offchain_storage_writers_.md) › [GoogleStorageWriter](_offchain_storage_writers_.googlestoragewriter.md) - -# Class: GoogleStorageWriter - -## Hierarchy - - ↳ [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md) - - ↳ **GoogleStorageWriter** - -## Index - -### Constructors - -* [constructor](_offchain_storage_writers_.googlestoragewriter.md#constructor) - -### Properties - -* [local](_offchain_storage_writers_.googlestoragewriter.md#readonly-local) -* [root](_offchain_storage_writers_.googlestoragewriter.md#readonly-root) - -### Methods - -* [write](_offchain_storage_writers_.googlestoragewriter.md#write) - -## Constructors - -### constructor - -\+ **new GoogleStorageWriter**(`local`: string, `bucket`: string): *[GoogleStorageWriter](_offchain_storage_writers_.googlestoragewriter.md)* - -*Overrides [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[constructor](_offchain_storage_writers_.localstoragewriter.md#constructor)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L38)* - -**Parameters:** - -Name | Type | ------- | ------ | -`local` | string | -`bucket` | string | - -**Returns:** *[GoogleStorageWriter](_offchain_storage_writers_.googlestoragewriter.md)* - -## Properties - -### `Readonly` local - -• **local**: *string* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L40)* - -___ - -### `Readonly` root - -• **root**: *string* - -*Inherited from [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[root](_offchain_storage_writers_.localstoragewriter.md#readonly-root)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L11)* - -## Methods - -### write - -▸ **write**(`data`: Buffer, `dataPath`: string): *Promise‹void›* - -*Overrides [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[write](_offchain_storage_writers_.localstoragewriter.md#write)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L45)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | -`dataPath` | string | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.localstoragewriter.md b/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.localstoragewriter.md deleted file mode 100644 index 7ca8b159824..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.localstoragewriter.md +++ /dev/null @@ -1,74 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/storage-writers"](../modules/_offchain_storage_writers_.md) › [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md) - -# Class: LocalStorageWriter - -## Hierarchy - -* [StorageWriter](_offchain_storage_writers_.storagewriter.md) - - ↳ **LocalStorageWriter** - - ↳ [GitStorageWriter](_offchain_storage_writers_.gitstoragewriter.md) - - ↳ [GoogleStorageWriter](_offchain_storage_writers_.googlestoragewriter.md) - - ↳ [AwsStorageWriter](_offchain_storage_writers_.awsstoragewriter.md) - - ↳ [MockStorageWriter](_offchain_storage_writers_.mockstoragewriter.md) - -## Index - -### Constructors - -* [constructor](_offchain_storage_writers_.localstoragewriter.md#constructor) - -### Properties - -* [root](_offchain_storage_writers_.localstoragewriter.md#readonly-root) - -### Methods - -* [write](_offchain_storage_writers_.localstoragewriter.md#write) - -## Constructors - -### constructor - -\+ **new LocalStorageWriter**(`root`: string): *[LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L10)* - -**Parameters:** - -Name | Type | ------- | ------ | -`root` | string | - -**Returns:** *[LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md)* - -## Properties - -### `Readonly` root - -• **root**: *string* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L11)* - -## Methods - -### write - -▸ **write**(`data`: Buffer, `dataPath`: string): *Promise‹void›* - -*Overrides [StorageWriter](_offchain_storage_writers_.storagewriter.md).[write](_offchain_storage_writers_.storagewriter.md#abstract-write)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L14)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | -`dataPath` | string | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.mockstoragewriter.md b/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.mockstoragewriter.md deleted file mode 100644 index 041944d050d..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.mockstoragewriter.md +++ /dev/null @@ -1,90 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/storage-writers"](../modules/_offchain_storage_writers_.md) › [MockStorageWriter](_offchain_storage_writers_.mockstoragewriter.md) - -# Class: MockStorageWriter - -## Hierarchy - - ↳ [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md) - - ↳ **MockStorageWriter** - -## Index - -### Constructors - -* [constructor](_offchain_storage_writers_.mockstoragewriter.md#constructor) - -### Properties - -* [fetchMock](_offchain_storage_writers_.mockstoragewriter.md#readonly-fetchmock) -* [mockedStorageRoot](_offchain_storage_writers_.mockstoragewriter.md#readonly-mockedstorageroot) -* [root](_offchain_storage_writers_.mockstoragewriter.md#readonly-root) - -### Methods - -* [write](_offchain_storage_writers_.mockstoragewriter.md#write) - -## Constructors - -### constructor - -\+ **new MockStorageWriter**(`root`: string, `mockedStorageRoot`: string, `fetchMock`: any): *[MockStorageWriter](_offchain_storage_writers_.mockstoragewriter.md)* - -*Overrides [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[constructor](_offchain_storage_writers_.localstoragewriter.md#constructor)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L69)* - -**Parameters:** - -Name | Type | ------- | ------ | -`root` | string | -`mockedStorageRoot` | string | -`fetchMock` | any | - -**Returns:** *[MockStorageWriter](_offchain_storage_writers_.mockstoragewriter.md)* - -## Properties - -### `Readonly` fetchMock - -• **fetchMock**: *any* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L70)* - -___ - -### `Readonly` mockedStorageRoot - -• **mockedStorageRoot**: *string* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L70)* - -___ - -### `Readonly` root - -• **root**: *string* - -*Overrides [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[root](_offchain_storage_writers_.localstoragewriter.md#readonly-root)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L70)* - -## Methods - -### write - -▸ **write**(`data`: Buffer, `dataPath`: string): *Promise‹void›* - -*Overrides [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md).[write](_offchain_storage_writers_.localstoragewriter.md#write)* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:73](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L73)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | -`dataPath` | string | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.storagewriter.md b/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.storagewriter.md deleted file mode 100644 index b664f389f09..00000000000 --- a/packages/docs/sdk/docs/identity/classes/_offchain_storage_writers_.storagewriter.md +++ /dev/null @@ -1,32 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/storage-writers"](../modules/_offchain_storage_writers_.md) › [StorageWriter](_offchain_storage_writers_.storagewriter.md) - -# Class: StorageWriter - -## Hierarchy - -* **StorageWriter** - - ↳ [LocalStorageWriter](_offchain_storage_writers_.localstoragewriter.md) - -## Index - -### Methods - -* [write](_offchain_storage_writers_.storagewriter.md#abstract-write) - -## Methods - -### `Abstract` write - -▸ **write**(`_data`: Buffer, `_dataPath`: string): *Promise‹void›* - -*Defined in [packages/sdk/identity/src/offchain/storage-writers.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/storage-writers.ts#L7)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_data` | Buffer | -`_dataPath` | string | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakerendpoints.md b/packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakerendpoints.md deleted file mode 100644 index b86364187ad..00000000000 --- a/packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakerendpoints.md +++ /dev/null @@ -1,35 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerEndpoints](_odis_circuit_breaker_.circuitbreakerendpoints.md) - -# Enumeration: CircuitBreakerEndpoints - -## Index - -### Enumeration members - -* [HEALTH](_odis_circuit_breaker_.circuitbreakerendpoints.md#health) -* [STATUS](_odis_circuit_breaker_.circuitbreakerendpoints.md#status) -* [UNWRAP_KEY](_odis_circuit_breaker_.circuitbreakerendpoints.md#unwrap_key) - -## Enumeration members - -### HEALTH - -• **HEALTH**: = "health" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L50)* - -___ - -### STATUS - -• **STATUS**: = "status" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L51)* - -___ - -### UNWRAP_KEY - -• **UNWRAP_KEY**: = "unwrap-key" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L52)* diff --git a/packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakererrortypes.md b/packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakererrortypes.md deleted file mode 100644 index e1e95538c87..00000000000 --- a/packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakererrortypes.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerErrorTypes](_odis_circuit_breaker_.circuitbreakererrortypes.md) - -# Enumeration: CircuitBreakerErrorTypes - -## Index - -### Enumeration members - -* [ENCRYPTION_ERROR](_odis_circuit_breaker_.circuitbreakererrortypes.md#encryption_error) -* [FETCH_ERROR](_odis_circuit_breaker_.circuitbreakererrortypes.md#fetch_error) -* [SERVICE_ERROR](_odis_circuit_breaker_.circuitbreakererrortypes.md#service_error) -* [UNAVAILABLE_ERROR](_odis_circuit_breaker_.circuitbreakererrortypes.md#unavailable_error) - -## Enumeration members - -### ENCRYPTION_ERROR - -• **ENCRYPTION_ERROR**: = "ENCRYPTION_ERROR" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L80)* - -___ - -### FETCH_ERROR - -• **FETCH_ERROR**: = "FETCH_ERROR" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L77)* - -___ - -### SERVICE_ERROR - -• **SERVICE_ERROR**: = "CIRCUIT_BREAKER_SERVICE_ERROR" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L78)* - -___ - -### UNAVAILABLE_ERROR - -• **UNAVAILABLE_ERROR**: = "CIRCUIT_BREAKER_UNAVAILABLE_ERROR" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:79](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L79)* diff --git a/packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md b/packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md deleted file mode 100644 index 3d4bf6fb061..00000000000 --- a/packages/docs/sdk/docs/identity/enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerKeyStatus](_odis_circuit_breaker_.circuitbreakerkeystatus.md) - -# Enumeration: CircuitBreakerKeyStatus - -## Index - -### Enumeration members - -* [DESTROYED](_odis_circuit_breaker_.circuitbreakerkeystatus.md#destroyed) -* [DISABLED](_odis_circuit_breaker_.circuitbreakerkeystatus.md#disabled) -* [ENABLED](_odis_circuit_breaker_.circuitbreakerkeystatus.md#enabled) -* [UNKNOWN](_odis_circuit_breaker_.circuitbreakerkeystatus.md#unknown) - -## Enumeration members - -### DESTROYED - -• **DESTROYED**: = "DESTROYED" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L45)* - -___ - -### DISABLED - -• **DISABLED**: = "DISABLED" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L44)* - -___ - -### ENABLED - -• **ENABLED**: = "ENABLED" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L43)* - -___ - -### UNKNOWN - -• **UNKNOWN**: = "UNKNOWN" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L46)* diff --git a/packages/docs/sdk/docs/identity/enums/_odis_query_.errormessages.md b/packages/docs/sdk/docs/identity/enums/_odis_query_.errormessages.md deleted file mode 100644 index bbdd4b86aaf..00000000000 --- a/packages/docs/sdk/docs/identity/enums/_odis_query_.errormessages.md +++ /dev/null @@ -1,71 +0,0 @@ -[@celo/identity](../README.md) › ["odis/query"](../modules/_odis_query_.md) › [ErrorMessages](_odis_query_.errormessages.md) - -# Enumeration: ErrorMessages - -## Index - -### Enumeration members - -* [ODIS_AUTH_ERROR](_odis_query_.errormessages.md#odis_auth_error) -* [ODIS_CLIENT_ERROR](_odis_query_.errormessages.md#odis_client_error) -* [ODIS_FETCH_ERROR](_odis_query_.errormessages.md#odis_fetch_error) -* [ODIS_INPUT_ERROR](_odis_query_.errormessages.md#odis_input_error) -* [ODIS_QUOTA_ERROR](_odis_query_.errormessages.md#odis_quota_error) -* [ODIS_RATE_LIMIT_ERROR](_odis_query_.errormessages.md#odis_rate_limit_error) -* [ODIS_RESPONSE_ERROR](_odis_query_.errormessages.md#odis_response_error) - -## Enumeration members - -### ODIS_AUTH_ERROR - -• **ODIS_AUTH_ERROR**: = "odisAuthError" - -*Defined in [packages/sdk/identity/src/odis/query.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L57)* - -___ - -### ODIS_CLIENT_ERROR - -• **ODIS_CLIENT_ERROR**: = "Unknown Client Error" - -*Defined in [packages/sdk/identity/src/odis/query.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L58)* - -___ - -### ODIS_FETCH_ERROR - -• **ODIS_FETCH_ERROR**: = "odisFetchError" - -*Defined in [packages/sdk/identity/src/odis/query.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L59)* - -___ - -### ODIS_INPUT_ERROR - -• **ODIS_INPUT_ERROR**: = "odisBadInputError" - -*Defined in [packages/sdk/identity/src/odis/query.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L56)* - -___ - -### ODIS_QUOTA_ERROR - -• **ODIS_QUOTA_ERROR**: = "odisQuotaError" - -*Defined in [packages/sdk/identity/src/odis/query.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L54)* - -___ - -### ODIS_RATE_LIMIT_ERROR - -• **ODIS_RATE_LIMIT_ERROR**: = "odisRateLimitError" - -*Defined in [packages/sdk/identity/src/odis/query.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L55)* - -___ - -### ODIS_RESPONSE_ERROR - -• **ODIS_RESPONSE_ERROR**: = "odisResponseError" - -*Defined in [packages/sdk/identity/src/odis/query.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L60)* diff --git a/packages/docs/sdk/docs/identity/enums/_offchain_accessors_errors_.schemaerrortypes.md b/packages/docs/sdk/docs/identity/enums/_offchain_accessors_errors_.schemaerrortypes.md deleted file mode 100644 index 5f161f25037..00000000000 --- a/packages/docs/sdk/docs/identity/enums/_offchain_accessors_errors_.schemaerrortypes.md +++ /dev/null @@ -1,53 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/errors"](../modules/_offchain_accessors_errors_.md) › [SchemaErrorTypes](_offchain_accessors_errors_.schemaerrortypes.md) - -# Enumeration: SchemaErrorTypes - -## Index - -### Enumeration members - -* [InvalidDataError](_offchain_accessors_errors_.schemaerrortypes.md#invaliddataerror) -* [InvalidKey](_offchain_accessors_errors_.schemaerrortypes.md#invalidkey) -* [OffchainError](_offchain_accessors_errors_.schemaerrortypes.md#offchainerror) -* [UnavailableKey](_offchain_accessors_errors_.schemaerrortypes.md#unavailablekey) -* [UnknownCiphertext](_offchain_accessors_errors_.schemaerrortypes.md#unknownciphertext) - -## Enumeration members - -### InvalidDataError - -• **InvalidDataError**: = "InvalidDataError" - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L6)* - -___ - -### InvalidKey - -• **InvalidKey**: = "InvalidKey" - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L10)* - -___ - -### OffchainError - -• **OffchainError**: = "OffchainError" - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L7)* - -___ - -### UnavailableKey - -• **UnavailableKey**: = "UnavailableKey" - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L9)* - -___ - -### UnknownCiphertext - -• **UnknownCiphertext**: = "UnknownCiphertext" - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L8)* diff --git a/packages/docs/sdk/docs/identity/enums/_offchain_data_wrapper_.offchainerrortypes.md b/packages/docs/sdk/docs/identity/enums/_offchain_data_wrapper_.offchainerrortypes.md deleted file mode 100644 index c06896a79f9..00000000000 --- a/packages/docs/sdk/docs/identity/enums/_offchain_data_wrapper_.offchainerrortypes.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/identity](../README.md) › ["offchain-data-wrapper"](../modules/_offchain_data_wrapper_.md) › [OffchainErrorTypes](_offchain_data_wrapper_.offchainerrortypes.md) - -# Enumeration: OffchainErrorTypes - -## Index - -### Enumeration members - -* [FetchError](_offchain_data_wrapper_.offchainerrortypes.md#fetcherror) -* [InvalidSignature](_offchain_data_wrapper_.offchainerrortypes.md#invalidsignature) -* [NoStorageProvider](_offchain_data_wrapper_.offchainerrortypes.md#nostorageprovider) -* [NoStorageRootProvidedData](_offchain_data_wrapper_.offchainerrortypes.md#nostoragerootprovideddata) - -## Enumeration members - -### FetchError - -• **FetchError**: = "FetchError" - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L23)* - -___ - -### InvalidSignature - -• **InvalidSignature**: = "InvalidSignature" - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L24)* - -___ - -### NoStorageProvider - -• **NoStorageProvider**: = "NoStorageProvider" - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L26)* - -___ - -### NoStorageRootProvidedData - -• **NoStorageRootProvidedData**: = "NoStorageRootProvidedData" - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L25)* diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_bls_blinding_client_.blsblindingclient.md b/packages/docs/sdk/docs/identity/interfaces/_odis_bls_blinding_client_.blsblindingclient.md deleted file mode 100644 index f53a284b169..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_bls_blinding_client_.blsblindingclient.md +++ /dev/null @@ -1,55 +0,0 @@ -[@celo/identity](../README.md) › ["odis/bls-blinding-client"](../modules/_odis_bls_blinding_client_.md) › [BlsBlindingClient](_odis_bls_blinding_client_.blsblindingclient.md) - -# Interface: BlsBlindingClient - -## Hierarchy - -* **BlsBlindingClient** - -## Implemented by - -* [WasmBlsBlindingClient](../classes/_odis_bls_blinding_client_.wasmblsblindingclient.md) - -## Index - -### Properties - -* [blindMessage](_odis_bls_blinding_client_.blsblindingclient.md#blindmessage) -* [unblindAndVerifyMessage](_odis_bls_blinding_client_.blsblindingclient.md#unblindandverifymessage) - -## Properties - -### blindMessage - -• **blindMessage**: *function* - -*Defined in [packages/sdk/identity/src/odis/bls-blinding-client.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/bls-blinding-client.ts#L4)* - -#### Type declaration: - -▸ (`base64PhoneNumber`: string, `seed?`: Buffer): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`base64PhoneNumber` | string | -`seed?` | Buffer | - -___ - -### unblindAndVerifyMessage - -• **unblindAndVerifyMessage**: *function* - -*Defined in [packages/sdk/identity/src/odis/bls-blinding-client.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/bls-blinding-client.ts#L5)* - -#### Type declaration: - -▸ (`blindedMessage`: string): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`blindedMessage` | string | diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerservicecontext.md b/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerservicecontext.md deleted file mode 100644 index f5bd45846ce..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerservicecontext.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerServiceContext](_odis_circuit_breaker_.circuitbreakerservicecontext.md) - -# Interface: CircuitBreakerServiceContext - -## Hierarchy - -* **CircuitBreakerServiceContext** - -## Index - -### Properties - -* [publicKey](_odis_circuit_breaker_.circuitbreakerservicecontext.md#publickey) -* [url](_odis_circuit_breaker_.circuitbreakerservicecontext.md#url) - -## Properties - -### publicKey - -• **publicKey**: *string* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L9)* - -___ - -### url - -• **url**: *string* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L8)* diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerstatusresponse.md b/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerstatusresponse.md deleted file mode 100644 index 36fa4e49f72..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerstatusresponse.md +++ /dev/null @@ -1,23 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerStatusResponse](_odis_circuit_breaker_.circuitbreakerstatusresponse.md) - -# Interface: CircuitBreakerStatusResponse - -## Hierarchy - -* **CircuitBreakerStatusResponse** - -## Index - -### Properties - -* [status](_odis_circuit_breaker_.circuitbreakerstatusresponse.md#status) - -## Properties - -### status - -• **status**: *[CircuitBreakerKeyStatus](../enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md)* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L57)* - -Status of the circuit breaker service diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyrequest.md b/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyrequest.md deleted file mode 100644 index 6d7a5483383..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyrequest.md +++ /dev/null @@ -1,23 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerUnwrapKeyRequest](_odis_circuit_breaker_.circuitbreakerunwrapkeyrequest.md) - -# Interface: CircuitBreakerUnwrapKeyRequest - -## Hierarchy - -* **CircuitBreakerUnwrapKeyRequest** - -## Index - -### Properties - -* [ciphertext](_odis_circuit_breaker_.circuitbreakerunwrapkeyrequest.md#ciphertext) - -## Properties - -### ciphertext - -• **ciphertext**: *string* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L62)* - -RSA-OAEP-256 encrypted data to be unwrapped by the circuit breaker. Encoded as base64 diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md b/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md deleted file mode 100644 index 22856f69b28..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md +++ /dev/null @@ -1,45 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](../modules/_odis_circuit_breaker_.md) › [CircuitBreakerUnwrapKeyResponse](_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md) - -# Interface: CircuitBreakerUnwrapKeyResponse - -## Hierarchy - -* **CircuitBreakerUnwrapKeyResponse** - -## Index - -### Properties - -* [error](_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md#optional-error) -* [plaintext](_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md#optional-plaintext) -* [status](_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md#optional-status) - -## Properties - -### `Optional` error - -• **error**? : *undefined | string* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L70)* - -Error message indicating what went wrong if the ciphertext could not be decrypted - -___ - -### `Optional` plaintext - -• **plaintext**? : *undefined | string* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L67)* - -Decryption of the ciphertext provided to the circuit breaker service - -___ - -### `Optional` status - -• **status**? : *[CircuitBreakerKeyStatus](../enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md)* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:73](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L73)* - -Status of the circuit breaker service. Included if the service is not enabled. diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_phone_number_identifier_.phonenumberhashdetails.md b/packages/docs/sdk/docs/identity/interfaces/_odis_phone_number_identifier_.phonenumberhashdetails.md deleted file mode 100644 index 5c848338f55..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_phone_number_identifier_.phonenumberhashdetails.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/identity](../README.md) › ["odis/phone-number-identifier"](../modules/_odis_phone_number_identifier_.md) › [PhoneNumberHashDetails](_odis_phone_number_identifier_.phonenumberhashdetails.md) - -# Interface: PhoneNumberHashDetails - -## Hierarchy - -* **PhoneNumberHashDetails** - -## Index - -### Properties - -* [e164Number](_odis_phone_number_identifier_.phonenumberhashdetails.md#e164number) -* [pepper](_odis_phone_number_identifier_.phonenumberhashdetails.md#pepper) -* [phoneHash](_odis_phone_number_identifier_.phonenumberhashdetails.md#phonehash) - -## Properties - -### e164Number - -• **e164Number**: *string* - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L29)* - -___ - -### pepper - -• **pepper**: *string* - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L31)* - -___ - -### phoneHash - -• **phoneHash**: *string* - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L30)* diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_query_.combinersignmessageresponse.md b/packages/docs/sdk/docs/identity/interfaces/_odis_query_.combinersignmessageresponse.md deleted file mode 100644 index 0c5d6b81a05..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_query_.combinersignmessageresponse.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/identity](../README.md) › ["odis/query"](../modules/_odis_query_.md) › [CombinerSignMessageResponse](_odis_query_.combinersignmessageresponse.md) - -# Interface: CombinerSignMessageResponse - -## Hierarchy - -* **CombinerSignMessageResponse** - -## Index - -### Properties - -* [combinedSignature](_odis_query_.combinersignmessageresponse.md#combinedsignature) -* [success](_odis_query_.combinersignmessageresponse.md#success) - -## Properties - -### combinedSignature - -• **combinedSignature**: *string* - -*Defined in [packages/sdk/identity/src/odis/query.ts:48](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L48)* - -___ - -### success - -• **success**: *boolean* - -*Defined in [packages/sdk/identity/src/odis/query.ts:47](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L47)* diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_query_.encryptionkeysigner.md b/packages/docs/sdk/docs/identity/interfaces/_odis_query_.encryptionkeysigner.md deleted file mode 100644 index 8b709d123ed..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_query_.encryptionkeysigner.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/identity](../README.md) › ["odis/query"](../modules/_odis_query_.md) › [EncryptionKeySigner](_odis_query_.encryptionkeysigner.md) - -# Interface: EncryptionKeySigner - -## Hierarchy - -* **EncryptionKeySigner** - -## Index - -### Properties - -* [authenticationMethod](_odis_query_.encryptionkeysigner.md#authenticationmethod) -* [rawKey](_odis_query_.encryptionkeysigner.md#rawkey) - -## Properties - -### authenticationMethod - -• **authenticationMethod**: *ENCRYPTION_KEY* - -*Defined in [packages/sdk/identity/src/odis/query.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L31)* - -___ - -### rawKey - -• **rawKey**: *string* - -*Defined in [packages/sdk/identity/src/odis/query.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L32)* diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_query_.servicecontext.md b/packages/docs/sdk/docs/identity/interfaces/_odis_query_.servicecontext.md deleted file mode 100644 index 184161d6100..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_query_.servicecontext.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/identity](../README.md) › ["odis/query"](../modules/_odis_query_.md) › [ServiceContext](_odis_query_.servicecontext.md) - -# Interface: ServiceContext - -## Hierarchy - -* **ServiceContext** - -## Index - -### Properties - -* [odisPubKey](_odis_query_.servicecontext.md#odispubkey) -* [odisUrl](_odis_query_.servicecontext.md#odisurl) - -## Properties - -### odisPubKey - -• **odisPubKey**: *string* - -*Defined in [packages/sdk/identity/src/odis/query.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L65)* - -___ - -### odisUrl - -• **odisUrl**: *string* - -*Defined in [packages/sdk/identity/src/odis/query.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L64)* diff --git a/packages/docs/sdk/docs/identity/interfaces/_odis_query_.walletkeysigner.md b/packages/docs/sdk/docs/identity/interfaces/_odis_query_.walletkeysigner.md deleted file mode 100644 index 8c1912f5ef6..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_odis_query_.walletkeysigner.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/identity](../README.md) › ["odis/query"](../modules/_odis_query_.md) › [WalletKeySigner](_odis_query_.walletkeysigner.md) - -# Interface: WalletKeySigner - -## Hierarchy - -* **WalletKeySigner** - -## Index - -### Properties - -* [authenticationMethod](_odis_query_.walletkeysigner.md#authenticationmethod) -* [contractKit](_odis_query_.walletkeysigner.md#contractkit) - -## Properties - -### authenticationMethod - -• **authenticationMethod**: *WALLET_KEY* - -*Defined in [packages/sdk/identity/src/odis/query.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L26)* - -___ - -### contractKit - -• **contractKit**: *ContractKit* - -*Defined in [packages/sdk/identity/src/odis/query.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L27)* diff --git a/packages/docs/sdk/docs/identity/interfaces/_offchain_accessors_interfaces_.privateaccessor.md b/packages/docs/sdk/docs/identity/interfaces/_offchain_accessors_interfaces_.privateaccessor.md deleted file mode 100644 index 623464ff4ba..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_offchain_accessors_interfaces_.privateaccessor.md +++ /dev/null @@ -1,82 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/interfaces"](../modules/_offchain_accessors_interfaces_.md) › [PrivateAccessor](_offchain_accessors_interfaces_.privateaccessor.md) - -# Interface: PrivateAccessor <**DataType**> - -## Type parameters - -▪ **DataType** - -## Hierarchy - -* **PrivateAccessor** - -## Implemented by - -* [PrivateBinaryAccessor](../classes/_offchain_accessors_binary_.privatebinaryaccessor.md) -* [PrivateNameAccessor](../classes/_offchain_accessors_name_.privatenameaccessor.md) -* [PrivatePictureAccessor](../classes/_offchain_accessors_pictures_.privatepictureaccessor.md) -* [PrivateSimpleAccessor](../classes/_offchain_accessors_simple_.privatesimpleaccessor.md) - -## Index - -### Properties - -* [read](_offchain_accessors_interfaces_.privateaccessor.md#read) -* [readAsResult](_offchain_accessors_interfaces_.privateaccessor.md#readasresult) -* [write](_offchain_accessors_interfaces_.privateaccessor.md#write) - -## Properties - -### read - -• **read**: *function* - -*Defined in [packages/sdk/identity/src/offchain/accessors/interfaces.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/interfaces.ts#L12)* - -#### Type declaration: - -▸ (`from`: string): *Promise‹DataType›* - -**Parameters:** - -Name | Type | ------- | ------ | -`from` | string | - -___ - -### readAsResult - -• **readAsResult**: *function* - -*Defined in [packages/sdk/identity/src/offchain/accessors/interfaces.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/interfaces.ts#L13)* - -#### Type declaration: - -▸ (`from`: string): *Promise‹Result‹DataType, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -**Parameters:** - -Name | Type | ------- | ------ | -`from` | string | - -___ - -### write - -• **write**: *function* - -*Defined in [packages/sdk/identity/src/offchain/accessors/interfaces.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/interfaces.ts#L11)* - -#### Type declaration: - -▸ (`data`: DataType, `to`: string[], `symmetricKey?`: Buffer): *Promise‹[SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors) | void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | DataType | -`to` | string[] | -`symmetricKey?` | Buffer | diff --git a/packages/docs/sdk/docs/identity/interfaces/_offchain_accessors_interfaces_.publicaccessor.md b/packages/docs/sdk/docs/identity/interfaces/_offchain_accessors_interfaces_.publicaccessor.md deleted file mode 100644 index c3a47f15f3a..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_offchain_accessors_interfaces_.publicaccessor.md +++ /dev/null @@ -1,80 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/interfaces"](../modules/_offchain_accessors_interfaces_.md) › [PublicAccessor](_offchain_accessors_interfaces_.publicaccessor.md) - -# Interface: PublicAccessor <**DataType**> - -## Type parameters - -▪ **DataType** - -## Hierarchy - -* **PublicAccessor** - -## Implemented by - -* [PublicBinaryAccessor](../classes/_offchain_accessors_binary_.publicbinaryaccessor.md) -* [PublicNameAccessor](../classes/_offchain_accessors_name_.publicnameaccessor.md) -* [PublicPictureAccessor](../classes/_offchain_accessors_pictures_.publicpictureaccessor.md) -* [PublicSimpleAccessor](../classes/_offchain_accessors_simple_.publicsimpleaccessor.md) - -## Index - -### Properties - -* [read](_offchain_accessors_interfaces_.publicaccessor.md#read) -* [readAsResult](_offchain_accessors_interfaces_.publicaccessor.md#readasresult) -* [write](_offchain_accessors_interfaces_.publicaccessor.md#write) - -## Properties - -### read - -• **read**: *function* - -*Defined in [packages/sdk/identity/src/offchain/accessors/interfaces.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/interfaces.ts#L6)* - -#### Type declaration: - -▸ (`from`: string): *Promise‹DataType›* - -**Parameters:** - -Name | Type | ------- | ------ | -`from` | string | - -___ - -### readAsResult - -• **readAsResult**: *function* - -*Defined in [packages/sdk/identity/src/offchain/accessors/interfaces.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/interfaces.ts#L7)* - -#### Type declaration: - -▸ (`from`: string): *Promise‹Result‹DataType, [SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors)››* - -**Parameters:** - -Name | Type | ------- | ------ | -`from` | string | - -___ - -### write - -• **write**: *function* - -*Defined in [packages/sdk/identity/src/offchain/accessors/interfaces.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/interfaces.ts#L5)* - -#### Type declaration: - -▸ (`data`: DataType): *Promise‹[SchemaErrors](../modules/_offchain_accessors_errors_.md#schemaerrors) | void›* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | DataType | diff --git a/packages/docs/sdk/docs/identity/interfaces/_offchain_data_wrapper_.offchaindatawrapper.md b/packages/docs/sdk/docs/identity/interfaces/_offchain_data_wrapper_.offchaindatawrapper.md deleted file mode 100644 index 3a8c11098d3..00000000000 --- a/packages/docs/sdk/docs/identity/interfaces/_offchain_data_wrapper_.offchaindatawrapper.md +++ /dev/null @@ -1,89 +0,0 @@ -[@celo/identity](../README.md) › ["offchain-data-wrapper"](../modules/_offchain_data_wrapper_.md) › [OffchainDataWrapper](_offchain_data_wrapper_.offchaindatawrapper.md) - -# Interface: OffchainDataWrapper - -## Hierarchy - -* **OffchainDataWrapper** - -## Implemented by - -* [BasicDataWrapper](../classes/_offchain_data_wrapper_.basicdatawrapper.md) - -## Index - -### Properties - -* [kit](_offchain_data_wrapper_.offchaindatawrapper.md#kit) -* [self](_offchain_data_wrapper_.offchaindatawrapper.md#self) -* [signer](_offchain_data_wrapper_.offchaindatawrapper.md#signer) - -### Methods - -* [readDataFromAsResult](_offchain_data_wrapper_.offchaindatawrapper.md#readdatafromasresult) -* [writeDataTo](_offchain_data_wrapper_.offchaindatawrapper.md#writedatato) - -## Properties - -### kit - -• **kit**: *ContractKit* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L61)* - -___ - -### self - -• **self**: *Address* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L63)* - -___ - -### signer - -• **signer**: *Address* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L62)* - -## Methods - -### readDataFromAsResult - -▸ **readDataFromAsResult**<**DataType**>(`account`: Address, `dataPath`: string, `checkOffchainSigners`: boolean, `type?`: t.Type‹DataType›): *Promise‹Result‹Buffer, [OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors)››* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L65)* - -**Type parameters:** - -▪ **DataType** - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | Address | -`dataPath` | string | -`checkOffchainSigners` | boolean | -`type?` | t.Type‹DataType› | - -**Returns:** *Promise‹Result‹Buffer, [OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors)››* - -___ - -### writeDataTo - -▸ **writeDataTo**(`data`: Buffer, `signature`: Buffer, `dataPath`: string): *Promise‹[OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors) | void›* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L64)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | Buffer | -`signature` | Buffer | -`dataPath` | string | - -**Returns:** *Promise‹[OffchainErrors](../modules/_offchain_data_wrapper_.md#offchainerrors) | void›* diff --git a/packages/docs/sdk/docs/identity/modules/_odis_bls_blinding_client_.md b/packages/docs/sdk/docs/identity/modules/_odis_bls_blinding_client_.md deleted file mode 100644 index de4bd26c796..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_odis_bls_blinding_client_.md +++ /dev/null @@ -1,13 +0,0 @@ -[@celo/identity](../README.md) › ["odis/bls-blinding-client"](_odis_bls_blinding_client_.md) - -# Module: "odis/bls-blinding-client" - -## Index - -### Classes - -* [WasmBlsBlindingClient](../classes/_odis_bls_blinding_client_.wasmblsblindingclient.md) - -### Interfaces - -* [BlsBlindingClient](../interfaces/_odis_bls_blinding_client_.blsblindingclient.md) diff --git a/packages/docs/sdk/docs/identity/modules/_odis_circuit_breaker_.md b/packages/docs/sdk/docs/identity/modules/_odis_circuit_breaker_.md deleted file mode 100644 index f4436eb5767..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_odis_circuit_breaker_.md +++ /dev/null @@ -1,115 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker"](_odis_circuit_breaker_.md) - -# Module: "odis/circuit-breaker" - -## Index - -### Enumerations - -* [CircuitBreakerEndpoints](../enums/_odis_circuit_breaker_.circuitbreakerendpoints.md) -* [CircuitBreakerErrorTypes](../enums/_odis_circuit_breaker_.circuitbreakererrortypes.md) -* [CircuitBreakerKeyStatus](../enums/_odis_circuit_breaker_.circuitbreakerkeystatus.md) - -### Classes - -* [CircuitBreakerClient](../classes/_odis_circuit_breaker_.circuitbreakerclient.md) -* [CircuitBreakerServiceError](../classes/_odis_circuit_breaker_.circuitbreakerserviceerror.md) -* [CircuitBreakerUnavailableError](../classes/_odis_circuit_breaker_.circuitbreakerunavailableerror.md) -* [EncryptionError](../classes/_odis_circuit_breaker_.encryptionerror.md) -* [FetchError](../classes/_odis_circuit_breaker_.fetcherror.md) - -### Interfaces - -* [CircuitBreakerServiceContext](../interfaces/_odis_circuit_breaker_.circuitbreakerservicecontext.md) -* [CircuitBreakerStatusResponse](../interfaces/_odis_circuit_breaker_.circuitbreakerstatusresponse.md) -* [CircuitBreakerUnwrapKeyRequest](../interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyrequest.md) -* [CircuitBreakerUnwrapKeyResponse](../interfaces/_odis_circuit_breaker_.circuitbreakerunwrapkeyresponse.md) - -### Type aliases - -* [CircuitBreakerError](_odis_circuit_breaker_.md#circuitbreakererror) - -### Variables - -* [BASE64_REGEXP](_odis_circuit_breaker_.md#const-base64_regexp) - -### Object literals - -* [VALORA_ALFAJORES_CIRCUIT_BREAKER_ENVIRONMENT](_odis_circuit_breaker_.md#const-valora_alfajores_circuit_breaker_environment) -* [VALORA_MAINNET_CIRCUIT_BREAKER_ENVIRONMENT](_odis_circuit_breaker_.md#const-valora_mainnet_circuit_breaker_environment) - -## Type aliases - -### CircuitBreakerError - -Ƭ **CircuitBreakerError**: *[CircuitBreakerServiceError](../classes/_odis_circuit_breaker_.circuitbreakerserviceerror.md) | [CircuitBreakerUnavailableError](../classes/_odis_circuit_breaker_.circuitbreakerunavailableerror.md) | [EncryptionError](../classes/_odis_circuit_breaker_.encryptionerror.md) | [FetchError](../classes/_odis_circuit_breaker_.fetcherror.md)* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:107](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L107)* - -## Variables - -### `Const` BASE64_REGEXP - -• **BASE64_REGEXP**: *RegExp‹›* = /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/ - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L5)* - -## Object literals - -### `Const` VALORA_ALFAJORES_CIRCUIT_BREAKER_ENVIRONMENT - -### ▪ **VALORA_ALFAJORES_CIRCUIT_BREAKER_ENVIRONMENT**: *object* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L12)* - -### publicKey - -• **publicKey**: *string* = `-----BEGIN PUBLIC KEY----- -MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAsYkNg3iY1ha4KGCGvHLl -mOMKV63lq+WsHIgUGfEuyfOWEBetVux9gvQEEPYpKbHgVQrfcegp28LoZYehWZHC -dIHSACcW0SGZagSOFEgxVSY6MgZZjmbTdlUtLac2cvxIDx8qhkoBjWRWu4g5LfdW -9QA0tiM3dR/pmA8YWcIYtyjGY1zglA/YqHClKsDRY+dbhshfILfohdFsVNJ3CWLS -J4yGvVe78AE/WiaXISV5ol+bqve4QlxzbBLIV4s44YONCh18/YhmGHCuSn8yy1/0 -q3YW7COaFEGd7m8VnV2rU/dFLKyF0XEanS6xk9ciL9uafR9dMryEQ7AW+yKmfQBG -H2i5uiKnWW2a3a873ShG2Qphl9mw1Kcrdxug4qk9y7RoKlMnG3Wdr4HMQb9S8KYf -07ZyVEbFip26ANWGo8dCA8fWvVtU5DByoWPI+PuglOB22z2noXov98imSFJfz9vu -yGAQt3CUOwUQvt+RObDXiHHIxJjU+6/81X3Jdnt3dFEfAgMBAAE= ------END PUBLIC KEY-----` - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L14)* - -### url - -• **url**: *string* = "https://us-central1-celo-mobile-alfajores.cloudfunctions.net/circuitBreaker/" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L13)* - -___ - -### `Const` VALORA_MAINNET_CIRCUIT_BREAKER_ENVIRONMENT - -### ▪ **VALORA_MAINNET_CIRCUIT_BREAKER_ENVIRONMENT**: *object* - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L27)* - -### publicKey - -• **publicKey**: *string* = `-----BEGIN PUBLIC KEY----- -MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEArQ89m/HIGECXR7ceZZRS -b6MZEw1S1o5qgi6sLEejBMUQhM/wgySoo5ydiW7S4iyiqEksQNAlOs5Mrv1aE9Ul -bG+rpglOA1xYLyjY7xUZE2tyPksPXcSKgu6d+G9gVtbmFld1Kr0jVx4qOLejtH3S -dGbX6g9GshgB1W4iEDZ4qEJBuvItSTudK3BFM1mBfEq1w3kDxNzYKC1zFlw+DWWh -BgIPB7zEp+MJNTwel2z7H02wsEMJMXzKwaAWaDp8PYfF3RwgCDIFkf+QteYIEUrG -C9bFhdYpDGY9Ldiz7kca9G9dvXWpZUQOYyOY7CFx0k2XcTBwx4Lq524lNR8waIDu -OT5jj2SIwXf5eKtyFMUqRNnqgs+IHHcWgh0CH7mfhPlFBMivKlwHgQqCJH3rHlgu -CMi3ENv4+p7+svshngntxGkEzZcLV3YVW7BG6xSOAqC1tjkM1PkmXENQOq+bxAL6 -bg3W6cTRQAQxoicu6+1c5Tdb/K36TXx0mHan7/Z8JCqfAgMBAAE= ------END PUBLIC KEY-----` - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L29)* - -### url - -• **url**: *string* = "https://us-central1-celo-mobile-mainnet.cloudfunctions.net/circuitBreaker/" - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.ts#L28)* diff --git a/packages/docs/sdk/docs/identity/modules/_odis_circuit_breaker_mock_.md b/packages/docs/sdk/docs/identity/modules/_odis_circuit_breaker_mock_.md deleted file mode 100644 index 58597556c25..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_odis_circuit_breaker_mock_.md +++ /dev/null @@ -1,70 +0,0 @@ -[@celo/identity](../README.md) › ["odis/circuit-breaker.mock"](_odis_circuit_breaker_mock_.md) - -# Module: "odis/circuit-breaker.mock" - -## Index - -### Classes - -* [MockCircuitBreaker](../classes/_odis_circuit_breaker_mock_.mockcircuitbreaker.md) - -### Variables - -* [MOCK_CIRCUIT_BREAKER_PRIVATE_KEY](_odis_circuit_breaker_mock_.md#const-mock_circuit_breaker_private_key) -* [MOCK_CIRCUIT_BREAKER_PUBLIC_KEY](_odis_circuit_breaker_mock_.md#const-mock_circuit_breaker_public_key) - -## Variables - -### `Const` MOCK_CIRCUIT_BREAKER_PRIVATE_KEY - -• **MOCK_CIRCUIT_BREAKER_PRIVATE_KEY**: *"-----BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMa3FQ+WO36gcUF/ -dGsNkc31NtOIjSQrhu/TZnZY/uRT89AKKRao2X39WMZVe4YyV/ClxZmuNbAlr6QG -VRhFcf+KddZQo7k+pOdpRdLUAtqwYBS/NHPdW/MLGmMqyNVLz+ACgltjYibCivjf -Y4us6yw2gruNuXVOBpXjvIYIrAX3AgMBAAECgYBGPqv8QZAweAjxLVv7B+X112wV -JN033wcpOiKrTVR1ZFP4w864iuGvTuKV4dvzmVJK6F7Mr6+c4AWRxwdHuCzOlwxj -O9RySFAXhoENu70zg8W2w4i8GMHsmdnNk045cF01Mb3GtQ6Y3uGb637XYTIwMEbC -Q74TbkrfPZPcSIpPEQJBAP4VModTr47oNvdyJITQ3fzIarRSDU0deZTpn6MXB3a1 -abOAzlqYK3CSvLyyM9GOB9C5wvIZev+aNU9SkqPzU38CQQDINu7nOqS2X8UXQ5sS -wFrnoBQcU78i7Jaopvw0kOvkvklHlKVvXVkWP8PaWYdUAO9fpEdKdRnfaOEnqBwT -aymJAkEAgTXmbEtyjAoracryJ1jQiyyglvLjMMQ8gC4OsLGVahj3mAF47zlTXfxB -XvSAxaCk+NB/Av9SPYn+ckhbqmSjoQJAYb6H1bVIkoyg0OG9hGMKPkhlaQrtpmQw -jTewqw0RTQQlDGAigALnqjgJKsFIkxc9xciS0WPn9KzkNxMYWdaYWQJBAI8asXXb -XF5Lg2AAM2xJ/SS+h+si4f70eZey4vo9pWB3Q+VKbtRZu2pCjlR1A1nIqigJxdlc -1jHX+4GiW+t0w8Q= ------END PRIVATE KEY-----"* = `-----BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMa3FQ+WO36gcUF/ -dGsNkc31NtOIjSQrhu/TZnZY/uRT89AKKRao2X39WMZVe4YyV/ClxZmuNbAlr6QG -VRhFcf+KddZQo7k+pOdpRdLUAtqwYBS/NHPdW/MLGmMqyNVLz+ACgltjYibCivjf -Y4us6yw2gruNuXVOBpXjvIYIrAX3AgMBAAECgYBGPqv8QZAweAjxLVv7B+X112wV -JN033wcpOiKrTVR1ZFP4w864iuGvTuKV4dvzmVJK6F7Mr6+c4AWRxwdHuCzOlwxj -O9RySFAXhoENu70zg8W2w4i8GMHsmdnNk045cF01Mb3GtQ6Y3uGb637XYTIwMEbC -Q74TbkrfPZPcSIpPEQJBAP4VModTr47oNvdyJITQ3fzIarRSDU0deZTpn6MXB3a1 -abOAzlqYK3CSvLyyM9GOB9C5wvIZev+aNU9SkqPzU38CQQDINu7nOqS2X8UXQ5sS -wFrnoBQcU78i7Jaopvw0kOvkvklHlKVvXVkWP8PaWYdUAO9fpEdKdRnfaOEnqBwT -aymJAkEAgTXmbEtyjAoracryJ1jQiyyglvLjMMQ8gC4OsLGVahj3mAF47zlTXfxB -XvSAxaCk+NB/Av9SPYn+ckhbqmSjoQJAYb6H1bVIkoyg0OG9hGMKPkhlaQrtpmQw -jTewqw0RTQQlDGAigALnqjgJKsFIkxc9xciS0WPn9KzkNxMYWdaYWQJBAI8asXXb -XF5Lg2AAM2xJ/SS+h+si4f70eZey4vo9pWB3Q+VKbtRZu2pCjlR1A1nIqigJxdlc -1jHX+4GiW+t0w8Q= ------END PRIVATE KEY-----` - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L22)* - -___ - -### `Const` MOCK_CIRCUIT_BREAKER_PUBLIC_KEY - -• **MOCK_CIRCUIT_BREAKER_PUBLIC_KEY**: *"-----BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGtxUPljt+oHFBf3RrDZHN9TbT -iI0kK4bv02Z2WP7kU/PQCikWqNl9/VjGVXuGMlfwpcWZrjWwJa+kBlUYRXH/inXW -UKO5PqTnaUXS1ALasGAUvzRz3VvzCxpjKsjVS8/gAoJbY2Imwor432OLrOssNoK7 -jbl1TgaV47yGCKwF9wIDAQAB ------END PUBLIC KEY-----"* = `-----BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGtxUPljt+oHFBf3RrDZHN9TbT -iI0kK4bv02Z2WP7kU/PQCikWqNl9/VjGVXuGMlfwpcWZrjWwJa+kBlUYRXH/inXW -UKO5PqTnaUXS1ALasGAUvzRz3VvzCxpjKsjVS8/gAoJbY2Imwor432OLrOssNoK7 -jbl1TgaV47yGCKwF9wIDAQAB ------END PUBLIC KEY-----` - -*Defined in [packages/sdk/identity/src/odis/circuit-breaker.mock.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/circuit-breaker.mock.ts#L15)* diff --git a/packages/docs/sdk/docs/identity/modules/_odis_matchmaking_.md b/packages/docs/sdk/docs/identity/modules/_odis_matchmaking_.md deleted file mode 100644 index b63c9ebf6f1..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_odis_matchmaking_.md +++ /dev/null @@ -1,50 +0,0 @@ -[@celo/identity](../README.md) › ["odis/matchmaking"](_odis_matchmaking_.md) - -# Module: "odis/matchmaking" - -## Index - -### Functions - -* [getContactMatches](_odis_matchmaking_.md#getcontactmatches) -* [obfuscateNumberForMatchmaking](_odis_matchmaking_.md#obfuscatenumberformatchmaking) - -## Functions - -### getContactMatches - -▸ **getContactMatches**(`e164NumberCaller`: E164Number, `e164NumberContacts`: E164Number[], `account`: string, `phoneNumberIdentifier`: string, `signer`: [AuthSigner](_odis_query_.md#authsigner), `context`: [ServiceContext](../interfaces/_odis_query_.servicecontext.md), `dekSigner?`: [EncryptionKeySigner](../interfaces/_odis_query_.encryptionkeysigner.md), `clientVersion?`: undefined | string, `sessionID?`: undefined | string): *Promise‹E164Number[]›* - -*Defined in [packages/sdk/identity/src/odis/matchmaking.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/matchmaking.ts#L23)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164NumberCaller` | E164Number | -`e164NumberContacts` | E164Number[] | -`account` | string | -`phoneNumberIdentifier` | string | -`signer` | [AuthSigner](_odis_query_.md#authsigner) | -`context` | [ServiceContext](../interfaces/_odis_query_.servicecontext.md) | -`dekSigner?` | [EncryptionKeySigner](../interfaces/_odis_query_.encryptionkeysigner.md) | -`clientVersion?` | undefined | string | -`sessionID?` | undefined | string | - -**Returns:** *Promise‹E164Number[]›* - -___ - -### obfuscateNumberForMatchmaking - -▸ **obfuscateNumberForMatchmaking**(`e164Number`: string): *string* - -*Defined in [packages/sdk/identity/src/odis/matchmaking.ts:94](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/matchmaking.ts#L94)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164Number` | string | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/identity/modules/_odis_phone_number_identifier_.md b/packages/docs/sdk/docs/identity/modules/_odis_phone_number_identifier_.md deleted file mode 100644 index 77ba3fa4dba..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_odis_phone_number_identifier_.md +++ /dev/null @@ -1,168 +0,0 @@ -[@celo/identity](../README.md) › ["odis/phone-number-identifier"](_odis_phone_number_identifier_.md) - -# Module: "odis/phone-number-identifier" - -## Index - -### Interfaces - -* [PhoneNumberHashDetails](../interfaces/_odis_phone_number_identifier_.phonenumberhashdetails.md) - -### Variables - -* [ODIS_MINIMUM_CELO_BALANCE](_odis_phone_number_identifier_.md#const-odis_minimum_celo_balance) -* [ODIS_MINIMUM_DOLLAR_BALANCE](_odis_phone_number_identifier_.md#const-odis_minimum_dollar_balance) - -### Functions - -* [getBlindedPhoneNumber](_odis_phone_number_identifier_.md#getblindedphonenumber) -* [getBlindedPhoneNumberSignature](_odis_phone_number_identifier_.md#getblindedphonenumbersignature) -* [getPepperFromThresholdSignature](_odis_phone_number_identifier_.md#getpepperfromthresholdsignature) -* [getPhoneNumberIdentifier](_odis_phone_number_identifier_.md#getphonenumberidentifier) -* [getPhoneNumberIdentifierFromSignature](_odis_phone_number_identifier_.md#getphonenumberidentifierfromsignature) -* [isBalanceSufficientForSigRetrieval](_odis_phone_number_identifier_.md#isbalancesufficientforsigretrieval) - -## Variables - -### `Const` ODIS_MINIMUM_CELO_BALANCE - -• **ODIS_MINIMUM_CELO_BALANCE**: *0.005* = 0.005 - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L21)* - -___ - -### `Const` ODIS_MINIMUM_DOLLAR_BALANCE - -• **ODIS_MINIMUM_DOLLAR_BALANCE**: *0.01* = 0.01 - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L19)* - -## Functions - -### getBlindedPhoneNumber - -▸ **getBlindedPhoneNumber**(`e164Number`: string, `blsBlindingClient`: [BlsBlindingClient](../interfaces/_odis_bls_blinding_client_.blsblindingclient.md), `seed?`: Buffer): *Promise‹string›* - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:88](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L88)* - -Blinds the phone number in preparation for the ODIS request -Caller should use the same blsBlindingClient instance for unblinding - -**Parameters:** - -Name | Type | ------- | ------ | -`e164Number` | string | -`blsBlindingClient` | [BlsBlindingClient](../interfaces/_odis_bls_blinding_client_.blsblindingclient.md) | -`seed?` | Buffer | - -**Returns:** *Promise‹string›* - -___ - -### getBlindedPhoneNumberSignature - -▸ **getBlindedPhoneNumberSignature**(`account`: string, `signer`: [AuthSigner](_odis_query_.md#authsigner), `context`: [ServiceContext](../interfaces/_odis_query_.servicecontext.md), `base64BlindedMessage`: string, `selfPhoneHash?`: undefined | string, `clientVersion?`: undefined | string, `sessionID?`: undefined | string): *Promise‹string›* - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:103](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L103)* - -Query ODIS for the blinded signature -Response can be passed into getPhoneNumberIdentifierFromSignature -to retrieve the on-chain identifier - -**Parameters:** - -Name | Type | ------- | ------ | -`account` | string | -`signer` | [AuthSigner](_odis_query_.md#authsigner) | -`context` | [ServiceContext](../interfaces/_odis_query_.servicecontext.md) | -`base64BlindedMessage` | string | -`selfPhoneHash?` | undefined | string | -`clientVersion?` | undefined | string | -`sessionID?` | undefined | string | - -**Returns:** *Promise‹string›* - -___ - -### getPepperFromThresholdSignature - -▸ **getPepperFromThresholdSignature**(`sigBuf`: Buffer): *string* - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:153](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L153)* - -**Parameters:** - -Name | Type | ------- | ------ | -`sigBuf` | Buffer | - -**Returns:** *string* - -___ - -### getPhoneNumberIdentifier - -▸ **getPhoneNumberIdentifier**(`e164Number`: string, `account`: string, `signer`: [AuthSigner](_odis_query_.md#authsigner), `context`: [ServiceContext](../interfaces/_odis_query_.servicecontext.md), `blindingFactor?`: undefined | string, `selfPhoneHash?`: undefined | string, `clientVersion?`: undefined | string, `blsBlindingClient?`: [BlsBlindingClient](../interfaces/_odis_bls_blinding_client_.blsblindingclient.md), `sessionID?`: undefined | string): *Promise‹[PhoneNumberHashDetails](../interfaces/_odis_phone_number_identifier_.phonenumberhashdetails.md)›* - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L38)* - -Retrieve the on-chain identifier for the provided phone number -Performs blinding, querying, and unblinding - -**Parameters:** - -Name | Type | ------- | ------ | -`e164Number` | string | -`account` | string | -`signer` | [AuthSigner](_odis_query_.md#authsigner) | -`context` | [ServiceContext](../interfaces/_odis_query_.servicecontext.md) | -`blindingFactor?` | undefined | string | -`selfPhoneHash?` | undefined | string | -`clientVersion?` | undefined | string | -`blsBlindingClient?` | [BlsBlindingClient](../interfaces/_odis_bls_blinding_client_.blsblindingclient.md) | -`sessionID?` | undefined | string | - -**Returns:** *Promise‹[PhoneNumberHashDetails](../interfaces/_odis_phone_number_identifier_.phonenumberhashdetails.md)›* - -___ - -### getPhoneNumberIdentifierFromSignature - -▸ **getPhoneNumberIdentifierFromSignature**(`e164Number`: string, `base64BlindedSignature`: string, `blsBlindingClient`: [BlsBlindingClient](../interfaces/_odis_bls_blinding_client_.blsblindingclient.md)): *Promise‹[PhoneNumberHashDetails](../interfaces/_odis_phone_number_identifier_.phonenumberhashdetails.md)›* - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:136](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L136)* - -Unblind the response and return the on-chain identifier - -**Parameters:** - -Name | Type | ------- | ------ | -`e164Number` | string | -`base64BlindedSignature` | string | -`blsBlindingClient` | [BlsBlindingClient](../interfaces/_odis_bls_blinding_client_.blsblindingclient.md) | - -**Returns:** *Promise‹[PhoneNumberHashDetails](../interfaces/_odis_phone_number_identifier_.phonenumberhashdetails.md)›* - -___ - -### isBalanceSufficientForSigRetrieval - -▸ **isBalanceSufficientForSigRetrieval**(`dollarBalance`: BigNumber.Value, `celoBalance`: BigNumber.Value): *boolean* - -*Defined in [packages/sdk/identity/src/odis/phone-number-identifier.ts:161](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/phone-number-identifier.ts#L161)* - -Check if balance is sufficient for quota retrieval - -**Parameters:** - -Name | Type | ------- | ------ | -`dollarBalance` | BigNumber.Value | -`celoBalance` | BigNumber.Value | - -**Returns:** *boolean* diff --git a/packages/docs/sdk/docs/identity/modules/_odis_query_.md b/packages/docs/sdk/docs/identity/modules/_odis_query_.md deleted file mode 100644 index e0d099de79c..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_odis_query_.md +++ /dev/null @@ -1,240 +0,0 @@ -[@celo/identity](../README.md) › ["odis/query"](_odis_query_.md) - -# Module: "odis/query" - -## Index - -### Enumerations - -* [ErrorMessages](../enums/_odis_query_.errormessages.md) - -### Interfaces - -* [CombinerSignMessageResponse](../interfaces/_odis_query_.combinersignmessageresponse.md) -* [EncryptionKeySigner](../interfaces/_odis_query_.encryptionkeysigner.md) -* [ServiceContext](../interfaces/_odis_query_.servicecontext.md) -* [WalletKeySigner](../interfaces/_odis_query_.walletkeysigner.md) - -### Type aliases - -* [AuthSigner](_odis_query_.md#authsigner) -* [MatchmakingRequest](_odis_query_.md#matchmakingrequest) -* [MatchmakingResponse](_odis_query_.md#matchmakingresponse) -* [SignMessageRequest](_odis_query_.md#signmessagerequest) -* [SignMessageResponse](_odis_query_.md#signmessageresponse) - -### Functions - -* [getServiceContext](_odis_query_.md#getservicecontext) -* [queryOdis](_odis_query_.md#queryodis) -* [sendOdisDomainRequest](_odis_query_.md#sendodisdomainrequest) -* [signWithDEK](_odis_query_.md#signwithdek) -* [signWithRawKey](_odis_query_.md#signwithrawkey) - -### Object literals - -* [ODIS_ALFAJORESSTAGING_CONTEXT](_odis_query_.md#const-odis_alfajoresstaging_context) -* [ODIS_ALFAJORES_CONTEXT](_odis_query_.md#const-odis_alfajores_context) -* [ODIS_MAINNET_CONTEXT](_odis_query_.md#const-odis_mainnet_context) - -## Type aliases - -### AuthSigner - -Ƭ **AuthSigner**: *[WalletKeySigner](../interfaces/_odis_query_.walletkeysigner.md) | [EncryptionKeySigner](../interfaces/_odis_query_.encryptionkeysigner.md)* - -*Defined in [packages/sdk/identity/src/odis/query.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L36)* - -___ - -### MatchmakingRequest - -Ƭ **MatchmakingRequest**: *GetContactMatchesRequest* - -*Defined in [packages/sdk/identity/src/odis/query.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L41)* - -___ - -### MatchmakingResponse - -Ƭ **MatchmakingResponse**: *GetContactMatchesResponse* - -*Defined in [packages/sdk/identity/src/odis/query.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L42)* - -___ - -### SignMessageRequest - -Ƭ **SignMessageRequest**: *GetBlindedMessageSigRequest* - -*Defined in [packages/sdk/identity/src/odis/query.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L40)* - -___ - -### SignMessageResponse - -Ƭ **SignMessageResponse**: *[CombinerSignMessageResponse](../interfaces/_odis_query_.combinersignmessageresponse.md)* - -*Defined in [packages/sdk/identity/src/odis/query.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L51)* - -**`deprecated`** Exported as SignMessageResponse for backwards compatibility. - -## Functions - -### getServiceContext - -▸ **getServiceContext**(`contextName`: string): *[ServiceContext](../interfaces/_odis_query_.servicecontext.md)* - -*Defined in [packages/sdk/identity/src/odis/query.ts:86](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L86)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`contextName` | string | "mainnet" | - -**Returns:** *[ServiceContext](../interfaces/_odis_query_.servicecontext.md)* - -___ - -### queryOdis - -▸ **queryOdis**<**ResponseType**>(`signer`: [AuthSigner](_odis_query_.md#authsigner), `body`: PhoneNumberPrivacyRequest, `context`: [ServiceContext](../interfaces/_odis_query_.servicecontext.md), `endpoint`: PhoneNumberPrivacyEndpoint | CombinerEndpoint): *Promise‹ResponseType›* - -*Defined in [packages/sdk/identity/src/odis/query.ts:124](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L124)* - -Make a request to lookup the phone number identifier or perform matchmaking - -**Type parameters:** - -▪ **ResponseType** - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`signer` | [AuthSigner](_odis_query_.md#authsigner) | Type of key to sign with. May be undefined if the request is presigned. | -`body` | PhoneNumberPrivacyRequest | Request to send in the body of the HTTP request. | -`context` | [ServiceContext](../interfaces/_odis_query_.servicecontext.md) | Contains service URL and public to determine which instance to contact. | -`endpoint` | PhoneNumberPrivacyEndpoint | CombinerEndpoint | Endpoint to query (e.g. '/getBlindedMessagePartialSig', '/getContactMatches'). | - -**Returns:** *Promise‹ResponseType›* - -___ - -### sendOdisDomainRequest - -▸ **sendOdisDomainRequest**<**RequestType**>(`body`: RequestType, `context`: [ServiceContext](../interfaces/_odis_query_.servicecontext.md), `endpoint`: DomainEndpoint, `responseSchema`: Type‹DomainResponse‹RequestType››): *Promise‹DomainResponse‹RequestType››* - -*Defined in [packages/sdk/identity/src/odis/query.ts:209](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L209)* - -Send the given domain request to ODIS (e.g. to get a POPRF evaluation or check quota). - -**Type parameters:** - -▪ **RequestType**: *DomainRequest‹Domain›* - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`body` | RequestType | Request to send in the body of the HTTP request. | -`context` | [ServiceContext](../interfaces/_odis_query_.servicecontext.md) | Contains service URL and public to determine which instance to contact. | -`endpoint` | DomainEndpoint | Endpoint to query (e.g. '/domain/sign', '/domain/quotaStatus'). | -`responseSchema` | Type‹DomainResponse‹RequestType›› | io-ts type for the expected response type. Provided to ensure type safety. | - -**Returns:** *Promise‹DomainResponse‹RequestType››* - -___ - -### signWithDEK - -▸ **signWithDEK**(`msg`: string, `signer`: [EncryptionKeySigner](../interfaces/_odis_query_.encryptionkeysigner.md)): *string* - -*Defined in [packages/sdk/identity/src/odis/query.ts:97](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L97)* - -**Parameters:** - -Name | Type | ------- | ------ | -`msg` | string | -`signer` | [EncryptionKeySigner](../interfaces/_odis_query_.encryptionkeysigner.md) | - -**Returns:** *string* - -___ - -### signWithRawKey - -▸ **signWithRawKey**(`msg`: string, `rawKey`: string): *string* - -*Defined in [packages/sdk/identity/src/odis/query.ts:101](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L101)* - -**Parameters:** - -Name | Type | ------- | ------ | -`msg` | string | -`rawKey` | string | - -**Returns:** *string* - -## Object literals - -### `Const` ODIS_ALFAJORESSTAGING_CONTEXT - -### ▪ **ODIS_ALFAJORESSTAGING_CONTEXT**: *object* - -*Defined in [packages/sdk/identity/src/odis/query.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L74)* - -### odisPubKey - -• **odisPubKey**: *string* = "7FsWGsFnmVvRfMDpzz95Np76wf/1sPaK0Og9yiB+P8QbjiC8FV67NBans9hzZEkBaQMhiapzgMR6CkZIZPvgwQboAxl65JWRZecGe5V3XO4sdKeNemdAZ2TzQuWkuZoA" - -*Defined in [packages/sdk/identity/src/odis/query.ts:76](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L76)* - -### odisUrl - -• **odisUrl**: *string* = "https://us-central1-celo-phone-number-privacy-stg.cloudfunctions.net" - -*Defined in [packages/sdk/identity/src/odis/query.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L75)* - -___ - -### `Const` ODIS_ALFAJORES_CONTEXT - -### ▪ **ODIS_ALFAJORES_CONTEXT**: *object* - -*Defined in [packages/sdk/identity/src/odis/query.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L68)* - -### odisPubKey - -• **odisPubKey**: *string* = "kPoRxWdEdZ/Nd3uQnp3FJFs54zuiS+ksqvOm9x8vY6KHPG8jrfqysvIRU0wtqYsBKA7SoAsICMBv8C/Fb2ZpDOqhSqvr/sZbZoHmQfvbqrzbtDIPvUIrHgRS0ydJCMsA" - -*Defined in [packages/sdk/identity/src/odis/query.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L70)* - -### odisUrl - -• **odisUrl**: *string* = "https://us-central1-celo-phone-number-privacy.cloudfunctions.net" - -*Defined in [packages/sdk/identity/src/odis/query.ts:69](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L69)* - -___ - -### `Const` ODIS_MAINNET_CONTEXT - -### ▪ **ODIS_MAINNET_CONTEXT**: *object* - -*Defined in [packages/sdk/identity/src/odis/query.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L80)* - -### odisPubKey - -• **odisPubKey**: *string* = "FvreHfLmhBjwxHxsxeyrcOLtSonC9j7K3WrS4QapYsQH6LdaDTaNGmnlQMfFY04Bp/K4wAvqQwO9/bqPVCKf8Ze8OZo8Frmog4JY4xAiwrsqOXxug11+htjEe1pj4uMA" - -*Defined in [packages/sdk/identity/src/odis/query.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L82)* - -### odisUrl - -• **odisUrl**: *string* = "https://us-central1-celo-pgpnp-mainnet.cloudfunctions.net" - -*Defined in [packages/sdk/identity/src/odis/query.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/odis/query.ts#L81)* diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_authorized_signer_.md b/packages/docs/sdk/docs/identity/modules/_offchain_accessors_authorized_signer_.md deleted file mode 100644 index 835036f47d2..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_authorized_signer_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/authorized-signer"](_offchain_accessors_authorized_signer_.md) - -# Module: "offchain/accessors/authorized-signer" - -## Index - -### Classes - -* [AuthorizedSignerAccessor](../classes/_offchain_accessors_authorized_signer_.authorizedsigneraccessor.md) diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_binary_.md b/packages/docs/sdk/docs/identity/modules/_offchain_accessors_binary_.md deleted file mode 100644 index 1cd4bcef4f1..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_binary_.md +++ /dev/null @@ -1,10 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/binary"](_offchain_accessors_binary_.md) - -# Module: "offchain/accessors/binary" - -## Index - -### Classes - -* [PrivateBinaryAccessor](../classes/_offchain_accessors_binary_.privatebinaryaccessor.md) -* [PublicBinaryAccessor](../classes/_offchain_accessors_binary_.publicbinaryaccessor.md) diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_errors_.md b/packages/docs/sdk/docs/identity/modules/_offchain_accessors_errors_.md deleted file mode 100644 index e993b7a1faf..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_errors_.md +++ /dev/null @@ -1,29 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/errors"](_offchain_accessors_errors_.md) - -# Module: "offchain/accessors/errors" - -## Index - -### Enumerations - -* [SchemaErrorTypes](../enums/_offchain_accessors_errors_.schemaerrortypes.md) - -### Classes - -* [InvalidDataError](../classes/_offchain_accessors_errors_.invaliddataerror.md) -* [InvalidKey](../classes/_offchain_accessors_errors_.invalidkey.md) -* [OffchainError](../classes/_offchain_accessors_errors_.offchainerror.md) -* [UnavailableKey](../classes/_offchain_accessors_errors_.unavailablekey.md) -* [UnknownCiphertext](../classes/_offchain_accessors_errors_.unknownciphertext.md) - -### Type aliases - -* [SchemaErrors](_offchain_accessors_errors_.md#schemaerrors) - -## Type aliases - -### SchemaErrors - -Ƭ **SchemaErrors**: *[InvalidDataError](../classes/_offchain_accessors_errors_.invaliddataerror.md) | [OffchainError](../classes/_offchain_accessors_errors_.offchainerror.md) | [UnknownCiphertext](../classes/_offchain_accessors_errors_.unknownciphertext.md) | [UnavailableKey](../classes/_offchain_accessors_errors_.unavailablekey.md) | [InvalidKey](../classes/_offchain_accessors_errors_.invalidkey.md)* - -*Defined in [packages/sdk/identity/src/offchain/accessors/errors.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/errors.ts#L44)* diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_interfaces_.md b/packages/docs/sdk/docs/identity/modules/_offchain_accessors_interfaces_.md deleted file mode 100644 index f4c8b09f10d..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_interfaces_.md +++ /dev/null @@ -1,10 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/interfaces"](_offchain_accessors_interfaces_.md) - -# Module: "offchain/accessors/interfaces" - -## Index - -### Interfaces - -* [PrivateAccessor](../interfaces/_offchain_accessors_interfaces_.privateaccessor.md) -* [PublicAccessor](../interfaces/_offchain_accessors_interfaces_.publicaccessor.md) diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_name_.md b/packages/docs/sdk/docs/identity/modules/_offchain_accessors_name_.md deleted file mode 100644 index 70a22e8c2b5..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_name_.md +++ /dev/null @@ -1,22 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/name"](_offchain_accessors_name_.md) - -# Module: "offchain/accessors/name" - -## Index - -### Classes - -* [PrivateNameAccessor](../classes/_offchain_accessors_name_.privatenameaccessor.md) -* [PublicNameAccessor](../classes/_offchain_accessors_name_.publicnameaccessor.md) - -### Type aliases - -* [NameType](_offchain_accessors_name_.md#nametype) - -## Type aliases - -### NameType - -Ƭ **NameType**: *t.TypeOf‹typeof NameSchema›* - -*Defined in [packages/sdk/identity/src/offchain/accessors/name.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/accessors/name.ts#L9)* diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_pictures_.md b/packages/docs/sdk/docs/identity/modules/_offchain_accessors_pictures_.md deleted file mode 100644 index 2a287f34848..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_pictures_.md +++ /dev/null @@ -1,10 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/pictures"](_offchain_accessors_pictures_.md) - -# Module: "offchain/accessors/pictures" - -## Index - -### Classes - -* [PrivatePictureAccessor](../classes/_offchain_accessors_pictures_.privatepictureaccessor.md) -* [PublicPictureAccessor](../classes/_offchain_accessors_pictures_.publicpictureaccessor.md) diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_simple_.md b/packages/docs/sdk/docs/identity/modules/_offchain_accessors_simple_.md deleted file mode 100644 index ac2329e9a84..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_accessors_simple_.md +++ /dev/null @@ -1,10 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/accessors/simple"](_offchain_accessors_simple_.md) - -# Module: "offchain/accessors/simple" - -## Index - -### Classes - -* [PrivateSimpleAccessor](../classes/_offchain_accessors_simple_.privatesimpleaccessor.md) -* [PublicSimpleAccessor](../classes/_offchain_accessors_simple_.publicsimpleaccessor.md) diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_data_wrapper_.md b/packages/docs/sdk/docs/identity/modules/_offchain_data_wrapper_.md deleted file mode 100644 index 08189ab8e43..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_data_wrapper_.md +++ /dev/null @@ -1,33 +0,0 @@ -[@celo/identity](../README.md) › ["offchain-data-wrapper"](_offchain_data_wrapper_.md) - -# Module: "offchain-data-wrapper" - -## Index - -### Enumerations - -* [OffchainErrorTypes](../enums/_offchain_data_wrapper_.offchainerrortypes.md) - -### Classes - -* [BasicDataWrapper](../classes/_offchain_data_wrapper_.basicdatawrapper.md) -* [FetchError](../classes/_offchain_data_wrapper_.fetcherror.md) -* [InvalidSignature](../classes/_offchain_data_wrapper_.invalidsignature.md) -* [NoStorageProvider](../classes/_offchain_data_wrapper_.nostorageprovider.md) -* [NoStorageRootProvidedData](../classes/_offchain_data_wrapper_.nostoragerootprovideddata.md) - -### Interfaces - -* [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) - -### Type aliases - -* [OffchainErrors](_offchain_data_wrapper_.md#offchainerrors) - -## Type aliases - -### OffchainErrors - -Ƭ **OffchainErrors**: *[FetchError](../classes/_offchain_data_wrapper_.fetcherror.md) | [InvalidSignature](../classes/_offchain_data_wrapper_.invalidsignature.md) | [NoStorageRootProvidedData](../classes/_offchain_data_wrapper_.nostoragerootprovideddata.md) | [NoStorageProvider](../classes/_offchain_data_wrapper_.nostorageprovider.md)* - -*Defined in [packages/sdk/identity/src/offchain-data-wrapper.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain-data-wrapper.ts#L54)* diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_storage_writers_.md b/packages/docs/sdk/docs/identity/modules/_offchain_storage_writers_.md deleted file mode 100644 index 400caae439c..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_storage_writers_.md +++ /dev/null @@ -1,14 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/storage-writers"](_offchain_storage_writers_.md) - -# Module: "offchain/storage-writers" - -## Index - -### Classes - -* [AwsStorageWriter](../classes/_offchain_storage_writers_.awsstoragewriter.md) -* [GitStorageWriter](../classes/_offchain_storage_writers_.gitstoragewriter.md) -* [GoogleStorageWriter](../classes/_offchain_storage_writers_.googlestoragewriter.md) -* [LocalStorageWriter](../classes/_offchain_storage_writers_.localstoragewriter.md) -* [MockStorageWriter](../classes/_offchain_storage_writers_.mockstoragewriter.md) -* [StorageWriter](../classes/_offchain_storage_writers_.storagewriter.md) diff --git a/packages/docs/sdk/docs/identity/modules/_offchain_utils_.md b/packages/docs/sdk/docs/identity/modules/_offchain_utils_.md deleted file mode 100644 index 3e2d78382ec..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_offchain_utils_.md +++ /dev/null @@ -1,162 +0,0 @@ -[@celo/identity](../README.md) › ["offchain/utils"](_offchain_utils_.md) - -# Module: "offchain/utils" - -## Index - -### Functions - -* [buildEIP712TypedData](_offchain_utils_.md#const-buildeip712typeddata) -* [deserialize](_offchain_utils_.md#const-deserialize) -* [readEncrypted](_offchain_utils_.md#const-readencrypted) -* [resolvePath](_offchain_utils_.md#resolvepath) -* [signBuffer](_offchain_utils_.md#const-signbuffer) -* [writeEncrypted](_offchain_utils_.md#const-writeencrypted) -* [writeSymmetricKeys](_offchain_utils_.md#const-writesymmetrickeys) - -## Functions - -### `Const` buildEIP712TypedData - -▸ **buildEIP712TypedData**<**DataType**>(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md), `path`: string, `data`: DataType | Buffer, `type?`: t.Type‹DataType›): *Promise‹EIP712TypedData›* - -*Defined in [packages/sdk/identity/src/offchain/utils.ts:296](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/utils.ts#L296)* - -**Type parameters:** - -▪ **DataType** - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | -`path` | string | -`data` | DataType | Buffer | -`type?` | t.Type‹DataType› | - -**Returns:** *Promise‹EIP712TypedData›* - -___ - -### `Const` deserialize - -▸ **deserialize**<**DataType**>(`type`: Type‹DataType›, `buf`: Buffer): *Result‹DataType, [SchemaErrors](_offchain_accessors_errors_.md#schemaerrors)›* - -*Defined in [packages/sdk/identity/src/offchain/utils.ts:279](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/utils.ts#L279)* - -**Type parameters:** - -▪ **DataType** - -**Parameters:** - -Name | Type | ------- | ------ | -`type` | Type‹DataType› | -`buf` | Buffer | - -**Returns:** *Result‹DataType, [SchemaErrors](_offchain_accessors_errors_.md#schemaerrors)›* - -___ - -### `Const` readEncrypted - -▸ **readEncrypted**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md), `dataPath`: string, `senderAddress`: Address): *Promise‹Result‹Buffer, [SchemaErrors](_offchain_accessors_errors_.md#schemaerrors)››* - -*Defined in [packages/sdk/identity/src/offchain/utils.ts:249](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/utils.ts#L249)* - -Reads and decrypts a payload that has been encrypted to your data encryption key. Will -resolve the symmetric key used to encrypt the payload. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | the offchain data wrapper | -`dataPath` | string | path to where the encrypted data is stored. Used to derive the key location | -`senderAddress` | Address | the address that encrypted this key to you | - -**Returns:** *Promise‹Result‹Buffer, [SchemaErrors](_offchain_accessors_errors_.md#schemaerrors)››* - -___ - -### resolvePath - -▸ **resolvePath**(`base`: string, `path`: string): *string* - -*Defined in [packages/sdk/identity/src/offchain/utils.ts:404](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/utils.ts#L404)* - -We want users to be able to specify a root + path as their base -storage url, https://example.com/store-under/path, for example. Constructing -a URL doesn't respect these paths if the appended path is absolute, so we ensure -it's not and ensure the base is - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`base` | string | root or base of the domain | -`path` | string | the path to append | - -**Returns:** *string* - -___ - -### `Const` signBuffer - -▸ **signBuffer**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md), `dataPath`: string, `buf`: Buffer): *Promise‹string›* - -*Defined in [packages/sdk/identity/src/offchain/utils.ts:353](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/utils.ts#L353)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | -`dataPath` | string | -`buf` | Buffer | - -**Returns:** *Promise‹string›* - -___ - -### `Const` writeEncrypted - -▸ **writeEncrypted**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md), `dataPath`: string, `data`: Buffer, `toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹[SchemaErrors](_offchain_accessors_errors_.md#schemaerrors) | void›* - -*Defined in [packages/sdk/identity/src/offchain/utils.ts:135](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/utils.ts#L135)* - -Handles encrypting the data with a symmetric key, then distributing said key to each address -in the `toAddresses` array. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | the offchain data wrapper | -`dataPath` | string | path to where the encrypted data is stored. Used to derive the key location | -`data` | Buffer | the data to encrypt | -`toAddresses` | Address[] | the addresses to distribute the symmetric key to | -`symmetricKey?` | Buffer | the symmetric key to use to encrypt the data. One will be found or generated if not provided | - -**Returns:** *Promise‹[SchemaErrors](_offchain_accessors_errors_.md#schemaerrors) | void›* - -___ - -### `Const` writeSymmetricKeys - -▸ **writeSymmetricKeys**(`wrapper`: [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md), `dataPath`: string, `toAddresses`: Address[], `symmetricKey?`: Buffer): *Promise‹[SchemaErrors](_offchain_accessors_errors_.md#schemaerrors) | void›* - -*Defined in [packages/sdk/identity/src/offchain/utils.ts:171](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/offchain/utils.ts#L171)* - -**Parameters:** - -Name | Type | ------- | ------ | -`wrapper` | [OffchainDataWrapper](../interfaces/_offchain_data_wrapper_.offchaindatawrapper.md) | -`dataPath` | string | -`toAddresses` | Address[] | -`symmetricKey?` | Buffer | - -**Returns:** *Promise‹[SchemaErrors](_offchain_accessors_errors_.md#schemaerrors) | void›* diff --git a/packages/docs/sdk/docs/identity/modules/_test_utils_setup_global_.md b/packages/docs/sdk/docs/identity/modules/_test_utils_setup_global_.md deleted file mode 100644 index bf5ad3a8a1a..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_test_utils_setup_global_.md +++ /dev/null @@ -1,19 +0,0 @@ -[@celo/identity](../README.md) › ["test-utils/setup.global"](_test_utils_setup_global_.md) - -# Module: "test-utils/setup.global" - -## Index - -### Functions - -* [globalSetup](_test_utils_setup_global_.md#globalsetup) - -## Functions - -### globalSetup - -▸ **globalSetup**(): *Promise‹void›* - -*Defined in [packages/sdk/identity/src/test-utils/setup.global.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/test-utils/setup.global.ts#L14)* - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/identity/modules/_test_utils_teardown_global_.md b/packages/docs/sdk/docs/identity/modules/_test_utils_teardown_global_.md deleted file mode 100644 index 8445323e47f..00000000000 --- a/packages/docs/sdk/docs/identity/modules/_test_utils_teardown_global_.md +++ /dev/null @@ -1,19 +0,0 @@ -[@celo/identity](../README.md) › ["test-utils/teardown.global"](_test_utils_teardown_global_.md) - -# Module: "test-utils/teardown.global" - -## Index - -### Functions - -* [globalTeardown](_test_utils_teardown_global_.md#globalteardown) - -## Functions - -### globalTeardown - -▸ **globalTeardown**(): *Promise‹void›* - -*Defined in [packages/sdk/identity/src/test-utils/teardown.global.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/identity/src/test-utils/teardown.global.ts#L7)* - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/keystores/README.md b/packages/docs/sdk/docs/keystores/README.md deleted file mode 100644 index d32d6ae5873..00000000000 --- a/packages/docs/sdk/docs/keystores/README.md +++ /dev/null @@ -1,13 +0,0 @@ -[@celo/keystores](README.md) - -# @celo/keystores - -## Index - -### Modules - -* ["file-keystore"](modules/_file_keystore_.md) -* ["inmemory-keystore"](modules/_inmemory_keystore_.md) -* ["keystore-base"](modules/_keystore_base_.md) -* ["keystore-wallet-wrapper"](modules/_keystore_wallet_wrapper_.md) -* ["test-constants"](modules/_test_constants_.md) diff --git a/packages/docs/sdk/docs/keystores/classes/_file_keystore_.filekeystore.md b/packages/docs/sdk/docs/keystores/classes/_file_keystore_.filekeystore.md deleted file mode 100644 index 77855e774b3..00000000000 --- a/packages/docs/sdk/docs/keystores/classes/_file_keystore_.filekeystore.md +++ /dev/null @@ -1,286 +0,0 @@ -[@celo/keystores](../README.md) › ["file-keystore"](../modules/_file_keystore_.md) › [FileKeystore](_file_keystore_.filekeystore.md) - -# Class: FileKeystore - -## Hierarchy - -* [KeystoreBase](_keystore_base_.keystorebase.md) - - ↳ **FileKeystore** - -## Index - -### Constructors - -* [constructor](_file_keystore_.filekeystore.md#constructor) - -### Methods - -* [changeKeystorePassphrase](_file_keystore_.filekeystore.md#changekeystorepassphrase) -* [deleteKeystore](_file_keystore_.filekeystore.md#deletekeystore) -* [getAddress](_file_keystore_.filekeystore.md#getaddress) -* [getAddressMap](_file_keystore_.filekeystore.md#getaddressmap) -* [getAllKeystoreNames](_file_keystore_.filekeystore.md#getallkeystorenames) -* [getKeystoreName](_file_keystore_.filekeystore.md#getkeystorename) -* [getPrivateKey](_file_keystore_.filekeystore.md#getprivatekey) -* [getRawKeystore](_file_keystore_.filekeystore.md#getrawkeystore) -* [importPrivateKey](_file_keystore_.filekeystore.md#importprivatekey) -* [listKeystoreAddresses](_file_keystore_.filekeystore.md#listkeystoreaddresses) -* [persistKeystore](_file_keystore_.filekeystore.md#persistkeystore) -* [removeKeystore](_file_keystore_.filekeystore.md#removekeystore) - -## Constructors - -### constructor - -\+ **new FileKeystore**(`keystoreDir`: string): *[FileKeystore](_file_keystore_.filekeystore.md)* - -*Defined in [file-keystore.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/file-keystore.ts#L10)* - -Creates (but does not overwrite existing) directory -for containing keystore entries. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreDir` | string | Path to directory where keystore will be saved | - -**Returns:** *[FileKeystore](_file_keystore_.filekeystore.md)* - -## Methods - -### changeKeystorePassphrase - -▸ **changeKeystorePassphrase**(`address`: string, `oldPassphrase`: string, `newPassphrase`: string): *Promise‹void›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[changeKeystorePassphrase](_keystore_base_.keystorebase.md#changekeystorepassphrase)* - -*Defined in [keystore-base.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L132)* - -Change secret phrase used to encrypt the private key of an address - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address | -`oldPassphrase` | string | Secret phrase used to encrypt the private key | -`newPassphrase` | string | New secret phrase to re-encrypt the private key | - -**Returns:** *Promise‹void›* - -___ - -### deleteKeystore - -▸ **deleteKeystore**(`address`: string): *Promise‹void›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[deleteKeystore](_keystore_base_.keystorebase.md#deletekeystore)* - -*Defined in [keystore-base.ts:145](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L145)* - -Permanently removes keystore entry from keystore - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address of keystore to be deleted | - -**Returns:** *Promise‹void›* - -___ - -### getAddress - -▸ **getAddress**(`keystoreName`: string): *string* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[getAddress](_keystore_base_.keystorebase.md#getaddress)* - -*Defined in [keystore-base.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L51)* - -Gets the address corresponding to a particular keystore entry - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreName` | string | Name of keystore entry belonging to the address | - -**Returns:** *string* - -Account address - -___ - -### getAddressMap - -▸ **getAddressMap**(): *Promise‹Record‹string, string››* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[getAddressMap](_keystore_base_.keystorebase.md#getaddressmap)* - -*Defined in [keystore-base.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L72)* - -Maps account addresses to their respective keystore entries (names) - -**Returns:** *Promise‹Record‹string, string››* - -Record with account addresses as keys, keystore entry names as values - -___ - -### getAllKeystoreNames - -▸ **getAllKeystoreNames**(): *Promise‹string[]›* - -*Overrides [KeystoreBase](_keystore_base_.keystorebase.md).[getAllKeystoreNames](_keystore_base_.keystorebase.md#abstract-getallkeystorenames)* - -*Defined in [file-keystore.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/file-keystore.ts#L27)* - -**Returns:** *Promise‹string[]›* - -List of file names (keystore entries) in the keystore - -___ - -### getKeystoreName - -▸ **getKeystoreName**(`address`: string): *Promise‹string›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[getKeystoreName](_keystore_base_.keystorebase.md#getkeystorename)* - -*Defined in [keystore-base.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L106)* - -Gets name of keystore entry corresponding to an address - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address | - -**Returns:** *Promise‹string›* - -Name of corresponding keystore entry - -___ - -### getPrivateKey - -▸ **getPrivateKey**(`address`: string, `passphrase`: string): *Promise‹string›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[getPrivateKey](_keystore_base_.keystorebase.md#getprivatekey)* - -*Defined in [keystore-base.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L120)* - -Gets decrypted (plaintext) private key for an account address - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address | -`passphrase` | string | Secret phrase used to encrypt the private key | - -**Returns:** *Promise‹string›* - -___ - -### getRawKeystore - -▸ **getRawKeystore**(`keystoreName`: string): *string* - -*Overrides [KeystoreBase](_keystore_base_.keystorebase.md).[getRawKeystore](_keystore_base_.keystorebase.md#abstract-getrawkeystore)* - -*Defined in [file-keystore.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/file-keystore.ts#L45)* - -Gets contents of keystore entry file - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreName` | string | File name of keystore entry | - -**Returns:** *string* - -V3Keystore string entry - -___ - -### importPrivateKey - -▸ **importPrivateKey**(`privateKey`: string, `passphrase`: string): *Promise‹void›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[importPrivateKey](_keystore_base_.keystorebase.md#importprivatekey)* - -*Defined in [keystore-base.ts:86](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L86)* - -Encrypts and stores a private key as a new keystore entry - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`privateKey` | string | Private key to encrypted | -`passphrase` | string | Secret string to encrypt private key | - -**Returns:** *Promise‹void›* - -___ - -### listKeystoreAddresses - -▸ **listKeystoreAddresses**(): *Promise‹string[]›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[listKeystoreAddresses](_keystore_base_.keystorebase.md#listkeystoreaddresses)* - -*Defined in [keystore-base.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L64)* - -Gets a list of all account addresses in the keystore - -**Returns:** *Promise‹string[]›* - -List of account address strings - -___ - -### persistKeystore - -▸ **persistKeystore**(`keystoreName`: string, `keystore`: string): *void* - -*Overrides [KeystoreBase](_keystore_base_.keystorebase.md).[persistKeystore](_keystore_base_.keystorebase.md#abstract-persistkeystore)* - -*Defined in [file-keystore.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/file-keystore.ts#L36)* - -Saves keystore entries as a file in the keystore directory - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreName` | string | File name of keystore entry | -`keystore` | string | V3Keystore string entry | - -**Returns:** *void* - -___ - -### removeKeystore - -▸ **removeKeystore**(`keystoreName`: string): *void* - -*Overrides [KeystoreBase](_keystore_base_.keystorebase.md).[removeKeystore](_keystore_base_.keystorebase.md#abstract-removekeystore)* - -*Defined in [file-keystore.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/file-keystore.ts#L53)* - -Deletes file keystore entry from directory - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreName` | string | File name of keystore entry to be removed | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/keystores/classes/_inmemory_keystore_.inmemorykeystore.md b/packages/docs/sdk/docs/keystores/classes/_inmemory_keystore_.inmemorykeystore.md deleted file mode 100644 index 80ae7d87420..00000000000 --- a/packages/docs/sdk/docs/keystores/classes/_inmemory_keystore_.inmemorykeystore.md +++ /dev/null @@ -1,253 +0,0 @@ -[@celo/keystores](../README.md) › ["inmemory-keystore"](../modules/_inmemory_keystore_.md) › [InMemoryKeystore](_inmemory_keystore_.inmemorykeystore.md) - -# Class: InMemoryKeystore - -## Hierarchy - -* [KeystoreBase](_keystore_base_.keystorebase.md) - - ↳ **InMemoryKeystore** - -## Index - -### Methods - -* [changeKeystorePassphrase](_inmemory_keystore_.inmemorykeystore.md#changekeystorepassphrase) -* [deleteKeystore](_inmemory_keystore_.inmemorykeystore.md#deletekeystore) -* [getAddress](_inmemory_keystore_.inmemorykeystore.md#getaddress) -* [getAddressMap](_inmemory_keystore_.inmemorykeystore.md#getaddressmap) -* [getAllKeystoreNames](_inmemory_keystore_.inmemorykeystore.md#getallkeystorenames) -* [getKeystoreName](_inmemory_keystore_.inmemorykeystore.md#getkeystorename) -* [getPrivateKey](_inmemory_keystore_.inmemorykeystore.md#getprivatekey) -* [getRawKeystore](_inmemory_keystore_.inmemorykeystore.md#getrawkeystore) -* [importPrivateKey](_inmemory_keystore_.inmemorykeystore.md#importprivatekey) -* [listKeystoreAddresses](_inmemory_keystore_.inmemorykeystore.md#listkeystoreaddresses) -* [persistKeystore](_inmemory_keystore_.inmemorykeystore.md#persistkeystore) -* [removeKeystore](_inmemory_keystore_.inmemorykeystore.md#removekeystore) - -## Methods - -### changeKeystorePassphrase - -▸ **changeKeystorePassphrase**(`address`: string, `oldPassphrase`: string, `newPassphrase`: string): *Promise‹void›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[changeKeystorePassphrase](_keystore_base_.keystorebase.md#changekeystorepassphrase)* - -*Defined in [keystore-base.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L132)* - -Change secret phrase used to encrypt the private key of an address - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address | -`oldPassphrase` | string | Secret phrase used to encrypt the private key | -`newPassphrase` | string | New secret phrase to re-encrypt the private key | - -**Returns:** *Promise‹void›* - -___ - -### deleteKeystore - -▸ **deleteKeystore**(`address`: string): *Promise‹void›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[deleteKeystore](_keystore_base_.keystorebase.md#deletekeystore)* - -*Defined in [keystore-base.ts:145](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L145)* - -Permanently removes keystore entry from keystore - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address of keystore to be deleted | - -**Returns:** *Promise‹void›* - -___ - -### getAddress - -▸ **getAddress**(`keystoreName`: string): *string* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[getAddress](_keystore_base_.keystorebase.md#getaddress)* - -*Defined in [keystore-base.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L51)* - -Gets the address corresponding to a particular keystore entry - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreName` | string | Name of keystore entry belonging to the address | - -**Returns:** *string* - -Account address - -___ - -### getAddressMap - -▸ **getAddressMap**(): *Promise‹Record‹string, string››* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[getAddressMap](_keystore_base_.keystorebase.md#getaddressmap)* - -*Defined in [keystore-base.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L72)* - -Maps account addresses to their respective keystore entries (names) - -**Returns:** *Promise‹Record‹string, string››* - -Record with account addresses as keys, keystore entry names as values - -___ - -### getAllKeystoreNames - -▸ **getAllKeystoreNames**(): *Promise‹string[]›* - -*Overrides [KeystoreBase](_keystore_base_.keystorebase.md).[getAllKeystoreNames](_keystore_base_.keystorebase.md#abstract-getallkeystorenames)* - -*Defined in [inmemory-keystore.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/inmemory-keystore.ts#L18)* - -**Returns:** *Promise‹string[]›* - -___ - -### getKeystoreName - -▸ **getKeystoreName**(`address`: string): *Promise‹string›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[getKeystoreName](_keystore_base_.keystorebase.md#getkeystorename)* - -*Defined in [keystore-base.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L106)* - -Gets name of keystore entry corresponding to an address - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address | - -**Returns:** *Promise‹string›* - -Name of corresponding keystore entry - -___ - -### getPrivateKey - -▸ **getPrivateKey**(`address`: string, `passphrase`: string): *Promise‹string›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[getPrivateKey](_keystore_base_.keystorebase.md#getprivatekey)* - -*Defined in [keystore-base.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L120)* - -Gets decrypted (plaintext) private key for an account address - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address | -`passphrase` | string | Secret phrase used to encrypt the private key | - -**Returns:** *Promise‹string›* - -___ - -### getRawKeystore - -▸ **getRawKeystore**(`keystoreName`: string): *string* - -*Overrides [KeystoreBase](_keystore_base_.keystorebase.md).[getRawKeystore](_keystore_base_.keystorebase.md#abstract-getrawkeystore)* - -*Defined in [inmemory-keystore.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/inmemory-keystore.ts#L14)* - -**Parameters:** - -Name | Type | ------- | ------ | -`keystoreName` | string | - -**Returns:** *string* - -___ - -### importPrivateKey - -▸ **importPrivateKey**(`privateKey`: string, `passphrase`: string): *Promise‹void›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[importPrivateKey](_keystore_base_.keystorebase.md#importprivatekey)* - -*Defined in [keystore-base.ts:86](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L86)* - -Encrypts and stores a private key as a new keystore entry - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`privateKey` | string | Private key to encrypted | -`passphrase` | string | Secret string to encrypt private key | - -**Returns:** *Promise‹void›* - -___ - -### listKeystoreAddresses - -▸ **listKeystoreAddresses**(): *Promise‹string[]›* - -*Inherited from [KeystoreBase](_keystore_base_.keystorebase.md).[listKeystoreAddresses](_keystore_base_.keystorebase.md#listkeystoreaddresses)* - -*Defined in [keystore-base.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L64)* - -Gets a list of all account addresses in the keystore - -**Returns:** *Promise‹string[]›* - -List of account address strings - -___ - -### persistKeystore - -▸ **persistKeystore**(`keystoreName`: string, `keystore`: string): *void* - -*Overrides [KeystoreBase](_keystore_base_.keystorebase.md).[persistKeystore](_keystore_base_.keystorebase.md#abstract-persistkeystore)* - -*Defined in [inmemory-keystore.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/inmemory-keystore.ts#L10)* - -**Parameters:** - -Name | Type | ------- | ------ | -`keystoreName` | string | -`keystore` | string | - -**Returns:** *void* - -___ - -### removeKeystore - -▸ **removeKeystore**(`keystoreName`: string): *void* - -*Overrides [KeystoreBase](_keystore_base_.keystorebase.md).[removeKeystore](_keystore_base_.keystorebase.md#abstract-removekeystore)* - -*Defined in [inmemory-keystore.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/inmemory-keystore.ts#L22)* - -**Parameters:** - -Name | Type | ------- | ------ | -`keystoreName` | string | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/keystores/classes/_keystore_base_.keystorebase.md b/packages/docs/sdk/docs/keystores/classes/_keystore_base_.keystorebase.md deleted file mode 100644 index 00612ba28e7..00000000000 --- a/packages/docs/sdk/docs/keystores/classes/_keystore_base_.keystorebase.md +++ /dev/null @@ -1,239 +0,0 @@ -[@celo/keystores](../README.md) › ["keystore-base"](../modules/_keystore_base_.md) › [KeystoreBase](_keystore_base_.keystorebase.md) - -# Class: KeystoreBase - -## Hierarchy - -* **KeystoreBase** - - ↳ [FileKeystore](_file_keystore_.filekeystore.md) - - ↳ [InMemoryKeystore](_inmemory_keystore_.inmemorykeystore.md) - -## Index - -### Methods - -* [changeKeystorePassphrase](_keystore_base_.keystorebase.md#changekeystorepassphrase) -* [deleteKeystore](_keystore_base_.keystorebase.md#deletekeystore) -* [getAddress](_keystore_base_.keystorebase.md#getaddress) -* [getAddressMap](_keystore_base_.keystorebase.md#getaddressmap) -* [getAllKeystoreNames](_keystore_base_.keystorebase.md#abstract-getallkeystorenames) -* [getKeystoreName](_keystore_base_.keystorebase.md#getkeystorename) -* [getPrivateKey](_keystore_base_.keystorebase.md#getprivatekey) -* [getRawKeystore](_keystore_base_.keystorebase.md#abstract-getrawkeystore) -* [importPrivateKey](_keystore_base_.keystorebase.md#importprivatekey) -* [listKeystoreAddresses](_keystore_base_.keystorebase.md#listkeystoreaddresses) -* [persistKeystore](_keystore_base_.keystorebase.md#abstract-persistkeystore) -* [removeKeystore](_keystore_base_.keystorebase.md#abstract-removekeystore) - -## Methods - -### changeKeystorePassphrase - -▸ **changeKeystorePassphrase**(`address`: string, `oldPassphrase`: string, `newPassphrase`: string): *Promise‹void›* - -*Defined in [keystore-base.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L132)* - -Change secret phrase used to encrypt the private key of an address - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address | -`oldPassphrase` | string | Secret phrase used to encrypt the private key | -`newPassphrase` | string | New secret phrase to re-encrypt the private key | - -**Returns:** *Promise‹void›* - -___ - -### deleteKeystore - -▸ **deleteKeystore**(`address`: string): *Promise‹void›* - -*Defined in [keystore-base.ts:145](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L145)* - -Permanently removes keystore entry from keystore - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address of keystore to be deleted | - -**Returns:** *Promise‹void›* - -___ - -### getAddress - -▸ **getAddress**(`keystoreName`: string): *string* - -*Defined in [keystore-base.ts:51](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L51)* - -Gets the address corresponding to a particular keystore entry - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreName` | string | Name of keystore entry belonging to the address | - -**Returns:** *string* - -Account address - -___ - -### getAddressMap - -▸ **getAddressMap**(): *Promise‹Record‹string, string››* - -*Defined in [keystore-base.ts:72](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L72)* - -Maps account addresses to their respective keystore entries (names) - -**Returns:** *Promise‹Record‹string, string››* - -Record with account addresses as keys, keystore entry names as values - -___ - -### `Abstract` getAllKeystoreNames - -▸ **getAllKeystoreNames**(): *Promise‹string[]›* - -*Defined in [keystore-base.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L38)* - -Gets a list of the names of each entry in the keystore - -**Returns:** *Promise‹string[]›* - -___ - -### getKeystoreName - -▸ **getKeystoreName**(`address`: string): *Promise‹string›* - -*Defined in [keystore-base.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L106)* - -Gets name of keystore entry corresponding to an address - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address | - -**Returns:** *Promise‹string›* - -Name of corresponding keystore entry - -___ - -### getPrivateKey - -▸ **getPrivateKey**(`address`: string, `passphrase`: string): *Promise‹string›* - -*Defined in [keystore-base.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L120)* - -Gets decrypted (plaintext) private key for an account address - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | string | Account address | -`passphrase` | string | Secret phrase used to encrypt the private key | - -**Returns:** *Promise‹string›* - -___ - -### `Abstract` getRawKeystore - -▸ **getRawKeystore**(`keystoreName`: string): *string* - -*Defined in [keystore-base.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L33)* - -Returns raw encrypted keystore entry string by name - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreName` | string | Name of keystore entry to retrieve | - -**Returns:** *string* - -___ - -### importPrivateKey - -▸ **importPrivateKey**(`privateKey`: string, `passphrase`: string): *Promise‹void›* - -*Defined in [keystore-base.ts:86](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L86)* - -Encrypts and stores a private key as a new keystore entry - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`privateKey` | string | Private key to encrypted | -`passphrase` | string | Secret string to encrypt private key | - -**Returns:** *Promise‹void›* - -___ - -### listKeystoreAddresses - -▸ **listKeystoreAddresses**(): *Promise‹string[]›* - -*Defined in [keystore-base.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L64)* - -Gets a list of all account addresses in the keystore - -**Returns:** *Promise‹string[]›* - -List of account address strings - -___ - -### `Abstract` persistKeystore - -▸ **persistKeystore**(`keystoreName`: string, `keystore`: string): *void* - -*Defined in [keystore-base.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L27)* - -Saves encrypted keystore entry (i.e. to disk, database, ...). Must be implemented by subclass. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreName` | string | Name of keystore entry to be saved | -`keystore` | string | encrypted V3Keystore string entry | - -**Returns:** *void* - -___ - -### `Abstract` removeKeystore - -▸ **removeKeystore**(`keystoreName`: string): *void* - -*Defined in [keystore-base.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L44)* - -Removes keystore entry from keystore permanently - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keystoreName` | string | Name of keystore entry to remove | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/keystores/classes/_keystore_wallet_wrapper_.keystorewalletwrapper.md b/packages/docs/sdk/docs/keystores/classes/_keystore_wallet_wrapper_.keystorewalletwrapper.md deleted file mode 100644 index 25fa5c0bda1..00000000000 --- a/packages/docs/sdk/docs/keystores/classes/_keystore_wallet_wrapper_.keystorewalletwrapper.md +++ /dev/null @@ -1,109 +0,0 @@ -[@celo/keystores](../README.md) › ["keystore-wallet-wrapper"](../modules/_keystore_wallet_wrapper_.md) › [KeystoreWalletWrapper](_keystore_wallet_wrapper_.keystorewalletwrapper.md) - -# Class: KeystoreWalletWrapper - -Convenience wrapper of the LocalWallet to connect to a keystore - -## Hierarchy - -* **KeystoreWalletWrapper** - -## Index - -### Constructors - -* [constructor](_keystore_wallet_wrapper_.keystorewalletwrapper.md#constructor) - -### Methods - -* [getKeystore](_keystore_wallet_wrapper_.keystorewalletwrapper.md#getkeystore) -* [getLocalWallet](_keystore_wallet_wrapper_.keystorewalletwrapper.md#getlocalwallet) -* [importPrivateKey](_keystore_wallet_wrapper_.keystorewalletwrapper.md#importprivatekey) -* [lockAccount](_keystore_wallet_wrapper_.keystorewalletwrapper.md#lockaccount) -* [unlockAccount](_keystore_wallet_wrapper_.keystorewalletwrapper.md#unlockaccount) - -## Constructors - -### constructor - -\+ **new KeystoreWalletWrapper**(`keystore`: [KeystoreBase](_keystore_base_.keystorebase.md)): *[KeystoreWalletWrapper](_keystore_wallet_wrapper_.keystorewalletwrapper.md)* - -*Defined in [keystore-wallet-wrapper.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-wallet-wrapper.ts#L9)* - -**Parameters:** - -Name | Type | ------- | ------ | -`keystore` | [KeystoreBase](_keystore_base_.keystorebase.md) | - -**Returns:** *[KeystoreWalletWrapper](_keystore_wallet_wrapper_.keystorewalletwrapper.md)* - -## Methods - -### getKeystore - -▸ **getKeystore**(): *[KeystoreBase](_keystore_base_.keystorebase.md)* - -*Defined in [keystore-wallet-wrapper.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-wallet-wrapper.ts#L25)* - -**Returns:** *[KeystoreBase](_keystore_base_.keystorebase.md)* - -___ - -### getLocalWallet - -▸ **getLocalWallet**(): *LocalWallet* - -*Defined in [keystore-wallet-wrapper.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-wallet-wrapper.ts#L21)* - -**Returns:** *LocalWallet* - -___ - -### importPrivateKey - -▸ **importPrivateKey**(`privateKey`: string, `passphrase`: string): *Promise‹void›* - -*Defined in [keystore-wallet-wrapper.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-wallet-wrapper.ts#L16)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | -`passphrase` | string | - -**Returns:** *Promise‹void›* - -___ - -### lockAccount - -▸ **lockAccount**(`address`: string): *Promise‹void›* - -*Defined in [keystore-wallet-wrapper.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-wallet-wrapper.ts#L34)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *Promise‹void›* - -___ - -### unlockAccount - -▸ **unlockAccount**(`address`: string, `passphrase`: string): *Promise‹void›* - -*Defined in [keystore-wallet-wrapper.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-wallet-wrapper.ts#L29)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`passphrase` | string | - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/keystores/enums/_keystore_base_.errormessages.md b/packages/docs/sdk/docs/keystores/enums/_keystore_base_.errormessages.md deleted file mode 100644 index ef853e32d4e..00000000000 --- a/packages/docs/sdk/docs/keystores/enums/_keystore_base_.errormessages.md +++ /dev/null @@ -1,35 +0,0 @@ -[@celo/keystores](../README.md) › ["keystore-base"](../modules/_keystore_base_.md) › [ErrorMessages](_keystore_base_.errormessages.md) - -# Enumeration: ErrorMessages - -## Index - -### Enumeration members - -* [KEYSTORE_ENTRY_EXISTS](_keystore_base_.errormessages.md#keystore_entry_exists) -* [NO_MATCHING_ENTRY](_keystore_base_.errormessages.md#no_matching_entry) -* [UNKNOWN_STRUCTURE](_keystore_base_.errormessages.md#unknown_structure) - -## Enumeration members - -### KEYSTORE_ENTRY_EXISTS - -• **KEYSTORE_ENTRY_EXISTS**: = "Existing encrypted keystore for address" - -*Defined in [keystore-base.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L9)* - -___ - -### NO_MATCHING_ENTRY - -• **NO_MATCHING_ENTRY**: = "Keystore entry not found for address" - -*Defined in [keystore-base.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L10)* - -___ - -### UNKNOWN_STRUCTURE - -• **UNKNOWN_STRUCTURE**: = "Unexpected keystore entry structure" - -*Defined in [keystore-base.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/keystore-base.ts#L11)* diff --git a/packages/docs/sdk/docs/keystores/modules/_file_keystore_.md b/packages/docs/sdk/docs/keystores/modules/_file_keystore_.md deleted file mode 100644 index d92e4045a21..00000000000 --- a/packages/docs/sdk/docs/keystores/modules/_file_keystore_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/keystores](../README.md) › ["file-keystore"](_file_keystore_.md) - -# Module: "file-keystore" - -## Index - -### Classes - -* [FileKeystore](../classes/_file_keystore_.filekeystore.md) diff --git a/packages/docs/sdk/docs/keystores/modules/_inmemory_keystore_.md b/packages/docs/sdk/docs/keystores/modules/_inmemory_keystore_.md deleted file mode 100644 index 538595696e9..00000000000 --- a/packages/docs/sdk/docs/keystores/modules/_inmemory_keystore_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/keystores](../README.md) › ["inmemory-keystore"](_inmemory_keystore_.md) - -# Module: "inmemory-keystore" - -## Index - -### Classes - -* [InMemoryKeystore](../classes/_inmemory_keystore_.inmemorykeystore.md) diff --git a/packages/docs/sdk/docs/keystores/modules/_keystore_base_.md b/packages/docs/sdk/docs/keystores/modules/_keystore_base_.md deleted file mode 100644 index 634e4f63182..00000000000 --- a/packages/docs/sdk/docs/keystores/modules/_keystore_base_.md +++ /dev/null @@ -1,13 +0,0 @@ -[@celo/keystores](../README.md) › ["keystore-base"](_keystore_base_.md) - -# Module: "keystore-base" - -## Index - -### Enumerations - -* [ErrorMessages](../enums/_keystore_base_.errormessages.md) - -### Classes - -* [KeystoreBase](../classes/_keystore_base_.keystorebase.md) diff --git a/packages/docs/sdk/docs/keystores/modules/_keystore_wallet_wrapper_.md b/packages/docs/sdk/docs/keystores/modules/_keystore_wallet_wrapper_.md deleted file mode 100644 index 1ea3001f9cc..00000000000 --- a/packages/docs/sdk/docs/keystores/modules/_keystore_wallet_wrapper_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/keystores](../README.md) › ["keystore-wallet-wrapper"](_keystore_wallet_wrapper_.md) - -# Module: "keystore-wallet-wrapper" - -## Index - -### Classes - -* [KeystoreWalletWrapper](../classes/_keystore_wallet_wrapper_.keystorewalletwrapper.md) diff --git a/packages/docs/sdk/docs/keystores/modules/_test_constants_.md b/packages/docs/sdk/docs/keystores/modules/_test_constants_.md deleted file mode 100644 index 799e5a71be9..00000000000 --- a/packages/docs/sdk/docs/keystores/modules/_test_constants_.md +++ /dev/null @@ -1,98 +0,0 @@ -[@celo/keystores](../README.md) › ["test-constants"](_test_constants_.md) - -# Module: "test-constants" - -## Index - -### Variables - -* [ADDRESS1](_test_constants_.md#const-address1) -* [ADDRESS2](_test_constants_.md#const-address2) -* [GETH_GEN_KEYSTORE1](_test_constants_.md#const-geth_gen_keystore1) -* [GETH_GEN_KEYSTORE2](_test_constants_.md#const-geth_gen_keystore2) -* [KEYSTORE_NAME1](_test_constants_.md#const-keystore_name1) -* [KEYSTORE_NAME2](_test_constants_.md#const-keystore_name2) -* [PASSPHRASE1](_test_constants_.md#const-passphrase1) -* [PASSPHRASE2](_test_constants_.md#const-passphrase2) -* [PK1](_test_constants_.md#const-pk1) -* [PK2](_test_constants_.md#const-pk2) - -## Variables - -### `Const` ADDRESS1 - -• **ADDRESS1**: *string* = normalizeAddressWith0x(privateKeyToAddress(PK1)) - -*Defined in [test-constants.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L8)* - -___ - -### `Const` ADDRESS2 - -• **ADDRESS2**: *string* = normalizeAddressWith0x(privateKeyToAddress(PK2)) - -*Defined in [test-constants.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L13)* - -___ - -### `Const` GETH_GEN_KEYSTORE1 - -• **GETH_GEN_KEYSTORE1**: *"{"address":"8233d802bdc645d0d1b9b2e6face6e5825905081","blspublickey":"ed2ed9b2670458d01df329a4c750e7a6f89ec0e86676d4e093b2f32b4f3b603b6927b8dfe12e9fdf5c9f4bbbc504770052d816dbcaae90f4ef0af19333965b29f29b069c1f28eaa4bcaa62b27459855e4ad201aac245de05c3cb51dcab118080","crypto":{"cipher":"aes-128-ctr","ciphertext":"7b2ccdede461b9f7cc33fbbd7a9bfe23fdf455f3d4a8558cb10e86c5a4c5cc39","cipherparams":{"iv":"a78b8382da088a544edef093e922947b"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"2007752e0c72eed75a793cddba6a9e3c698b95a259002b32443d8c0430038505"},"mac":"e1599623f8957e538e17512e39693bf1a85fc4eab10fdb243c7d33fd18f9c766"},"id":"3b9465ac-eca1-4923-84e6-4624bd41ab0b","version":3}"* = `{"address":"8233d802bdc645d0d1b9b2e6face6e5825905081","blspublickey":"ed2ed9b2670458d01df329a4c750e7a6f89ec0e86676d4e093b2f32b4f3b603b6927b8dfe12e9fdf5c9f4bbbc504770052d816dbcaae90f4ef0af19333965b29f29b069c1f28eaa4bcaa62b27459855e4ad201aac245de05c3cb51dcab118080","crypto":{"cipher":"aes-128-ctr","ciphertext":"7b2ccdede461b9f7cc33fbbd7a9bfe23fdf455f3d4a8558cb10e86c5a4c5cc39","cipherparams":{"iv":"a78b8382da088a544edef093e922947b"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"2007752e0c72eed75a793cddba6a9e3c698b95a259002b32443d8c0430038505"},"mac":"e1599623f8957e538e17512e39693bf1a85fc4eab10fdb243c7d33fd18f9c766"},"id":"3b9465ac-eca1-4923-84e6-4624bd41ab0b","version":3}` - -*Defined in [test-constants.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L6)* - -___ - -### `Const` GETH_GEN_KEYSTORE2 - -• **GETH_GEN_KEYSTORE2**: *"{"address":"b81a82696018fd9d8b43431966b60c31bdcdc2e8","blspublickey":"b9f862e2ced58bb2eef8ffde7020189ab2bb050603630eceec9b80c1636d98f8c3b9bd517d673937a0551c3a0698a00086bda4db1f0d859912a91988775ae388886013e7eb254d195871f9ced6643e288755da0b483ebe6dda448fea2eb75481","crypto":{"cipher":"aes-128-ctr","ciphertext":"6f3cd02b2d3d81b2bbf76743396c9c3c1685ddc6cfafbba34195ab03476831d3","cipherparams":{"iv":"af1f9853e0ff20ee5d495cf7d9461e1c"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"cf0446914e5d214f2a312c08ef24e7e3dd15e948d2ca67d59b3bb97903a96147"},"mac":"58348f6d843d28b3ac8cf40542d10da198016f28f132c32389ab56a945c858e1"},"id":"b224dac6-c089-4b47-8557-e04ae60b3506","version":3}"* = `{"address":"b81a82696018fd9d8b43431966b60c31bdcdc2e8","blspublickey":"b9f862e2ced58bb2eef8ffde7020189ab2bb050603630eceec9b80c1636d98f8c3b9bd517d673937a0551c3a0698a00086bda4db1f0d859912a91988775ae388886013e7eb254d195871f9ced6643e288755da0b483ebe6dda448fea2eb75481","crypto":{"cipher":"aes-128-ctr","ciphertext":"6f3cd02b2d3d81b2bbf76743396c9c3c1685ddc6cfafbba34195ab03476831d3","cipherparams":{"iv":"af1f9853e0ff20ee5d495cf7d9461e1c"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"cf0446914e5d214f2a312c08ef24e7e3dd15e948d2ca67d59b3bb97903a96147"},"mac":"58348f6d843d28b3ac8cf40542d10da198016f28f132c32389ab56a945c858e1"},"id":"b224dac6-c089-4b47-8557-e04ae60b3506","version":3}` - -*Defined in [test-constants.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L12)* - -___ - -### `Const` KEYSTORE_NAME1 - -• **KEYSTORE_NAME1**: *"PK1 keystore name"* = "PK1 keystore name" - -*Defined in [test-constants.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L7)* - -___ - -### `Const` KEYSTORE_NAME2 - -• **KEYSTORE_NAME2**: *"PK2 keystore name"* = "PK2 keystore name" - -*Defined in [test-constants.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L11)* - -___ - -### `Const` PASSPHRASE1 - -• **PASSPHRASE1**: *"test- passwøörd1!"* = "test- passwøörd1!" - -*Defined in [test-constants.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L3)* - -___ - -### `Const` PASSPHRASE2 - -• **PASSPHRASE2**: *"test-password2 !!"* = "test-password2 !!" - -*Defined in [test-constants.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L9)* - -___ - -### `Const` PK1 - -• **PK1**: *"d72f6c0b0d7348a72eaa7d3c997bd49293bdc7d4bf79eba03e9f7ca9c5ac6b7f"* = "d72f6c0b0d7348a72eaa7d3c997bd49293bdc7d4bf79eba03e9f7ca9c5ac6b7f" - -*Defined in [test-constants.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L4)* - -___ - -### `Const` PK2 - -• **PK2**: *"bb6f3fa4a83b7b06e72e580a3b09df5dd6fb4fa745ee2b0d865413ad6299e64e"* = "bb6f3fa4a83b7b06e72e580a3b09df5dd6fb4fa745ee2b0d865413ad6299e64e" - -*Defined in [test-constants.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/keystores/src/test-constants.ts#L10)* diff --git a/packages/docs/sdk/docs/network-utils/README.md b/packages/docs/sdk/docs/network-utils/README.md deleted file mode 100644 index c841fdb5e8a..00000000000 --- a/packages/docs/sdk/docs/network-utils/README.md +++ /dev/null @@ -1,12 +0,0 @@ -[@celo/network-utils](README.md) - -# @celo/network-utils - -## Index - -### Modules - -* ["genesis-block-utils"](modules/_genesis_block_utils_.md) -* ["google-storage-utils"](modules/_google_storage_utils_.md) -* ["static-node-utils"](modules/_static_node_utils_.md) -* ["utils/timezone"](modules/_utils_timezone_.md) diff --git a/packages/docs/sdk/docs/network-utils/classes/_genesis_block_utils_.genesisblockutils.md b/packages/docs/sdk/docs/network-utils/classes/_genesis_block_utils_.genesisblockutils.md deleted file mode 100644 index 51f5d810e61..00000000000 --- a/packages/docs/sdk/docs/network-utils/classes/_genesis_block_utils_.genesisblockutils.md +++ /dev/null @@ -1,50 +0,0 @@ -[@celo/network-utils](../README.md) › ["genesis-block-utils"](../modules/_genesis_block_utils_.md) › [GenesisBlockUtils](_genesis_block_utils_.genesisblockutils.md) - -# Class: GenesisBlockUtils - -## Hierarchy - -* **GenesisBlockUtils** - -## Index - -### Methods - -* [getChainIdFromGenesis](_genesis_block_utils_.genesisblockutils.md#static-getchainidfromgenesis) -* [getGenesisBlockAsync](_genesis_block_utils_.genesisblockutils.md#static-getgenesisblockasync) - -## Methods - -### `Static` getChainIdFromGenesis - -▸ **getChainIdFromGenesis**(`genesis`: string): *number* - -*Defined in [genesis-block-utils.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/genesis-block-utils.ts#L22)* - -**Parameters:** - -Name | Type | ------- | ------ | -`genesis` | string | - -**Returns:** *number* - -___ - -### `Static` getGenesisBlockAsync - -▸ **getGenesisBlockAsync**(`networkName`: string): *Promise‹string›* - -*Defined in [genesis-block-utils.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/genesis-block-utils.ts#L14)* - -Fetches the genesis block (as JSON data) from Google Storage. -If the network is not working, the method will reject the returned promise -along with the response data from Google api. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`networkName` | string | Name of the network to fetch genesis block for | - -**Returns:** *Promise‹string›* diff --git a/packages/docs/sdk/docs/network-utils/classes/_google_storage_utils_.googlestorageutils.md b/packages/docs/sdk/docs/network-utils/classes/_google_storage_utils_.googlestorageutils.md deleted file mode 100644 index 1924eff0a9c..00000000000 --- a/packages/docs/sdk/docs/network-utils/classes/_google_storage_utils_.googlestorageutils.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/network-utils](../README.md) › ["google-storage-utils"](../modules/_google_storage_utils_.md) › [GoogleStorageUtils](_google_storage_utils_.googlestorageutils.md) - -# Class: GoogleStorageUtils - -## Hierarchy - -* **GoogleStorageUtils** - -## Index - -### Methods - -* [fetchFileFromGoogleStorage](_google_storage_utils_.googlestorageutils.md#static-fetchfilefromgooglestorage) - -## Methods - -### `Static` fetchFileFromGoogleStorage - -▸ **fetchFileFromGoogleStorage**(`bucketName`: string, `fileName`: string): *Promise‹string›* - -*Defined in [google-storage-utils.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/google-storage-utils.ts#L9)* - -**Parameters:** - -Name | Type | ------- | ------ | -`bucketName` | string | -`fileName` | string | - -**Returns:** *Promise‹string›* diff --git a/packages/docs/sdk/docs/network-utils/classes/_static_node_utils_.staticnodeutils.md b/packages/docs/sdk/docs/network-utils/classes/_static_node_utils_.staticnodeutils.md deleted file mode 100644 index 421e591fe38..00000000000 --- a/packages/docs/sdk/docs/network-utils/classes/_static_node_utils_.staticnodeutils.md +++ /dev/null @@ -1,94 +0,0 @@ -[@celo/network-utils](../README.md) › ["static-node-utils"](../modules/_static_node_utils_.md) › [StaticNodeUtils](_static_node_utils_.staticnodeutils.md) - -# Class: StaticNodeUtils - -## Hierarchy - -* **StaticNodeUtils** - -## Index - -### Methods - -* [getRegionalStaticNodesAsync](_static_node_utils_.staticnodeutils.md#static-getregionalstaticnodesasync) -* [getStaticNodeRegion](_static_node_utils_.staticnodeutils.md#static-getstaticnoderegion) -* [getStaticNodesAsync](_static_node_utils_.staticnodeutils.md#static-getstaticnodesasync) -* [getStaticNodesGoogleStorageBucketName](_static_node_utils_.staticnodeutils.md#static-getstaticnodesgooglestoragebucketname) - -## Methods - -### `Static` getRegionalStaticNodesAsync - -▸ **getRegionalStaticNodesAsync**(`networkName`: string, `region?`: undefined | string): *Promise‹string›* - -*Defined in [static-node-utils.ts:110](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/static-node-utils.ts#L110)* - -Fetches the static nodes (as JSON data) from Google Storage corresponding -to the best available region for this caller. -If the network is not working, the method will reject the returned promise -along with the response data from Google API. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`networkName` | string | Name of the network to fetch config for | -`region?` | undefined | string | - | - -**Returns:** *Promise‹string›* - -___ - -### `Static` getStaticNodeRegion - -▸ **getStaticNodeRegion**(`networkName`: string, `tz?`: undefined | string): *string* - -*Defined in [static-node-utils.ts:88](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/static-node-utils.ts#L88)* - -Resolves the best region to use for static node connections. - -**`remarks`** This method currently uses the interpreter's timezone and the -IANA timezone database to establish what region of the world the client is -in, then map that to a static list of static node clusters run by cLabs. -If the timezone is not set according to the user's location, this method -may route them to suboptimal set of static nodes. The resolution method -may be replaced in the future. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`networkName` | string | Name of the network to get a region for. | -`tz?` | undefined | string | - | - -**Returns:** *string* - -___ - -### `Static` getStaticNodesAsync - -▸ **getStaticNodesAsync**(`networkName`: string): *Promise‹string›* - -*Defined in [static-node-utils.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/static-node-utils.ts#L123)* - -Fetches the static nodes (as JSON data) from Google Storage. -If the network is not working, the method will reject the returned promise -along with the response data from Google API. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`networkName` | string | Name of the network to fetch config for | - -**Returns:** *Promise‹string›* - -___ - -### `Static` getStaticNodesGoogleStorageBucketName - -▸ **getStaticNodesGoogleStorageBucketName**(): *string* - -*Defined in [static-node-utils.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/static-node-utils.ts#L74)* - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/network-utils/interfaces/_utils_timezone_.coordinates.md b/packages/docs/sdk/docs/network-utils/interfaces/_utils_timezone_.coordinates.md deleted file mode 100644 index b8fbb3c6ff2..00000000000 --- a/packages/docs/sdk/docs/network-utils/interfaces/_utils_timezone_.coordinates.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/network-utils](../README.md) › ["utils/timezone"](../modules/_utils_timezone_.md) › [Coordinates](_utils_timezone_.coordinates.md) - -# Interface: Coordinates - -## Hierarchy - -* **Coordinates** - -## Index - -### Properties - -* [latitude](_utils_timezone_.coordinates.md#latitude) -* [longitude](_utils_timezone_.coordinates.md#longitude) - -## Properties - -### latitude - -• **latitude**: *number* - -*Defined in [utils/timezone.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/utils/timezone.ts#L12)* - -___ - -### longitude - -• **longitude**: *number* - -*Defined in [utils/timezone.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/utils/timezone.ts#L13)* diff --git a/packages/docs/sdk/docs/network-utils/interfaces/_utils_timezone_.timezone.md b/packages/docs/sdk/docs/network-utils/interfaces/_utils_timezone_.timezone.md deleted file mode 100644 index ec387e93e42..00000000000 --- a/packages/docs/sdk/docs/network-utils/interfaces/_utils_timezone_.timezone.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/network-utils](../README.md) › ["utils/timezone"](../modules/_utils_timezone_.md) › [Timezone](_utils_timezone_.timezone.md) - -# Interface: Timezone - -## Hierarchy - -* **Timezone** - -## Index - -### Properties - -* [comments](_utils_timezone_.timezone.md#optional-comments) -* [coordinates](_utils_timezone_.timezone.md#optional-coordinates) -* [countryCodes](_utils_timezone_.timezone.md#optional-countrycodes) -* [name](_utils_timezone_.timezone.md#name) - -## Properties - -### `Optional` comments - -• **comments**? : *undefined | string* - -*Defined in [utils/timezone.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/utils/timezone.ts#L22)* - -___ - -### `Optional` coordinates - -• **coordinates**? : *[Coordinates](_utils_timezone_.coordinates.md)* - -*Defined in [utils/timezone.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/utils/timezone.ts#L21)* - -___ - -### `Optional` countryCodes - -• **countryCodes**? : *string[]* - -*Defined in [utils/timezone.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/utils/timezone.ts#L20)* - -___ - -### name - -• **name**: *string* - -*Defined in [utils/timezone.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/utils/timezone.ts#L19)* diff --git a/packages/docs/sdk/docs/network-utils/modules/_genesis_block_utils_.md b/packages/docs/sdk/docs/network-utils/modules/_genesis_block_utils_.md deleted file mode 100644 index 39d8affff24..00000000000 --- a/packages/docs/sdk/docs/network-utils/modules/_genesis_block_utils_.md +++ /dev/null @@ -1,21 +0,0 @@ -[@celo/network-utils](../README.md) › ["genesis-block-utils"](_genesis_block_utils_.md) - -# Module: "genesis-block-utils" - -## Index - -### Classes - -* [GenesisBlockUtils](../classes/_genesis_block_utils_.genesisblockutils.md) - -### Variables - -* [GenesisBlocksGoogleStorageBucketName](_genesis_block_utils_.md#const-genesisblocksgooglestoragebucketname) - -## Variables - -### `Const` GenesisBlocksGoogleStorageBucketName - -• **GenesisBlocksGoogleStorageBucketName**: *"genesis_blocks"* = "genesis_blocks" - -*Defined in [genesis-block-utils.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/genesis-block-utils.ts#L5)* diff --git a/packages/docs/sdk/docs/network-utils/modules/_google_storage_utils_.md b/packages/docs/sdk/docs/network-utils/modules/_google_storage_utils_.md deleted file mode 100644 index f64f854db53..00000000000 --- a/packages/docs/sdk/docs/network-utils/modules/_google_storage_utils_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/network-utils](../README.md) › ["google-storage-utils"](_google_storage_utils_.md) - -# Module: "google-storage-utils" - -## Index - -### Classes - -* [GoogleStorageUtils](../classes/_google_storage_utils_.googlestorageutils.md) diff --git a/packages/docs/sdk/docs/network-utils/modules/_static_node_utils_.md b/packages/docs/sdk/docs/network-utils/modules/_static_node_utils_.md deleted file mode 100644 index 370232a6e05..00000000000 --- a/packages/docs/sdk/docs/network-utils/modules/_static_node_utils_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/network-utils](../README.md) › ["static-node-utils"](_static_node_utils_.md) - -# Module: "static-node-utils" - -## Index - -### Classes - -* [StaticNodeUtils](../classes/_static_node_utils_.staticnodeutils.md) diff --git a/packages/docs/sdk/docs/network-utils/modules/_utils_timezone_.md b/packages/docs/sdk/docs/network-utils/modules/_utils_timezone_.md deleted file mode 100644 index beccd294ef8..00000000000 --- a/packages/docs/sdk/docs/network-utils/modules/_utils_timezone_.md +++ /dev/null @@ -1,47 +0,0 @@ -[@celo/network-utils](../README.md) › ["utils/timezone"](_utils_timezone_.md) - -# Module: "utils/timezone" - -## Index - -### Interfaces - -* [Coordinates](../interfaces/_utils_timezone_.coordinates.md) -* [Timezone](../interfaces/_utils_timezone_.timezone.md) - -### Functions - -* [_testSetTimezoneOverride](_utils_timezone_.md#_testsettimezoneoverride) -* [timezone](_utils_timezone_.md#timezone) - -## Functions - -### _testSetTimezoneOverride - -▸ **_testSetTimezoneOverride**(`zone`: string | undefined): *void* - -*Defined in [utils/timezone.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/utils/timezone.ts#L7)* - -**Parameters:** - -Name | Type | ------- | ------ | -`zone` | string | undefined | - -**Returns:** *void* - -___ - -### timezone - -▸ **timezone**(`tz?`: undefined | string): *[Timezone](../interfaces/_utils_timezone_.timezone.md) | undefined* - -*Defined in [utils/timezone.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/network-utils/src/utils/timezone.ts#L41)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tz?` | undefined | string | - -**Returns:** *[Timezone](../interfaces/_utils_timezone_.timezone.md) | undefined* diff --git a/packages/docs/sdk/docs/phone-utils/README.md b/packages/docs/sdk/docs/phone-utils/README.md deleted file mode 100644 index 17c120ec5ca..00000000000 --- a/packages/docs/sdk/docs/phone-utils/README.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/phone-utils](README.md) › [Globals](globals.md) - -# @celo/phone-utils - -# @celo/phone-utils - -These are A collection of functions for formatting and reading phonenumbers used by the v1 Attestation Service and wallets such as Valora. It uses `google-lib-phonenumber`, under the hood. - -It may be deprecated in the future. diff --git a/packages/docs/sdk/docs/phone-utils/classes/_countries_.countries.md b/packages/docs/sdk/docs/phone-utils/classes/_countries_.countries.md deleted file mode 100644 index 2f052132f31..00000000000 --- a/packages/docs/sdk/docs/phone-utils/classes/_countries_.countries.md +++ /dev/null @@ -1,113 +0,0 @@ -[@celo/phone-utils](../README.md) › [Globals](../globals.md) › ["countries"](../modules/_countries_.md) › [Countries](_countries_.countries.md) - -# Class: Countries - -## Hierarchy - -* **Countries** - -## Index - -### Constructors - -* [constructor](_countries_.countries.md#constructor) - -### Properties - -* [countryMap](_countries_.countries.md#countrymap) -* [language](_countries_.countries.md#language) -* [localizedCountries](_countries_.countries.md#localizedcountries) - -### Methods - -* [getCountry](_countries_.countries.md#getcountry) -* [getCountryByCodeAlpha2](_countries_.countries.md#getcountrybycodealpha2) -* [getFilteredCountries](_countries_.countries.md#getfilteredcountries) - -## Constructors - -### constructor - -\+ **new Countries**(`language?`: undefined | string): *[Countries](_countries_.countries.md)* - -*Defined in [countries.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L40)* - -**Parameters:** - -Name | Type | ------- | ------ | -`language?` | undefined | string | - -**Returns:** *[Countries](_countries_.countries.md)* - -## Properties - -### countryMap - -• **countryMap**: *Map‹string, [LocalizedCountry](../interfaces/_countries_.localizedcountry.md)›* - -*Defined in [countries.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L39)* - -___ - -### language - -• **language**: *string* - -*Defined in [countries.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L38)* - -___ - -### localizedCountries - -• **localizedCountries**: *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md)[]* - -*Defined in [countries.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L40)* - -## Methods - -### getCountry - -▸ **getCountry**(`countryName?`: string | null): *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md) | undefined* - -*Defined in [countries.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L50)* - -**Parameters:** - -Name | Type | ------- | ------ | -`countryName?` | string | null | - -**Returns:** *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md) | undefined* - -___ - -### getCountryByCodeAlpha2 - -▸ **getCountryByCodeAlpha2**(`countryCode`: string): *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md) | undefined* - -*Defined in [countries.ts:60](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L60)* - -**Parameters:** - -Name | Type | ------- | ------ | -`countryCode` | string | - -**Returns:** *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md) | undefined* - -___ - -### getFilteredCountries - -▸ **getFilteredCountries**(`query`: string): *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md)[]* - -*Defined in [countries.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L64)* - -**Parameters:** - -Name | Type | ------- | ------ | -`query` | string | - -**Returns:** *[LocalizedCountry](../interfaces/_countries_.localizedcountry.md)[]* diff --git a/packages/docs/sdk/docs/phone-utils/globals.md b/packages/docs/sdk/docs/phone-utils/globals.md deleted file mode 100644 index 9f0a68e72e0..00000000000 --- a/packages/docs/sdk/docs/phone-utils/globals.md +++ /dev/null @@ -1,15 +0,0 @@ -[@celo/phone-utils](README.md) › [Globals](globals.md) - -# @celo/phone-utils - -## Index - -### Modules - -* ["countries"](modules/_countries_.md) -* ["data/countries/es/country"](modules/_data_countries_es_country_.md) -* ["getCountryEmoji"](modules/_getcountryemoji_.md) -* ["getPhoneHash"](modules/_getphonehash_.md) -* ["inputValidation"](modules/_inputvalidation_.md) -* ["io"](modules/_io_.md) -* ["phoneNumbers"](modules/_phonenumbers_.md) diff --git a/packages/docs/sdk/docs/phone-utils/interfaces/_countries_.localizedcountry.md b/packages/docs/sdk/docs/phone-utils/interfaces/_countries_.localizedcountry.md deleted file mode 100644 index 6f7e07d3608..00000000000 --- a/packages/docs/sdk/docs/phone-utils/interfaces/_countries_.localizedcountry.md +++ /dev/null @@ -1,65 +0,0 @@ -[@celo/phone-utils](../README.md) › [Globals](../globals.md) › ["countries"](../modules/_countries_.md) › [LocalizedCountry](_countries_.localizedcountry.md) - -# Interface: LocalizedCountry - -## Hierarchy - -* object - - ↳ **LocalizedCountry** - -## Index - -### Properties - -* [countryCallingCode](_countries_.localizedcountry.md#countrycallingcode) -* [countryPhonePlaceholder](_countries_.localizedcountry.md#countryphoneplaceholder) -* [displayName](_countries_.localizedcountry.md#displayname) -* [displayNameNoDiacritics](_countries_.localizedcountry.md#displaynamenodiacritics) -* [names](_countries_.localizedcountry.md#names) - -## Properties - -### countryCallingCode - -• **countryCallingCode**: *string* - -*Defined in [countries.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L18)* - -___ - -### countryPhonePlaceholder - -• **countryPhonePlaceholder**: *object* - -*Defined in [countries.ts:14](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L14)* - -#### Type declaration: - -* **international**? : *string | undefined* - -* **national**? : *string | undefined* - -___ - -### displayName - -• **displayName**: *string* - -*Defined in [countries.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L11)* - -___ - -### displayNameNoDiacritics - -• **displayNameNoDiacritics**: *string* - -*Defined in [countries.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L12)* - -___ - -### names - -• **names**: *CountryNames* - -*Defined in [countries.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/countries.ts#L13)* diff --git a/packages/docs/sdk/docs/phone-utils/modules/_countries_.md b/packages/docs/sdk/docs/phone-utils/modules/_countries_.md deleted file mode 100644 index 51143412192..00000000000 --- a/packages/docs/sdk/docs/phone-utils/modules/_countries_.md +++ /dev/null @@ -1,13 +0,0 @@ -[@celo/phone-utils](../README.md) › [Globals](../globals.md) › ["countries"](_countries_.md) - -# Module: "countries" - -## Index - -### Classes - -* [Countries](../classes/_countries_.countries.md) - -### Interfaces - -* [LocalizedCountry](../interfaces/_countries_.localizedcountry.md) diff --git a/packages/docs/sdk/docs/phone-utils/modules/_data_countries_es_country_.md b/packages/docs/sdk/docs/phone-utils/modules/_data_countries_es_country_.md deleted file mode 100644 index 68f2ab60b1c..00000000000 --- a/packages/docs/sdk/docs/phone-utils/modules/_data_countries_es_country_.md +++ /dev/null @@ -1,5 +0,0 @@ -[@celo/phone-utils](../README.md) › [Globals](../globals.md) › ["data/countries/es/country"](_data_countries_es_country_.md) - -# Module: "data/countries/es/country" - - diff --git a/packages/docs/sdk/docs/phone-utils/modules/_getcountryemoji_.md b/packages/docs/sdk/docs/phone-utils/modules/_getcountryemoji_.md deleted file mode 100644 index 1aee69d5bc2..00000000000 --- a/packages/docs/sdk/docs/phone-utils/modules/_getcountryemoji_.md +++ /dev/null @@ -1,27 +0,0 @@ -[@celo/phone-utils](../README.md) › [Globals](../globals.md) › ["getCountryEmoji"](_getcountryemoji_.md) - -# Module: "getCountryEmoji" - -## Index - -### Functions - -* [getCountryEmoji](_getcountryemoji_.md#getcountryemoji) - -## Functions - -### getCountryEmoji - -▸ **getCountryEmoji**(`e164PhoneNumber`: string, `countryCodePossible?`: undefined | number, `regionCodePossible?`: undefined | string): *[getCountryEmoji](_getcountryemoji_.md#getcountryemoji)* - -*Defined in [getCountryEmoji.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/getCountryEmoji.ts#L4)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | -`countryCodePossible?` | undefined | number | -`regionCodePossible?` | undefined | string | - -**Returns:** *[getCountryEmoji](_getcountryemoji_.md#getcountryemoji)* diff --git a/packages/docs/sdk/docs/phone-utils/modules/_getphonehash_.md b/packages/docs/sdk/docs/phone-utils/modules/_getphonehash_.md deleted file mode 100644 index b9bb995061b..00000000000 --- a/packages/docs/sdk/docs/phone-utils/modules/_getphonehash_.md +++ /dev/null @@ -1,5 +0,0 @@ -[@celo/phone-utils](../README.md) › [Globals](../globals.md) › ["getPhoneHash"](_getphonehash_.md) - -# Module: "getPhoneHash" - - diff --git a/packages/docs/sdk/docs/phone-utils/modules/_inputvalidation_.md b/packages/docs/sdk/docs/phone-utils/modules/_inputvalidation_.md deleted file mode 100644 index b418d7e3401..00000000000 --- a/packages/docs/sdk/docs/phone-utils/modules/_inputvalidation_.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/phone-utils](../README.md) › [Globals](../globals.md) › ["inputValidation"](_inputvalidation_.md) - -# Module: "inputValidation" - -## Index - -### Functions - -* [validateInput](_inputvalidation_.md#validateinput) -* [validatePhone](_inputvalidation_.md#validatephone) - -## Functions - -### validateInput - -▸ **validateInput**(`input`: string, `props`: BaseProps): *string* - -*Defined in [inputValidation.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/inputValidation.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | -`props` | BaseProps | - -**Returns:** *string* - -___ - -### validatePhone - -▸ **validatePhone**(`input`: string, `countryCallingCode?`: undefined | string): *string* - -*Defined in [inputValidation.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/inputValidation.ts#L4)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | -`countryCallingCode?` | undefined | string | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/phone-utils/modules/_io_.md b/packages/docs/sdk/docs/phone-utils/modules/_io_.md deleted file mode 100644 index 5eac3ca0274..00000000000 --- a/packages/docs/sdk/docs/phone-utils/modules/_io_.md +++ /dev/null @@ -1,166 +0,0 @@ -[@celo/phone-utils](../README.md) › [Globals](../globals.md) › ["io"](_io_.md) - -# Module: "io" - -## Index - -### Type aliases - -* [AttestationRequest](_io_.md#attestationrequest) -* [AttestationResponse](_io_.md#attestationresponse) -* [AttestationServiceTestRequest](_io_.md#attestationservicetestrequest) -* [E164Number](_io_.md#e164number) -* [GetAttestationRequest](_io_.md#getattestationrequest) - -### Variables - -* [AttestationRequestType](_io_.md#const-attestationrequesttype) -* [AttestationResponseType](_io_.md#const-attestationresponsetype) -* [AttestationServiceTestRequestType](_io_.md#const-attestationservicetestrequesttype) -* [E164PhoneNumberType](_io_.md#const-e164phonenumbertype) -* [GetAttestationRequestType](_io_.md#const-getattestationrequesttype) - -## Type aliases - -### AttestationRequest - -Ƭ **AttestationRequest**: *t.TypeOf‹typeof AttestationRequestType›* - -*Defined in [io.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L41)* - -___ - -### AttestationResponse - -Ƭ **AttestationResponse**: *t.TypeOf‹typeof AttestationResponseType›* - -*Defined in [io.ts:87](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L87)* - -___ - -### AttestationServiceTestRequest - -Ƭ **AttestationServiceTestRequest**: *t.TypeOf‹typeof AttestationServiceTestRequestType›* - -*Defined in [io.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L23)* - -___ - -### E164Number - -Ƭ **E164Number**: *t.TypeOf‹typeof E164PhoneNumberType›* - -*Defined in [io.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L25)* - -___ - -### GetAttestationRequest - -Ƭ **GetAttestationRequest**: *t.TypeOf‹typeof GetAttestationRequestType›* - -*Defined in [io.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L53)* - -## Variables - -### `Const` AttestationRequestType - -• **AttestationRequestType**: *TypeC‹object›* = t.type({ - phoneNumber: E164PhoneNumberType, - account: AddressType, - issuer: AddressType, - // io-ts way of defining optional key-value pair - salt: t.union([t.undefined, SaltType]), - smsRetrieverAppSig: t.union([t.undefined, t.string]), - // if specified, the message sent will be short random number prefixed by this string - securityCodePrefix: t.union([t.undefined, t.string]), - language: t.union([t.undefined, t.string]), - // unblinded signature - phoneNumberSignature: t.union([t.undefined, t.string]), -}) - -*Defined in [io.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L27)* - -___ - -### `Const` AttestationResponseType - -• **AttestationResponseType**: *TypeC‹object›* = t.type({ - // Always returned in 1.0.x - success: t.boolean, - - // Returned for errors in 1.0.x - error: t.union([t.undefined, t.string]), - - // Stringifyed JSON dict of dicts, mapping attempt to error info. - errors: t.union([t.undefined, t.string]), - - // Returned for successful send in 1.0.x - provider: t.union([t.undefined, t.string]), - - // New fields - identifier: t.union([t.undefined, t.string]), - account: t.union([t.undefined, AddressType]), - issuer: t.union([t.undefined, AddressType]), - status: t.union([t.undefined, t.string]), - attempt: t.union([t.undefined, t.number]), - countryCode: t.union([t.undefined, t.string]), - - // Time to receive eventual delivery/failure (inc retries) - duration: t.union([t.undefined, t.number]), - - // Only used by test endpoint to return randomly generated salt. - // Never return a user-supplied salt. - salt: t.union([t.undefined, t.string]), - - // only returned if the request supplied the correct security code - attestationCode: t.union([t.undefined, t.string]), -}) - -*Defined in [io.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L55)* - -___ - -### `Const` AttestationServiceTestRequestType - -• **AttestationServiceTestRequestType**: *TypeC‹object›* = t.type({ - phoneNumber: E164PhoneNumberType, - message: t.string, - signature: SignatureType, - provider: t.union([t.string, t.undefined]), -}) - -*Defined in [io.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L17)* - -___ - -### `Const` E164PhoneNumberType - -• **E164PhoneNumberType**: *Type‹string, string, unknown›* = new t.Type( - 'E164Number', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - isE164NumberStrict(stringValue) - ? t.success(stringValue) - : t.failure(stringValue, context, 'is not a valid e164 number') - ), - String -) - -*Defined in [io.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L6)* - -___ - -### `Const` GetAttestationRequestType - -• **GetAttestationRequestType**: *TypeC‹object›* = t.type({ - phoneNumber: E164PhoneNumberType, - account: AddressType, - issuer: AddressType, - // io-ts way of defining optional key-value pair - salt: t.union([t.undefined, SaltType]), - // if the value supplied matches the stored security code, the response will include the complete message - securityCode: t.union([t.undefined, t.string]), -}) - -*Defined in [io.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/io.ts#L43)* diff --git a/packages/docs/sdk/docs/phone-utils/modules/_phonenumbers_.md b/packages/docs/sdk/docs/phone-utils/modules/_phonenumbers_.md deleted file mode 100644 index adf3d34643d..00000000000 --- a/packages/docs/sdk/docs/phone-utils/modules/_phonenumbers_.md +++ /dev/null @@ -1,237 +0,0 @@ -[@celo/phone-utils](../README.md) › [Globals](../globals.md) › ["phoneNumbers"](_phonenumbers_.md) - -# Module: "phoneNumbers" - -## Index - -### Functions - -* [getCountryCode](_phonenumbers_.md#getcountrycode) -* [getDisplayNumberInternational](_phonenumbers_.md#getdisplaynumberinternational) -* [getDisplayPhoneNumber](_phonenumbers_.md#getdisplayphonenumber) -* [getE164DisplayNumber](_phonenumbers_.md#gete164displaynumber) -* [getE164Number](_phonenumbers_.md#gete164number) -* [getExampleNumber](_phonenumbers_.md#getexamplenumber) -* [getRegionCode](_phonenumbers_.md#getregioncode) -* [getRegionCodeFromCountryCode](_phonenumbers_.md#getregioncodefromcountrycode) -* [isE164NumberStrict](_phonenumbers_.md#ise164numberstrict) -* [parsePhoneNumber](_phonenumbers_.md#parsephonenumber) - -### Object literals - -* [PhoneNumberUtils](_phonenumbers_.md#const-phonenumberutils) - -## Functions - -### getCountryCode - -▸ **getCountryCode**(`e164PhoneNumber`: string): *[getCountryCode](_phonenumbers_.md#getcountrycode)* - -*Defined in [phoneNumbers.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L13)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | - -**Returns:** *[getCountryCode](_phonenumbers_.md#getcountrycode)* - -___ - -### getDisplayNumberInternational - -▸ **getDisplayNumberInternational**(`e164PhoneNumber`: string): *[getDisplayNumberInternational](_phonenumbers_.md#getdisplaynumberinternational)* - -*Defined in [phoneNumbers.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L59)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | - -**Returns:** *[getDisplayNumberInternational](_phonenumbers_.md#getdisplaynumberinternational)* - -___ - -### getDisplayPhoneNumber - -▸ **getDisplayPhoneNumber**(`phoneNumber`: string, `defaultCountryCode`: string): *[getDisplayPhoneNumber](_phonenumbers_.md#getdisplayphonenumber)* - -*Defined in [phoneNumbers.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L49)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | -`defaultCountryCode` | string | - -**Returns:** *[getDisplayPhoneNumber](_phonenumbers_.md#getdisplayphonenumber)* - -___ - -### getE164DisplayNumber - -▸ **getE164DisplayNumber**(`e164PhoneNumber`: string): *[getE164DisplayNumber](_phonenumbers_.md#gete164displaynumber)* - -*Defined in [phoneNumbers.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L70)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | - -**Returns:** *[getE164DisplayNumber](_phonenumbers_.md#gete164displaynumber)* - -___ - -### getE164Number - -▸ **getE164Number**(`phoneNumber`: string, `defaultCountryCode`: string): *[getE164Number](_phonenumbers_.md#gete164number)* - -*Defined in [phoneNumbers.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L75)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | -`defaultCountryCode` | string | - -**Returns:** *[getE164Number](_phonenumbers_.md#gete164number)* - -___ - -### getExampleNumber - -▸ **getExampleNumber**(`regionCode`: string, `useOnlyZeroes`: boolean, `isInternational`: boolean): *[getExampleNumber](_phonenumbers_.md#getexamplenumber)* - -*Defined in [phoneNumbers.ts:212](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L212)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`regionCode` | string | - | -`useOnlyZeroes` | boolean | true | -`isInternational` | boolean | false | - -**Returns:** *[getExampleNumber](_phonenumbers_.md#getexamplenumber)* - -___ - -### getRegionCode - -▸ **getRegionCode**(`e164PhoneNumber`: string): *[getRegionCode](_phonenumbers_.md#getregioncode)* - -*Defined in [phoneNumbers.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L25)* - -**Parameters:** - -Name | Type | ------- | ------ | -`e164PhoneNumber` | string | - -**Returns:** *[getRegionCode](_phonenumbers_.md#getregioncode)* - -___ - -### getRegionCodeFromCountryCode - -▸ **getRegionCodeFromCountryCode**(`countryCode`: string): *[getRegionCodeFromCountryCode](_phonenumbers_.md#getregioncodefromcountrycode)* - -*Defined in [phoneNumbers.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L37)* - -**Parameters:** - -Name | Type | ------- | ------ | -`countryCode` | string | - -**Returns:** *[getRegionCodeFromCountryCode](_phonenumbers_.md#getregioncodefromcountrycode)* - -___ - -### isE164NumberStrict - -▸ **isE164NumberStrict**(`phoneNumber`: string): *[isE164NumberStrict](_phonenumbers_.md#ise164numberstrict)* - -*Defined in [phoneNumbers.ts:85](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L85)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | - -**Returns:** *[isE164NumberStrict](_phonenumbers_.md#ise164numberstrict)* - -___ - -### parsePhoneNumber - -▸ **parsePhoneNumber**(`phoneNumberRaw`: string, `defaultCountryCode?`: undefined | string): *ParsedPhoneNumber | null* - -*Defined in [phoneNumbers.ts:97](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L97)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumberRaw` | string | -`defaultCountryCode?` | undefined | string | - -**Returns:** *ParsedPhoneNumber | null* - -## Object literals - -### `Const` PhoneNumberUtils - -### ▪ **PhoneNumberUtils**: *object* - -*Defined in [phoneNumbers.ts:240](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L240)* - -### getCountryCode - -• **getCountryCode**: *[getCountryCode](_phonenumbers_.md#getcountrycode)* - -*Defined in [phoneNumbers.ts:242](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L242)* - -### getDisplayPhoneNumber - -• **getDisplayPhoneNumber**: *[getDisplayPhoneNumber](_phonenumbers_.md#getdisplayphonenumber)* - -*Defined in [phoneNumbers.ts:244](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L244)* - -### getE164Number - -• **getE164Number**: *[getE164Number](_phonenumbers_.md#gete164number)* - -*Defined in [phoneNumbers.ts:245](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L245)* - -### getPhoneHash - -• **getPhoneHash**: *getPhoneHash* - -*Defined in [phoneNumbers.ts:241](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L241)* - -### getRegionCode - -• **getRegionCode**: *[getRegionCode](_phonenumbers_.md#getregioncode)* - -*Defined in [phoneNumbers.ts:243](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L243)* - -### isE164Number - -• **isE164Number**: *isE164Number* - -*Defined in [phoneNumbers.ts:246](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L246)* - -### parsePhoneNumber - -• **parsePhoneNumber**: *[parsePhoneNumber](_phonenumbers_.md#parsephonenumber)* - -*Defined in [phoneNumbers.ts:247](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/phone-utils/src/phoneNumbers.ts#L247)* diff --git a/packages/docs/sdk/docs/transactions-uri/README.md b/packages/docs/sdk/docs/transactions-uri/README.md deleted file mode 100644 index 70de0cb2297..00000000000 --- a/packages/docs/sdk/docs/transactions-uri/README.md +++ /dev/null @@ -1,11 +0,0 @@ -[@celo/transactions-uri](README.md) - -# @celo/transactions-uri - -## Index - -### Modules - -* ["test-utils/setup.global"](modules/_test_utils_setup_global_.md) -* ["test-utils/teardown.global"](modules/_test_utils_teardown_global_.md) -* ["tx-uri"](modules/_tx_uri_.md) diff --git a/packages/docs/sdk/docs/transactions-uri/modules/_test_utils_setup_global_.md b/packages/docs/sdk/docs/transactions-uri/modules/_test_utils_setup_global_.md deleted file mode 100644 index 1045531acdf..00000000000 --- a/packages/docs/sdk/docs/transactions-uri/modules/_test_utils_setup_global_.md +++ /dev/null @@ -1,19 +0,0 @@ -[@celo/transactions-uri](../README.md) › ["test-utils/setup.global"](_test_utils_setup_global_.md) - -# Module: "test-utils/setup.global" - -## Index - -### Functions - -* [globalSetup](_test_utils_setup_global_.md#globalsetup) - -## Functions - -### globalSetup - -▸ **globalSetup**(): *Promise‹void›* - -*Defined in [test-utils/setup.global.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/transactions-uri/src/test-utils/setup.global.ts#L12)* - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/transactions-uri/modules/_test_utils_teardown_global_.md b/packages/docs/sdk/docs/transactions-uri/modules/_test_utils_teardown_global_.md deleted file mode 100644 index 2b70d78de08..00000000000 --- a/packages/docs/sdk/docs/transactions-uri/modules/_test_utils_teardown_global_.md +++ /dev/null @@ -1,19 +0,0 @@ -[@celo/transactions-uri](../README.md) › ["test-utils/teardown.global"](_test_utils_teardown_global_.md) - -# Module: "test-utils/teardown.global" - -## Index - -### Functions - -* [globalTeardown](_test_utils_teardown_global_.md#globalteardown) - -## Functions - -### globalTeardown - -▸ **globalTeardown**(): *Promise‹void›* - -*Defined in [test-utils/teardown.global.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/transactions-uri/src/test-utils/teardown.global.ts#L5)* - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/transactions-uri/modules/_tx_uri_.md b/packages/docs/sdk/docs/transactions-uri/modules/_tx_uri_.md deleted file mode 100644 index a981293cddb..00000000000 --- a/packages/docs/sdk/docs/transactions-uri/modules/_tx_uri_.md +++ /dev/null @@ -1,62 +0,0 @@ -[@celo/transactions-uri](../README.md) › ["tx-uri"](_tx_uri_.md) - -# Module: "tx-uri" - -## Index - -### Functions - -* [QrFromUri](_tx_uri_.md#qrfromuri) -* [buildUri](_tx_uri_.md#builduri) -* [parseUri](_tx_uri_.md#parseuri) - -## Functions - -### QrFromUri - -▸ **QrFromUri**(`uri`: string, `type`: "svg" | "terminal" | "utf8"): *Promise‹string›* - -*Defined in [tx-uri.ts:114](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/transactions-uri/src/tx-uri.ts#L114)* - -**Parameters:** - -Name | Type | ------- | ------ | -`uri` | string | -`type` | "svg" | "terminal" | "utf8" | - -**Returns:** *Promise‹string›* - -___ - -### buildUri - -▸ **buildUri**(`tx`: CeloTx, `functionName?`: undefined | string, `abiTypes`: string[]): *string* - -*Defined in [tx-uri.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/transactions-uri/src/tx-uri.ts#L65)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`tx` | CeloTx | - | -`functionName?` | undefined | string | - | -`abiTypes` | string[] | [] | - -**Returns:** *string* - -___ - -### parseUri - -▸ **parseUri**(`uri`: string): *CeloTx* - -*Defined in [tx-uri.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/transactions-uri/src/tx-uri.ts#L26)* - -**Parameters:** - -Name | Type | ------- | ------ | -`uri` | string | - -**Returns:** *CeloTx* diff --git a/packages/docs/sdk/docs/utils/README.md b/packages/docs/sdk/docs/utils/README.md deleted file mode 100644 index e05229b3dce..00000000000 --- a/packages/docs/sdk/docs/utils/README.md +++ /dev/null @@ -1,34 +0,0 @@ -[@celo/utils](README.md) - -# @celo/utils - -## Index - -### Modules - -* ["address"](modules/_address_.md) -* ["async"](modules/_async_.md) -* ["attestations"](modules/_attestations_.md) -* ["bn"](modules/_bn_.md) -* ["celoHistory"](modules/_celohistory_.md) -* ["collections"](modules/_collections_.md) -* ["contacts"](modules/_contacts_.md) -* ["currencies"](modules/_currencies_.md) -* ["dappkit"](modules/_dappkit_.md) -* ["displayFormatting"](modules/_displayformatting_.md) -* ["ecdh"](modules/_ecdh_.md) -* ["ecies"](modules/_ecies_.md) -* ["fixidity"](modules/_fixidity_.md) -* ["future"](modules/_future_.md) -* ["inputValidation"](modules/_inputvalidation_.md) -* ["io"](modules/_io_.md) -* ["istanbul"](modules/_istanbul_.md) -* ["levenshtein"](modules/_levenshtein_.md) -* ["logger"](modules/_logger_.md) -* ["parsing"](modules/_parsing_.md) -* ["sign-typed-data-utils"](modules/_sign_typed_data_utils_.md) -* ["signatureUtils"](modules/_signatureutils_.md) -* ["solidity"](modules/_solidity_.md) -* ["string"](modules/_string_.md) -* ["task"](modules/_task_.md) -* ["typed-data-constructors"](modules/_typed_data_constructors_.md) diff --git a/packages/docs/sdk/docs/utils/interfaces/_istanbul_.istanbulextra.md b/packages/docs/sdk/docs/utils/interfaces/_istanbul_.istanbulextra.md deleted file mode 100644 index bdbb6256d38..00000000000 --- a/packages/docs/sdk/docs/utils/interfaces/_istanbul_.istanbulextra.md +++ /dev/null @@ -1,66 +0,0 @@ -[@celo/utils](../README.md) › ["istanbul"](../modules/_istanbul_.md) › [IstanbulExtra](_istanbul_.istanbulextra.md) - -# Interface: IstanbulExtra - -## Hierarchy - -* **IstanbulExtra** - -## Index - -### Properties - -* [addedValidators](_istanbul_.istanbulextra.md#addedvalidators) -* [addedValidatorsPublicKeys](_istanbul_.istanbulextra.md#addedvalidatorspublickeys) -* [aggregatedSeal](_istanbul_.istanbulextra.md#aggregatedseal) -* [parentAggregatedSeal](_istanbul_.istanbulextra.md#parentaggregatedseal) -* [removedValidators](_istanbul_.istanbulextra.md#removedvalidators) -* [seal](_istanbul_.istanbulextra.md#seal) - -## Properties - -### addedValidators - -• **addedValidators**: *[Address](../modules/_address_.md#address)[]* - -*Defined in [istanbul.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L22)* - -___ - -### addedValidatorsPublicKeys - -• **addedValidatorsPublicKeys**: *string[]* - -*Defined in [istanbul.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L23)* - -___ - -### aggregatedSeal - -• **aggregatedSeal**: *[Seal](_istanbul_.seal.md)* - -*Defined in [istanbul.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L26)* - -___ - -### parentAggregatedSeal - -• **parentAggregatedSeal**: *[Seal](_istanbul_.seal.md)* - -*Defined in [istanbul.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L27)* - -___ - -### removedValidators - -• **removedValidators**: *[Bitmap](../modules/_istanbul_.md#bitmap)* - -*Defined in [istanbul.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L24)* - -___ - -### seal - -• **seal**: *string* - -*Defined in [istanbul.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L25)* diff --git a/packages/docs/sdk/docs/utils/interfaces/_istanbul_.seal.md b/packages/docs/sdk/docs/utils/interfaces/_istanbul_.seal.md deleted file mode 100644 index bf5bf632a3d..00000000000 --- a/packages/docs/sdk/docs/utils/interfaces/_istanbul_.seal.md +++ /dev/null @@ -1,39 +0,0 @@ -[@celo/utils](../README.md) › ["istanbul"](../modules/_istanbul_.md) › [Seal](_istanbul_.seal.md) - -# Interface: Seal - -## Hierarchy - -* **Seal** - -## Index - -### Properties - -* [bitmap](_istanbul_.seal.md#bitmap) -* [round](_istanbul_.seal.md#round) -* [signature](_istanbul_.seal.md#signature) - -## Properties - -### bitmap - -• **bitmap**: *[Bitmap](../modules/_istanbul_.md#bitmap)* - -*Defined in [istanbul.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L15)* - -___ - -### round - -• **round**: *BigNumber* - -*Defined in [istanbul.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L17)* - -___ - -### signature - -• **signature**: *string* - -*Defined in [istanbul.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L16)* diff --git a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712object.md b/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712object.md deleted file mode 100644 index 52425b4f8ad..00000000000 --- a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712object.md +++ /dev/null @@ -1,11 +0,0 @@ -[@celo/utils](../README.md) › ["sign-typed-data-utils"](../modules/_sign_typed_data_utils_.md) › [EIP712Object](_sign_typed_data_utils_.eip712object.md) - -# Interface: EIP712Object - -## Hierarchy - -* **EIP712Object** - -## Indexable - -* \[ **key**: *string*\]: [EIP712ObjectValue](../modules/_sign_typed_data_utils_.md#eip712objectvalue) diff --git a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712parameter.md b/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712parameter.md deleted file mode 100644 index 6c8e7f2ce19..00000000000 --- a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712parameter.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/utils](../README.md) › ["sign-typed-data-utils"](../modules/_sign_typed_data_utils_.md) › [EIP712Parameter](_sign_typed_data_utils_.eip712parameter.md) - -# Interface: EIP712Parameter - -## Hierarchy - -* **EIP712Parameter** - -## Index - -### Properties - -* [name](_sign_typed_data_utils_.eip712parameter.md#name) -* [type](_sign_typed_data_utils_.eip712parameter.md#type) - -## Properties - -### name - -• **name**: *string* - -*Defined in [sign-typed-data-utils.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L8)* - -___ - -### type - -• **type**: *string* - -*Defined in [sign-typed-data-utils.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L9)* diff --git a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712typeddata.md b/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712typeddata.md deleted file mode 100644 index c7c4e0c6cfb..00000000000 --- a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712typeddata.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/utils](../README.md) › ["sign-typed-data-utils"](../modules/_sign_typed_data_utils_.md) › [EIP712TypedData](_sign_typed_data_utils_.eip712typeddata.md) - -# Interface: EIP712TypedData - -## Hierarchy - -* **EIP712TypedData** - -## Index - -### Properties - -* [domain](_sign_typed_data_utils_.eip712typeddata.md#domain) -* [message](_sign_typed_data_utils_.eip712typeddata.md#message) -* [primaryType](_sign_typed_data_utils_.eip712typeddata.md#primarytype) -* [types](_sign_typed_data_utils_.eip712typeddata.md#types) - -## Properties - -### domain - -• **domain**: *[EIP712Object](_sign_typed_data_utils_.eip712object.md)* - -*Defined in [sign-typed-data-utils.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L36)* - -___ - -### message - -• **message**: *[EIP712Object](_sign_typed_data_utils_.eip712object.md)* - -*Defined in [sign-typed-data-utils.ts:37](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L37)* - -___ - -### primaryType - -• **primaryType**: *string* - -*Defined in [sign-typed-data-utils.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L38)* - -___ - -### types - -• **types**: *[EIP712Types](_sign_typed_data_utils_.eip712types.md) & object* - -*Defined in [sign-typed-data-utils.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L35)* diff --git a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712types.md b/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712types.md deleted file mode 100644 index 2f02e9a734d..00000000000 --- a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712types.md +++ /dev/null @@ -1,11 +0,0 @@ -[@celo/utils](../README.md) › ["sign-typed-data-utils"](../modules/_sign_typed_data_utils_.md) › [EIP712Types](_sign_typed_data_utils_.eip712types.md) - -# Interface: EIP712Types - -## Hierarchy - -* **EIP712Types** - -## Indexable - -* \[ **key**: *string*\]: [EIP712Parameter](_sign_typed_data_utils_.eip712parameter.md)[] diff --git a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712typeswithprimary.md b/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712typeswithprimary.md deleted file mode 100644 index 2602ffe3419..00000000000 --- a/packages/docs/sdk/docs/utils/interfaces/_sign_typed_data_utils_.eip712typeswithprimary.md +++ /dev/null @@ -1,30 +0,0 @@ -[@celo/utils](../README.md) › ["sign-typed-data-utils"](../modules/_sign_typed_data_utils_.md) › [EIP712TypesWithPrimary](_sign_typed_data_utils_.eip712typeswithprimary.md) - -# Interface: EIP712TypesWithPrimary - -## Hierarchy - -* **EIP712TypesWithPrimary** - -## Index - -### Properties - -* [primaryType](_sign_typed_data_utils_.eip712typeswithprimary.md#primarytype) -* [types](_sign_typed_data_utils_.eip712typeswithprimary.md#types) - -## Properties - -### primaryType - -• **primaryType**: *string* - -*Defined in [sign-typed-data-utils.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L18)* - -___ - -### types - -• **types**: *[EIP712Types](_sign_typed_data_utils_.eip712types.md)* - -*Defined in [sign-typed-data-utils.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L17)* diff --git a/packages/docs/sdk/docs/utils/modules/_address_.md b/packages/docs/sdk/docs/utils/modules/_address_.md deleted file mode 100644 index 15dee65c087..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_address_.md +++ /dev/null @@ -1,208 +0,0 @@ -[@celo/utils](../README.md) › ["address"](_address_.md) - -# Module: "address" - -## Index - -### References - -* [Address](_address_.md#address) -* [NULL_ADDRESS](_address_.md#null_address) -* [bufferToHex](_address_.md#buffertohex) -* [ensureLeading0x](_address_.md#ensureleading0x) -* [eqAddress](_address_.md#eqaddress) -* [findAddressIndex](_address_.md#findaddressindex) -* [getAddressChunks](_address_.md#getaddresschunks) -* [hexToBuffer](_address_.md#hextobuffer) -* [isHexString](_address_.md#ishexstring) -* [isValidChecksumAddress](_address_.md#isvalidchecksumaddress) -* [mapAddressListDataOnto](_address_.md#mapaddresslistdataonto) -* [mapAddressListOnto](_address_.md#mapaddresslistonto) -* [normalizeAddress](_address_.md#normalizeaddress) -* [normalizeAddressWith0x](_address_.md#normalizeaddresswith0x) -* [toChecksumAddress](_address_.md#tochecksumaddress) -* [trimLeading0x](_address_.md#trimleading0x) - -### Functions - -* [isValidAddress](_address_.md#const-isvalidaddress) -* [isValidPrivateKey](_address_.md#const-isvalidprivatekey) -* [privateKeyToAddress](_address_.md#const-privatekeytoaddress) -* [privateKeyToPublicKey](_address_.md#const-privatekeytopublickey) -* [publicKeyToAddress](_address_.md#const-publickeytoaddress) - -## References - -### Address - -• **Address**: - -___ - -### NULL_ADDRESS - -• **NULL_ADDRESS**: - -___ - -### bufferToHex - -• **bufferToHex**: - -___ - -### ensureLeading0x - -• **ensureLeading0x**: - -___ - -### eqAddress - -• **eqAddress**: - -___ - -### findAddressIndex - -• **findAddressIndex**: - -___ - -### getAddressChunks - -• **getAddressChunks**: - -___ - -### hexToBuffer - -• **hexToBuffer**: - -___ - -### isHexString - -• **isHexString**: - -___ - -### isValidChecksumAddress - -• **isValidChecksumAddress**: - -___ - -### mapAddressListDataOnto - -• **mapAddressListDataOnto**: - -___ - -### mapAddressListOnto - -• **mapAddressListOnto**: - -___ - -### normalizeAddress - -• **normalizeAddress**: - -___ - -### normalizeAddressWith0x - -• **normalizeAddressWith0x**: - -___ - -### toChecksumAddress - -• **toChecksumAddress**: - -___ - -### trimLeading0x - -• **trimLeading0x**: - -## Functions - -### `Const` isValidAddress - -▸ **isValidAddress**(`input`: string): *boolean* - -*Defined in [address.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/address.ts#L44)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | string | - -**Returns:** *boolean* - -___ - -### `Const` isValidPrivateKey - -▸ **isValidPrivateKey**(`privateKey`: string): *boolean* - -*Defined in [address.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/address.ts#L41)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | - -**Returns:** *boolean* - -___ - -### `Const` privateKeyToAddress - -▸ **privateKeyToAddress**(`privateKey`: string): *string* - -*Defined in [address.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/address.ts#L30)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | - -**Returns:** *string* - -___ - -### `Const` privateKeyToPublicKey - -▸ **privateKeyToPublicKey**(`privateKey`: string): *string* - -*Defined in [address.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/address.ts#L33)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | - -**Returns:** *string* - -___ - -### `Const` publicKeyToAddress - -▸ **publicKeyToAddress**(`publicKey`: string): *string* - -*Defined in [address.ts:36](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/address.ts#L36)* - -**Parameters:** - -Name | Type | ------- | ------ | -`publicKey` | string | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/utils/modules/_async_.md b/packages/docs/sdk/docs/utils/modules/_async_.md deleted file mode 100644 index a89c4d765b2..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_async_.md +++ /dev/null @@ -1,50 +0,0 @@ -[@celo/utils](../README.md) › ["async"](_async_.md) - -# Module: "async" - -## Index - -### References - -* [concurrentMap](_async_.md#concurrentmap) -* [concurrentValuesMap](_async_.md#concurrentvaluesmap) -* [retryAsync](_async_.md#retryasync) -* [retryAsyncWithBackOff](_async_.md#retryasyncwithbackoff) -* [selectiveRetryAsyncWithBackOff](_async_.md#selectiveretryasyncwithbackoff) -* [sleep](_async_.md#sleep) - -## References - -### concurrentMap - -• **concurrentMap**: - -___ - -### concurrentValuesMap - -• **concurrentValuesMap**: - -___ - -### retryAsync - -• **retryAsync**: - -___ - -### retryAsyncWithBackOff - -• **retryAsyncWithBackOff**: - -___ - -### selectiveRetryAsyncWithBackOff - -• **selectiveRetryAsyncWithBackOff**: - -___ - -### sleep - -• **sleep**: diff --git a/packages/docs/sdk/docs/utils/modules/_attestations_.md b/packages/docs/sdk/docs/utils/modules/_attestations_.md deleted file mode 100644 index 7e1d737cd22..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_attestations_.md +++ /dev/null @@ -1,243 +0,0 @@ -[@celo/utils](../README.md) › ["attestations"](_attestations_.md) - -# Module: "attestations" - -## Index - -### References - -* [AttestationsStatus](_attestations_.md#attestationsstatus) -* [IdentifierType](_attestations_.md#identifiertype) -* [base64ToHex](_attestations_.md#base64tohex) -* [extractAttestationCodeFromMessage](_attestations_.md#extractattestationcodefrommessage) -* [getIdentifierPrefix](_attestations_.md#getidentifierprefix) -* [isAccountConsideredVerified](_attestations_.md#isaccountconsideredverified) -* [messageContainsAttestationCode](_attestations_.md#messagecontainsattestationcode) -* [sanitizeMessageBase64](_attestations_.md#sanitizemessagebase64) - -### Functions - -* [attestToIdentifier](_attestations_.md#attesttoidentifier) -* [extractSecurityCodeWithPrefix](_attestations_.md#extractsecuritycodewithprefix) -* [getAttestationMessageToSignFromIdentifier](_attestations_.md#getattestationmessagetosignfromidentifier) -* [getAttestationMessageToSignFromPhoneNumber](_attestations_.md#getattestationmessagetosignfromphonenumber) -* [hashIdentifier](_attestations_.md#hashidentifier) - -### Object literals - -* [AttestationUtils](_attestations_.md#const-attestationutils) - -## References - -### AttestationsStatus - -• **AttestationsStatus**: - -___ - -### IdentifierType - -• **IdentifierType**: - -___ - -### base64ToHex - -• **base64ToHex**: - -___ - -### extractAttestationCodeFromMessage - -• **extractAttestationCodeFromMessage**: - -___ - -### getIdentifierPrefix - -• **getIdentifierPrefix**: - -___ - -### isAccountConsideredVerified - -• **isAccountConsideredVerified**: - -___ - -### messageContainsAttestationCode - -• **messageContainsAttestationCode**: - -___ - -### sanitizeMessageBase64 - -• **sanitizeMessageBase64**: - -## Functions - -### attestToIdentifier - -▸ **attestToIdentifier**(`identifier`: string, `account`: string, `privateKey`: string): *Signature* - -*Defined in [attestations.ts:52](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L52)* - -**Parameters:** - -Name | Type | ------- | ------ | -`identifier` | string | -`account` | string | -`privateKey` | string | - -**Returns:** *Signature* - -___ - -### extractSecurityCodeWithPrefix - -▸ **extractSecurityCodeWithPrefix**(`message`: string): *null | string* - -*Defined in [attestations.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L66)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | - -**Returns:** *null | string* - -___ - -### getAttestationMessageToSignFromIdentifier - -▸ **getAttestationMessageToSignFromIdentifier**(`identifier`: string, `account`: string): *string* - -*Defined in [attestations.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L33)* - -**Parameters:** - -Name | Type | ------- | ------ | -`identifier` | string | -`account` | string | - -**Returns:** *string* - -___ - -### getAttestationMessageToSignFromPhoneNumber - -▸ **getAttestationMessageToSignFromPhoneNumber**(`phoneNumber`: string, `account`: string, `phoneSalt?`: undefined | string): *string* - -*Defined in [attestations.ts:41](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L41)* - -**Parameters:** - -Name | Type | ------- | ------ | -`phoneNumber` | string | -`account` | string | -`phoneSalt?` | undefined | string | - -**Returns:** *string* - -___ - -### hashIdentifier - -▸ **hashIdentifier**(`identifier`: string, `type`: [IdentifierType](_attestations_.md#identifiertype), `salt?`: undefined | string): *string* - -*Defined in [attestations.ts:29](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L29)* - -**Parameters:** - -Name | Type | ------- | ------ | -`identifier` | string | -`type` | [IdentifierType](_attestations_.md#identifiertype) | -`salt?` | undefined | string | - -**Returns:** *string* - -## Object literals - -### `Const` AttestationUtils - -### ▪ **AttestationUtils**: *object* - -*Defined in [attestations.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L74)* - -### IdentifierType - -• **IdentifierType**: *IdentifierType* - -*Defined in [attestations.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L75)* - -### attestToIdentifier - -• **attestToIdentifier**: *[attestToIdentifier](_attestations_.md#attesttoidentifier)* - -*Defined in [attestations.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L81)* - -### base64ToHex - -• **base64ToHex**: *base64ToHex* - -*Defined in [attestations.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L80)* - -### extractAttestationCodeFromMessage - -• **extractAttestationCodeFromMessage**: *extractAttestationCodeFromMessage* - -*Defined in [attestations.ts:84](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L84)* - -### extractSecurityCodeWithPrefix - -• **extractSecurityCodeWithPrefix**: *[extractSecurityCodeWithPrefix](_attestations_.md#extractsecuritycodewithprefix)* - -*Defined in [attestations.ts:86](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L86)* - -### getAttestationMessageToSignFromIdentifier - -• **getAttestationMessageToSignFromIdentifier**: *[getAttestationMessageToSignFromIdentifier](_attestations_.md#getattestationmessagetosignfromidentifier)* - -*Defined in [attestations.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L78)* - -### getAttestationMessageToSignFromPhoneNumber - -• **getAttestationMessageToSignFromPhoneNumber**: *[getAttestationMessageToSignFromPhoneNumber](_attestations_.md#getattestationmessagetosignfromphonenumber)* - -*Defined in [attestations.ts:79](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L79)* - -### getIdentifierPrefix - -• **getIdentifierPrefix**: *getIdentifierPrefix* - -*Defined in [attestations.ts:76](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L76)* - -### hashIdentifier - -• **hashIdentifier**: *[hashIdentifier](_attestations_.md#hashidentifier)* - -*Defined in [attestations.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L77)* - -### isAccountConsideredVerified - -• **isAccountConsideredVerified**: *isAccountConsideredVerified* - -*Defined in [attestations.ts:85](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L85)* - -### messageContainsAttestationCode - -• **messageContainsAttestationCode**: *messageContainsAttestationCode* - -*Defined in [attestations.ts:83](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L83)* - -### sanitizeMessageBase64 - -• **sanitizeMessageBase64**: *sanitizeMessageBase64* - -*Defined in [attestations.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/attestations.ts#L82)* diff --git a/packages/docs/sdk/docs/utils/modules/_bn_.md b/packages/docs/sdk/docs/utils/modules/_bn_.md deleted file mode 100644 index a9aa61e1041..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_bn_.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/utils](../README.md) › ["bn"](_bn_.md) - -# Module: "bn" - -## Index - -### Functions - -* [compareBN](_bn_.md#comparebn) - -## Functions - -### compareBN - -▸ **compareBN**(`a`: BN, `b`: BN): *0 | 1 | -1* - -*Defined in [bn.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/bn.ts#L3)* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | BN | -`b` | BN | - -**Returns:** *0 | 1 | -1* diff --git a/packages/docs/sdk/docs/utils/modules/_celohistory_.md b/packages/docs/sdk/docs/utils/modules/_celohistory_.md deleted file mode 100644 index edaa3bfc15e..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_celohistory_.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/utils](../README.md) › ["celoHistory"](_celohistory_.md) - -# Module: "celoHistory" - -## Index - -### Variables - -* [CELO_AMOUNT_FOR_ESTIMATE](_celohistory_.md#const-celo_amount_for_estimate) -* [DOLLAR_AMOUNT_FOR_ESTIMATE](_celohistory_.md#const-dollar_amount_for_estimate) - -## Variables - -### `Const` CELO_AMOUNT_FOR_ESTIMATE - -• **CELO_AMOUNT_FOR_ESTIMATE**: *BigNumber‹›* = new BigNumber(0.01 * WEI_PER_UNIT) - -*Defined in [celoHistory.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/celoHistory.ts#L7)* - -___ - -### `Const` DOLLAR_AMOUNT_FOR_ESTIMATE - -• **DOLLAR_AMOUNT_FOR_ESTIMATE**: *BigNumber‹›* = new BigNumber(0.01 * WEI_PER_UNIT) - -*Defined in [celoHistory.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/celoHistory.ts#L6)* diff --git a/packages/docs/sdk/docs/utils/modules/_collections_.md b/packages/docs/sdk/docs/utils/modules/_collections_.md deleted file mode 100644 index 4789da44c9b..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_collections_.md +++ /dev/null @@ -1,106 +0,0 @@ -[@celo/utils](../README.md) › ["collections"](_collections_.md) - -# Module: "collections" - -## Index - -### References - -* [intersection](_collections_.md#intersection) -* [notEmpty](_collections_.md#notempty) -* [zeroRange](_collections_.md#zerorange) -* [zip](_collections_.md#zip) -* [zip3](_collections_.md#zip3) - -### Type aliases - -* [AddressListItem](_collections_.md#addresslistitem) - -### Functions - -* [linkedListChange](_collections_.md#linkedlistchange) -* [linkedListChanges](_collections_.md#linkedlistchanges) - -## References - -### intersection - -• **intersection**: - -___ - -### notEmpty - -• **notEmpty**: - -___ - -### zeroRange - -• **zeroRange**: - -___ - -### zip - -• **zip**: - -___ - -### zip3 - -• **zip3**: - -## Type aliases - -### AddressListItem - -Ƭ **AddressListItem**: *AddressListItem‹BigNumber›* - -*Defined in [collections.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/collections.ts#L7)* - -## Functions - -### linkedListChange - -▸ **linkedListChange**(`sortedList`: AddressListItem[], `change`: AddressListItem): *object* - -*Defined in [collections.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/collections.ts#L12)* - -**Parameters:** - -Name | Type | ------- | ------ | -`sortedList` | AddressListItem[] | -`change` | AddressListItem | - -**Returns:** *object* - -* **greater**: *string* - -* **lesser**: *string* - -* **list**: *AddressListItem[]* - -___ - -### linkedListChanges - -▸ **linkedListChanges**(`sortedList`: AddressListItem[], `changeList`: AddressListItem[]): *object* - -*Defined in [collections.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/collections.ts#L19)* - -**Parameters:** - -Name | Type | ------- | ------ | -`sortedList` | AddressListItem[] | -`changeList` | AddressListItem[] | - -**Returns:** *object* - -* **greaters**: *string[]* - -* **lessers**: *string[]* - -* **list**: *AddressListItem[]* diff --git a/packages/docs/sdk/docs/utils/modules/_contacts_.md b/packages/docs/sdk/docs/utils/modules/_contacts_.md deleted file mode 100644 index 7ef766d72dd..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_contacts_.md +++ /dev/null @@ -1,58 +0,0 @@ -[@celo/utils](../README.md) › ["contacts"](_contacts_.md) - -# Module: "contacts" - -## Index - -### References - -* [ContactPhoneNumber](_contacts_.md#contactphonenumber) -* [MinimalContact](_contacts_.md#minimalcontact) -* [getContactPhoneNumber](_contacts_.md#getcontactphonenumber) -* [isContact](_contacts_.md#iscontact) - -### Functions - -* [getContactNameHash](_contacts_.md#const-getcontactnamehash) - -## References - -### ContactPhoneNumber - -• **ContactPhoneNumber**: - -___ - -### MinimalContact - -• **MinimalContact**: - -___ - -### getContactPhoneNumber - -• **getContactPhoneNumber**: - -___ - -### isContact - -• **isContact**: - -## Functions - -### `Const` getContactNameHash - -▸ **getContactNameHash**(`contact`: MinimalContact): *string* - -*Defined in [contacts.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/contacts.ts#L16)* - -**`deprecated`** May be removed in future - -**Parameters:** - -Name | Type | ------- | ------ | -`contact` | MinimalContact | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/utils/modules/_currencies_.md b/packages/docs/sdk/docs/utils/modules/_currencies_.md deleted file mode 100644 index 019fc567fcc..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_currencies_.md +++ /dev/null @@ -1,43 +0,0 @@ -[@celo/utils](../README.md) › ["currencies"](_currencies_.md) - -# Module: "currencies" - -## Index - -### References - -* [CURRENCIES](_currencies_.md#currencies) -* [CURRENCY_ENUM](_currencies_.md#currency_enum) -* [SHORT_CURRENCIES](_currencies_.md#short_currencies) -* [currencyToShortMap](_currencies_.md#currencytoshortmap) -* [resolveCurrency](_currencies_.md#resolvecurrency) - -## References - -### CURRENCIES - -• **CURRENCIES**: - -___ - -### CURRENCY_ENUM - -• **CURRENCY_ENUM**: - -___ - -### SHORT_CURRENCIES - -• **SHORT_CURRENCIES**: - -___ - -### currencyToShortMap - -• **currencyToShortMap**: - -___ - -### resolveCurrency - -• **resolveCurrency**: diff --git a/packages/docs/sdk/docs/utils/modules/_displayformatting_.md b/packages/docs/sdk/docs/utils/modules/_displayformatting_.md deleted file mode 100644 index 27c4153d456..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_displayformatting_.md +++ /dev/null @@ -1,15 +0,0 @@ -[@celo/utils](../README.md) › ["displayFormatting"](_displayformatting_.md) - -# Module: "displayFormatting" - -## Index - -### References - -* [getErrorMessage](_displayformatting_.md#geterrormessage) - -## References - -### getErrorMessage - -• **getErrorMessage**: diff --git a/packages/docs/sdk/docs/utils/modules/_ecdh_.md b/packages/docs/sdk/docs/utils/modules/_ecdh_.md deleted file mode 100644 index cd42c92ebf3..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_ecdh_.md +++ /dev/null @@ -1,94 +0,0 @@ -[@celo/utils](../README.md) › ["ecdh"](_ecdh_.md) - -# Module: "ecdh" - -## Index - -### Functions - -* [computeSharedSecret](_ecdh_.md#computesharedsecret) -* [ensureCompressed](_ecdh_.md#ensurecompressed) -* [ensureUncompressed](_ecdh_.md#ensureuncompressed) -* [isCompressed](_ecdh_.md#iscompressed) -* [trimUncompressedPrefix](_ecdh_.md#trimuncompressedprefix) - -## Functions - -### computeSharedSecret - -▸ **computeSharedSecret**(`privateKey`: string, `publicKey`: string): *Buffer* - -*Defined in [ecdh.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecdh.ts#L4)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | -`publicKey` | string | - -**Returns:** *Buffer* - -___ - -### ensureCompressed - -▸ **ensureCompressed**(`publicKey`: string): *string* - -*Defined in [ecdh.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecdh.ts#L18)* - -**Parameters:** - -Name | Type | ------- | ------ | -`publicKey` | string | - -**Returns:** *string* - -___ - -### ensureUncompressed - -▸ **ensureUncompressed**(`publicKey`: string): *any* - -*Defined in [ecdh.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecdh.ts#L27)* - -**Parameters:** - -Name | Type | ------- | ------ | -`publicKey` | string | - -**Returns:** *any* - -___ - -### isCompressed - -▸ **isCompressed**(`publicKey`: string): *boolean* - -*Defined in [ecdh.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecdh.ts#L10)* - -**Parameters:** - -Name | Type | ------- | ------ | -`publicKey` | string | - -**Returns:** *boolean* - -___ - -### trimUncompressedPrefix - -▸ **trimUncompressedPrefix**(`publicKey`: string): *string* - -*Defined in [ecdh.ts:40](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecdh.ts#L40)* - -**Parameters:** - -Name | Type | ------- | ------ | -`publicKey` | string | - -**Returns:** *string* diff --git a/packages/docs/sdk/docs/utils/modules/_ecies_.md b/packages/docs/sdk/docs/utils/modules/_ecies_.md deleted file mode 100644 index f1393566b2d..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_ecies_.md +++ /dev/null @@ -1,192 +0,0 @@ -[@celo/utils](../README.md) › ["ecies"](_ecies_.md) - -# Module: "ecies" - -## Index - -### Variables - -* [IV_LENGTH](_ecies_.md#const-iv_length) - -### Functions - -* [AES128Decrypt](_ecies_.md#aes128decrypt) -* [AES128DecryptAndHMAC](_ecies_.md#aes128decryptandhmac) -* [AES128Encrypt](_ecies_.md#aes128encrypt) -* [AES128EncryptAndHMAC](_ecies_.md#aes128encryptandhmac) -* [Decrypt](_ecies_.md#decrypt) -* [Encrypt](_ecies_.md#encrypt) - -### Object literals - -* [ECIES](_ecies_.md#const-ecies) - -## Variables - -### `Const` IV_LENGTH - -• **IV_LENGTH**: *16* = 16 - -*Defined in [ecies.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L11)* - -## Functions - -### AES128Decrypt - -▸ **AES128Decrypt**(`encryptionKey`: Buffer, `iv`: Buffer, `ciphertext`: Buffer): *Buffer‹›* - -*Defined in [ecies.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L96)* - -AES-128 CTR decrypt - -**Parameters:** - -Name | Type | ------- | ------ | -`encryptionKey` | Buffer | -`iv` | Buffer | -`ciphertext` | Buffer | - -**Returns:** *Buffer‹›* - -plaintext - -___ - -### AES128DecryptAndHMAC - -▸ **AES128DecryptAndHMAC**(`encryptionKey`: Buffer, `macKey`: Buffer, `ciphertext`: Buffer): *Buffer* - -*Defined in [ecies.ts:111](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L111)* - -AES-128 CTR decrypt with message authentication - -**Parameters:** - -Name | Type | ------- | ------ | -`encryptionKey` | Buffer | -`macKey` | Buffer | -`ciphertext` | Buffer | - -**Returns:** *Buffer* - -plaintext - -___ - -### AES128Encrypt - -▸ **AES128Encrypt**(`encryptionKey`: Buffer, `iv`: Buffer, `plaintext`: Buffer): *Buffer‹›* - -*Defined in [ecies.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L63)* - -AES-128 CTR encrypt - -**Parameters:** - -Name | Type | ------- | ------ | -`encryptionKey` | Buffer | -`iv` | Buffer | -`plaintext` | Buffer | - -**Returns:** *Buffer‹›* - -ciphertext - -___ - -### AES128EncryptAndHMAC - -▸ **AES128EncryptAndHMAC**(`encryptionKey`: Buffer, `macKey`: Buffer, `plaintext`: Buffer): *Buffer* - -*Defined in [ecies.ts:77](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L77)* - -AES-128 CTR encrypt with message authentication - -**Parameters:** - -Name | Type | ------- | ------ | -`encryptionKey` | Buffer | -`macKey` | Buffer | -`plaintext` | Buffer | - -**Returns:** *Buffer* - -ciphertext - -___ - -### Decrypt - -▸ **Decrypt**(`privKey`: Buffer, `encrypted`: Buffer): *Buffer‹›* - -*Defined in [ecies.ts:163](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L163)* - -ECIES decrypt - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`privKey` | Buffer | Ethereum private key, 32 bytes. | -`encrypted` | Buffer | Encrypted message, serialized, 113+ bytes | - -**Returns:** *Buffer‹›* - -plaintext - -___ - -### Encrypt - -▸ **Encrypt**(`pubKeyTo`: Buffer, `plaintext`: Buffer): *Buffer‹›* - -*Defined in [ecies.ts:134](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L134)* - -ECIES encrypt - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`pubKeyTo` | Buffer | Ethereum pub key, 64 bytes. | -`plaintext` | Buffer | Plaintext to be encrypted. | - -**Returns:** *Buffer‹›* - -Encrypted message, serialized, 113+ bytes - -## Object literals - -### `Const` ECIES - -### ▪ **ECIES**: *object* - -*Defined in [ecies.ts:184](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L184)* - -### AES128DecryptAndHMAC - -• **AES128DecryptAndHMAC**: *[AES128DecryptAndHMAC](_ecies_.md#aes128decryptandhmac)* - -*Defined in [ecies.ts:188](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L188)* - -### AES128EncryptAndHMAC - -• **AES128EncryptAndHMAC**: *[AES128EncryptAndHMAC](_ecies_.md#aes128encryptandhmac)* - -*Defined in [ecies.ts:187](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L187)* - -### Decrypt - -• **Decrypt**: *[Decrypt](_ecies_.md#decrypt)* - -*Defined in [ecies.ts:186](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L186)* - -### Encrypt - -• **Encrypt**: *[Encrypt](_ecies_.md#encrypt)* - -*Defined in [ecies.ts:185](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/ecies.ts#L185)* diff --git a/packages/docs/sdk/docs/utils/modules/_fixidity_.md b/packages/docs/sdk/docs/utils/modules/_fixidity_.md deleted file mode 100644 index 8763b1e50a6..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_fixidity_.md +++ /dev/null @@ -1,133 +0,0 @@ -[@celo/utils](../README.md) › ["fixidity"](_fixidity_.md) - -# Module: "fixidity" - -## Index - -### Variables - -* [digits](_fixidity_.md#const-digits) -* [fixed1](_fixidity_.md#const-fixed1) - -### Functions - -* [divide](_fixidity_.md#const-divide) -* [fixedToInt](_fixidity_.md#const-fixedtoint) -* [fromFixed](_fixidity_.md#const-fromfixed) -* [multiply](_fixidity_.md#const-multiply) -* [reciprocal](_fixidity_.md#const-reciprocal) -* [toFixed](_fixidity_.md#const-tofixed) - -## Variables - -### `Const` digits - -• **digits**: *BigNumber‹›* = new BigNumber('24') - -*Defined in [fixidity.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/fixidity.ts#L3)* - -___ - -### `Const` fixed1 - -• **fixed1**: *BigNumber‹›* = new BigNumber('1000000000000000000000000') - -*Defined in [fixidity.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/fixidity.ts#L4)* - -## Functions - -### `Const` divide - -▸ **divide**(`a`: BigNumber, `b`: BigNumber): *BigNumber‹›* - -*Defined in [fixidity.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/fixidity.ts#L24)* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | BigNumber | -`b` | BigNumber | - -**Returns:** *BigNumber‹›* - -___ - -### `Const` fixedToInt - -▸ **fixedToInt**(`f`: BigNumber): *BigNumber‹›* - -*Defined in [fixidity.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/fixidity.ts#L16)* - -**Parameters:** - -Name | Type | ------- | ------ | -`f` | BigNumber | - -**Returns:** *BigNumber‹›* - -___ - -### `Const` fromFixed - -▸ **fromFixed**(`f`: BigNumber): *BigNumber‹›* - -*Defined in [fixidity.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/fixidity.ts#L11)* - -**Parameters:** - -Name | Type | ------- | ------ | -`f` | BigNumber | - -**Returns:** *BigNumber‹›* - -___ - -### `Const` multiply - -▸ **multiply**(`a`: BigNumber, `b`: BigNumber): *BigNumber‹›* - -*Defined in [fixidity.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/fixidity.ts#L20)* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | BigNumber | -`b` | BigNumber | - -**Returns:** *BigNumber‹›* - -___ - -### `Const` reciprocal - -▸ **reciprocal**(`f`: BigNumber): *BigNumber‹›* - -*Defined in [fixidity.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/fixidity.ts#L28)* - -**Parameters:** - -Name | Type | ------- | ------ | -`f` | BigNumber | - -**Returns:** *BigNumber‹›* - -___ - -### `Const` toFixed - -▸ **toFixed**(`n`: number | BigNumber): *BigNumber‹›* - -*Defined in [fixidity.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/fixidity.ts#L6)* - -**Parameters:** - -Name | Type | ------- | ------ | -`n` | number | BigNumber | - -**Returns:** *BigNumber‹›* diff --git a/packages/docs/sdk/docs/utils/modules/_future_.md b/packages/docs/sdk/docs/utils/modules/_future_.md deleted file mode 100644 index b0e3aec93fa..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_future_.md +++ /dev/null @@ -1,29 +0,0 @@ -[@celo/utils](../README.md) › ["future"](_future_.md) - -# Module: "future" - -## Index - -### References - -* [Future](_future_.md#future) -* [pipeToFuture](_future_.md#pipetofuture) -* [toFuture](_future_.md#tofuture) - -## References - -### Future - -• **Future**: - -___ - -### pipeToFuture - -• **pipeToFuture**: - -___ - -### toFuture - -• **toFuture**: diff --git a/packages/docs/sdk/docs/utils/modules/_inputvalidation_.md b/packages/docs/sdk/docs/utils/modules/_inputvalidation_.md deleted file mode 100644 index a590bfdb6ee..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_inputvalidation_.md +++ /dev/null @@ -1,36 +0,0 @@ -[@celo/utils](../README.md) › ["inputValidation"](_inputvalidation_.md) - -# Module: "inputValidation" - -## Index - -### References - -* [BaseProps](_inputvalidation_.md#baseprops) -* [ValidatorKind](_inputvalidation_.md#validatorkind) -* [validateDecimal](_inputvalidation_.md#validatedecimal) -* [validateInteger](_inputvalidation_.md#validateinteger) - -## References - -### BaseProps - -• **BaseProps**: - -___ - -### ValidatorKind - -• **ValidatorKind**: - -___ - -### validateDecimal - -• **validateDecimal**: - -___ - -### validateInteger - -• **validateInteger**: diff --git a/packages/docs/sdk/docs/utils/modules/_io_.md b/packages/docs/sdk/docs/utils/modules/_io_.md deleted file mode 100644 index aa33086c33d..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_io_.md +++ /dev/null @@ -1,167 +0,0 @@ -[@celo/utils](../README.md) › ["io"](_io_.md) - -# Module: "io" - -## Index - -### References - -* [URL_REGEX](_io_.md#url_regex) -* [isValidUrl](_io_.md#isvalidurl) - -### Type aliases - -* [Address](_io_.md#address) -* [Signature](_io_.md#signature) - -### Variables - -* [AddressType](_io_.md#const-addresstype) -* [AttestationServiceStatusResponseType](_io_.md#const-attestationservicestatusresponsetype) -* [JSONStringType](_io_.md#const-jsonstringtype) -* [PublicKeyType](_io_.md#const-publickeytype) -* [SaltType](_io_.md#const-salttype) -* [SignatureType](_io_.md#const-signaturetype) -* [UrlType](_io_.md#const-urltype) - -## References - -### URL_REGEX - -• **URL_REGEX**: - -___ - -### isValidUrl - -• **isValidUrl**: - -## Type aliases - -### Address - -Ƭ **Address**: *t.TypeOf‹typeof AddressType›* - -*Defined in [io.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/io.ts#L66)* - -___ - -### Signature - -Ƭ **Signature**: *t.TypeOf‹typeof SignatureType›* - -*Defined in [io.ts:65](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/io.ts#L65)* - -## Variables - -### `Const` AddressType - -• **AddressType**: *Type‹string, string, unknown›* = new t.Type( - 'Address', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - isValidAddress(stringValue) - ? t.success(toChecksumAddress(stringValue)) - : t.failure(stringValue, context, 'is not a valid address') - ), - String -) - -*Defined in [io.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/io.ts#L38)* - -___ - -### `Const` AttestationServiceStatusResponseType - -• **AttestationServiceStatusResponseType**: *TypeC‹object›* = t.type({ - status: t.literal('ok'), - smsProviders: t.array(t.string), - blacklistedRegionCodes: t.union([t.array(t.string), t.undefined]), - accountAddress: AddressType, - signature: t.union([SignatureType, t.undefined]), - version: t.string, - latestBlock: t.number, - ageOfLatestBlock: t.number, - isNodeSyncing: t.boolean, - appSignature: t.string, - smsProvidersRandomized: t.boolean, - maxDeliveryAttempts: t.number, - maxRerequestMins: t.number, - twilioVerifySidProvided: t.boolean, -}) - -*Defined in [io.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/io.ts#L68)* - -___ - -### `Const` JSONStringType - -• **JSONStringType**: *Type‹string, string, unknown›* = new t.Type( - 'JSONString', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => { - try { - JSON.parse(stringValue) - return t.success(stringValue) - } catch (error) { - return t.failure(stringValue, context, 'can not be parsed as JSON') - } - }), - String -) - -*Defined in [io.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/io.ts#L23)* - -___ - -### `Const` PublicKeyType - -• **PublicKeyType**: *Type‹string, string, unknown›* = new t.Type( - 'Public Key', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - stringValue.startsWith('0x') && isValidPublic(Buffer.from(stringValue.slice(2), 'hex'), true) - ? t.success(toChecksumAddress(stringValue)) - : t.failure(stringValue, context, 'is not a valid public key') - ), - String -) - -*Defined in [io.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/io.ts#L50)* - -___ - -### `Const` SaltType - -• **SaltType**: *StringC‹›* = t.string - -*Defined in [io.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/io.ts#L63)* - -___ - -### `Const` SignatureType - -• **SignatureType**: *StringC‹›* = t.string - -*Defined in [io.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/io.ts#L62)* - -___ - -### `Const` UrlType - -• **UrlType**: *Type‹string, string, unknown›* = new t.Type( - 'Url', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - URL_REGEX.test(stringValue) - ? t.success(stringValue) - : t.failure(stringValue, context, 'is not a valid url') - ), - String -) - -*Defined in [io.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/io.ts#L11)* diff --git a/packages/docs/sdk/docs/utils/modules/_istanbul_.md b/packages/docs/sdk/docs/utils/modules/_istanbul_.md deleted file mode 100644 index 54982df6dc3..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_istanbul_.md +++ /dev/null @@ -1,84 +0,0 @@ -[@celo/utils](../README.md) › ["istanbul"](_istanbul_.md) - -# Module: "istanbul" - -## Index - -### Interfaces - -* [IstanbulExtra](../interfaces/_istanbul_.istanbulextra.md) -* [Seal](../interfaces/_istanbul_.seal.md) - -### Type aliases - -* [Bitmap](_istanbul_.md#bitmap) - -### Functions - -* [bitIsSet](_istanbul_.md#bitisset) -* [parseBlockExtraData](_istanbul_.md#parseblockextradata) - -### Object literals - -* [IstanbulUtils](_istanbul_.md#const-istanbulutils) - -## Type aliases - -### Bitmap - -Ƭ **Bitmap**: *BigNumber* - -*Defined in [istanbul.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L11)* - -## Functions - -### bitIsSet - -▸ **bitIsSet**(`bitmap`: [Bitmap](_istanbul_.md#bitmap), `index`: number): *boolean* - -*Defined in [istanbul.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L56)* - -**Parameters:** - -Name | Type | ------- | ------ | -`bitmap` | [Bitmap](_istanbul_.md#bitmap) | -`index` | number | - -**Returns:** *boolean* - -___ - -### parseBlockExtraData - -▸ **parseBlockExtraData**(`data`: string): *[IstanbulExtra](../interfaces/_istanbul_.istanbulextra.md)* - -*Defined in [istanbul.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L43)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | string | - -**Returns:** *[IstanbulExtra](../interfaces/_istanbul_.istanbulextra.md)* - -## Object literals - -### `Const` IstanbulUtils - -### ▪ **IstanbulUtils**: *object* - -*Defined in [istanbul.ts:66](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L66)* - -### bitIsSet - -• **bitIsSet**: *[bitIsSet](_istanbul_.md#bitisset)* - -*Defined in [istanbul.ts:68](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L68)* - -### parseBlockExtraData - -• **parseBlockExtraData**: *[parseBlockExtraData](_istanbul_.md#parseblockextradata)* - -*Defined in [istanbul.ts:67](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/istanbul.ts#L67)* diff --git a/packages/docs/sdk/docs/utils/modules/_levenshtein_.md b/packages/docs/sdk/docs/utils/modules/_levenshtein_.md deleted file mode 100644 index f634fa57117..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_levenshtein_.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/utils](../README.md) › ["levenshtein"](_levenshtein_.md) - -# Module: "levenshtein" - -## Index - -### Functions - -* [levenshteinDistance](_levenshtein_.md#levenshteindistance) - -## Functions - -### levenshteinDistance - -▸ **levenshteinDistance**(`a`: string, `b`: string): *number* - -*Defined in [levenshtein.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/levenshtein.ts#L9)* - -**Parameters:** - -Name | Type | ------- | ------ | -`a` | string | -`b` | string | - -**Returns:** *number* diff --git a/packages/docs/sdk/docs/utils/modules/_logger_.md b/packages/docs/sdk/docs/utils/modules/_logger_.md deleted file mode 100644 index 349b8e159ed..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_logger_.md +++ /dev/null @@ -1,36 +0,0 @@ -[@celo/utils](../README.md) › ["logger"](_logger_.md) - -# Module: "logger" - -## Index - -### References - -* [Logger](_logger_.md#logger) -* [consoleLogger](_logger_.md#consolelogger) -* [noopLogger](_logger_.md#nooplogger) -* [prefixLogger](_logger_.md#prefixlogger) - -## References - -### Logger - -• **Logger**: - -___ - -### consoleLogger - -• **consoleLogger**: - -___ - -### noopLogger - -• **noopLogger**: - -___ - -### prefixLogger - -• **prefixLogger**: diff --git a/packages/docs/sdk/docs/utils/modules/_parsing_.md b/packages/docs/sdk/docs/utils/modules/_parsing_.md deleted file mode 100644 index 0aa756deeba..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_parsing_.md +++ /dev/null @@ -1,43 +0,0 @@ -[@celo/utils](../README.md) › ["parsing"](_parsing_.md) - -# Module: "parsing" - -## Index - -### References - -* [parseSolidityStringArray](_parsing_.md#parsesoliditystringarray) -* [stringToBoolean](_parsing_.md#stringtoboolean) - -### Functions - -* [parseInputAmount](_parsing_.md#const-parseinputamount) - -## References - -### parseSolidityStringArray - -• **parseSolidityStringArray**: - -___ - -### stringToBoolean - -• **stringToBoolean**: - -## Functions - -### `Const` parseInputAmount - -▸ **parseInputAmount**(`inputString`: string, `decimalSeparator`: string): *BigNumber* - -*Defined in [parsing.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/parsing.ts#L7)* - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`inputString` | string | - | -`decimalSeparator` | string | "." | - -**Returns:** *BigNumber* diff --git a/packages/docs/sdk/docs/utils/modules/_sign_typed_data_utils_.md b/packages/docs/sdk/docs/utils/modules/_sign_typed_data_utils_.md deleted file mode 100644 index 607f19ed8c7..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_sign_typed_data_utils_.md +++ /dev/null @@ -1,353 +0,0 @@ -[@celo/utils](../README.md) › ["sign-typed-data-utils"](_sign_typed_data_utils_.md) - -# Module: "sign-typed-data-utils" - -## Index - -### Interfaces - -* [EIP712Object](../interfaces/_sign_typed_data_utils_.eip712object.md) -* [EIP712Parameter](../interfaces/_sign_typed_data_utils_.eip712parameter.md) -* [EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md) -* [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md) -* [EIP712TypesWithPrimary](../interfaces/_sign_typed_data_utils_.eip712typeswithprimary.md) - -### Type aliases - -* [EIP712ObjectValue](_sign_typed_data_utils_.md#eip712objectvalue) -* [EIP712Optional](_sign_typed_data_utils_.md#eip712optional) - -### Variables - -* [EIP712_ATOMIC_TYPES](_sign_typed_data_utils_.md#const-eip712_atomic_types) -* [EIP712_BUILTIN_TYPES](_sign_typed_data_utils_.md#const-eip712_builtin_types) -* [EIP712_DYNAMIC_TYPES](_sign_typed_data_utils_.md#const-eip712_dynamic_types) - -### Functions - -* [defined](_sign_typed_data_utils_.md#const-defined) -* [eip712OptionalSchema](_sign_typed_data_utils_.md#const-eip712optionalschema) -* [eip712OptionalType](_sign_typed_data_utils_.md#const-eip712optionaltype) -* [encodeData](_sign_typed_data_utils_.md#encodedata) -* [encodeType](_sign_typed_data_utils_.md#encodetype) -* [generateTypedDataHash](_sign_typed_data_utils_.md#generatetypeddatahash) -* [structHash](_sign_typed_data_utils_.md#structhash) -* [typeHash](_sign_typed_data_utils_.md#typehash) -* [zeroValue](_sign_typed_data_utils_.md#zerovalue) - -### Object literals - -* [noBool](_sign_typed_data_utils_.md#const-nobool) -* [noNumber](_sign_typed_data_utils_.md#const-nonumber) -* [noString](_sign_typed_data_utils_.md#const-nostring) - -## Type aliases - -### EIP712ObjectValue - -Ƭ **EIP712ObjectValue**: *string | number | BigNumber | boolean | Buffer | [EIP712Object](../interfaces/_sign_typed_data_utils_.eip712object.md) | [EIP712ObjectValue](_sign_typed_data_utils_.md#eip712objectvalue)[]* - -*Defined in [sign-typed-data-utils.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L21)* - -___ - -### EIP712Optional - -Ƭ **EIP712Optional**: *object* - -*Defined in [sign-typed-data-utils.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L70)* - -Utility type representing an optional value in a EIP-712 compatible manner, as long as the -concrete type T is a subtype of EIP712ObjectValue. - -**`remarks`** EIP712Optonal is not part of the EIP712 standard, but is fully compatible with it. - -#### Type declaration: - -* **defined**: *boolean* - -* **value**: *T* - -## Variables - -### `Const` EIP712_ATOMIC_TYPES - -• **EIP712_ATOMIC_TYPES**: *string[]* = [ - 'bytes1', - 'bytes32', - 'uint8', - 'uint256', - 'int8', - 'int256', - 'bool', - 'address', -] - -*Defined in [sign-typed-data-utils.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L42)* - -Array of all EIP-712 atomic type names. - -___ - -### `Const` EIP712_BUILTIN_TYPES - -• **EIP712_BUILTIN_TYPES**: *string[]* = EIP712_ATOMIC_TYPES.concat(EIP712_DYNAMIC_TYPES) - -*Defined in [sign-typed-data-utils.ts:55](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L55)* - -___ - -### `Const` EIP712_DYNAMIC_TYPES - -• **EIP712_DYNAMIC_TYPES**: *string[]* = ['bytes', 'string'] - -*Defined in [sign-typed-data-utils.ts:53](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L53)* - -## Functions - -### `Const` defined - -▸ **defined**<**T**>(`value`: T): *[EIP712Optional](_sign_typed_data_utils_.md#eip712optional)‹T›* - -*Defined in [sign-typed-data-utils.ts:98](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L98)* - -Utility to construct an defined EIP712Optional value with inferred type. - -**Type parameters:** - -▪ **T**: *[EIP712ObjectValue](_sign_typed_data_utils_.md#eip712objectvalue)* - -**Parameters:** - -Name | Type | ------- | ------ | -`value` | T | - -**Returns:** *[EIP712Optional](_sign_typed_data_utils_.md#eip712optional)‹T›* - -___ - -### `Const` eip712OptionalSchema - -▸ **eip712OptionalSchema**<**S**>(`schema`: S): *TypeC‹object›* - -*Defined in [sign-typed-data-utils.ts:91](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L91)* - -Utility to build EIP712Optional schemas for encoding and decoding with io-ts. - -**Type parameters:** - -▪ **S**: *Mixed* - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`schema` | S | io-ts type (a.k.a. schema or codec) describing the inner type. | - -**Returns:** *TypeC‹object›* - -___ - -### `Const` eip712OptionalType - -▸ **eip712OptionalType**(`typeName`: string): *[EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md)* - -*Defined in [sign-typed-data-utils.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L80)* - -Utility to build EIP712Optional types to insert in EIP-712 type arrays. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`typeName` | string | EIP-712 string type name. Should be builtin or defined in the EIP712Types structure into which this type will be merged. | - -**Returns:** *[EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md)* - -___ - -### encodeData - -▸ **encodeData**(`primaryType`: string, `data`: [EIP712Object](../interfaces/_sign_typed_data_utils_.eip712object.md), `types`: [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md)): *Buffer* - -*Defined in [sign-typed-data-utils.ts:239](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L239)* - -Constructs the struct encoding of the data as the primary type. - -**Parameters:** - -Name | Type | ------- | ------ | -`primaryType` | string | -`data` | [EIP712Object](../interfaces/_sign_typed_data_utils_.eip712object.md) | -`types` | [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md) | - -**Returns:** *Buffer* - -___ - -### encodeType - -▸ **encodeType**(`primaryType`: string, `types`: [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md)): *string* - -*Defined in [sign-typed-data-utils.ts:172](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L172)* - -Creates a string encoding of the primary type, including all dependencies. -E.g. "Transaction(Person from,Person to,Asset tx)Asset(address token,uint256 amount)Person(address wallet,string name)" - -**Parameters:** - -Name | Type | ------- | ------ | -`primaryType` | string | -`types` | [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md) | - -**Returns:** *string* - -___ - -### generateTypedDataHash - -▸ **generateTypedDataHash**(`typedData`: [EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md)): *Buffer* - -*Defined in [sign-typed-data-utils.ts:126](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L126)* - -Generates the EIP712 Typed Data hash for signing - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`typedData` | [EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md) | An object that conforms to the EIP712TypedData interface | - -**Returns:** *Buffer* - -A Buffer containing the hash of the typed data. - -___ - -### structHash - -▸ **structHash**(`primaryType`: string, `data`: [EIP712Object](../interfaces/_sign_typed_data_utils_.eip712object.md), `types`: [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md)): *Buffer* - -*Defined in [sign-typed-data-utils.ts:248](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L248)* - -**Parameters:** - -Name | Type | ------- | ------ | -`primaryType` | string | -`data` | [EIP712Object](../interfaces/_sign_typed_data_utils_.eip712object.md) | -`types` | [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md) | - -**Returns:** *Buffer* - -___ - -### typeHash - -▸ **typeHash**(`primaryType`: string, `types`: [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md)): *Buffer* - -*Defined in [sign-typed-data-utils.ts:183](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L183)* - -**Parameters:** - -Name | Type | ------- | ------ | -`primaryType` | string | -`types` | [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md) | - -**Returns:** *Buffer* - -___ - -### zeroValue - -▸ **zeroValue**(`primaryType`: string, `types`: [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md)): *[EIP712ObjectValue](_sign_typed_data_utils_.md#eip712objectvalue)* - -*Defined in [sign-typed-data-utils.ts:264](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L264)* - -Produce the zero value for a given type. - -**`remarks`** -All atomic types will encode as the 32-byte zero value. Dynamic types as an empty hash. -Dynamic arrays will return an empty array. Fixed length arrays will have members set to zero. -Structs will have the values of all fields set to zero recursively. - -Note that EIP-712 does not specify zero values, and so this is non-standard. - -**Parameters:** - -Name | Type | Default | ------- | ------ | ------ | -`primaryType` | string | - | -`types` | [EIP712Types](../interfaces/_sign_typed_data_utils_.eip712types.md) | {} | - -**Returns:** *[EIP712ObjectValue](_sign_typed_data_utils_.md#eip712objectvalue)* - -## Object literals - -### `Const` noBool - -### ▪ **noBool**: *object* - -*Defined in [sign-typed-data-utils.ts:104](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L104)* - -Undefined EIP712Optional type with value type boolean. - -### defined - -• **defined**: *false* = false - -*Defined in [sign-typed-data-utils.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L105)* - -### value - -• **value**: *false* = false - -*Defined in [sign-typed-data-utils.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L106)* - -___ - -### `Const` noNumber - -### ▪ **noNumber**: *object* - -*Defined in [sign-typed-data-utils.ts:110](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L110)* - -Undefined EIP712Optional type with value type number. - -### defined - -• **defined**: *false* = false - -*Defined in [sign-typed-data-utils.ts:111](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L111)* - -### value - -• **value**: *number* = 0 - -*Defined in [sign-typed-data-utils.ts:112](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L112)* - -___ - -### `Const` noString - -### ▪ **noString**: *object* - -*Defined in [sign-typed-data-utils.ts:116](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L116)* - -Undefined EIP712Optional type with value type string. - -### defined - -• **defined**: *false* = false - -*Defined in [sign-typed-data-utils.ts:117](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L117)* - -### value - -• **value**: *string* = "" - -*Defined in [sign-typed-data-utils.ts:118](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/sign-typed-data-utils.ts#L118)* diff --git a/packages/docs/sdk/docs/utils/modules/_signatureutils_.md b/packages/docs/sdk/docs/utils/modules/_signatureutils_.md deleted file mode 100644 index 0f63513308b..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_signatureutils_.md +++ /dev/null @@ -1,417 +0,0 @@ -[@celo/utils](../README.md) › ["signatureUtils"](_signatureutils_.md) - -# Module: "signatureUtils" - -## Index - -### References - -* [NativeSigner](_signatureutils_.md#nativesigner) -* [POP_SIZE](_signatureutils_.md#pop_size) -* [Signature](_signatureutils_.md#signature) -* [Signer](_signatureutils_.md#signer) -* [serializeSignature](_signatureutils_.md#serializesignature) - -### Functions - -* [LocalSigner](_signatureutils_.md#localsigner) -* [addressToPublicKey](_signatureutils_.md#addresstopublickey) -* [guessSigner](_signatureutils_.md#guesssigner) -* [hashMessage](_signatureutils_.md#hashmessage) -* [hashMessageWithPrefix](_signatureutils_.md#hashmessagewithprefix) -* [parseSignature](_signatureutils_.md#parsesignature) -* [parseSignatureWithoutPrefix](_signatureutils_.md#parsesignaturewithoutprefix) -* [recoverEIP712TypedDataSignerRsv](_signatureutils_.md#recovereip712typeddatasignerrsv) -* [recoverEIP712TypedDataSignerVrs](_signatureutils_.md#recovereip712typeddatasignervrs) -* [signMessage](_signatureutils_.md#signmessage) -* [signMessageWithoutPrefix](_signatureutils_.md#signmessagewithoutprefix) -* [signedMessageToPublicKey](_signatureutils_.md#signedmessagetopublickey) -* [verifyEIP712TypedDataSigner](_signatureutils_.md#verifyeip712typeddatasigner) -* [verifySignature](_signatureutils_.md#verifysignature) - -### Object literals - -* [SignatureUtils](_signatureutils_.md#const-signatureutils) - -## References - -### NativeSigner - -• **NativeSigner**: - -___ - -### POP_SIZE - -• **POP_SIZE**: - -___ - -### Signature - -• **Signature**: - -___ - -### Signer - -• **Signer**: - -___ - -### serializeSignature - -• **serializeSignature**: - -## Functions - -### LocalSigner - -▸ **LocalSigner**(`privateKey`: string): *Signer* - -*Defined in [signatureUtils.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L61)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | - -**Returns:** *Signer* - -___ - -### addressToPublicKey - -▸ **addressToPublicKey**(`signer`: string, `signFn`: function): *Promise‹string›* - -*Defined in [signatureUtils.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L35)* - -**Parameters:** - -▪ **signer**: *string* - -▪ **signFn**: *function* - -▸ (`message`: string, `signer`: string): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | -`signer` | string | - -**Returns:** *Promise‹string›* - -___ - -### guessSigner - -▸ **guessSigner**(`message`: string, `signature`: string): *string* - -*Defined in [signatureUtils.ts:203](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L203)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | -`signature` | string | - -**Returns:** *string* - -___ - -### hashMessage - -▸ **hashMessage**(`message`: string): *string* - -*Defined in [signatureUtils.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L31)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | - -**Returns:** *string* - -___ - -### hashMessageWithPrefix - -▸ **hashMessageWithPrefix**(`message`: string): *string* - -*Defined in [signatureUtils.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L26)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | - -**Returns:** *string* - -___ - -### parseSignature - -▸ **parseSignature**(`message`: string, `signature`: string, `signer`: string): *object* - -*Defined in [signatureUtils.ts:115](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L115)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | -`signature` | string | -`signer` | string | - -**Returns:** *object* - -* **r**: *string* - -* **s**: *string* - -* **v**: *number* - -___ - -### parseSignatureWithoutPrefix - -▸ **parseSignatureWithoutPrefix**(`messageHash`: string, `signature`: string, `signer`: string): *object* - -*Defined in [signatureUtils.ts:119](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L119)* - -**Parameters:** - -Name | Type | ------- | ------ | -`messageHash` | string | -`signature` | string | -`signer` | string | - -**Returns:** *object* - -* **r**: *string* - -* **s**: *string* - -* **v**: *number* - -___ - -### recoverEIP712TypedDataSignerRsv - -▸ **recoverEIP712TypedDataSignerRsv**(`typedData`: [EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md), `signature`: string): *string* - -*Defined in [signatureUtils.ts:160](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L160)* - -Recover signer from RSV-serialized signature over signed typed data. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`typedData` | [EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md) | EIP712 typed data | -`signature` | string | RSV signature of signed type data by signer | - -**Returns:** *string* - -string signer, or throws error if parsing fails - -___ - -### recoverEIP712TypedDataSignerVrs - -▸ **recoverEIP712TypedDataSignerVrs**(`typedData`: [EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md), `signature`: string): *string* - -*Defined in [signatureUtils.ts:173](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L173)* - -Recover signer from VRS-serialized signature over signed typed data. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`typedData` | [EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md) | EIP712 typed data | -`signature` | string | VRS signature of signed type data by signer | - -**Returns:** *string* - -string signer, or throws error if parsing fails - -___ - -### signMessage - -▸ **signMessage**(`message`: string, `privateKey`: string, `address`: string): *object* - -*Defined in [signatureUtils.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L80)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | -`privateKey` | string | -`address` | string | - -**Returns:** *object* - -* **r**: *any* = ethjsutil.bufferToHex(r) - -* **s**: *any* = ethjsutil.bufferToHex(s) - -* **v**: *any* - -___ - -### signMessageWithoutPrefix - -▸ **signMessageWithoutPrefix**(`messageHash`: string, `privateKey`: string, `address`: string): *object* - -*Defined in [signatureUtils.ts:88](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L88)* - -**Parameters:** - -Name | Type | ------- | ------ | -`messageHash` | string | -`privateKey` | string | -`address` | string | - -**Returns:** *object* - -* **r**: *any* = ethjsutil.bufferToHex(r) - -* **s**: *any* = ethjsutil.bufferToHex(s) - -* **v**: *any* - -___ - -### signedMessageToPublicKey - -▸ **signedMessageToPublicKey**(`message`: string, `v`: number, `r`: string, `s`: string): *string* - -*Defined in [signatureUtils.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L70)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | -`v` | number | -`r` | string | -`s` | string | - -**Returns:** *string* - -___ - -### verifyEIP712TypedDataSigner - -▸ **verifyEIP712TypedDataSigner**(`typedData`: [EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md), `signature`: string, `signer`: string): *boolean* - -*Defined in [signatureUtils.ts:186](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L186)* - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`typedData` | [EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md) | EIP712 typed data | -`signature` | string | VRS or SRV signature of `typedData` by `signer` | -`signer` | string | address to verify signed the `typedData` | - -**Returns:** *boolean* - -boolean, true if `signer` is a possible signer of `signature` - -___ - -### verifySignature - -▸ **verifySignature**(`message`: string, `signature`: string, `signer`: string): *boolean* - -*Defined in [signatureUtils.ts:106](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L106)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | string | -`signature` | string | -`signer` | string | - -**Returns:** *boolean* - -## Object literals - -### `Const` SignatureUtils - -### ▪ **SignatureUtils**: *object* - -*Defined in [signatureUtils.ts:250](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L250)* - -### LocalSigner - -• **LocalSigner**: *[LocalSigner](_signatureutils_.md#localsigner)* - -*Defined in [signatureUtils.ts:252](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L252)* - -### NativeSigner - -• **NativeSigner**: *NativeSigner* - -*Defined in [signatureUtils.ts:251](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L251)* - -### parseSignature - -• **parseSignature**: *[parseSignature](_signatureutils_.md#parsesignature)* - -*Defined in [signatureUtils.ts:255](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L255)* - -### parseSignatureWithoutPrefix - -• **parseSignatureWithoutPrefix**: *[parseSignatureWithoutPrefix](_signatureutils_.md#parsesignaturewithoutprefix)* - -*Defined in [signatureUtils.ts:256](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L256)* - -### recoverEIP712TypedDataSignerRsv - -• **recoverEIP712TypedDataSignerRsv**: *[recoverEIP712TypedDataSignerRsv](_signatureutils_.md#recovereip712typeddatasignerrsv)* - -*Defined in [signatureUtils.ts:258](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L258)* - -### recoverEIP712TypedDataSignerVrs - -• **recoverEIP712TypedDataSignerVrs**: *[recoverEIP712TypedDataSignerVrs](_signatureutils_.md#recovereip712typeddatasignervrs)* - -*Defined in [signatureUtils.ts:259](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L259)* - -### serializeSignature - -• **serializeSignature**: *serializeSignature* - -*Defined in [signatureUtils.ts:257](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L257)* - -### signMessage - -• **signMessage**: *[signMessage](_signatureutils_.md#signmessage)* - -*Defined in [signatureUtils.ts:253](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L253)* - -### signMessageWithoutPrefix - -• **signMessageWithoutPrefix**: *[signMessageWithoutPrefix](_signatureutils_.md#signmessagewithoutprefix)* - -*Defined in [signatureUtils.ts:254](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L254)* - -### verifyEIP712TypedDataSigner - -• **verifyEIP712TypedDataSigner**: *[verifyEIP712TypedDataSigner](_signatureutils_.md#verifyeip712typeddatasigner)* - -*Defined in [signatureUtils.ts:260](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/signatureUtils.ts#L260)* diff --git a/packages/docs/sdk/docs/utils/modules/_solidity_.md b/packages/docs/sdk/docs/utils/modules/_solidity_.md deleted file mode 100644 index 05216dc570f..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_solidity_.md +++ /dev/null @@ -1,29 +0,0 @@ -[@celo/utils](../README.md) › ["solidity"](_solidity_.md) - -# Module: "solidity" - -## Index - -### References - -* [sha3](_solidity_.md#sha3) -* [soliditySha3](_solidity_.md#soliditysha3) -* [soliditySha3Raw](_solidity_.md#soliditysha3raw) - -## References - -### sha3 - -• **sha3**: - -___ - -### soliditySha3 - -• **soliditySha3**: - -___ - -### soliditySha3Raw - -• **soliditySha3Raw**: diff --git a/packages/docs/sdk/docs/utils/modules/_string_.md b/packages/docs/sdk/docs/utils/modules/_string_.md deleted file mode 100644 index 5d4eeab4279..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_string_.md +++ /dev/null @@ -1,46 +0,0 @@ -[@celo/utils](../README.md) › ["string"](_string_.md) - -# Module: "string" - -## Index - -### References - -* [appendPath](_string_.md#appendpath) -* [normalizeAccents](_string_.md#normalizeaccents) - -### Object literals - -* [StringUtils](_string_.md#const-stringutils) - -## References - -### appendPath - -• **appendPath**: - -___ - -### normalizeAccents - -• **normalizeAccents**: - -## Object literals - -### `Const` StringUtils - -### ▪ **StringUtils**: *object* - -*Defined in [string.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/string.ts#L5)* - -### appendPath - -• **appendPath**: *appendPath* - -*Defined in [string.ts:6](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/string.ts#L6)* - -### normalizeAccents - -• **normalizeAccents**: *normalizeAccents* - -*Defined in [string.ts:7](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/string.ts#L7)* diff --git a/packages/docs/sdk/docs/utils/modules/_task_.md b/packages/docs/sdk/docs/utils/modules/_task_.md deleted file mode 100644 index dd32cd15da9..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_task_.md +++ /dev/null @@ -1,64 +0,0 @@ -[@celo/utils](../README.md) › ["task"](_task_.md) - -# Module: "task" - -## Index - -### References - -* [RepeatTaskContext](_task_.md#repeattaskcontext) -* [RetryTaskOptions](_task_.md#retrytaskoptions) -* [RunningTask](_task_.md#runningtask) -* [RunningTaskWithValue](_task_.md#runningtaskwithvalue) -* [TaskOptions](_task_.md#taskoptions) -* [conditionWatcher](_task_.md#conditionwatcher) -* [repeatTask](_task_.md#repeattask) -* [tryObtainValueWithRetries](_task_.md#tryobtainvaluewithretries) - -## References - -### RepeatTaskContext - -• **RepeatTaskContext**: - -___ - -### RetryTaskOptions - -• **RetryTaskOptions**: - -___ - -### RunningTask - -• **RunningTask**: - -___ - -### RunningTaskWithValue - -• **RunningTaskWithValue**: - -___ - -### TaskOptions - -• **TaskOptions**: - -___ - -### conditionWatcher - -• **conditionWatcher**: - -___ - -### repeatTask - -• **repeatTask**: - -___ - -### tryObtainValueWithRetries - -• **tryObtainValueWithRetries**: diff --git a/packages/docs/sdk/docs/utils/modules/_typed_data_constructors_.md b/packages/docs/sdk/docs/utils/modules/_typed_data_constructors_.md deleted file mode 100644 index bfb87c78974..00000000000 --- a/packages/docs/sdk/docs/utils/modules/_typed_data_constructors_.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/utils](../README.md) › ["typed-data-constructors"](_typed_data_constructors_.md) - -# Module: "typed-data-constructors" - -## Index - -### Functions - -* [attestationSecurityCode](_typed_data_constructors_.md#attestationsecuritycode) -* [authorizeSigner](_typed_data_constructors_.md#const-authorizesigner) - -## Functions - -### attestationSecurityCode - -▸ **attestationSecurityCode**(`code`: string): *[EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md)* - -*Defined in [typed-data-constructors.ts:3](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/typed-data-constructors.ts#L3)* - -**Parameters:** - -Name | Type | ------- | ------ | -`code` | string | - -**Returns:** *[EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md)* - -___ - -### `Const` authorizeSigner - -▸ **authorizeSigner**(`__namedParameters`: object): *[EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md)* - -*Defined in [typed-data-constructors.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/utils/src/typed-data-constructors.ts#L23)* - -**Parameters:** - -▪ **__namedParameters**: *object* - -Name | Type | ------- | ------ | -`account` | string | -`accountsContractAddress` | string | -`chainId` | number | -`role` | string | -`signer` | string | - -**Returns:** *[EIP712TypedData](../interfaces/_sign_typed_data_utils_.eip712typeddata.md)* diff --git a/packages/docs/sdk/docs/wallet-base/README.md b/packages/docs/sdk/docs/wallet-base/README.md deleted file mode 100644 index c0eef901f2e..00000000000 --- a/packages/docs/sdk/docs/wallet-base/README.md +++ /dev/null @@ -1,10 +0,0 @@ -[@celo/wallet-base](README.md) - -# @celo/wallet-base - -## Index - -### Modules - -* ["signing-utils"](modules/_signing_utils_.md) -* ["wallet-base"](modules/_wallet_base_.md) diff --git a/packages/docs/sdk/docs/wallet-base/classes/_wallet_base_.walletbase.md b/packages/docs/sdk/docs/wallet-base/classes/_wallet_base_.walletbase.md deleted file mode 100644 index a2d2527b188..00000000000 --- a/packages/docs/sdk/docs/wallet-base/classes/_wallet_base_.walletbase.md +++ /dev/null @@ -1,172 +0,0 @@ -[@celo/wallet-base](../README.md) › ["wallet-base"](../modules/_wallet_base_.md) › [WalletBase](_wallet_base_.walletbase.md) - -# Class: WalletBase <**TSigner**> - -## Type parameters - -▪ **TSigner**: *Signer* - -## Hierarchy - -* **WalletBase** - -## Implements - -* ReadOnlyWallet - -## Index - -### Methods - -* [computeSharedSecret](_wallet_base_.walletbase.md#computesharedsecret) -* [decrypt](_wallet_base_.walletbase.md#decrypt) -* [getAccounts](_wallet_base_.walletbase.md#getaccounts) -* [hasAccount](_wallet_base_.walletbase.md#hasaccount) -* [removeAccount](_wallet_base_.walletbase.md#removeaccount) -* [signPersonalMessage](_wallet_base_.walletbase.md#signpersonalmessage) -* [signTransaction](_wallet_base_.walletbase.md#signtransaction) -* [signTypedData](_wallet_base_.walletbase.md#signtypeddata) - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`address`: Address, `publicKey`: string): *Promise‹Buffer›* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:140](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L140)* - -Computes the shared secret (an ECDH key exchange object) between two accounts - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`publicKey` | string | - -**Returns:** *Promise‹Buffer›* - -___ - -### decrypt - -▸ **decrypt**(`address`: string, `ciphertext`: Buffer): *Promise‹Buffer‹››* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:132](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L132)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### getAccounts - -▸ **getAccounts**(): *Address[]* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:27](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L27)* - -Gets a list of accounts that have been registered - -**Returns:** *Address[]* - -___ - -### hasAccount - -▸ **hasAccount**(`address?`: Address): *boolean* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L43)* - -Returns true if account has been registered - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address?` | Address | Account to check | - -**Returns:** *boolean* - -___ - -### removeAccount - -▸ **removeAccount**(`_address`: string): *void* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:35](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L35)* - -Removes the account with the given address. Needs to be implemented by subclass, otherwise throws error - -**Parameters:** - -Name | Type | ------- | ------ | -`_address` | string | - -**Returns:** *void* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`address`: Address, `data`: string): *Promise‹string›* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:96](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L96)* - -Sign a personal Ethereum signed message. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`data` | string | Hex string message to sign | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) - -___ - -### signTransaction - -▸ **signTransaction**(`txParams`: CeloTx): *Promise‹EncodedTransaction›* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L75)* - -Gets the signer based on the 'from' field in the tx body - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`txParams` | CeloTx | Transaction to sign | - -**Returns:** *Promise‹EncodedTransaction›* - -___ - -### signTypedData - -▸ **signTypedData**(`address`: Address, `typedData`: EIP712TypedData): *Promise‹string›* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:113](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L113)* - -Sign an EIP712 Typed Data message. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`typedData` | EIP712TypedData | the typed data object | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) diff --git a/packages/docs/sdk/docs/wallet-base/interfaces/_wallet_base_.unlockablewallet.md b/packages/docs/sdk/docs/wallet-base/interfaces/_wallet_base_.unlockablewallet.md deleted file mode 100644 index 3cf7edc336b..00000000000 --- a/packages/docs/sdk/docs/wallet-base/interfaces/_wallet_base_.unlockablewallet.md +++ /dev/null @@ -1,231 +0,0 @@ -[@celo/wallet-base](../README.md) › ["wallet-base"](../modules/_wallet_base_.md) › [UnlockableWallet](_wallet_base_.unlockablewallet.md) - -# Interface: UnlockableWallet - -## Hierarchy - - ↳ [Wallet](_wallet_base_.wallet.md) - - ↳ **UnlockableWallet** - -## Index - -### Properties - -* [addAccount](_wallet_base_.unlockablewallet.md#addaccount) -* [computeSharedSecret](_wallet_base_.unlockablewallet.md#computesharedsecret) -* [decrypt](_wallet_base_.unlockablewallet.md#decrypt) -* [getAccounts](_wallet_base_.unlockablewallet.md#getaccounts) -* [hasAccount](_wallet_base_.unlockablewallet.md#hasaccount) -* [isAccountUnlocked](_wallet_base_.unlockablewallet.md#isaccountunlocked) -* [removeAccount](_wallet_base_.unlockablewallet.md#removeaccount) -* [signPersonalMessage](_wallet_base_.unlockablewallet.md#signpersonalmessage) -* [signTransaction](_wallet_base_.unlockablewallet.md#signtransaction) -* [signTypedData](_wallet_base_.unlockablewallet.md#signtypeddata) -* [unlockAccount](_wallet_base_.unlockablewallet.md#unlockaccount) - -## Properties - -### addAccount - -• **addAccount**: *addInMemoryAccount | addRemoteAccount* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[addAccount](_wallet_base_.wallet.md#addaccount)* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L11)* - -___ - -### computeSharedSecret - -• **computeSharedSecret**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[computeSharedSecret](_wallet_base_.wallet.md#computesharedsecret)* - -Defined in connect/lib/wallet.d.ts:12 - -#### Type declaration: - -▸ (`address`: Address, `publicKey`: string): *Promise‹Buffer›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`publicKey` | string | - -___ - -### decrypt - -• **decrypt**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[decrypt](_wallet_base_.wallet.md#decrypt)* - -Defined in connect/lib/wallet.d.ts:11 - -#### Type declaration: - -▸ (`address`: Address, `ciphertext`: Buffer): *Promise‹Buffer›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`ciphertext` | Buffer | - -___ - -### getAccounts - -• **getAccounts**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[getAccounts](_wallet_base_.wallet.md#getaccounts)* - -Defined in connect/lib/wallet.d.ts:5 - -#### Type declaration: - -▸ (): *Address[]* - -___ - -### hasAccount - -• **hasAccount**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[hasAccount](_wallet_base_.wallet.md#hasaccount)* - -Defined in connect/lib/wallet.d.ts:7 - -#### Type declaration: - -▸ (`address?`: Address): *boolean* - -**Parameters:** - -Name | Type | ------- | ------ | -`address?` | Address | - -___ - -### isAccountUnlocked - -• **isAccountUnlocked**: *function* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L16)* - -#### Type declaration: - -▸ (`address`: string): *boolean* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -___ - -### removeAccount - -• **removeAccount**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[removeAccount](_wallet_base_.wallet.md#removeaccount)* - -Defined in connect/lib/wallet.d.ts:6 - -#### Type declaration: - -▸ (`address`: Address): *void* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | - -___ - -### signPersonalMessage - -• **signPersonalMessage**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[signPersonalMessage](_wallet_base_.wallet.md#signpersonalmessage)* - -Defined in connect/lib/wallet.d.ts:10 - -#### Type declaration: - -▸ (`address`: Address, `data`: string): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`data` | string | - -___ - -### signTransaction - -• **signTransaction**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[signTransaction](_wallet_base_.wallet.md#signtransaction)* - -Defined in connect/lib/wallet.d.ts:8 - -#### Type declaration: - -▸ (`txParams`: CeloTx): *Promise‹EncodedTransaction›* - -**Parameters:** - -Name | Type | ------- | ------ | -`txParams` | CeloTx | - -___ - -### signTypedData - -• **signTypedData**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[signTypedData](_wallet_base_.wallet.md#signtypeddata)* - -Defined in connect/lib/wallet.d.ts:9 - -#### Type declaration: - -▸ (`address`: Address, `typedData`: EIP712TypedData): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`typedData` | EIP712TypedData | - -___ - -### unlockAccount - -• **unlockAccount**: *function* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L15)* - -#### Type declaration: - -▸ (`address`: string, `passphrase`: string, `duration`: number): *Promise‹boolean›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`passphrase` | string | -`duration` | number | diff --git a/packages/docs/sdk/docs/wallet-base/interfaces/_wallet_base_.wallet.md b/packages/docs/sdk/docs/wallet-base/interfaces/_wallet_base_.wallet.md deleted file mode 100644 index 99cd153d9aa..00000000000 --- a/packages/docs/sdk/docs/wallet-base/interfaces/_wallet_base_.wallet.md +++ /dev/null @@ -1,191 +0,0 @@ -[@celo/wallet-base](../README.md) › ["wallet-base"](../modules/_wallet_base_.md) › [Wallet](_wallet_base_.wallet.md) - -# Interface: Wallet - -## Hierarchy - -* ReadOnlyWallet - - ↳ **Wallet** - - ↳ [UnlockableWallet](_wallet_base_.unlockablewallet.md) - -## Index - -### Properties - -* [addAccount](_wallet_base_.wallet.md#addaccount) -* [computeSharedSecret](_wallet_base_.wallet.md#computesharedsecret) -* [decrypt](_wallet_base_.wallet.md#decrypt) -* [getAccounts](_wallet_base_.wallet.md#getaccounts) -* [hasAccount](_wallet_base_.wallet.md#hasaccount) -* [removeAccount](_wallet_base_.wallet.md#removeaccount) -* [signPersonalMessage](_wallet_base_.wallet.md#signpersonalmessage) -* [signTransaction](_wallet_base_.wallet.md#signtransaction) -* [signTypedData](_wallet_base_.wallet.md#signtypeddata) - -## Properties - -### addAccount - -• **addAccount**: *addInMemoryAccount | addRemoteAccount* - -*Defined in [wallets/wallet-base/src/wallet-base.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/wallet-base.ts#L11)* - -___ - -### computeSharedSecret - -• **computeSharedSecret**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[computeSharedSecret](_wallet_base_.wallet.md#computesharedsecret)* - -Defined in connect/lib/wallet.d.ts:12 - -#### Type declaration: - -▸ (`address`: Address, `publicKey`: string): *Promise‹Buffer›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`publicKey` | string | - -___ - -### decrypt - -• **decrypt**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[decrypt](_wallet_base_.wallet.md#decrypt)* - -Defined in connect/lib/wallet.d.ts:11 - -#### Type declaration: - -▸ (`address`: Address, `ciphertext`: Buffer): *Promise‹Buffer›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`ciphertext` | Buffer | - -___ - -### getAccounts - -• **getAccounts**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[getAccounts](_wallet_base_.wallet.md#getaccounts)* - -Defined in connect/lib/wallet.d.ts:5 - -#### Type declaration: - -▸ (): *Address[]* - -___ - -### hasAccount - -• **hasAccount**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[hasAccount](_wallet_base_.wallet.md#hasaccount)* - -Defined in connect/lib/wallet.d.ts:7 - -#### Type declaration: - -▸ (`address?`: Address): *boolean* - -**Parameters:** - -Name | Type | ------- | ------ | -`address?` | Address | - -___ - -### removeAccount - -• **removeAccount**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[removeAccount](_wallet_base_.wallet.md#removeaccount)* - -Defined in connect/lib/wallet.d.ts:6 - -#### Type declaration: - -▸ (`address`: Address): *void* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | - -___ - -### signPersonalMessage - -• **signPersonalMessage**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[signPersonalMessage](_wallet_base_.wallet.md#signpersonalmessage)* - -Defined in connect/lib/wallet.d.ts:10 - -#### Type declaration: - -▸ (`address`: Address, `data`: string): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`data` | string | - -___ - -### signTransaction - -• **signTransaction**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[signTransaction](_wallet_base_.wallet.md#signtransaction)* - -Defined in connect/lib/wallet.d.ts:8 - -#### Type declaration: - -▸ (`txParams`: CeloTx): *Promise‹EncodedTransaction›* - -**Parameters:** - -Name | Type | ------- | ------ | -`txParams` | CeloTx | - -___ - -### signTypedData - -• **signTypedData**: *function* - -*Inherited from [Wallet](_wallet_base_.wallet.md).[signTypedData](_wallet_base_.wallet.md#signtypeddata)* - -Defined in connect/lib/wallet.d.ts:9 - -#### Type declaration: - -▸ (`address`: Address, `typedData`: EIP712TypedData): *Promise‹string›* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`typedData` | EIP712TypedData | diff --git a/packages/docs/sdk/docs/wallet-base/modules/_signing_utils_.md b/packages/docs/sdk/docs/wallet-base/modules/_signing_utils_.md deleted file mode 100644 index 85ce30eb71e..00000000000 --- a/packages/docs/sdk/docs/wallet-base/modules/_signing_utils_.md +++ /dev/null @@ -1,231 +0,0 @@ -[@celo/wallet-base](../README.md) › ["signing-utils"](_signing_utils_.md) - -# Module: "signing-utils" - -## Index - -### Variables - -* [publicKeyPrefix](_signing_utils_.md#const-publickeyprefix) -* [sixtyFour](_signing_utils_.md#const-sixtyfour) -* [thirtyTwo](_signing_utils_.md#const-thirtytwo) - -### Functions - -* [chainIdTransformationForSigning](_signing_utils_.md#chainidtransformationforsigning) -* [decodeSig](_signing_utils_.md#decodesig) -* [encodeTransaction](_signing_utils_.md#encodetransaction) -* [extractSignature](_signing_utils_.md#extractsignature) -* [getHashFromEncoded](_signing_utils_.md#gethashfromencoded) -* [recoverMessageSigner](_signing_utils_.md#recovermessagesigner) -* [recoverTransaction](_signing_utils_.md#recovertransaction) -* [rlpEncodedTx](_signing_utils_.md#rlpencodedtx) -* [verifyEIP712TypedDataSigner](_signing_utils_.md#verifyeip712typeddatasigner) -* [verifySignatureWithoutPrefix](_signing_utils_.md#verifysignaturewithoutprefix) - -## Variables - -### `Const` publicKeyPrefix - -• **publicKeyPrefix**: *number* = 4 - -*Defined in [wallets/wallet-base/src/signing-utils.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L18)* - -___ - -### `Const` sixtyFour - -• **sixtyFour**: *number* = 64 - -*Defined in [wallets/wallet-base/src/signing-utils.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L19)* - -___ - -### `Const` thirtyTwo - -• **thirtyTwo**: *number* = 32 - -*Defined in [wallets/wallet-base/src/signing-utils.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L20)* - -## Functions - -### chainIdTransformationForSigning - -▸ **chainIdTransformationForSigning**(`chainId`: number): *number* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:28](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L28)* - -**Parameters:** - -Name | Type | ------- | ------ | -`chainId` | number | - -**Returns:** *number* - -___ - -### decodeSig - -▸ **decodeSig**(`sig`: any): *object* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:238](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L238)* - -**Parameters:** - -Name | Type | ------- | ------ | -`sig` | any | - -**Returns:** *object* - -* **r**: *Buffer‹›* = ethUtil.toBuffer(r) as Buffer - -* **s**: *Buffer‹›* = ethUtil.toBuffer(s) as Buffer - -* **v**: *number* = parseInt(v, 16) - -___ - -### encodeTransaction - -▸ **encodeTransaction**(`rlpEncoded`: RLPEncodedTx, `signature`: object): *Promise‹EncodedTransaction›* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:121](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L121)* - -**Parameters:** - -▪ **rlpEncoded**: *RLPEncodedTx* - -▪ **signature**: *object* - -Name | Type | ------- | ------ | -`r` | Buffer | -`s` | Buffer | -`v` | number | - -**Returns:** *Promise‹EncodedTransaction›* - -___ - -### extractSignature - -▸ **extractSignature**(`rawTx`: string): *object* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:155](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L155)* - -**Parameters:** - -Name | Type | ------- | ------ | -`rawTx` | string | - -**Returns:** *object* - -* **r**: *Buffer* - -* **s**: *Buffer* - -* **v**: *number* - -___ - -### getHashFromEncoded - -▸ **getHashFromEncoded**(`rlpEncode`: string): *string* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:32](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L32)* - -**Parameters:** - -Name | Type | ------- | ------ | -`rlpEncode` | string | - -**Returns:** *string* - -___ - -### recoverMessageSigner - -▸ **recoverMessageSigner**(`signingDataHex`: string, `signedData`: string): *string* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:205](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L205)* - -**Parameters:** - -Name | Type | ------- | ------ | -`signingDataHex` | string | -`signedData` | string | - -**Returns:** *string* - -___ - -### recoverTransaction - -▸ **recoverTransaction**(`rawTx`: string): *[CeloTx, string]* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:173](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L173)* - -**Parameters:** - -Name | Type | ------- | ------ | -`rawTx` | string | - -**Returns:** *[CeloTx, string]* - -___ - -### rlpEncodedTx - -▸ **rlpEncodedTx**(`tx`: CeloTx): *RLPEncodedTx* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L70)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | CeloTx | - -**Returns:** *RLPEncodedTx* - -___ - -### verifyEIP712TypedDataSigner - -▸ **verifyEIP712TypedDataSigner**(`typedData`: EIP712TypedData, `signedData`: string, `expectedAddress`: string): *boolean* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:215](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L215)* - -**Parameters:** - -Name | Type | ------- | ------ | -`typedData` | EIP712TypedData | -`signedData` | string | -`expectedAddress` | string | - -**Returns:** *boolean* - -___ - -### verifySignatureWithoutPrefix - -▸ **verifySignatureWithoutPrefix**(`messageHash`: string, `signature`: string, `signer`: string): *boolean* - -*Defined in [wallets/wallet-base/src/signing-utils.ts:225](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-base/src/signing-utils.ts#L225)* - -**Parameters:** - -Name | Type | ------- | ------ | -`messageHash` | string | -`signature` | string | -`signer` | string | - -**Returns:** *boolean* diff --git a/packages/docs/sdk/docs/wallet-base/modules/_wallet_base_.md b/packages/docs/sdk/docs/wallet-base/modules/_wallet_base_.md deleted file mode 100644 index 502a6010b0a..00000000000 --- a/packages/docs/sdk/docs/wallet-base/modules/_wallet_base_.md +++ /dev/null @@ -1,14 +0,0 @@ -[@celo/wallet-base](../README.md) › ["wallet-base"](_wallet_base_.md) - -# Module: "wallet-base" - -## Index - -### Classes - -* [WalletBase](../classes/_wallet_base_.walletbase.md) - -### Interfaces - -* [UnlockableWallet](../interfaces/_wallet_base_.unlockablewallet.md) -* [Wallet](../interfaces/_wallet_base_.wallet.md) diff --git a/packages/docs/sdk/docs/wallet-hsm-aws/README.md b/packages/docs/sdk/docs/wallet-hsm-aws/README.md deleted file mode 100644 index 6dbad8239c4..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-aws/README.md +++ /dev/null @@ -1,10 +0,0 @@ -[@celo/wallet-hsm-aws](README.md) - -# @celo/wallet-hsm-aws - -## Index - -### Modules - -* ["aws-hsm-signer"](modules/_aws_hsm_signer_.md) -* ["aws-hsm-wallet"](modules/_aws_hsm_wallet_.md) diff --git a/packages/docs/sdk/docs/wallet-hsm-aws/classes/_aws_hsm_signer_.awshsmsigner.md b/packages/docs/sdk/docs/wallet-hsm-aws/classes/_aws_hsm_signer_.awshsmsigner.md deleted file mode 100644 index ef50793f50f..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-aws/classes/_aws_hsm_signer_.awshsmsigner.md +++ /dev/null @@ -1,135 +0,0 @@ -[@celo/wallet-hsm-aws](../README.md) › ["aws-hsm-signer"](../modules/_aws_hsm_signer_.md) › [AwsHsmSigner](_aws_hsm_signer_.awshsmsigner.md) - -# Class: AwsHsmSigner - -## Hierarchy - -* **AwsHsmSigner** - -## Implements - -* Signer - -## Index - -### Constructors - -* [constructor](_aws_hsm_signer_.awshsmsigner.md#constructor) - -### Methods - -* [computeSharedSecret](_aws_hsm_signer_.awshsmsigner.md#computesharedsecret) -* [decrypt](_aws_hsm_signer_.awshsmsigner.md#decrypt) -* [getNativeKey](_aws_hsm_signer_.awshsmsigner.md#getnativekey) -* [signPersonalMessage](_aws_hsm_signer_.awshsmsigner.md#signpersonalmessage) -* [signTransaction](_aws_hsm_signer_.awshsmsigner.md#signtransaction) -* [signTypedData](_aws_hsm_signer_.awshsmsigner.md#signtypeddata) - -## Constructors - -### constructor - -\+ **new AwsHsmSigner**(`kms`: KMS, `keyId`: string, `publicKey`: BigNumber): *[AwsHsmSigner](_aws_hsm_signer_.awshsmsigner.md)* - -*Defined in [wallet-hsm-aws/src/aws-hsm-signer.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts#L24)* - -**Parameters:** - -Name | Type | ------- | ------ | -`kms` | KMS | -`keyId` | string | -`publicKey` | BigNumber | - -**Returns:** *[AwsHsmSigner](_aws_hsm_signer_.awshsmsigner.md)* - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`_publicKey`: string): *Promise‹Buffer‹››* - -*Defined in [wallet-hsm-aws/src/aws-hsm-signer.ts:115](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts#L115)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_publicKey` | string | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### decrypt - -▸ **decrypt**(`_ciphertext`: Buffer): *Promise‹Buffer‹››* - -*Defined in [wallet-hsm-aws/src/aws-hsm-signer.ts:109](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts#L109)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### getNativeKey - -▸ **getNativeKey**(): *string* - -*Defined in [wallet-hsm-aws/src/aws-hsm-signer.ts:105](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts#L105)* - -**Returns:** *string* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`data`: string): *Promise‹Signature›* - -*Defined in [wallet-hsm-aws/src/aws-hsm-signer.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts#L82)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | string | - -**Returns:** *Promise‹Signature›* - -___ - -### signTransaction - -▸ **signTransaction**(`addToV`: number, `encodedTx`: RLPEncodedTx): *Promise‹Signature›* - -*Defined in [wallet-hsm-aws/src/aws-hsm-signer.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts#L70)* - -**Parameters:** - -Name | Type | ------- | ------ | -`addToV` | number | -`encodedTx` | RLPEncodedTx | - -**Returns:** *Promise‹Signature›* - -___ - -### signTypedData - -▸ **signTypedData**(`typedData`: EIP712TypedData): *Promise‹Signature›* - -*Defined in [wallet-hsm-aws/src/aws-hsm-signer.ts:94](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts#L94)* - -**Parameters:** - -Name | Type | ------- | ------ | -`typedData` | EIP712TypedData | - -**Returns:** *Promise‹Signature›* diff --git a/packages/docs/sdk/docs/wallet-hsm-aws/classes/_aws_hsm_wallet_.awshsmwallet.md b/packages/docs/sdk/docs/wallet-hsm-aws/classes/_aws_hsm_wallet_.awshsmwallet.md deleted file mode 100644 index 5a8a2a59d7b..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-aws/classes/_aws_hsm_wallet_.awshsmwallet.md +++ /dev/null @@ -1,273 +0,0 @@ -[@celo/wallet-hsm-aws](../README.md) › ["aws-hsm-wallet"](../modules/_aws_hsm_wallet_.md) › [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md) - -# Class: AwsHsmWallet - -A Cloud HSM wallet built on AWS KMS -https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/KMS.html -When using the default credentials, it's expected to set the -aws_access_key_id and aws_secret_access_key in ~/.aws/credentials - -## Hierarchy - -* RemoteWallet‹[AwsHsmSigner](_aws_hsm_signer_.awshsmsigner.md)› - - ↳ **AwsHsmWallet** - -## Implements - -* ReadOnlyWallet -* ReadOnlyWallet -* ReadOnlyWallet - -## Index - -### Constructors - -* [constructor](_aws_hsm_wallet_.awshsmwallet.md#constructor) - -### Properties - -* [isSetupFinished](_aws_hsm_wallet_.awshsmwallet.md#issetupfinished) - -### Methods - -* [computeSharedSecret](_aws_hsm_wallet_.awshsmwallet.md#computesharedsecret) -* [decrypt](_aws_hsm_wallet_.awshsmwallet.md#decrypt) -* [getAccounts](_aws_hsm_wallet_.awshsmwallet.md#getaccounts) -* [getAddressFromKeyId](_aws_hsm_wallet_.awshsmwallet.md#getaddressfromkeyid) -* [hasAccount](_aws_hsm_wallet_.awshsmwallet.md#hasaccount) -* [init](_aws_hsm_wallet_.awshsmwallet.md#init) -* [removeAccount](_aws_hsm_wallet_.awshsmwallet.md#removeaccount) -* [signPersonalMessage](_aws_hsm_wallet_.awshsmwallet.md#signpersonalmessage) -* [signTransaction](_aws_hsm_wallet_.awshsmwallet.md#signtransaction) -* [signTypedData](_aws_hsm_wallet_.awshsmwallet.md#signtypeddata) - -## Constructors - -### constructor - -\+ **new AwsHsmWallet**(`awsCredentials?`: KMS.ClientConfiguration): *[AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md)* - -*Defined in [wallet-hsm-aws/src/aws-hsm-wallet.ts:31](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.ts#L31)* - -**Parameters:** - -Name | Type | ------- | ------ | -`awsCredentials?` | KMS.ClientConfiguration | - -**Returns:** *[AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md)* - -## Properties - -### isSetupFinished - -• **isSetupFinished**: *function* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[isSetupFinished](_aws_hsm_wallet_.awshsmwallet.md#issetupfinished)* - -Defined in wallet-remote/lib/remote-wallet.d.ts:51 - -#### Type declaration: - -▸ (): *boolean* - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`address`: Address, `publicKey`: string): *Promise‹Buffer›* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[computeSharedSecret](_aws_hsm_wallet_.awshsmwallet.md#computesharedsecret)* - -Defined in wallet-base/lib/wallet-base.d.ts:64 - -Computes the shared secret (an ECDH key exchange object) between two accounts - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`publicKey` | string | - -**Returns:** *Promise‹Buffer›* - -___ - -### decrypt - -▸ **decrypt**(`address`: string, `ciphertext`: Buffer): *Promise‹Buffer›* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[decrypt](_aws_hsm_wallet_.awshsmwallet.md#decrypt)* - -Defined in wallet-base/lib/wallet-base.d.ts:60 - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer›* - -___ - -### getAccounts - -▸ **getAccounts**(): *Address[]* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[getAccounts](_aws_hsm_wallet_.awshsmwallet.md#getaccounts)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:27 - -Get a list of accounts in the remote wallet - -**Returns:** *Address[]* - -___ - -### getAddressFromKeyId - -▸ **getAddressFromKeyId**(`keyId`: string): *Promise‹Address›* - -*Defined in [wallet-hsm-aws/src/aws-hsm-wallet.ts:92](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.ts#L92)* - -Returns the EVM address for the given key -Useful for initially getting the 'from' field given a keyName - -**Parameters:** - -Name | Type | ------- | ------ | -`keyId` | string | - -**Returns:** *Promise‹Address›* - -___ - -### hasAccount - -▸ **hasAccount**(`address?`: Address): *boolean* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[hasAccount](_aws_hsm_wallet_.awshsmwallet.md#hasaccount)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:32 - -Returns true if account is in the remote wallet - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address?` | Address | Account to check | - -**Returns:** *boolean* - -___ - -### init - -▸ **init**(): *Promise‹void›* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[init](_aws_hsm_wallet_.awshsmwallet.md#init)* - -Defined in wallet-remote/lib/remote-wallet.d.ts:15 - -Discovers wallet accounts and caches results in memory -Idempotent to ensure multiple calls are benign - -**Returns:** *Promise‹void›* - -___ - -### removeAccount - -▸ **removeAccount**(`_address`: string): *void* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[removeAccount](_aws_hsm_wallet_.awshsmwallet.md#removeaccount)* - -Defined in wallet-base/lib/wallet-base.d.ts:23 - -Removes the account with the given address. Needs to be implemented by subclass, otherwise throws error - -**Parameters:** - -Name | Type | ------- | ------ | -`_address` | string | - -**Returns:** *void* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`address`: Address, `data`: string): *Promise‹string›* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[signPersonalMessage](_aws_hsm_wallet_.awshsmwallet.md#signpersonalmessage)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:43 - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`data` | string | Hex string message to sign | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) - -___ - -### signTransaction - -▸ **signTransaction**(`txParams`: CeloTx): *Promise‹EncodedTransaction›* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[signTransaction](_aws_hsm_wallet_.awshsmwallet.md#signtransaction)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:37 - -Signs the EVM transaction using the signer pulled from the from field - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`txParams` | CeloTx | EVM transaction | - -**Returns:** *Promise‹EncodedTransaction›* - -___ - -### signTypedData - -▸ **signTypedData**(`address`: Address, `typedData`: EIP712TypedData): *Promise‹string›* - -*Inherited from [AwsHsmWallet](_aws_hsm_wallet_.awshsmwallet.md).[signTypedData](_aws_hsm_wallet_.awshsmwallet.md#signtypeddata)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:49 - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`typedData` | EIP712TypedData | the typed data object | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) diff --git a/packages/docs/sdk/docs/wallet-hsm-aws/modules/_aws_hsm_signer_.md b/packages/docs/sdk/docs/wallet-hsm-aws/modules/_aws_hsm_signer_.md deleted file mode 100644 index 3b81e0df7fb..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-aws/modules/_aws_hsm_signer_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-hsm-aws](../README.md) › ["aws-hsm-signer"](_aws_hsm_signer_.md) - -# Module: "aws-hsm-signer" - -## Index - -### Classes - -* [AwsHsmSigner](../classes/_aws_hsm_signer_.awshsmsigner.md) diff --git a/packages/docs/sdk/docs/wallet-hsm-aws/modules/_aws_hsm_wallet_.md b/packages/docs/sdk/docs/wallet-hsm-aws/modules/_aws_hsm_wallet_.md deleted file mode 100644 index ffc68cd23dc..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-aws/modules/_aws_hsm_wallet_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-hsm-aws](../README.md) › ["aws-hsm-wallet"](_aws_hsm_wallet_.md) - -# Module: "aws-hsm-wallet" - -## Index - -### Classes - -* [AwsHsmWallet](../classes/_aws_hsm_wallet_.awshsmwallet.md) diff --git a/packages/docs/sdk/docs/wallet-hsm-azure/README.md b/packages/docs/sdk/docs/wallet-hsm-azure/README.md deleted file mode 100644 index 1e361151cf0..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-azure/README.md +++ /dev/null @@ -1,11 +0,0 @@ -[@celo/wallet-hsm-azure](README.md) - -# @celo/wallet-hsm-azure - -## Index - -### Modules - -* ["azure-hsm-signer"](modules/_azure_hsm_signer_.md) -* ["azure-hsm-wallet"](modules/_azure_hsm_wallet_.md) -* ["azure-key-vault-client"](modules/_azure_key_vault_client_.md) diff --git a/packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_hsm_signer_.azurehsmsigner.md b/packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_hsm_signer_.azurehsmsigner.md deleted file mode 100644 index 886c9f4bb27..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_hsm_signer_.azurehsmsigner.md +++ /dev/null @@ -1,136 +0,0 @@ -[@celo/wallet-hsm-azure](../README.md) › ["azure-hsm-signer"](../modules/_azure_hsm_signer_.md) › [AzureHSMSigner](_azure_hsm_signer_.azurehsmsigner.md) - -# Class: AzureHSMSigner - -Signs the EVM transaction using an HSM key in Azure Key Vault - -## Hierarchy - -* **AzureHSMSigner** - -## Implements - -* Signer - -## Index - -### Constructors - -* [constructor](_azure_hsm_signer_.azurehsmsigner.md#constructor) - -### Methods - -* [computeSharedSecret](_azure_hsm_signer_.azurehsmsigner.md#computesharedsecret) -* [decrypt](_azure_hsm_signer_.azurehsmsigner.md#decrypt) -* [getNativeKey](_azure_hsm_signer_.azurehsmsigner.md#getnativekey) -* [signPersonalMessage](_azure_hsm_signer_.azurehsmsigner.md#signpersonalmessage) -* [signTransaction](_azure_hsm_signer_.azurehsmsigner.md#signtransaction) -* [signTypedData](_azure_hsm_signer_.azurehsmsigner.md#signtypeddata) - -## Constructors - -### constructor - -\+ **new AzureHSMSigner**(`keyVaultClient`: [AzureKeyVaultClient](_azure_key_vault_client_.azurekeyvaultclient.md), `keyName`: string): *[AzureHSMSigner](_azure_hsm_signer_.azurehsmsigner.md)* - -*Defined in [wallet-hsm-azure/src/azure-hsm-signer.ts:13](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts#L13)* - -**Parameters:** - -Name | Type | ------- | ------ | -`keyVaultClient` | [AzureKeyVaultClient](_azure_key_vault_client_.azurekeyvaultclient.md) | -`keyName` | string | - -**Returns:** *[AzureHSMSigner](_azure_hsm_signer_.azurehsmsigner.md)* - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`_publicKey`: string): *Promise‹Buffer‹››* - -*Defined in [wallet-hsm-azure/src/azure-hsm-signer.ts:81](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts#L81)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_publicKey` | string | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### decrypt - -▸ **decrypt**(`_ciphertext`: Buffer): *Promise‹Buffer‹››* - -*Defined in [wallet-hsm-azure/src/azure-hsm-signer.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts#L75)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### getNativeKey - -▸ **getNativeKey**(): *string* - -*Defined in [wallet-hsm-azure/src/azure-hsm-signer.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts#L71)* - -**Returns:** *string* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`data`: string): *Promise‹object›* - -*Defined in [wallet-hsm-azure/src/azure-hsm-signer.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts#L39)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | string | - -**Returns:** *Promise‹object›* - -___ - -### signTransaction - -▸ **signTransaction**(`addToV`: number, `encodedTx`: RLPEncodedTx): *Promise‹object›* - -*Defined in [wallet-hsm-azure/src/azure-hsm-signer.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts#L23)* - -**Parameters:** - -Name | Type | ------- | ------ | -`addToV` | number | -`encodedTx` | RLPEncodedTx | - -**Returns:** *Promise‹object›* - -___ - -### signTypedData - -▸ **signTypedData**(`typedData`: EIP712TypedData): *Promise‹object›* - -*Defined in [wallet-hsm-azure/src/azure-hsm-signer.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts#L57)* - -**Parameters:** - -Name | Type | ------- | ------ | -`typedData` | EIP712TypedData | - -**Returns:** *Promise‹object›* diff --git a/packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_hsm_wallet_.azurehsmwallet.md b/packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_hsm_wallet_.azurehsmwallet.md deleted file mode 100644 index 965f291fcde..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_hsm_wallet_.azurehsmwallet.md +++ /dev/null @@ -1,268 +0,0 @@ -[@celo/wallet-hsm-azure](../README.md) › ["azure-hsm-wallet"](../modules/_azure_hsm_wallet_.md) › [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md) - -# Class: AzureHSMWallet - -## Hierarchy - -* RemoteWallet‹[AzureHSMSigner](_azure_hsm_signer_.azurehsmsigner.md)› - - ↳ **AzureHSMWallet** - -## Implements - -* ReadOnlyWallet -* ReadOnlyWallet -* ReadOnlyWallet - -## Index - -### Constructors - -* [constructor](_azure_hsm_wallet_.azurehsmwallet.md#constructor) - -### Properties - -* [isSetupFinished](_azure_hsm_wallet_.azurehsmwallet.md#issetupfinished) - -### Methods - -* [computeSharedSecret](_azure_hsm_wallet_.azurehsmwallet.md#computesharedsecret) -* [decrypt](_azure_hsm_wallet_.azurehsmwallet.md#decrypt) -* [getAccounts](_azure_hsm_wallet_.azurehsmwallet.md#getaccounts) -* [getAddressFromKeyName](_azure_hsm_wallet_.azurehsmwallet.md#getaddressfromkeyname) -* [hasAccount](_azure_hsm_wallet_.azurehsmwallet.md#hasaccount) -* [init](_azure_hsm_wallet_.azurehsmwallet.md#init) -* [removeAccount](_azure_hsm_wallet_.azurehsmwallet.md#removeaccount) -* [signPersonalMessage](_azure_hsm_wallet_.azurehsmwallet.md#signpersonalmessage) -* [signTransaction](_azure_hsm_wallet_.azurehsmwallet.md#signtransaction) -* [signTypedData](_azure_hsm_wallet_.azurehsmwallet.md#signtypeddata) - -## Constructors - -### constructor - -\+ **new AzureHSMWallet**(`vaultName`: string): *[AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md)* - -*Defined in [wallet-hsm-azure/src/azure-hsm-wallet.ts:12](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.ts#L12)* - -**Parameters:** - -Name | Type | ------- | ------ | -`vaultName` | string | - -**Returns:** *[AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md)* - -## Properties - -### isSetupFinished - -• **isSetupFinished**: *function* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[isSetupFinished](_azure_hsm_wallet_.azurehsmwallet.md#issetupfinished)* - -Defined in wallet-remote/lib/remote-wallet.d.ts:51 - -#### Type declaration: - -▸ (): *boolean* - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`address`: Address, `publicKey`: string): *Promise‹Buffer›* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[computeSharedSecret](_azure_hsm_wallet_.azurehsmwallet.md#computesharedsecret)* - -Defined in wallet-base/lib/wallet-base.d.ts:64 - -Computes the shared secret (an ECDH key exchange object) between two accounts - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`publicKey` | string | - -**Returns:** *Promise‹Buffer›* - -___ - -### decrypt - -▸ **decrypt**(`address`: string, `ciphertext`: Buffer): *Promise‹Buffer›* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[decrypt](_azure_hsm_wallet_.azurehsmwallet.md#decrypt)* - -Defined in wallet-base/lib/wallet-base.d.ts:60 - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer›* - -___ - -### getAccounts - -▸ **getAccounts**(): *Address[]* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[getAccounts](_azure_hsm_wallet_.azurehsmwallet.md#getaccounts)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:27 - -Get a list of accounts in the remote wallet - -**Returns:** *Address[]* - -___ - -### getAddressFromKeyName - -▸ **getAddressFromKeyName**(`keyName`: string): *Promise‹Address›* - -*Defined in [wallet-hsm-azure/src/azure-hsm-wallet.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.ts#L50)* - -Returns the EVM address for the given key -Useful for initially getting the 'from' field given a keyName - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`keyName` | string | Azure KeyVault key name | - -**Returns:** *Promise‹Address›* - -___ - -### hasAccount - -▸ **hasAccount**(`address?`: Address): *boolean* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[hasAccount](_azure_hsm_wallet_.azurehsmwallet.md#hasaccount)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:32 - -Returns true if account is in the remote wallet - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address?` | Address | Account to check | - -**Returns:** *boolean* - -___ - -### init - -▸ **init**(): *Promise‹void›* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[init](_azure_hsm_wallet_.azurehsmwallet.md#init)* - -Defined in wallet-remote/lib/remote-wallet.d.ts:15 - -Discovers wallet accounts and caches results in memory -Idempotent to ensure multiple calls are benign - -**Returns:** *Promise‹void›* - -___ - -### removeAccount - -▸ **removeAccount**(`_address`: string): *void* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[removeAccount](_azure_hsm_wallet_.azurehsmwallet.md#removeaccount)* - -Defined in wallet-base/lib/wallet-base.d.ts:23 - -Removes the account with the given address. Needs to be implemented by subclass, otherwise throws error - -**Parameters:** - -Name | Type | ------- | ------ | -`_address` | string | - -**Returns:** *void* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`address`: Address, `data`: string): *Promise‹string›* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[signPersonalMessage](_azure_hsm_wallet_.azurehsmwallet.md#signpersonalmessage)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:43 - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`data` | string | Hex string message to sign | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) - -___ - -### signTransaction - -▸ **signTransaction**(`txParams`: CeloTx): *Promise‹EncodedTransaction›* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[signTransaction](_azure_hsm_wallet_.azurehsmwallet.md#signtransaction)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:37 - -Signs the EVM transaction using the signer pulled from the from field - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`txParams` | CeloTx | EVM transaction | - -**Returns:** *Promise‹EncodedTransaction›* - -___ - -### signTypedData - -▸ **signTypedData**(`address`: Address, `typedData`: EIP712TypedData): *Promise‹string›* - -*Inherited from [AzureHSMWallet](_azure_hsm_wallet_.azurehsmwallet.md).[signTypedData](_azure_hsm_wallet_.azurehsmwallet.md#signtypeddata)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:49 - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`typedData` | EIP712TypedData | the typed data object | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) diff --git a/packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_key_vault_client_.azurekeyvaultclient.md b/packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_key_vault_client_.azurekeyvaultclient.md deleted file mode 100644 index 7db9d6cf15c..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-azure/classes/_azure_key_vault_client_.azurekeyvaultclient.md +++ /dev/null @@ -1,132 +0,0 @@ -[@celo/wallet-hsm-azure](../README.md) › ["azure-key-vault-client"](../modules/_azure_key_vault_client_.md) › [AzureKeyVaultClient](_azure_key_vault_client_.azurekeyvaultclient.md) - -# Class: AzureKeyVaultClient - -Provides an abstraction on Azure Key Vault for performing signing operations - -## Hierarchy - -* **AzureKeyVaultClient** - -## Index - -### Constructors - -* [constructor](_azure_key_vault_client_.azurekeyvaultclient.md#constructor) - -### Methods - -* [getKeyId](_azure_key_vault_client_.azurekeyvaultclient.md#getkeyid) -* [getKeys](_azure_key_vault_client_.azurekeyvaultclient.md#getkeys) -* [getPublicKey](_azure_key_vault_client_.azurekeyvaultclient.md#getpublickey) -* [getSecret](_azure_key_vault_client_.azurekeyvaultclient.md#getsecret) -* [hasKey](_azure_key_vault_client_.azurekeyvaultclient.md#haskey) -* [signMessage](_azure_key_vault_client_.azurekeyvaultclient.md#signmessage) - -## Constructors - -### constructor - -\+ **new AzureKeyVaultClient**(`vaultName`: string, `credential?`: TokenCredential): *[AzureKeyVaultClient](_azure_key_vault_client_.azurekeyvaultclient.md)* - -*Defined in [wallet-hsm-azure/src/azure-key-vault-client.ts:42](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts#L42)* - -**Parameters:** - -Name | Type | ------- | ------ | -`vaultName` | string | -`credential?` | TokenCredential | - -**Returns:** *[AzureKeyVaultClient](_azure_key_vault_client_.azurekeyvaultclient.md)* - -## Methods - -### getKeyId - -▸ **getKeyId**(`keyName`: string): *Promise‹string›* - -*Defined in [wallet-hsm-azure/src/azure-key-vault-client.ts:75](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts#L75)* - -**Parameters:** - -Name | Type | ------- | ------ | -`keyName` | string | - -**Returns:** *Promise‹string›* - -___ - -### getKeys - -▸ **getKeys**(): *Promise‹string[]›* - -*Defined in [wallet-hsm-azure/src/azure-key-vault-client.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts#L54)* - -**Returns:** *Promise‹string[]›* - -___ - -### getPublicKey - -▸ **getPublicKey**(`keyName`: string): *Promise‹BigNumber›* - -*Defined in [wallet-hsm-azure/src/azure-key-vault-client.ts:62](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts#L62)* - -**Parameters:** - -Name | Type | ------- | ------ | -`keyName` | string | - -**Returns:** *Promise‹BigNumber›* - -___ - -### getSecret - -▸ **getSecret**(`secretName`: string): *Promise‹string›* - -*Defined in [wallet-hsm-azure/src/azure-key-vault-client.ts:135](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts#L135)* - -**Parameters:** - -Name | Type | ------- | ------ | -`secretName` | string | - -**Returns:** *Promise‹string›* - -___ - -### hasKey - -▸ **hasKey**(`keyName`: string): *Promise‹boolean›* - -*Defined in [wallet-hsm-azure/src/azure-key-vault-client.ts:123](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts#L123)* - -**Parameters:** - -Name | Type | ------- | ------ | -`keyName` | string | - -**Returns:** *Promise‹boolean›* - -___ - -### signMessage - -▸ **signMessage**(`message`: Buffer, `keyName`: string): *Promise‹Signature›* - -*Defined in [wallet-hsm-azure/src/azure-key-vault-client.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts#L82)* - -**Parameters:** - -Name | Type | ------- | ------ | -`message` | Buffer | -`keyName` | string | - -**Returns:** *Promise‹Signature›* diff --git a/packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_hsm_signer_.md b/packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_hsm_signer_.md deleted file mode 100644 index 72789dbe837..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_hsm_signer_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-hsm-azure](../README.md) › ["azure-hsm-signer"](_azure_hsm_signer_.md) - -# Module: "azure-hsm-signer" - -## Index - -### Classes - -* [AzureHSMSigner](../classes/_azure_hsm_signer_.azurehsmsigner.md) diff --git a/packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_hsm_wallet_.md b/packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_hsm_wallet_.md deleted file mode 100644 index 5f2943e4eaf..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_hsm_wallet_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-hsm-azure](../README.md) › ["azure-hsm-wallet"](_azure_hsm_wallet_.md) - -# Module: "azure-hsm-wallet" - -## Index - -### Classes - -* [AzureHSMWallet](../classes/_azure_hsm_wallet_.azurehsmwallet.md) diff --git a/packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_key_vault_client_.md b/packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_key_vault_client_.md deleted file mode 100644 index 5adbb2927d4..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm-azure/modules/_azure_key_vault_client_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-hsm-azure](../README.md) › ["azure-key-vault-client"](_azure_key_vault_client_.md) - -# Module: "azure-key-vault-client" - -## Index - -### Classes - -* [AzureKeyVaultClient](../classes/_azure_key_vault_client_.azurekeyvaultclient.md) diff --git a/packages/docs/sdk/docs/wallet-hsm/README.md b/packages/docs/sdk/docs/wallet-hsm/README.md deleted file mode 100644 index ba6e29addf6..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm/README.md +++ /dev/null @@ -1,10 +0,0 @@ -[@celo/wallet-hsm](README.md) - -# @celo/wallet-hsm - -## Index - -### Modules - -* ["ber-utils"](modules/_ber_utils_.md) -* ["signature-utils"](modules/_signature_utils_.md) diff --git a/packages/docs/sdk/docs/wallet-hsm/classes/_signature_utils_.signature.md b/packages/docs/sdk/docs/wallet-hsm/classes/_signature_utils_.signature.md deleted file mode 100644 index e646f3bccf0..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm/classes/_signature_utils_.signature.md +++ /dev/null @@ -1,61 +0,0 @@ -[@celo/wallet-hsm](../README.md) › ["signature-utils"](../modules/_signature_utils_.md) › [Signature](_signature_utils_.signature.md) - -# Class: Signature - -## Hierarchy - -* **Signature** - -## Index - -### Constructors - -* [constructor](_signature_utils_.signature.md#constructor) - -### Properties - -* [r](_signature_utils_.signature.md#r) -* [s](_signature_utils_.signature.md#s) -* [v](_signature_utils_.signature.md#v) - -## Constructors - -### constructor - -\+ **new Signature**(`v`: number, `r`: Buffer, `s`: Buffer): *[Signature](_signature_utils_.signature.md)* - -*Defined in [signature-utils.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L46)* - -**Parameters:** - -Name | Type | ------- | ------ | -`v` | number | -`r` | Buffer | -`s` | Buffer | - -**Returns:** *[Signature](_signature_utils_.signature.md)* - -## Properties - -### r - -• **r**: *Buffer* - -*Defined in [signature-utils.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L45)* - -___ - -### s - -• **s**: *Buffer* - -*Defined in [signature-utils.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L46)* - -___ - -### v - -• **v**: *number* - -*Defined in [signature-utils.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L44)* diff --git a/packages/docs/sdk/docs/wallet-hsm/modules/_ber_utils_.md b/packages/docs/sdk/docs/wallet-hsm/modules/_ber_utils_.md deleted file mode 100644 index 408382d3a01..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm/modules/_ber_utils_.md +++ /dev/null @@ -1,85 +0,0 @@ -[@celo/wallet-hsm](../README.md) › ["ber-utils"](_ber_utils_.md) - -# Module: "ber-utils" - -## Index - -### Functions - -* [asn1FromPublicKey](_ber_utils_.md#asn1frompublickey) -* [parseBERSignature](_ber_utils_.md#parsebersignature) -* [publicKeyFromAsn1](_ber_utils_.md#publickeyfromasn1) -* [toArrayBuffer](_ber_utils_.md#const-toarraybuffer) - -## Functions - -### asn1FromPublicKey - -▸ **asn1FromPublicKey**(`bn`: BigNumber): *Buffer* - -*Defined in [ber-utils.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/ber-utils.ts#L23)* - -This is used only for mocking -Creates an asn1 key to emulate KMS response - -**Parameters:** - -Name | Type | ------- | ------ | -`bn` | BigNumber | - -**Returns:** *Buffer* - -___ - -### parseBERSignature - -▸ **parseBERSignature**(`b`: Buffer): *object* - -*Defined in [ber-utils.ts:44](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/ber-utils.ts#L44)* - -AWS returns DER encoded signatures but DER is valid BER - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | Buffer | - -**Returns:** *object* - -* **r**: *Buffer* - -* **s**: *Buffer* - -___ - -### publicKeyFromAsn1 - -▸ **publicKeyFromAsn1**(`b`: Buffer): *BigNumber* - -*Defined in [ber-utils.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/ber-utils.ts#L9)* - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | Buffer | - -**Returns:** *BigNumber* - -___ - -### `Const` toArrayBuffer - -▸ **toArrayBuffer**(`b`: Buffer): *ArrayBuffer* - -*Defined in [ber-utils.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/ber-utils.ts#L5)* - -**Parameters:** - -Name | Type | ------- | ------ | -`b` | Buffer | - -**Returns:** *ArrayBuffer* diff --git a/packages/docs/sdk/docs/wallet-hsm/modules/_signature_utils_.md b/packages/docs/sdk/docs/wallet-hsm/modules/_signature_utils_.md deleted file mode 100644 index c578c9bbc49..00000000000 --- a/packages/docs/sdk/docs/wallet-hsm/modules/_signature_utils_.md +++ /dev/null @@ -1,137 +0,0 @@ -[@celo/wallet-hsm](../README.md) › ["signature-utils"](_signature_utils_.md) - -# Module: "signature-utils" - -## Index - -### Classes - -* [Signature](../classes/_signature_utils_.signature.md) - -### Variables - -* [publicKeyPrefix](_signature_utils_.md#const-publickeyprefix) -* [sixtyFour](_signature_utils_.md#const-sixtyfour) -* [thirtyTwo](_signature_utils_.md#const-thirtytwo) - -### Functions - -* [bigNumberToBuffer](_signature_utils_.md#const-bignumbertobuffer) -* [bufferToBigNumber](_signature_utils_.md#const-buffertobignumber) -* [getAddressFromPublicKey](_signature_utils_.md#getaddressfrompublickey) -* [makeCanonical](_signature_utils_.md#const-makecanonical) -* [recoverKeyIndex](_signature_utils_.md#recoverkeyindex) - -## Variables - -### `Const` publicKeyPrefix - -• **publicKeyPrefix**: *number* = 4 - -*Defined in [signature-utils.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L8)* - -___ - -### `Const` sixtyFour - -• **sixtyFour**: *number* = 64 - -*Defined in [signature-utils.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L9)* - -___ - -### `Const` thirtyTwo - -• **thirtyTwo**: *number* = 32 - -*Defined in [signature-utils.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L10)* - -## Functions - -### `Const` bigNumberToBuffer - -▸ **bigNumberToBuffer**(`input`: BigNumber, `lengthInBytes`: number): *Buffer* - -*Defined in [signature-utils.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L34)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | BigNumber | -`lengthInBytes` | number | - -**Returns:** *Buffer* - -___ - -### `Const` bufferToBigNumber - -▸ **bufferToBigNumber**(`input`: Buffer): *BigNumber* - -*Defined in [signature-utils.ts:30](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L30)* - -**Parameters:** - -Name | Type | ------- | ------ | -`input` | Buffer | - -**Returns:** *BigNumber* - -___ - -### getAddressFromPublicKey - -▸ **getAddressFromPublicKey**(`publicKey`: BigNumber): *Address* - -*Defined in [signature-utils.ts:78](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L78)* - -**Parameters:** - -Name | Type | ------- | ------ | -`publicKey` | BigNumber | - -**Returns:** *Address* - -___ - -### `Const` makeCanonical - -▸ **makeCanonical**(`S`: BigNumber): *BigNumber* - -*Defined in [signature-utils.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L18)* - -If the signature is in the "bottom" of the curve, it is non-canonical -Non-canonical signatures are illegal in Ethereum and therefore the S value -must be transposed to the lower intersection -https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki#Low_S_values_in_signatures - -**Parameters:** - -Name | Type | ------- | ------ | -`S` | BigNumber | - -**Returns:** *BigNumber* - -___ - -### recoverKeyIndex - -▸ **recoverKeyIndex**(`signature`: Uint8Array, `publicKey`: BigNumber, `hash`: Uint8Array): *number* - -*Defined in [signature-utils.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts#L58)* - -Attempts each recovery key to find a match - -**Parameters:** - -Name | Type | ------- | ------ | -`signature` | Uint8Array | -`publicKey` | BigNumber | -`hash` | Uint8Array | - -**Returns:** *number* diff --git a/packages/docs/sdk/docs/wallet-ledger/README.md b/packages/docs/sdk/docs/wallet-ledger/README.md deleted file mode 100644 index 4c28ca3c18d..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/README.md +++ /dev/null @@ -1,13 +0,0 @@ -[@celo/wallet-ledger](README.md) - -# @celo/wallet-ledger - -## Index - -### Modules - -* ["data"](modules/_data_.md) -* ["ledger-signer"](modules/_ledger_signer_.md) -* ["ledger-utils"](modules/_ledger_utils_.md) -* ["ledger-wallet"](modules/_ledger_wallet_.md) -* ["tokens"](modules/_tokens_.md) diff --git a/packages/docs/sdk/docs/wallet-ledger/classes/_ledger_signer_.ledgersigner.md b/packages/docs/sdk/docs/wallet-ledger/classes/_ledger_signer_.ledgersigner.md deleted file mode 100644 index 6e1c1e8d71b..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/classes/_ledger_signer_.ledgersigner.md +++ /dev/null @@ -1,147 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["ledger-signer"](../modules/_ledger_signer_.md) › [LedgerSigner](_ledger_signer_.ledgersigner.md) - -# Class: LedgerSigner - -Signs the EVM transaction with a Ledger device - -## Hierarchy - -* **LedgerSigner** - -## Implements - -* Signer - -## Index - -### Constructors - -* [constructor](_ledger_signer_.ledgersigner.md#constructor) - -### Methods - -* [computeSharedSecret](_ledger_signer_.ledgersigner.md#computesharedsecret) -* [decrypt](_ledger_signer_.ledgersigner.md#decrypt) -* [getNativeKey](_ledger_signer_.ledgersigner.md#getnativekey) -* [signPersonalMessage](_ledger_signer_.ledgersigner.md#signpersonalmessage) -* [signTransaction](_ledger_signer_.ledgersigner.md#signtransaction) -* [signTypedData](_ledger_signer_.ledgersigner.md#signtypeddata) - -## Constructors - -### constructor - -\+ **new LedgerSigner**(`ledger`: any, `derivationPath`: string, `ledgerAddressValidation`: [AddressValidation](../enums/_ledger_wallet_.addressvalidation.md), `appConfiguration`: object): *[LedgerSigner](_ledger_signer_.ledgersigner.md)* - -*Defined in [wallet-ledger/src/ledger-signer.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts#L22)* - -**Parameters:** - -▪ **ledger**: *any* - -▪ **derivationPath**: *string* - -▪ **ledgerAddressValidation**: *[AddressValidation](../enums/_ledger_wallet_.addressvalidation.md)* - -▪`Default value` **appConfiguration**: *object*= { - arbitraryDataEnabled: 0, - version: '0.0.0', - } - -Name | Type | ------- | ------ | -`arbitraryDataEnabled` | number | -`version` | string | - -**Returns:** *[LedgerSigner](_ledger_signer_.ledgersigner.md)* - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`_publicKey`: string): *Promise‹Buffer‹››* - -*Defined in [wallet-ledger/src/ledger-signer.ts:196](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts#L196)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_publicKey` | string | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### decrypt - -▸ **decrypt**(`_ciphertext`: Buffer): *Promise‹Buffer‹››* - -*Defined in [wallet-ledger/src/ledger-signer.ts:190](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts#L190)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### getNativeKey - -▸ **getNativeKey**(): *string* - -*Defined in [wallet-ledger/src/ledger-signer.ts:39](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts#L39)* - -**Returns:** *string* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`data`: string): *Promise‹object›* - -*Defined in [wallet-ledger/src/ledger-signer.ts:82](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts#L82)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | string | - -**Returns:** *Promise‹object›* - -___ - -### signTransaction - -▸ **signTransaction**(`addToV`: number, `encodedTx`: RLPEncodedTx): *Promise‹object›* - -*Defined in [wallet-ledger/src/ledger-signer.ts:43](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts#L43)* - -**Parameters:** - -Name | Type | ------- | ------ | -`addToV` | number | -`encodedTx` | RLPEncodedTx | - -**Returns:** *Promise‹object›* - -___ - -### signTypedData - -▸ **signTypedData**(`typedData`: EIP712TypedData): *Promise‹object›* - -*Defined in [wallet-ledger/src/ledger-signer.ts:103](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts#L103)* - -**Parameters:** - -Name | Type | ------- | ------ | -`typedData` | EIP712TypedData | - -**Returns:** *Promise‹object›* diff --git a/packages/docs/sdk/docs/wallet-ledger/classes/_ledger_wallet_.ledgerwallet.md b/packages/docs/sdk/docs/wallet-ledger/classes/_ledger_wallet_.ledgerwallet.md deleted file mode 100644 index 941d7149ecf..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/classes/_ledger_wallet_.ledgerwallet.md +++ /dev/null @@ -1,296 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["ledger-wallet"](../modules/_ledger_wallet_.md) › [LedgerWallet](_ledger_wallet_.ledgerwallet.md) - -# Class: LedgerWallet - -## Hierarchy - -* RemoteWallet‹[LedgerSigner](_ledger_signer_.ledgersigner.md)› - - ↳ **LedgerWallet** - -## Implements - -* ReadOnlyWallet -* ReadOnlyWallet -* ReadOnlyWallet - -## Index - -### Constructors - -* [constructor](_ledger_wallet_.ledgerwallet.md#constructor) - -### Properties - -* [baseDerivationPath](_ledger_wallet_.ledgerwallet.md#readonly-basederivationpath) -* [derivationPathIndexes](_ledger_wallet_.ledgerwallet.md#readonly-derivationpathindexes) -* [isSetupFinished](_ledger_wallet_.ledgerwallet.md#issetupfinished) -* [ledgerAddressValidation](_ledger_wallet_.ledgerwallet.md#readonly-ledgeraddressvalidation) -* [transport](_ledger_wallet_.ledgerwallet.md#readonly-transport) - -### Methods - -* [computeSharedSecret](_ledger_wallet_.ledgerwallet.md#computesharedsecret) -* [decrypt](_ledger_wallet_.ledgerwallet.md#decrypt) -* [getAccounts](_ledger_wallet_.ledgerwallet.md#getaccounts) -* [hasAccount](_ledger_wallet_.ledgerwallet.md#hasaccount) -* [init](_ledger_wallet_.ledgerwallet.md#init) -* [removeAccount](_ledger_wallet_.ledgerwallet.md#removeaccount) -* [signPersonalMessage](_ledger_wallet_.ledgerwallet.md#signpersonalmessage) -* [signTransaction](_ledger_wallet_.ledgerwallet.md#signtransaction) -* [signTypedData](_ledger_wallet_.ledgerwallet.md#signtypeddata) - -## Constructors - -### constructor - -\+ **new LedgerWallet**(`derivationPathIndexes`: number[], `baseDerivationPath`: string, `transport`: any, `ledgerAddressValidation`: [AddressValidation](../enums/_ledger_wallet_.addressvalidation.md)): *[LedgerWallet](_ledger_wallet_.ledgerwallet.md)* - -*Defined in [wallet-ledger/src/ledger-wallet.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L45)* - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`derivationPathIndexes` | number[] | zeroRange(ADDRESS_QTY) | number array of "address_index" for the base derivation path. Default: Array[0..9]. Example: [3, 99, 53] will retrieve the derivation paths of [`${baseDerivationPath}/3`, `${baseDerivationPath}/99`, `${baseDerivationPath}/53`] | -`baseDerivationPath` | string | CELO_BASE_DERIVATION_PATH | base derivation path. Default: "44'/52752'/0'/0" | -`transport` | any | {} | Transport to connect the ledger device | -`ledgerAddressValidation` | [AddressValidation](../enums/_ledger_wallet_.addressvalidation.md) | AddressValidation.firstTransactionPerAddress | - | - -**Returns:** *[LedgerWallet](_ledger_wallet_.ledgerwallet.md)* - -## Properties - -### `Readonly` baseDerivationPath - -• **baseDerivationPath**: *string* - -*Defined in [wallet-ledger/src/ledger-wallet.ts:57](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L57)* - -base derivation path. Default: "44'/52752'/0'/0" - -___ - -### `Readonly` derivationPathIndexes - -• **derivationPathIndexes**: *number[]* - -*Defined in [wallet-ledger/src/ledger-wallet.ts:56](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L56)* - -number array of "address_index" for the base derivation path. -Default: Array[0..9]. -Example: [3, 99, 53] will retrieve the derivation paths of -[`${baseDerivationPath}/3`, `${baseDerivationPath}/99`, `${baseDerivationPath}/53`] - -___ - -### isSetupFinished - -• **isSetupFinished**: *function* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[isSetupFinished](_ledger_wallet_.ledgerwallet.md#issetupfinished)* - -Defined in wallet-remote/lib/remote-wallet.d.ts:51 - -#### Type declaration: - -▸ (): *boolean* - -___ - -### `Readonly` ledgerAddressValidation - -• **ledgerAddressValidation**: *[AddressValidation](../enums/_ledger_wallet_.addressvalidation.md)* - -*Defined in [wallet-ledger/src/ledger-wallet.ts:59](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L59)* - -___ - -### `Readonly` transport - -• **transport**: *any* - -*Defined in [wallet-ledger/src/ledger-wallet.ts:58](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L58)* - -Transport to connect the ledger device - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`address`: Address, `publicKey`: string): *Promise‹Buffer›* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[computeSharedSecret](_ledger_wallet_.ledgerwallet.md#computesharedsecret)* - -Defined in wallet-base/lib/wallet-base.d.ts:64 - -Computes the shared secret (an ECDH key exchange object) between two accounts - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`publicKey` | string | - -**Returns:** *Promise‹Buffer›* - -___ - -### decrypt - -▸ **decrypt**(`address`: string, `ciphertext`: Buffer): *Promise‹Buffer›* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[decrypt](_ledger_wallet_.ledgerwallet.md#decrypt)* - -Defined in wallet-base/lib/wallet-base.d.ts:60 - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer›* - -___ - -### getAccounts - -▸ **getAccounts**(): *Address[]* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[getAccounts](_ledger_wallet_.ledgerwallet.md#getaccounts)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:27 - -Get a list of accounts in the remote wallet - -**Returns:** *Address[]* - -___ - -### hasAccount - -▸ **hasAccount**(`address?`: Address): *boolean* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[hasAccount](_ledger_wallet_.ledgerwallet.md#hasaccount)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:32 - -Returns true if account is in the remote wallet - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address?` | Address | Account to check | - -**Returns:** *boolean* - -___ - -### init - -▸ **init**(): *Promise‹void›* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[init](_ledger_wallet_.ledgerwallet.md#init)* - -Defined in wallet-remote/lib/remote-wallet.d.ts:15 - -Discovers wallet accounts and caches results in memory -Idempotent to ensure multiple calls are benign - -**Returns:** *Promise‹void›* - -___ - -### removeAccount - -▸ **removeAccount**(`_address`: string): *void* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[removeAccount](_ledger_wallet_.ledgerwallet.md#removeaccount)* - -Defined in wallet-base/lib/wallet-base.d.ts:23 - -Removes the account with the given address. Needs to be implemented by subclass, otherwise throws error - -**Parameters:** - -Name | Type | ------- | ------ | -`_address` | string | - -**Returns:** *void* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`address`: Address, `data`: string): *Promise‹string›* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[signPersonalMessage](_ledger_wallet_.ledgerwallet.md#signpersonalmessage)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:43 - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`data` | string | Hex string message to sign | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) - -___ - -### signTransaction - -▸ **signTransaction**(`txParams`: CeloTx): *Promise‹EncodedTransaction›* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[signTransaction](_ledger_wallet_.ledgerwallet.md#signtransaction)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:37 - -Signs the EVM transaction using the signer pulled from the from field - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`txParams` | CeloTx | EVM transaction | - -**Returns:** *Promise‹EncodedTransaction›* - -___ - -### signTypedData - -▸ **signTypedData**(`address`: Address, `typedData`: EIP712TypedData): *Promise‹string›* - -*Inherited from [LedgerWallet](_ledger_wallet_.ledgerwallet.md).[signTypedData](_ledger_wallet_.ledgerwallet.md#signtypeddata)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:49 - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`typedData` | EIP712TypedData | the typed data object | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) diff --git a/packages/docs/sdk/docs/wallet-ledger/enums/_ledger_wallet_.addressvalidation.md b/packages/docs/sdk/docs/wallet-ledger/enums/_ledger_wallet_.addressvalidation.md deleted file mode 100644 index 180ed90e3fb..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/enums/_ledger_wallet_.addressvalidation.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["ledger-wallet"](../modules/_ledger_wallet_.md) › [AddressValidation](_ledger_wallet_.addressvalidation.md) - -# Enumeration: AddressValidation - -## Index - -### Enumeration members - -* [everyTransaction](_ledger_wallet_.addressvalidation.md#everytransaction) -* [firstTransactionPerAddress](_ledger_wallet_.addressvalidation.md#firsttransactionperaddress) -* [initializationOnly](_ledger_wallet_.addressvalidation.md#initializationonly) -* [never](_ledger_wallet_.addressvalidation.md#never) - -## Enumeration members - -### everyTransaction - -• **everyTransaction**: - -*Defined in [wallet-ledger/src/ledger-wallet.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L19)* - -___ - -### firstTransactionPerAddress - -• **firstTransactionPerAddress**: - -*Defined in [wallet-ledger/src/ledger-wallet.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L21)* - -___ - -### initializationOnly - -• **initializationOnly**: - -*Defined in [wallet-ledger/src/ledger-wallet.ts:17](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L17)* - -___ - -### never - -• **never**: - -*Defined in [wallet-ledger/src/ledger-wallet.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L23)* diff --git a/packages/docs/sdk/docs/wallet-ledger/interfaces/_tokens_.api.md b/packages/docs/sdk/docs/wallet-ledger/interfaces/_tokens_.api.md deleted file mode 100644 index e53f432a27c..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/interfaces/_tokens_.api.md +++ /dev/null @@ -1,44 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["tokens"](../modules/_tokens_.md) › [API](_tokens_.api.md) - -# Interface: API - -## Hierarchy - -* **API** - -## Index - -### Properties - -* [byContractKey](_tokens_.api.md#bycontractkey) -* [list](_tokens_.api.md#list) - -## Properties - -### byContractKey - -• **byContractKey**: *function* - -*Defined in [wallet-ledger/src/tokens.ts:45](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L45)* - -#### Type declaration: - -▸ (`arg0`: string): *[TokenInfo](_tokens_.tokeninfo.md) | null | undefined* - -**Parameters:** - -Name | Type | ------- | ------ | -`arg0` | string | - -___ - -### list - -• **list**: *function* - -*Defined in [wallet-ledger/src/tokens.ts:46](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L46)* - -#### Type declaration: - -▸ (): *[TokenInfo](_tokens_.tokeninfo.md)[]* diff --git a/packages/docs/sdk/docs/wallet-ledger/interfaces/_tokens_.tokeninfo.md b/packages/docs/sdk/docs/wallet-ledger/interfaces/_tokens_.tokeninfo.md deleted file mode 100644 index e028f8c2a20..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/interfaces/_tokens_.tokeninfo.md +++ /dev/null @@ -1,66 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["tokens"](../modules/_tokens_.md) › [TokenInfo](_tokens_.tokeninfo.md) - -# Interface: TokenInfo - -## Hierarchy - -* **TokenInfo** - -## Index - -### Properties - -* [chainId](_tokens_.tokeninfo.md#chainid) -* [contractAddress](_tokens_.tokeninfo.md#contractaddress) -* [data](_tokens_.tokeninfo.md#data) -* [decimals](_tokens_.tokeninfo.md#decimals) -* [signature](_tokens_.tokeninfo.md#signature) -* [ticker](_tokens_.tokeninfo.md#ticker) - -## Properties - -### chainId - -• **chainId**: *number* - -*Defined in [wallet-ledger/src/tokens.ts:22](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L22)* - -___ - -### contractAddress - -• **contractAddress**: *Address* - -*Defined in [wallet-ledger/src/tokens.ts:19](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L19)* - -___ - -### data - -• **data**: *Buffer* - -*Defined in [wallet-ledger/src/tokens.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L24)* - -___ - -### decimals - -• **decimals**: *number* - -*Defined in [wallet-ledger/src/tokens.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L21)* - -___ - -### signature - -• **signature**: *Buffer* - -*Defined in [wallet-ledger/src/tokens.ts:23](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L23)* - -___ - -### ticker - -• **ticker**: *string* - -*Defined in [wallet-ledger/src/tokens.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L20)* diff --git a/packages/docs/sdk/docs/wallet-ledger/modules/_data_.md b/packages/docs/sdk/docs/wallet-ledger/modules/_data_.md deleted file mode 100644 index 48cec9e2af8..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/modules/_data_.md +++ /dev/null @@ -1,5 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["data"](_data_.md) - -# Module: "data" - - diff --git a/packages/docs/sdk/docs/wallet-ledger/modules/_ledger_signer_.md b/packages/docs/sdk/docs/wallet-ledger/modules/_ledger_signer_.md deleted file mode 100644 index 0d45350676e..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/modules/_ledger_signer_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["ledger-signer"](_ledger_signer_.md) - -# Module: "ledger-signer" - -## Index - -### Classes - -* [LedgerSigner](../classes/_ledger_signer_.ledgersigner.md) diff --git a/packages/docs/sdk/docs/wallet-ledger/modules/_ledger_utils_.md b/packages/docs/sdk/docs/wallet-ledger/modules/_ledger_utils_.md deleted file mode 100644 index 92456bac77b..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/modules/_ledger_utils_.md +++ /dev/null @@ -1,25 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["ledger-utils"](_ledger_utils_.md) - -# Module: "ledger-utils" - -## Index - -### Functions - -* [transportErrorFriendlyMessage](_ledger_utils_.md#transporterrorfriendlymessage) - -## Functions - -### transportErrorFriendlyMessage - -▸ **transportErrorFriendlyMessage**(`error`: any): *void* - -*Defined in [wallet-ledger/src/ledger-utils.ts:5](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-utils.ts#L5)* - -**Parameters:** - -Name | Type | ------- | ------ | -`error` | any | - -**Returns:** *void* diff --git a/packages/docs/sdk/docs/wallet-ledger/modules/_ledger_wallet_.md b/packages/docs/sdk/docs/wallet-ledger/modules/_ledger_wallet_.md deleted file mode 100644 index bb7d00c7325..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/modules/_ledger_wallet_.md +++ /dev/null @@ -1,48 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["ledger-wallet"](_ledger_wallet_.md) - -# Module: "ledger-wallet" - -## Index - -### Enumerations - -* [AddressValidation](../enums/_ledger_wallet_.addressvalidation.md) - -### Classes - -* [LedgerWallet](../classes/_ledger_wallet_.ledgerwallet.md) - -### Variables - -* [CELO_BASE_DERIVATION_PATH](_ledger_wallet_.md#const-celo_base_derivation_path) - -### Functions - -* [newLedgerWalletWithSetup](_ledger_wallet_.md#newledgerwalletwithsetup) - -## Variables - -### `Const` CELO_BASE_DERIVATION_PATH - -• **CELO_BASE_DERIVATION_PATH**: *string* = `${CELO_DERIVATION_PATH_BASE.slice(2)}/0` - -*Defined in [wallet-ledger/src/ledger-wallet.ts:11](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L11)* - -## Functions - -### newLedgerWalletWithSetup - -▸ **newLedgerWalletWithSetup**(`transport`: any, `derivationPathIndexes?`: number[], `baseDerivationPath?`: undefined | string, `ledgerAddressValidation?`: [AddressValidation](../enums/_ledger_wallet_.addressvalidation.md)): *Promise‹[LedgerWallet](../classes/_ledger_wallet_.ledgerwallet.md)›* - -*Defined in [wallet-ledger/src/ledger-wallet.ts:26](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts#L26)* - -**Parameters:** - -Name | Type | ------- | ------ | -`transport` | any | -`derivationPathIndexes?` | number[] | -`baseDerivationPath?` | undefined | string | -`ledgerAddressValidation?` | [AddressValidation](../enums/_ledger_wallet_.addressvalidation.md) | - -**Returns:** *Promise‹[LedgerWallet](../classes/_ledger_wallet_.ledgerwallet.md)›* diff --git a/packages/docs/sdk/docs/wallet-ledger/modules/_tokens_.md b/packages/docs/sdk/docs/wallet-ledger/modules/_tokens_.md deleted file mode 100644 index 377209a2d54..00000000000 --- a/packages/docs/sdk/docs/wallet-ledger/modules/_tokens_.md +++ /dev/null @@ -1,68 +0,0 @@ -[@celo/wallet-ledger](../README.md) › ["tokens"](_tokens_.md) - -# Module: "tokens" - -## Index - -### Interfaces - -* [API](../interfaces/_tokens_.api.md) -* [TokenInfo](../interfaces/_tokens_.tokeninfo.md) - -### Functions - -* [compareLedgerAppVersions](_tokens_.md#compareledgerappversions) -* [list](_tokens_.md#const-list) -* [tokenInfoByAddressAndChainId](_tokens_.md#const-tokeninfobyaddressandchainid) - -## Functions - -### compareLedgerAppVersions - -▸ **compareLedgerAppVersions**(`version1`: string, `version2`: string): *number* - -*Defined in [wallet-ledger/src/tokens.ts:33](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L33)* - -**Parameters:** - -Name | Type | ------- | ------ | -`version1` | string | -`version2` | string | - -**Returns:** *number* - --1: version1 < version2, - 0: version1 == version2, - 1: version1 > version2 - -___ - -### `Const` list - -▸ **list**(): *[TokenInfo](../interfaces/_tokens_.tokeninfo.md)[]* - -*Defined in [wallet-ledger/src/tokens.ts:16](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L16)* - -list all the ERC20 tokens informations - -**Returns:** *[TokenInfo](../interfaces/_tokens_.tokeninfo.md)[]* - -___ - -### `Const` tokenInfoByAddressAndChainId - -▸ **tokenInfoByAddressAndChainId**(`contract`: Address, `chainId`: number): *[TokenInfo](../interfaces/_tokens_.tokeninfo.md) | null | undefined* - -*Defined in [wallet-ledger/src/tokens.ts:8](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-ledger/src/tokens.ts#L8)* - -Retrieve the token information by a given contract address and chainId if any - -**Parameters:** - -Name | Type | ------- | ------ | -`contract` | Address | -`chainId` | number | - -**Returns:** *[TokenInfo](../interfaces/_tokens_.tokeninfo.md) | null | undefined* diff --git a/packages/docs/sdk/docs/wallet-local/README.md b/packages/docs/sdk/docs/wallet-local/README.md deleted file mode 100644 index 9878afa10f7..00000000000 --- a/packages/docs/sdk/docs/wallet-local/README.md +++ /dev/null @@ -1,10 +0,0 @@ -[@celo/wallet-local](README.md) - -# @celo/wallet-local - -## Index - -### Modules - -* ["local-signer"](modules/_local_signer_.md) -* ["local-wallet"](modules/_local_wallet_.md) diff --git a/packages/docs/sdk/docs/wallet-local/classes/_local_signer_.localsigner.md b/packages/docs/sdk/docs/wallet-local/classes/_local_signer_.localsigner.md deleted file mode 100644 index a7765aaa81f..00000000000 --- a/packages/docs/sdk/docs/wallet-local/classes/_local_signer_.localsigner.md +++ /dev/null @@ -1,135 +0,0 @@ -[@celo/wallet-local](../README.md) › ["local-signer"](../modules/_local_signer_.md) › [LocalSigner](_local_signer_.localsigner.md) - -# Class: LocalSigner - -Signs the EVM transaction using the provided private key - -## Hierarchy - -* **LocalSigner** - -## Implements - -* Signer - -## Index - -### Constructors - -* [constructor](_local_signer_.localsigner.md#constructor) - -### Methods - -* [computeSharedSecret](_local_signer_.localsigner.md#computesharedsecret) -* [decrypt](_local_signer_.localsigner.md#decrypt) -* [getNativeKey](_local_signer_.localsigner.md#getnativekey) -* [signPersonalMessage](_local_signer_.localsigner.md#signpersonalmessage) -* [signTransaction](_local_signer_.localsigner.md#signtransaction) -* [signTypedData](_local_signer_.localsigner.md#signtypeddata) - -## Constructors - -### constructor - -\+ **new LocalSigner**(`privateKey`: string): *[LocalSigner](_local_signer_.localsigner.md)* - -*Defined in [wallet-local/src/local-signer.ts:15](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-local/src/local-signer.ts#L15)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | - -**Returns:** *[LocalSigner](_local_signer_.localsigner.md)* - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`publicKey`: string): *Promise‹Buffer›* - -*Defined in [wallet-local/src/local-signer.ts:71](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-local/src/local-signer.ts#L71)* - -**Parameters:** - -Name | Type | ------- | ------ | -`publicKey` | string | - -**Returns:** *Promise‹Buffer›* - -___ - -### decrypt - -▸ **decrypt**(`ciphertext`: Buffer): *Promise‹Buffer‹››* - -*Defined in [wallet-local/src/local-signer.ts:63](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-local/src/local-signer.ts#L63)* - -**Parameters:** - -Name | Type | ------- | ------ | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### getNativeKey - -▸ **getNativeKey**(): *string* - -*Defined in [wallet-local/src/local-signer.ts:21](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-local/src/local-signer.ts#L21)* - -**Returns:** *string* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`data`: string): *Promise‹object›* - -*Defined in [wallet-local/src/local-signer.ts:34](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-local/src/local-signer.ts#L34)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | string | - -**Returns:** *Promise‹object›* - -___ - -### signTransaction - -▸ **signTransaction**(`addToV`: number, `encodedTx`: RLPEncodedTx): *Promise‹object›* - -*Defined in [wallet-local/src/local-signer.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-local/src/local-signer.ts#L25)* - -**Parameters:** - -Name | Type | ------- | ------ | -`addToV` | number | -`encodedTx` | RLPEncodedTx | - -**Returns:** *Promise‹object›* - -___ - -### signTypedData - -▸ **signTypedData**(`typedData`: EIP712TypedData): *Promise‹object›* - -*Defined in [wallet-local/src/local-signer.ts:50](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-local/src/local-signer.ts#L50)* - -**Parameters:** - -Name | Type | ------- | ------ | -`typedData` | EIP712TypedData | - -**Returns:** *Promise‹object›* diff --git a/packages/docs/sdk/docs/wallet-local/classes/_local_wallet_.localwallet.md b/packages/docs/sdk/docs/wallet-local/classes/_local_wallet_.localwallet.md deleted file mode 100644 index cd288f09cd4..00000000000 --- a/packages/docs/sdk/docs/wallet-local/classes/_local_wallet_.localwallet.md +++ /dev/null @@ -1,206 +0,0 @@ -[@celo/wallet-local](../README.md) › ["local-wallet"](../modules/_local_wallet_.md) › [LocalWallet](_local_wallet_.localwallet.md) - -# Class: LocalWallet - -## Hierarchy - -* WalletBase‹[LocalSigner](_local_signer_.localsigner.md)› - - ↳ **LocalWallet** - -## Implements - -* ReadOnlyWallet -* Wallet - -## Index - -### Methods - -* [addAccount](_local_wallet_.localwallet.md#addaccount) -* [computeSharedSecret](_local_wallet_.localwallet.md#computesharedsecret) -* [decrypt](_local_wallet_.localwallet.md#decrypt) -* [getAccounts](_local_wallet_.localwallet.md#getaccounts) -* [hasAccount](_local_wallet_.localwallet.md#hasaccount) -* [removeAccount](_local_wallet_.localwallet.md#removeaccount) -* [signPersonalMessage](_local_wallet_.localwallet.md#signpersonalmessage) -* [signTransaction](_local_wallet_.localwallet.md#signtransaction) -* [signTypedData](_local_wallet_.localwallet.md#signtypeddata) - -## Methods - -### addAccount - -▸ **addAccount**(`privateKey`: string): *void* - -*Defined in [wallet-local/src/local-wallet.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-local/src/local-wallet.ts#L10)* - -Register the private key as signer account - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`privateKey` | string | account private key | - -**Returns:** *void* - -___ - -### computeSharedSecret - -▸ **computeSharedSecret**(`address`: Address, `publicKey`: string): *Promise‹Buffer›* - -*Inherited from [LocalWallet](_local_wallet_.localwallet.md).[computeSharedSecret](_local_wallet_.localwallet.md#computesharedsecret)* - -Defined in wallet-base/lib/wallet-base.d.ts:64 - -Computes the shared secret (an ECDH key exchange object) between two accounts - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`publicKey` | string | - -**Returns:** *Promise‹Buffer›* - -___ - -### decrypt - -▸ **decrypt**(`address`: string, `ciphertext`: Buffer): *Promise‹Buffer›* - -*Inherited from [LocalWallet](_local_wallet_.localwallet.md).[decrypt](_local_wallet_.localwallet.md#decrypt)* - -Defined in wallet-base/lib/wallet-base.d.ts:60 - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer›* - -___ - -### getAccounts - -▸ **getAccounts**(): *Address[]* - -*Inherited from [LocalWallet](_local_wallet_.localwallet.md).[getAccounts](_local_wallet_.localwallet.md#getaccounts)* - -Defined in wallet-base/lib/wallet-base.d.ts:18 - -Gets a list of accounts that have been registered - -**Returns:** *Address[]* - -___ - -### hasAccount - -▸ **hasAccount**(`address?`: Address): *boolean* - -*Inherited from [LocalWallet](_local_wallet_.localwallet.md).[hasAccount](_local_wallet_.localwallet.md#hasaccount)* - -Defined in wallet-base/lib/wallet-base.d.ts:28 - -Returns true if account has been registered - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address?` | Address | Account to check | - -**Returns:** *boolean* - -___ - -### removeAccount - -▸ **removeAccount**(`address`: Address): *void* - -*Overrides void* - -*Defined in [wallet-local/src/local-wallet.ts:24](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-local/src/local-wallet.ts#L24)* - -Remove the account - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Adddress of the account to remove | - -**Returns:** *void* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`address`: Address, `data`: string): *Promise‹string›* - -*Inherited from [LocalWallet](_local_wallet_.localwallet.md).[signPersonalMessage](_local_wallet_.localwallet.md#signpersonalmessage)* - -Defined in wallet-base/lib/wallet-base.d.ts:51 - -Sign a personal Ethereum signed message. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`data` | string | Hex string message to sign | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) - -___ - -### signTransaction - -▸ **signTransaction**(`txParams`: CeloTx): *Promise‹EncodedTransaction›* - -*Inherited from [LocalWallet](_local_wallet_.localwallet.md).[signTransaction](_local_wallet_.localwallet.md#signtransaction)* - -Defined in wallet-base/lib/wallet-base.d.ts:44 - -Gets the signer based on the 'from' field in the tx body - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`txParams` | CeloTx | Transaction to sign | - -**Returns:** *Promise‹EncodedTransaction›* - -___ - -### signTypedData - -▸ **signTypedData**(`address`: Address, `typedData`: EIP712TypedData): *Promise‹string›* - -*Inherited from [LocalWallet](_local_wallet_.localwallet.md).[signTypedData](_local_wallet_.localwallet.md#signtypeddata)* - -Defined in wallet-base/lib/wallet-base.d.ts:58 - -Sign an EIP712 Typed Data message. - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`typedData` | EIP712TypedData | the typed data object | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) diff --git a/packages/docs/sdk/docs/wallet-local/modules/_local_signer_.md b/packages/docs/sdk/docs/wallet-local/modules/_local_signer_.md deleted file mode 100644 index c687baa96a6..00000000000 --- a/packages/docs/sdk/docs/wallet-local/modules/_local_signer_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-local](../README.md) › ["local-signer"](_local_signer_.md) - -# Module: "local-signer" - -## Index - -### Classes - -* [LocalSigner](../classes/_local_signer_.localsigner.md) diff --git a/packages/docs/sdk/docs/wallet-local/modules/_local_wallet_.md b/packages/docs/sdk/docs/wallet-local/modules/_local_wallet_.md deleted file mode 100644 index daf51ccec1f..00000000000 --- a/packages/docs/sdk/docs/wallet-local/modules/_local_wallet_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-local](../README.md) › ["local-wallet"](_local_wallet_.md) - -# Module: "local-wallet" - -## Index - -### Classes - -* [LocalWallet](../classes/_local_wallet_.localwallet.md) diff --git a/packages/docs/sdk/docs/wallet-remote/README.md b/packages/docs/sdk/docs/wallet-remote/README.md deleted file mode 100644 index 497c1f10a52..00000000000 --- a/packages/docs/sdk/docs/wallet-remote/README.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-remote](README.md) - -# @celo/wallet-remote - -## Index - -### Modules - -* ["remote-wallet"](modules/_remote_wallet_.md) diff --git a/packages/docs/sdk/docs/wallet-remote/classes/_remote_wallet_.remotewallet.md b/packages/docs/sdk/docs/wallet-remote/classes/_remote_wallet_.remotewallet.md deleted file mode 100644 index feb6f5398ce..00000000000 --- a/packages/docs/sdk/docs/wallet-remote/classes/_remote_wallet_.remotewallet.md +++ /dev/null @@ -1,214 +0,0 @@ -[@celo/wallet-remote](../README.md) › ["remote-wallet"](../modules/_remote_wallet_.md) › [RemoteWallet](_remote_wallet_.remotewallet.md) - -# Class: RemoteWallet <**TSigner**> - -Abstract class representing a remote wallet that requires async initialization - -## Type parameters - -▪ **TSigner**: *Signer* - -## Hierarchy - -* WalletBase‹TSigner› - - ↳ **RemoteWallet** - -## Implements - -* ReadOnlyWallet -* ReadOnlyWallet - -## Index - -### Methods - -* [computeSharedSecret](_remote_wallet_.remotewallet.md#computesharedsecret) -* [decrypt](_remote_wallet_.remotewallet.md#decrypt) -* [getAccounts](_remote_wallet_.remotewallet.md#getaccounts) -* [hasAccount](_remote_wallet_.remotewallet.md#hasaccount) -* [init](_remote_wallet_.remotewallet.md#init) -* [isSetupFinished](_remote_wallet_.remotewallet.md#issetupfinished) -* [removeAccount](_remote_wallet_.remotewallet.md#removeaccount) -* [signPersonalMessage](_remote_wallet_.remotewallet.md#signpersonalmessage) -* [signTransaction](_remote_wallet_.remotewallet.md#signtransaction) -* [signTypedData](_remote_wallet_.remotewallet.md#signtypeddata) - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`address`: Address, `publicKey`: string): *Promise‹Buffer›* - -*Inherited from [RemoteWallet](_remote_wallet_.remotewallet.md).[computeSharedSecret](_remote_wallet_.remotewallet.md#computesharedsecret)* - -Defined in wallet-base/lib/wallet-base.d.ts:64 - -Computes the shared secret (an ECDH key exchange object) between two accounts - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`publicKey` | string | - -**Returns:** *Promise‹Buffer›* - -___ - -### decrypt - -▸ **decrypt**(`address`: string, `ciphertext`: Buffer): *Promise‹Buffer›* - -*Inherited from [RemoteWallet](_remote_wallet_.remotewallet.md).[decrypt](_remote_wallet_.remotewallet.md#decrypt)* - -Defined in wallet-base/lib/wallet-base.d.ts:60 - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer›* - -___ - -### getAccounts - -▸ **getAccounts**(): *Address[]* - -*Overrides void* - -*Defined in [wallet-remote/src/remote-wallet.ts:61](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts#L61)* - -Get a list of accounts in the remote wallet - -**Returns:** *Address[]* - -___ - -### hasAccount - -▸ **hasAccount**(`address?`: Address): *boolean* - -*Overrides void* - -*Defined in [wallet-remote/src/remote-wallet.ts:70](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts#L70)* - -Returns true if account is in the remote wallet - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address?` | Address | Account to check | - -**Returns:** *boolean* - -___ - -### init - -▸ **init**(): *Promise‹void›* - -*Defined in [wallet-remote/src/remote-wallet.ts:20](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts#L20)* - -Discovers wallet accounts and caches results in memory -Idempotent to ensure multiple calls are benign - -**Returns:** *Promise‹void›* - -___ - -### isSetupFinished - -▸ **isSetupFinished**(): *boolean* - -*Defined in [wallet-remote/src/remote-wallet.ts:110](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts#L110)* - -**Returns:** *boolean* - -___ - -### removeAccount - -▸ **removeAccount**(`_address`: string): *void* - -*Inherited from [RemoteWallet](_remote_wallet_.remotewallet.md).[removeAccount](_remote_wallet_.remotewallet.md#removeaccount)* - -Defined in wallet-base/lib/wallet-base.d.ts:23 - -Removes the account with the given address. Needs to be implemented by subclass, otherwise throws error - -**Parameters:** - -Name | Type | ------- | ------ | -`_address` | string | - -**Returns:** *void* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`address`: Address, `data`: string): *Promise‹string›* - -*Overrides void* - -*Defined in [wallet-remote/src/remote-wallet.ts:89](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts#L89)* - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`data` | string | Hex string message to sign | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) - -___ - -### signTransaction - -▸ **signTransaction**(`txParams`: CeloTx): *Promise‹EncodedTransaction›* - -*Overrides void* - -*Defined in [wallet-remote/src/remote-wallet.ts:79](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts#L79)* - -Signs the EVM transaction using the signer pulled from the from field - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`txParams` | CeloTx | EVM transaction | - -**Returns:** *Promise‹EncodedTransaction›* - -___ - -### signTypedData - -▸ **signTypedData**(`address`: Address, `typedData`: EIP712TypedData): *Promise‹string›* - -*Overrides void* - -*Defined in [wallet-remote/src/remote-wallet.ts:99](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts#L99)* - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`typedData` | EIP712TypedData | the typed data object | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) diff --git a/packages/docs/sdk/docs/wallet-remote/modules/_remote_wallet_.md b/packages/docs/sdk/docs/wallet-remote/modules/_remote_wallet_.md deleted file mode 100644 index 97ee26a9e21..00000000000 --- a/packages/docs/sdk/docs/wallet-remote/modules/_remote_wallet_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-remote](../README.md) › ["remote-wallet"](_remote_wallet_.md) - -# Module: "remote-wallet" - -## Index - -### Classes - -* [RemoteWallet](../classes/_remote_wallet_.remotewallet.md) diff --git a/packages/docs/sdk/docs/wallet-rpc/README.md b/packages/docs/sdk/docs/wallet-rpc/README.md deleted file mode 100644 index cb4b3f6c22e..00000000000 --- a/packages/docs/sdk/docs/wallet-rpc/README.md +++ /dev/null @@ -1,12 +0,0 @@ -[@celo/wallet-rpc](README.md) - -# @celo/wallet-rpc - -## Index - -### Modules - -* ["rpc-signer"](modules/_rpc_signer_.md) -* ["rpc-wallet"](modules/_rpc_wallet_.md) -* ["test-utils/ganache.setup"](modules/_test_utils_ganache_setup_.md) -* ["test-utils/ganache.teardown"](modules/_test_utils_ganache_teardown_.md) diff --git a/packages/docs/sdk/docs/wallet-rpc/classes/_rpc_signer_.rpcsigner.md b/packages/docs/sdk/docs/wallet-rpc/classes/_rpc_signer_.rpcsigner.md deleted file mode 100644 index 909052f237f..00000000000 --- a/packages/docs/sdk/docs/wallet-rpc/classes/_rpc_signer_.rpcsigner.md +++ /dev/null @@ -1,198 +0,0 @@ -[@celo/wallet-rpc](../README.md) › ["rpc-signer"](../modules/_rpc_signer_.md) › [RpcSigner](_rpc_signer_.rpcsigner.md) - -# Class: RpcSigner - -Implements the signer interface on top of the JSON-RPC interface. - -## Hierarchy - -* **RpcSigner** - -## Implements - -* Signer - -## Index - -### Constructors - -* [constructor](_rpc_signer_.rpcsigner.md#constructor) - -### Methods - -* [computeSharedSecret](_rpc_signer_.rpcsigner.md#computesharedsecret) -* [decrypt](_rpc_signer_.rpcsigner.md#decrypt) -* [getNativeKey](_rpc_signer_.rpcsigner.md#getnativekey) -* [init](_rpc_signer_.rpcsigner.md#init) -* [isUnlocked](_rpc_signer_.rpcsigner.md#isunlocked) -* [signPersonalMessage](_rpc_signer_.rpcsigner.md#signpersonalmessage) -* [signRawTransaction](_rpc_signer_.rpcsigner.md#signrawtransaction) -* [signTransaction](_rpc_signer_.rpcsigner.md#signtransaction) -* [signTypedData](_rpc_signer_.rpcsigner.md#signtypeddata) -* [unlock](_rpc_signer_.rpcsigner.md#unlock) - -## Constructors - -### constructor - -\+ **new RpcSigner**(`rpc`: RpcCaller, `account`: string, `unlockBufferSeconds`: number, `unlockTime?`: undefined | number, `unlockDuration?`: undefined | number): *[RpcSigner](_rpc_signer_.rpcsigner.md)* - -*Defined in [wallet-rpc/src/rpc-signer.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L54)* - -Construct a new instance of the RPC signer - -**Parameters:** - -Name | Type | Default | Description | ------- | ------ | ------ | ------ | -`rpc` | RpcCaller | - | RPC caller instance | -`account` | string | - | Account address derived from the private key to be called in init | -`unlockBufferSeconds` | number | 5 | Number of seconds to shrink the unlocked duration by to account for latency and timing inconsistencies on the node | -`unlockTime?` | undefined | number | - | Timestamp in seconds when the signer was last unlocked | -`unlockDuration?` | undefined | number | - | Number of seconds that the signer was last unlocked for | - -**Returns:** *[RpcSigner](_rpc_signer_.rpcsigner.md)* - -## Methods - -### computeSharedSecret - -▸ **computeSharedSecret**(`_publicKey`: string): *Promise‹Buffer‹››* - -*Defined in [wallet-rpc/src/rpc-signer.ts:169](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L169)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_publicKey` | string | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### decrypt - -▸ **decrypt**(`ciphertext`: Buffer): *Promise‹Buffer‹››* - -*Defined in [wallet-rpc/src/rpc-signer.ts:160](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L160)* - -**Parameters:** - -Name | Type | ------- | ------ | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer‹››* - -___ - -### getNativeKey - -▸ **getNativeKey**(): *string* - -*Defined in [wallet-rpc/src/rpc-signer.ts:118](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L118)* - -**Returns:** *string* - -___ - -### init - -▸ **init**(`privateKey`: string, `passphrase`: string): *Promise‹string›* - -*Defined in [wallet-rpc/src/rpc-signer.ts:74](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L74)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | -`passphrase` | string | - -**Returns:** *Promise‹string›* - -___ - -### isUnlocked - -▸ **isUnlocked**(): *boolean* - -*Defined in [wallet-rpc/src/rpc-signer.ts:142](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L142)* - -**Returns:** *boolean* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`data`: string): *Promise‹object›* - -*Defined in [wallet-rpc/src/rpc-signer.ts:110](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L110)* - -**Parameters:** - -Name | Type | ------- | ------ | -`data` | string | - -**Returns:** *Promise‹object›* - -___ - -### signRawTransaction - -▸ **signRawTransaction**(`tx`: CeloTx): *Promise‹EncodedTransaction›* - -*Defined in [wallet-rpc/src/rpc-signer.ts:80](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L80)* - -**Parameters:** - -Name | Type | ------- | ------ | -`tx` | CeloTx | - -**Returns:** *Promise‹EncodedTransaction›* - -___ - -### signTransaction - -▸ **signTransaction**(): *Promise‹object›* - -*Defined in [wallet-rpc/src/rpc-signer.ts:97](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L97)* - -**Returns:** *Promise‹object›* - -___ - -### signTypedData - -▸ **signTypedData**(`typedData`: EIP712TypedData): *Promise‹object›* - -*Defined in [wallet-rpc/src/rpc-signer.ts:101](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L101)* - -**Parameters:** - -Name | Type | ------- | ------ | -`typedData` | EIP712TypedData | - -**Returns:** *Promise‹object›* - -___ - -### unlock - -▸ **unlock**(`passphrase`: string, `duration`: number): *Promise‹boolean›* - -*Defined in [wallet-rpc/src/rpc-signer.ts:120](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts#L120)* - -**Parameters:** - -Name | Type | ------- | ------ | -`passphrase` | string | -`duration` | number | - -**Returns:** *Promise‹boolean›* diff --git a/packages/docs/sdk/docs/wallet-rpc/classes/_rpc_wallet_.rpcwallet.md b/packages/docs/sdk/docs/wallet-rpc/classes/_rpc_wallet_.rpcwallet.md deleted file mode 100644 index b00ba0bb1af..00000000000 --- a/packages/docs/sdk/docs/wallet-rpc/classes/_rpc_wallet_.rpcwallet.md +++ /dev/null @@ -1,315 +0,0 @@ -[@celo/wallet-rpc](../README.md) › ["rpc-wallet"](../modules/_rpc_wallet_.md) › [RpcWallet](_rpc_wallet_.rpcwallet.md) - -# Class: RpcWallet - -## Hierarchy - -* RemoteWallet‹[RpcSigner](_rpc_signer_.rpcsigner.md)› - - ↳ **RpcWallet** - -## Implements - -* ReadOnlyWallet -* ReadOnlyWallet -* UnlockableWallet - -## Index - -### Constructors - -* [constructor](_rpc_wallet_.rpcwallet.md#constructor) - -### Properties - -* [isSetupFinished](_rpc_wallet_.rpcwallet.md#issetupfinished) - -### Methods - -* [addAccount](_rpc_wallet_.rpcwallet.md#addaccount) -* [computeSharedSecret](_rpc_wallet_.rpcwallet.md#computesharedsecret) -* [decrypt](_rpc_wallet_.rpcwallet.md#decrypt) -* [getAccounts](_rpc_wallet_.rpcwallet.md#getaccounts) -* [hasAccount](_rpc_wallet_.rpcwallet.md#hasaccount) -* [init](_rpc_wallet_.rpcwallet.md#init) -* [isAccountUnlocked](_rpc_wallet_.rpcwallet.md#isaccountunlocked) -* [loadAccountSigners](_rpc_wallet_.rpcwallet.md#loadaccountsigners) -* [removeAccount](_rpc_wallet_.rpcwallet.md#removeaccount) -* [signPersonalMessage](_rpc_wallet_.rpcwallet.md#signpersonalmessage) -* [signTransaction](_rpc_wallet_.rpcwallet.md#signtransaction) -* [signTypedData](_rpc_wallet_.rpcwallet.md#signtypeddata) -* [unlockAccount](_rpc_wallet_.rpcwallet.md#unlockaccount) - -## Constructors - -### constructor - -\+ **new RpcWallet**(`_provider`: Provider): *[RpcWallet](_rpc_wallet_.rpcwallet.md)* - -*Defined in [wallet-rpc/src/rpc-wallet.ts:18](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts#L18)* - -**Parameters:** - -Name | Type | ------- | ------ | -`_provider` | Provider | - -**Returns:** *[RpcWallet](_rpc_wallet_.rpcwallet.md)* - -## Properties - -### isSetupFinished - -• **isSetupFinished**: *function* - -*Inherited from [RpcWallet](_rpc_wallet_.rpcwallet.md).[isSetupFinished](_rpc_wallet_.rpcwallet.md#issetupfinished)* - -Defined in wallet-remote/lib/remote-wallet.d.ts:51 - -#### Type declaration: - -▸ (): *boolean* - -## Methods - -### addAccount - -▸ **addAccount**(`privateKey`: string, `passphrase`: string): *Promise‹string›* - -*Defined in [wallet-rpc/src/rpc-wallet.ts:38](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts#L38)* - -**Parameters:** - -Name | Type | ------- | ------ | -`privateKey` | string | -`passphrase` | string | - -**Returns:** *Promise‹string›* - -___ - -### computeSharedSecret - -▸ **computeSharedSecret**(`address`: Address, `publicKey`: string): *Promise‹Buffer›* - -*Inherited from [RpcWallet](_rpc_wallet_.rpcwallet.md).[computeSharedSecret](_rpc_wallet_.rpcwallet.md#computesharedsecret)* - -Defined in wallet-base/lib/wallet-base.d.ts:64 - -Computes the shared secret (an ECDH key exchange object) between two accounts - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | Address | -`publicKey` | string | - -**Returns:** *Promise‹Buffer›* - -___ - -### decrypt - -▸ **decrypt**(`address`: string, `ciphertext`: Buffer): *Promise‹Buffer›* - -*Inherited from [RpcWallet](_rpc_wallet_.rpcwallet.md).[decrypt](_rpc_wallet_.rpcwallet.md#decrypt)* - -Defined in wallet-base/lib/wallet-base.d.ts:60 - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`ciphertext` | Buffer | - -**Returns:** *Promise‹Buffer›* - -___ - -### getAccounts - -▸ **getAccounts**(): *Address[]* - -*Inherited from [RpcWallet](_rpc_wallet_.rpcwallet.md).[getAccounts](_rpc_wallet_.rpcwallet.md#getaccounts)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:27 - -Get a list of accounts in the remote wallet - -**Returns:** *Address[]* - -___ - -### hasAccount - -▸ **hasAccount**(`address?`: Address): *boolean* - -*Inherited from [RpcWallet](_rpc_wallet_.rpcwallet.md).[hasAccount](_rpc_wallet_.rpcwallet.md#hasaccount)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:32 - -Returns true if account is in the remote wallet - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address?` | Address | Account to check | - -**Returns:** *boolean* - -___ - -### init - -▸ **init**(): *Promise‹void›* - -*Inherited from [RpcWallet](_rpc_wallet_.rpcwallet.md).[init](_rpc_wallet_.rpcwallet.md#init)* - -Defined in wallet-remote/lib/remote-wallet.d.ts:15 - -Discovers wallet accounts and caches results in memory -Idempotent to ensure multiple calls are benign - -**Returns:** *Promise‹void›* - -___ - -### isAccountUnlocked - -▸ **isAccountUnlocked**(`address`: string): *boolean* - -*Defined in [wallet-rpc/src/rpc-wallet.ts:54](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts#L54)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | - -**Returns:** *boolean* - -___ - -### loadAccountSigners - -▸ **loadAccountSigners**(): *Promise‹Map‹string, [RpcSigner](_rpc_signer_.rpcsigner.md)››* - -*Overrides void* - -*Defined in [wallet-rpc/src/rpc-wallet.ts:25](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts#L25)* - -**Returns:** *Promise‹Map‹string, [RpcSigner](_rpc_signer_.rpcsigner.md)››* - -___ - -### removeAccount - -▸ **removeAccount**(`_address`: string): *void* - -*Inherited from [RpcWallet](_rpc_wallet_.rpcwallet.md).[removeAccount](_rpc_wallet_.rpcwallet.md#removeaccount)* - -Defined in wallet-base/lib/wallet-base.d.ts:23 - -Removes the account with the given address. Needs to be implemented by subclass, otherwise throws error - -**Parameters:** - -Name | Type | ------- | ------ | -`_address` | string | - -**Returns:** *void* - -___ - -### signPersonalMessage - -▸ **signPersonalMessage**(`address`: Address, `data`: string): *Promise‹string›* - -*Inherited from [RpcWallet](_rpc_wallet_.rpcwallet.md).[signPersonalMessage](_rpc_wallet_.rpcwallet.md#signpersonalmessage)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:43 - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`data` | string | Hex string message to sign | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) - -___ - -### signTransaction - -▸ **signTransaction**(`txParams`: CeloTx): *Promise‹EncodedTransaction›* - -*Overrides void* - -*Defined in [wallet-rpc/src/rpc-wallet.ts:64](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts#L64)* - -Gets the signer based on the 'from' field in the tx body - -**`dev`** overrides WalletBase.signTransaction - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`txParams` | CeloTx | Transaction to sign | - -**Returns:** *Promise‹EncodedTransaction›* - -___ - -### signTypedData - -▸ **signTypedData**(`address`: Address, `typedData`: EIP712TypedData): *Promise‹string›* - -*Inherited from [RpcWallet](_rpc_wallet_.rpcwallet.md).[signTypedData](_rpc_wallet_.rpcwallet.md#signtypeddata)* - -*Overrides void* - -Defined in wallet-remote/lib/remote-wallet.d.ts:49 - -**Parameters:** - -Name | Type | Description | ------- | ------ | ------ | -`address` | Address | Address of the account to sign with | -`typedData` | EIP712TypedData | the typed data object | - -**Returns:** *Promise‹string›* - -Signature hex string (order: rsv) - -___ - -### unlockAccount - -▸ **unlockAccount**(`address`: string, `passphrase`: string, `duration`: number): *Promise‹boolean›* - -*Defined in [wallet-rpc/src/rpc-wallet.ts:49](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts#L49)* - -**Parameters:** - -Name | Type | ------- | ------ | -`address` | string | -`passphrase` | string | -`duration` | number | - -**Returns:** *Promise‹boolean›* diff --git a/packages/docs/sdk/docs/wallet-rpc/enums/_rpc_wallet_.rpcwalleterrors.md b/packages/docs/sdk/docs/wallet-rpc/enums/_rpc_wallet_.rpcwalleterrors.md deleted file mode 100644 index 906e26b44b3..00000000000 --- a/packages/docs/sdk/docs/wallet-rpc/enums/_rpc_wallet_.rpcwalleterrors.md +++ /dev/null @@ -1,26 +0,0 @@ -[@celo/wallet-rpc](../README.md) › ["rpc-wallet"](../modules/_rpc_wallet_.md) › [RpcWalletErrors](_rpc_wallet_.rpcwalleterrors.md) - -# Enumeration: RpcWalletErrors - -## Index - -### Enumeration members - -* [AccountAlreadyExists](_rpc_wallet_.rpcwalleterrors.md#accountalreadyexists) -* [FetchAccounts](_rpc_wallet_.rpcwalleterrors.md#fetchaccounts) - -## Enumeration members - -### AccountAlreadyExists - -• **AccountAlreadyExists**: = "RpcWallet: account already exists" - -*Defined in [wallet-rpc/src/rpc-wallet.ts:10](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts#L10)* - -___ - -### FetchAccounts - -• **FetchAccounts**: = "RpcWallet: failed to fetch accounts from server" - -*Defined in [wallet-rpc/src/rpc-wallet.ts:9](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts#L9)* diff --git a/packages/docs/sdk/docs/wallet-rpc/modules/_rpc_signer_.md b/packages/docs/sdk/docs/wallet-rpc/modules/_rpc_signer_.md deleted file mode 100644 index b038909e11b..00000000000 --- a/packages/docs/sdk/docs/wallet-rpc/modules/_rpc_signer_.md +++ /dev/null @@ -1,9 +0,0 @@ -[@celo/wallet-rpc](../README.md) › ["rpc-signer"](_rpc_signer_.md) - -# Module: "rpc-signer" - -## Index - -### Classes - -* [RpcSigner](../classes/_rpc_signer_.rpcsigner.md) diff --git a/packages/docs/sdk/docs/wallet-rpc/modules/_rpc_wallet_.md b/packages/docs/sdk/docs/wallet-rpc/modules/_rpc_wallet_.md deleted file mode 100644 index 26d9e8e180e..00000000000 --- a/packages/docs/sdk/docs/wallet-rpc/modules/_rpc_wallet_.md +++ /dev/null @@ -1,13 +0,0 @@ -[@celo/wallet-rpc](../README.md) › ["rpc-wallet"](_rpc_wallet_.md) - -# Module: "rpc-wallet" - -## Index - -### Enumerations - -* [RpcWalletErrors](../enums/_rpc_wallet_.rpcwalleterrors.md) - -### Classes - -* [RpcWallet](../classes/_rpc_wallet_.rpcwallet.md) diff --git a/packages/docs/sdk/docs/wallet-rpc/modules/_test_utils_ganache_setup_.md b/packages/docs/sdk/docs/wallet-rpc/modules/_test_utils_ganache_setup_.md deleted file mode 100644 index 47a493df2ce..00000000000 --- a/packages/docs/sdk/docs/wallet-rpc/modules/_test_utils_ganache_setup_.md +++ /dev/null @@ -1,19 +0,0 @@ -[@celo/wallet-rpc](../README.md) › ["test-utils/ganache.setup"](_test_utils_ganache_setup_.md) - -# Module: "test-utils/ganache.setup" - -## Index - -### Functions - -* [setup](_test_utils_ganache_setup_.md#setup) - -## Functions - -### setup - -▸ **setup**(): *Promise‹void›* - -*Defined in [wallet-rpc/src/test-utils/ganache.setup.ts:4](https://github.com/celo-org/celo-monorepo/blob/master/packages/sdk/wallets/wallet-rpc/src/test-utils/ganache.setup.ts#L4)* - -**Returns:** *Promise‹void›* diff --git a/packages/docs/sdk/docs/wallet-rpc/modules/_test_utils_ganache_teardown_.md b/packages/docs/sdk/docs/wallet-rpc/modules/_test_utils_ganache_teardown_.md deleted file mode 100644 index dcb0cc0635e..00000000000 --- a/packages/docs/sdk/docs/wallet-rpc/modules/_test_utils_ganache_teardown_.md +++ /dev/null @@ -1,5 +0,0 @@ -[@celo/wallet-rpc](../README.md) › ["test-utils/ganache.teardown"](_test_utils_ganache_teardown_.md) - -# Module: "test-utils/ganache.teardown" - - diff --git a/packages/docs/sdk/mkdocs.yml b/packages/docs/sdk/mkdocs.yml deleted file mode 100644 index 24af4e6289a..00000000000 --- a/packages/docs/sdk/mkdocs.yml +++ /dev/null @@ -1,3 +0,0 @@ -site_name: Celo SDK Docs -site_url: https://celo-sdk-docs.readthedocs.io/en/latest/ -theme: readthedocs diff --git a/packages/docs/sdk/requirements.txt b/packages/docs/sdk/requirements.txt deleted file mode 100644 index 28c3b7cbe6c..00000000000 --- a/packages/docs/sdk/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -jinja2==3.0.3 diff --git a/packages/env-tests/tsconfig.json b/packages/env-tests/tsconfig.json index bee1258249d..9125c54a73a 100644 --- a/packages/env-tests/tsconfig.json +++ b/packages/env-tests/tsconfig.json @@ -5,6 +5,5 @@ "outDir": "lib", "resolveJsonModule": true }, - "include": ["src/**/*", "types/**/*", "src/utils/timezones.json", "../../node_modules/@celo/contractkit/types", "index.d.ts"], - "references": [{ "path": "../sdk/utils" }] + "include": ["src/**/*", "types/**/*", "../../node_modules/@celo/contractkit/types", "index.d.ts"], } diff --git a/packages/metadata-crawler/.gitignore b/packages/metadata-crawler/.gitignore deleted file mode 100644 index 4fd586cad7a..00000000000 --- a/packages/metadata-crawler/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib/ -tmp/ -.tmp/ \ No newline at end of file diff --git a/packages/metadata-crawler/CHANGELOG.md b/packages/metadata-crawler/CHANGELOG.md deleted file mode 100644 index 0d85ca35b43..00000000000 --- a/packages/metadata-crawler/CHANGELOG.md +++ /dev/null @@ -1,67 +0,0 @@ -# @celo/metadata-crawler - -## 0.0.4-beta.0 - -### Patch Changes - -- Updated dependencies [1c9c844cf] - - @celo/contractkit@6.0.0-beta.0 -## 0.0.4 - -### Patch Changes - -- Updated dependencies [9ab9d00eb] -- Updated dependencies [1c9c844cf] -- Updated dependencies [9ab9d00eb] - - @celo/contractkit@6.0.0 - -## 0.0.3 - -### Patch Changes - -- Updated dependencies -- Updated dependencies [679ef0c60] -- Updated dependencies [32face3d8] -- Updated dependencies [87647b46b] - - @celo/contractkit@5.2.0 - - @celo/connect@5.1.1 - - @celo/utils@5.0.6 - -## 0.0.3-beta.0 - -### Patch Changes - -- Updated dependencies -- Updated dependencies [32face3d8] -- Updated dependencies [87647b46b] - - @celo/contractkit@5.2.0-beta.0 - - @celo/connect@5.1.1-beta.0 - - @celo/utils@5.0.6-beta.0 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] - - @celo/contractkit@5.1.0 - - @celo/connect@5.1.0 - - @celo/utils@5.0.5 - -## 0.0.2-beta.0 - -### Patch Changes - -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] - - @celo/contractkit@5.1.0-beta.0 - - @celo/connect@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 diff --git a/packages/metadata-crawler/README.md b/packages/metadata-crawler/README.md deleted file mode 100644 index 4f7ad561fd5..00000000000 --- a/packages/metadata-crawler/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Metadata Crawler - -This package connects to Blockscout database, get all the metadata urls, -verify the metadata claims and update the database if the user claims -could be verified succesfully. - -For this package to work properly, the software must have SELECT and UPDATE -access to the Blockscout database. - - -## Build - -You can build the crawler executing: - -```bash -yarn && yarn build -``` - -## Running the crawler - -For connecting to the Blockscout is necessary to setup the following environment variables: - -```bash -export PGUSER="postgres" # Database user -export PGPASSWORD="" # Database password -export PGHOST="127.0.0.1" # Database host -export PGPORT="5432" # Database port -export PGDATABASE="blockscout" # Database name -export PROVIDER_URL="http://localhost:8545" # Provider Url -``` - -You can start the crawler executing: - -```bash -yarn dev -``` diff --git a/packages/metadata-crawler/index.d.ts b/packages/metadata-crawler/index.d.ts deleted file mode 100644 index 102dc17cf17..00000000000 --- a/packages/metadata-crawler/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module 'bunyan-debug-stream' diff --git a/packages/metadata-crawler/package.json b/packages/metadata-crawler/package.json deleted file mode 100644 index 7bf08abfe2c..00000000000 --- a/packages/metadata-crawler/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "@celo/metadata-crawler", - "version": "0.0.4", - "description": "Celo metadata crawler", - "main": "index.js", - "types": "./lib/index.d.ts", - "author": "Celo", - "license": "Apache-2.0", - "homepage": "https://github.com/celo-org/celo-monorepo/tree/master/packages/metadata-crawler", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/metadata-crawler", - "dependencies": { - "@celo/connect": "^5.1.1", - "@celo/contractkit": "^6.0.0", - "@celo/utils": "^5.0.6", - "@types/pg": "^7.14.3", - "bunyan": "1.8.12", - "bunyan-gke-stackdriver": "0.1.2", - "debug": "^4.1.1", - "dotenv": "^8.2.0", - "googleapis": "^39.2.0", - "pg": "^7.18.0", - "ts-node": "^10.9.1", - "web3": "1.10.0" - }, - "devDependencies": { - "@types/bunyan": "1.8.8", - "@types/dotenv": "^8.2.0", - "bunyan-debug-stream": "^2.0.0" - }, - "scripts": { - "dev": "ts-node src/crawler.ts", - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "clean:all": "yarn clean && rm -rf lib" - }, - "private": true -} diff --git a/packages/metadata-crawler/src/crawler.ts b/packages/metadata-crawler/src/crawler.ts deleted file mode 100644 index bc6f8d1d132..00000000000 --- a/packages/metadata-crawler/src/crawler.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { Address } from '@celo/connect' -import { newKitFromWeb3 } from '@celo/contractkit' -import { ClaimTypes, IdentityMetadataWrapper } from '@celo/contractkit/lib/identity' -import { - verifyAccountClaim, - verifyDomainRecord, -} from '@celo/contractkit/lib/identity/claims/verify' -import { normalizeAddressWith0x, trimLeading0x } from '@celo/utils/lib/address' -import { concurrentMap } from '@celo/utils/lib/async' -import Logger from 'bunyan' -import { Client } from 'pg' -import Web3 from 'web3' -import { dataLogger, logger, operationalLogger } from './logger' - -const CONCURRENCY = 10 - -const PGUSER = process.env['PGUSER'] || 'postgres' -const PGPASSWORD = process.env['PGPASSWORD'] || '' -const PGHOST = process.env['PGHOST'] || '127.0.0.1' -const PGPORT = process.env['PGPORT'] || '5432' -const PGDATABASE = process.env['PGDATABASE'] || 'blockscout' -const PROVIDER_URL = process.env['PROVIDER_URL'] || 'http://localhost:8545' - -const client = new Client({ - user: PGUSER, - password: PGPASSWORD, - host: PGHOST, - port: Number(PGPORT), - database: PGDATABASE, -}) - -const kit = newKitFromWeb3(new Web3(PROVIDER_URL)) - -async function jsonQuery(query: string) { - let res = await client.query(`SELECT json_agg(t) FROM (${query}) t`) - return res.rows[0].json_agg -} - -async function createVerificationClaims( - address: string, - domain: string, - verified: boolean, - accounts: Array
-) { - await addDatabaseVerificationClaims(address, domain, verified) - await concurrentMap(CONCURRENCY, accounts, (account) => - addDatabaseVerificationClaims(account, domain, verified) - ) -} - -async function addDatabaseVerificationClaims(address: string, domain: string, verified: boolean) { - try { - const query = `INSERT INTO celo_claims (address, type, element, verified, timestamp, inserted_at, updated_at) VALUES - (decode($1, 'hex'), 'domain', $2, $3, now(), now(), now()) - ON CONFLICT (address, type, element) DO - UPDATE SET verified=$3, timestamp=now(), updated_at=now() ` - // Trim 0x to match Blockscout convention - const values = [trimLeading0x(address), domain, verified] - - await client - .query(query, values) - .catch((err) => logger.error({ err, query }, 'addDataBaseVerificationClaims error')) - .then(() => dataLogger.info({ domain, address }, 'VERIFIED_DOMAIN_CLAIM')) - } catch (err) { - logger.error({ err }, 'addDataBaseVerificationClaims error') - } -} - -async function getVerifiedAccounts(metadata: IdentityMetadataWrapper, address: Address) { - const unverifiedAccounts = metadata.filterClaims(ClaimTypes.ACCOUNT) - const accountVerification = await Promise.all( - unverifiedAccounts.map(async (claim) => ({ - claim, - verified: await verifyAccountClaim(kit, claim, address), - })) - ) - const accounts = accountVerification - .filter(({ verified }) => verified === undefined) - .map((a) => a.claim.address) - - return accounts -} - -async function getVerifiedDomains( - metadata: IdentityMetadataWrapper, - address: Address, - logger: Logger -) { - const unverifiedDomains = metadata.filterClaims(ClaimTypes.DOMAIN) - - const domainVerification = await concurrentMap(CONCURRENCY, unverifiedDomains, async (claim) => { - try { - const verificationStatus = await verifyDomainRecord(kit, claim, address) - logger.debug({ claim, verificationStatus }, `verified_domain`) - return { - claim, - verified: verificationStatus === undefined, - } - } catch (err) { - logger.error({ err, claim }) - return { - claim, - verified: false, - } - } - }) - - const domains = domainVerification.filter(({ verified }) => verified).map((_) => _.claim.domain) - - return domains -} - -async function processDomainClaimForValidator(item: { url: string; address: string }) { - const itemLogger = operationalLogger.child({ url: item.url, address: item.address }) - try { - itemLogger.debug('fetch_metadata') - const metadata = await IdentityMetadataWrapper.fetchFromURL( - await kit.contracts.getAccounts(), - item.url - ) - const verifiedAccounts = await getVerifiedAccounts(metadata, item.address) - const verifiedDomains = await getVerifiedDomains(metadata, item.address, itemLogger) - - await concurrentMap(CONCURRENCY, verifiedDomains, (domain) => - createVerificationClaims(item.address, domain, true, verifiedAccounts) - ) - - itemLogger.debug( - { - verfiedAccountClaims: verifiedAccounts.length, - verifiedDomainClaims: verifiedDomains.length, - }, - 'processDomainClaimForValidator done' - ) - } catch (err) { - itemLogger.error({ err }, 'processDomainClaimForValidator error') - } -} - -async function processDomainClaims() { - let items: { address: string; url: string }[] = await jsonQuery( - `SELECT address, url FROM celo_account WHERE url is NOT NULL ` - ) - - operationalLogger.debug({ length: items.length }, 'fetching all accounts') - - items = items || [] - items = items.map((a) => ({ - ...a, - // Addresses are stored by blockscout as just the bytes prepended with \x - address: normalizeAddressWith0x(a.address.substring(2)), - })) - - return concurrentMap(CONCURRENCY, items, (item) => processDomainClaimForValidator(item)) - .then(() => { - operationalLogger.info('Closing DB connecting and finishing') - }) - .catch((err) => { - operationalLogger.error({ err }, 'processDomainClaimForValidator error') - client.end() - process.exit(1) - }) -} - -async function main() { - operationalLogger.info({ host: PGHOST }, 'Connecting DB') - await client.connect() - - client.on('error', (err) => { - operationalLogger.error({ err }, 'Reconnecting after error') - client.connect() - }) - - await processDomainClaims() - - client.end() - process.exit(0) -} - -main().catch((err) => { - operationalLogger.error({ err }) - process.exit(1) -}) diff --git a/packages/metadata-crawler/src/env.ts b/packages/metadata-crawler/src/env.ts deleted file mode 100644 index fc8e9306b08..00000000000 --- a/packages/metadata-crawler/src/env.ts +++ /dev/null @@ -1,19 +0,0 @@ -import * as dotenv from 'dotenv' - -if (process.env.CONFIG) { - dotenv.config({ path: process.env.CONFIG }) -} - -export function fetchEnv(name: string): string { - if (process.env[name] === undefined || process.env[name] === '') { - console.error(`ENV var '${name}' was not defined`) - throw new Error(`ENV var '${name}' was not defined`) - } - return process.env[name] as string -} - -export function fetchEnvOrDefault(name: string, defaultValue: string): string { - return process.env[name] === undefined || process.env[name] === '' - ? defaultValue - : (process.env[name] as string) -} diff --git a/packages/metadata-crawler/src/logger.ts b/packages/metadata-crawler/src/logger.ts deleted file mode 100644 index d5a18a8288b..00000000000 --- a/packages/metadata-crawler/src/logger.ts +++ /dev/null @@ -1,30 +0,0 @@ -import Logger, { createLogger, levelFromName, LogLevelString, stdSerializers } from 'bunyan' -// @ts-ignore -import bunyanDebugStream from 'bunyan-debug-stream' -import { createStream } from 'bunyan-gke-stackdriver' -import { fetchEnvOrDefault } from './env' - -const logLevel = fetchEnvOrDefault('LOG_LEVEL', 'debug') as LogLevelString -const logFormat = fetchEnvOrDefault('LOG_FORMAT', 'human') - -let stream: any -switch (logFormat) { - case 'stackdriver': - stream = createStream(levelFromName[logLevel]) - break - case 'json': - stream = { stream: process.stdout, level: logLevel } - break - default: - stream = { level: logLevel, stream: bunyanDebugStream() } - break -} - -export const logger: Logger = createLogger({ - name: 'metadata-crawler', - serializers: stdSerializers, - streams: [stream], -}) - -export const operationalLogger = logger.child({ logger: 'operation' }) -export const dataLogger = logger.child({ logger: 'data' }) diff --git a/packages/metadata-crawler/tsconfig.json b/packages/metadata-crawler/tsconfig.json deleted file mode 100644 index bda5598040e..00000000000 --- a/packages/metadata-crawler/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src", "types/", "index.d.ts"], - "references": [{ "path": "../sdk/utils" }] -} \ No newline at end of file diff --git a/packages/protocol/lib/test-utils.ts b/packages/protocol/lib/test-utils.ts index 2e1f5a43278..8c5f9b9e114 100644 --- a/packages/protocol/lib/test-utils.ts +++ b/packages/protocol/lib/test-utils.ts @@ -16,7 +16,7 @@ import Web3 from 'web3'; import { ContractPackage, MENTO_PACKAGE } from '../contractPackages'; // tslint:disable: ordered-imports -import { fromFixed } from '@celo/utils/src/fixidity'; +import { fromFixed } from '@celo/utils/lib/fixidity'; import { bufferToHex, toBuffer } from '@ethereumjs/util'; import { utf8ToBytes } from 'ethereum-cryptography/utils'; import { AccountsInstance } from 'types'; @@ -259,7 +259,7 @@ function delay(time) { type ProxiedContractGetter = ( contractName: string, type: string, - contractPackage: ContractPackage, + contractPackage: ContractPackage, ) => Promise type ContractGetter = ( @@ -370,8 +370,8 @@ export function assertObjectWithBNEqual( } else if (Array.isArray(actual[k])) { const actualArray = actual[k] as [] const expectedArray = expected[k] as [] - if (actualArray.length === expectedArray.length - && actualArray.every(actualValue => isNumber(actualValue)) + if (actualArray.length === expectedArray.length + && actualArray.every(actualValue => isNumber(actualValue)) && expectedArray.every(expectedValue => isNumber(expectedValue))) { // if this is array of BNs, deepEqual will not work // since it is not able to compare number/string/BN @@ -686,7 +686,7 @@ export const unlockAndAuthorizeKey = async ( export const authorizeAndGenerateVoteSigner = async (accountsInstance: AccountsInstance, account: string, accounts: string[]) => { const roleHash = keccak256(utf8ToBytes('celo.org/core/vote')) const role = bufferToHex(toBuffer(roleHash)) - + const signer = await unlockAndAuthorizeKey( KeyOffsets.VALIDATING_KEY_OFFSET, accountsInstance.authorizeVoteSigner, diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md deleted file mode 100644 index a1a695d8da7..00000000000 --- a/packages/sdk/CHANGELOG.md +++ /dev/null @@ -1,200 +0,0 @@ -# Changelog -All notable changes to the [Celo SDK](https://docs.celo.org/developer-guide/sdk-code-reference) will be documented in this file. - -This package will follow the release process outlined [here](https://docs.celo.org/community/release-process). - - -Bug Fixes -- one-line summary - [#](link PR) - -Other Changes -- one-line summary - [#](link PR) -- migrated @celo/wallet-walletconnect from celo/celo-monorepo to celo/use-contractkit - - -## Development (not published yet) - -Breaking Changes: - -Deleted dappkit following the [clabs announcement](https://forum.celo.org/t/sunsetting-dappkit/5336). - -### **[2.0.0]** - -See [Upgrade Guide](https://docs.celo.org/developer-guide/contractkit/migrating-to-contractkit-v2) - -Breaking Changes - -for detail info see [#9127](https://github.com/celo-org/celo-monorepo/pull/9127) - -- @celo/contractkit - - AccountsWrapper.authorizeValidatorSigner now requires a ValidatorWrapper as third param - - kit is now longer required when constructing WrapperCache, AddressRegistry, Contract Wrappers - - proxySend now takes a Connection rather than a Kit - -- @celo/utils - - - Removes phone and country related functions from utils. Now in [phone-utils](https://github.com/celo-org/celo-monorepo/pull/8987) - - - comment encryption, bls and mneumonic functions moved to @celo/cryptographic-utils - - -Features - -- All Packages Now marked as Side Effect: false - -- Bundle Sized Reduced 45% - -- Adds the @celo/encrypted-backup package - [#8896] [#9348] [#9413] [#9434] - -[#8896]: https://github.com/celo-org/celo-monorepo/pull/8896 -[#9348]: https://github.com/celo-org/celo-monorepo/pull/9348 -[#9413]: https://github.com/celo-org/celo-monorepo/pull/9413 -[#9434]: https://github.com/celo-org/celo-monorepo/pull/9434 - -Bug Fixes / Package Updates - -- Upgrades bls12377, bip32, - - - -## Published - -### **[1.5.0]** -Features -- Adds cREAL support to contract kit [#9040](https://github.com/celo-org/celo-monorepo/pull/9040) - -### **[1.4.2]** -Bug Fixes -- Fixes wallet connect issue in @celo/wallet-walletconnect - - -### **[1.2.2]** -- 2021-07-08 -Features -- new package: JS keystore support [#8096](https://github.com/celo-org/celo-monorepo/pull/8096) -- Add euro in the currencies enum [#7786](https://github.com/celo-org/celo-monorepo/pull/7786) -- CIP10 contracts changes [#5913](https://github.com/celo-org/celo-monorepo/pull/5913) -- Use Node 12 [#7851](https://github.com/celo-org/celo-monorepo/pull/7851) -- Add token address support to oracle commands [#8010](https://github.com/celo-org/celo-monorepo/pull/8010) -- Add manual personal_decrypt flow to WalletConnect CLI client [#8037](https://github.com/celo-org/celo-monorepo/pull/8037) -- Account utilities for normalization and heuristic based correction of mnemonic phrases [#8034] (https://github.com/celo-org/celo-monorepo/pull/8034) -- Add getBlockHeader utilities to connect package [#8213](https://github.com/celo-org/celo-monorepo/pull/8213) -- Granda Mento smart contract implementation [#8129](https://github.com/celo-org/celo-monorepo/pull/8129) - -Bug Fixes -- Fix governance:build-proposal bigNumber bug [#8028](https://github.com/celo-org/celo-monorepo/pull/8028) -- Remove ERC20 from core contracts [#8212](https://github.com/celo-org/celo-monorepo/pull/8212) - -Other Changes -- celocli: transfer:erc20 and balance commands [#7753](https://github.com/celo-org/celo-monorepo/pull/7753) -- Tutorial: Integrating WalletConnect into your DApp [#7802](https://github.com/celo-org/celo-monorepo/pull/7802) -- chore: remove @umpirsky/country-list package to save space [#7895](https://github.com/celo-org/celo-monorepo/pull/7895) -- Add script for running + testing eth_signTypedData [#7951](https://github.com/celo-org/celo-monorepo/pull/7951) -- Bump walletConnect version [#8012](https://github.com/celo-org/celo-monorepo/pull/8012) -- Upgrade vulnerable dependencies [#8073](https://github.com/celo-org/celo-monorepo/pull/8073) -- Add more params to status endpoint [#8125](https://github.com/celo-org/celo-monorepo/pull/8125) -- Add check for phrase length in mnemonic phrase correction [#8146](https://github.com/celo-org/celo-monorepo/pull/8146) -- JS Keystore Docs (with updated file structure) [#8185](https://github.com/celo-org/celo-monorepo/pull/8185) - -### **[1.2.1]** (only utils and base) -- 2021-04-22 - -Other Changes -- Unified web3 version (1.3.5) to reduce bundle size - - -### **[1.2.0]** -- 2021-04-22 -Features -- cEUR ContractKit support - [#7257](https://github.com/celo-org/celo-monorepo/pull/7257) -- CK works with StableTokens not yet deployed - [#7524](https://github.com/celo-org/celo-monorepo/pull/7524) -- Decode Governance.setConstitution proposals - [#7415](https://github.com/celo-org/celo-monorepo/pull/7415) -- Adds timeout functions to sdk/base package - [#7617](https://github.com/celo-org/celo-monorepo/pull/7617) - -Bug Fixes -- Dappkit fixes - [#7385](https://github.com/celo-org/celo-monorepo/pull/7385), [#7658](https://github.com/celo-org/celo-monorepo/pull/7658) -- WalletConnect improvements - [#7507](https://github.com/celo-org/celo-monorepo/pull/7507), [#7645](https://github.com/celo-org/celo-monorepo/pull/7645) -- Fix Governance.getProposalStage - [#7326](https://github.com/celo-org/celo-monorepo/pull/7326) - -Other Changes -- Update @celo/utils to allow AccountAuthResponseSuccess to include pepper - [#7546](https://github.com/celo-org/celo-monorepo/pull/7546) -- Updated ledger blob to support cEUR - [#7531](https://github.com/celo-org/celo-monorepo/pull/7531) -- Bump web3 from 1.3.4 to 1.3.5 - [#7684](https://github.com/celo-org/celo-monorepo/pull/7684) - -### **[1.1.0]** -- 2021-03-23 -Features -- Implementation of a WalletConnect compatible wallet - [#7122](https://github.com/celo-org/celo-monorepo/pull/7122) -- Add dappkit-web functionality - [#7328](https://github.com/celo-org/celo-monorepo/pull/7328) -- Adds Reserve unfrozen balance methods - [#7103](https://github.com/celo-org/celo-monorepo/pull/7103) -- Merge branch 'release/celo-core-contracts/3' - [#7183](https://github.com/celo-org/celo-monorepo/pull/7183) -- Improve granularity of governance tooling information - [#6475](https://github.com/celo-org/celo-monorepo/pull/6475) -- Upload/Download Profile Data with CIP8 - [#6604](https://github.com/celo-org/celo-monorepo/pull/6604) -- CIP8 name access via the CLI - [#6855](https://github.com/celo-org/celo-monorepo/pull/6855) -- Allow DEK to be a CIP8 signer - [#7467](https://github.com/celo-org/celo-monorepo/pull/7467) - -Bug Fixes -- Fixed references to goldToken in README - [#7189](https://github.com/celo-org/celo-monorepo/pull/7189) -- Update proposals.ts - [#7275](https://github.com/celo-org/celo-monorepo/pull/7275) -- Functions to invalidate the contracts cache - [#7203](https://github.com/celo-org/celo-monorepo/pull/7203) -- fix `rewards:show` - [#7325](https://github.com/celo-org/celo-monorepo/pull/7325) -- In `getReserveGoldBalance`, dont alias itself - [#7334](https://github.com/celo-org/celo-monorepo/pull/7334) -- Fix check for unregistered contracts - [#7319](https://github.com/celo-org/celo-monorepo/pull/7319) -- Fix no approval case for `governance:approver` information - [#7478](https://github.com/celo-org/celo-monorepo/pull/7478) - -Other Changes -- Makes the grace period variable governable - [#6987](https://github.com/celo-org/celo-monorepo/pull/6987) -- added cleaning command to dappKit - [#7205](https://github.com/celo-org/celo-monorepo/pull/7205) -- Support Portuguese mnemonics - [#7220](https://github.com/celo-org/celo-monorepo/pull/7220) -- Remove wallet code from the monorepo - [#7232](https://github.com/celo-org/celo-monorepo/pull/7232) -- Small fixes in the proposal process for cEUR/Release 3 - [#7184](https://github.com/celo-org/celo-monorepo/pull/7184) -- Improve dappkit example in README - [#7346](https://github.com/celo-org/celo-monorepo/pull/7346) -- Add instructions for Eth recovery with celowallet.app in documentation - [#7350](https://github.com/celo-org/celo-monorepo/pull/7350) -- Fix packages vulnerabilities - [#7476](https://github.com/celo-org/celo-monorepo/pull/7476) - - -### **[1.0.2]** -- 2021-02-16 -Features -- Show owner in `releasegold:show` - [#6608](https://github.com/celo-org/celo-monorepo/pull/6608) -- Metadata HTTPS Monitoring in `identity:current-attestation-services` - [#6806](https://github.com/celo-org/celo-monorepo/pull/6806) -- Determine signing algorithm based on key type for Azure HSM - [#6010](https://github.com/celo-org/celo-monorepo/pull/6010) - -Bug Fixes -- Fix 8 digit codes for mainnet - [#6663](https://github.com/celo-org/celo-monorepo/pull/6663) -- Fix Azure HSM Wallet PublicKey to Address conversion - [#6829](https://github.com/celo-org/celo-monorepo/pull/6829) -- Shouldn't import from src folder in peer package - [#7073](https://github.com/celo-org/celo-monorepo/pull/7073) -- Fix wallets-test [#7094](https://github.com/celo-org/celo-monorepo/pull/7094) - -Other Changes -- Small Docs Fixes related to CK1 release - [#6576](https://github.com/celo-org/celo-monorepo/pull/6576) -- Simplify SortedOracles API by allowing consumers to report to arbitrary Addresses - [#6898](https://github.com/celo-org/celo-monorepo/pull/6898) -- Updated DappKit README.md - [#6957](https://github.com/celo-org/celo-monorepo/pull/6957) - - -### **[1.0.1]** -- 2021-01-20 -Features -- Moved into SDK directory, and made compatible with SDK modularization changes - [#4790](https://github.com/celo-org/celo-monorepo/pull/4790) -- Added ability to specify per token expiry in sorted oracles - [#6125](https://github.com/celo-org/celo-monorepo/pull/6125) -- Adds metrics to ODIS - [#5749](https://github.com/celo-org/celo-monorepo/pull/5749) -- ODIS Client Update - [#5621](https://github.com/celo-org/celo-monorepo/pull/5621)] -- Extend SortedOraclesWrapper to support reporting for arbitrary currency pairs - [#6401](https://github.com/celo-org/celo-monorepo/pull/6401) -- IP712 signature over attestation security code - [#6209](https://github.com/celo-org/celo-monorepo/pull/6209) -- Enable 8 digit code verification and ignore attestation services below 1.1.0 - [#6437](https://github.com/celo-org/celo-monorepo/pull/6437) -- Handle revert flag from web3 for contract calls - [#6515](https://github.com/celo-org/celo-monorepo/pull/6515) -- CIP-21: Governable LookbackWindow Smart Contract changes - [#4747](https://github.com/celo-org/celo-monorepo/pull/4747) - -Bug Fixes -- Reverted PR #5709, "Add CUSD transfer to MTW" - [#5982](https://github.com/celo-org/celo-monorepo/pull/5982) -- Removes unnecessary check in vote function - [#6056](https://github.com/celo-org/celo-monorepo/pull/6056) -- Treat null receipt in Connection.getTransactionReceipt - [#6178](https://github.com/celo-org/celo-monorepo/pull/6178) -- Add id field to eth_sign and eth_signTypedData calls - [#6264](https://github.com/celo-org/celo-monorepo/pull/6264) -- Pin our version of secp256k1 - [#6432](https://github.com/celo-org/celo-monorepo/pull/6432) -- Updated ContractKit's README.md [#6450](https://github.com/celo-org/celo-monorepo/pull/6450) -- Fix @ledgerhq package version in CK and CLI - [#6496](https://github.com/celo-org/celo-monorepo/pull/6496) - -Other Changes -- Added ability to withdraw attestation rewards via CLI - [#6176](https://github.com/celo-org/celo-monorepo/pull/6176) -- Autogenerated documentation for all new sdk packages - [#6199](https://github.com/celo-org/celo-monorepo/pull/6199) -- Update homepage and repository for sdk packages in documentation - [#5998](https://github.com/celo-org/celo-monorepo/pull/5998) -- Add Portuguese in wallet - [#5945](https://github.com/celo-org/celo-monorepo/pull/5945) -- Mnemonic validation flexibility within Valora - [#6372](https://github.com/celo-org/celo-monorepo/pull/6372) -- Show the international format when displaying phone numbers in Valora [#6350](https://github.com/celo-org/celo-monorepo/pull/6350) -- Modified version of #6474: Fix dependencies to work on standalone installations and in environments without Git [#6516](https://github.com/celo-org/celo-monorepo/pull/6516) - -_Note: Changes before and including 1.0.0 are not documented_ \ No newline at end of file diff --git a/packages/sdk/base/.gitignore b/packages/sdk/base/.gitignore deleted file mode 100644 index 592a8d4a357..00000000000 --- a/packages/sdk/base/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.js -!jest.config.js -lib \ No newline at end of file diff --git a/packages/sdk/base/.npmignore b/packages/sdk/base/.npmignore deleted file mode 100644 index 6bc36640606..00000000000 --- a/packages/sdk/base/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -/node_modules -/coverage -/tslint.json -/tsconfig.json -/test -/src - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/base/CHANGELOG.md b/packages/sdk/base/CHANGELOG.md deleted file mode 100644 index 6f3f19038dc..00000000000 --- a/packages/sdk/base/CHANGELOG.md +++ /dev/null @@ -1,25 +0,0 @@ -# @celo/base - -## 6.0.0 - -### Major Changes - -- 97d5ccf43: Remove getIdentifierHash, IdentifierPrefix, getIdentifierPrefix. These have been moved to @celo/odis-identifiers - -## 6.0.0-beta.0 - -### Major Changes - -- 97d5ccf43: Remove getIdentifierHash, IdentifierPrefix, getIdentifierPrefix. These have been moved to @celo/odis-identifiers - -## 5.0.5 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other - -## 5.0.5-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other diff --git a/packages/sdk/base/README.MD b/packages/sdk/base/README.MD deleted file mode 100644 index fdf32a7b3d1..00000000000 --- a/packages/sdk/base/README.MD +++ /dev/null @@ -1,24 +0,0 @@ - -# @celo/base - -This package contains shared classes and functions used by other celo packages. It was designed to have minimal external dependencies. (for shared celo functions that have big external dependencies see the @celo/utils, @celo/cryptographic-utils, @celo/phone-utils, @celo/network-utils packages) - - -## Notable Types - -```typescript -// enums StableTokens and Token are enums, CeloTokenType is the type that must be one of the 2 enums -import { StableTokens, Token, CeloTokenType } from "@celo/base" - -StableTokens.cUSD - -StableTokens.cREAL - -Token.CELO -``` - -## Notable Functions - -```typescript -import { eqAddress, normalizeAddress, isNullAddress } from "@celo/base" -``` diff --git a/packages/sdk/base/jest.config.js b/packages/sdk/base/jest.config.js deleted file mode 100644 index 53358d65426..00000000000 --- a/packages/sdk/base/jest.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/base/package.json b/packages/sdk/base/package.json deleted file mode 100644 index 417f5b19084..00000000000 --- a/packages/sdk/base/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@celo/base", - "version": "6.0.0", - "description": "Celo base common utils, no dependencies", - "author": "Celo", - "license": "Apache-2.0", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "sideEffects": false, - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/base", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/base", - "scripts": { - "prepublishOnly": "yarn build", - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand --ci", - "test:verbose": "jest --verbose", - "lint": "tslint -c tslint.json --project ." - }, - "files": [ - "lib/**/*" - ], - "dependencies": {}, - "devDependencies": { - "@celo/typescript": "0.0.1", - "bignumber.js": "^9.0.0", - "elliptic": "^6.5.4", - "web3-utils": "1.10.0" - } -} \ No newline at end of file diff --git a/packages/sdk/base/src/account.ts b/packages/sdk/base/src/account.ts deleted file mode 100644 index bd13ab40062..00000000000 --- a/packages/sdk/base/src/account.ts +++ /dev/null @@ -1,34 +0,0 @@ -export const CELO_DERIVATION_PATH_BASE = "m/44'/52752'/0'" - -export enum MnemonicStrength { - s128_12words = 128, - s256_24words = 256, -} - -export enum MnemonicLanguages { - chinese_simplified, - chinese_traditional, - english, - french, - italian, - japanese, - korean, - spanish, - portuguese, -} - -export type RandomNumberGenerator = ( - size: number, - callback: (err: Error | null, buf: Buffer) => void -) => void - -export interface Bip39 { - mnemonicToSeedSync: (mnemonic: string, password?: string) => Buffer - mnemonicToSeed: (mnemonic: string, password?: string) => Promise - generateMnemonic: ( - strength?: number, - rng?: RandomNumberGenerator, - wordlist?: string[] - ) => Promise - validateMnemonic: (mnemonic: string, wordlist?: string[]) => boolean -} diff --git a/packages/sdk/base/src/address.test.ts b/packages/sdk/base/src/address.test.ts deleted file mode 100644 index 8d27354278e..00000000000 --- a/packages/sdk/base/src/address.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { getAddressChunks, isNullAddress } from './address' - -describe(getAddressChunks, () => { - test('splits the address into chunks of 4 chars', async () => { - expect(getAddressChunks('0xce10ce10ce10ce10ce10ce10ce10ce10ce10ce10')).toEqual([ - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - ]) - }) -}) - -describe(isNullAddress, () => { - test('returns true for 0x0000000000000000000000000000000000000000', () => { - expect(isNullAddress('0x0000000000000000000000000000000000000000')).toBe(true) - }) - test('returns true for 0000000000000000000000000000000000000000', () => { - expect(isNullAddress('0000000000000000000000000000000000000000')).toBe(true) - }) - - test('returns false for 0xce10ce10ce10ce10ce10ce10ce10ce10ce10ce10', () => { - expect(isNullAddress('0xce10ce10ce10ce10ce10ce10ce10ce10ce10ce10')).toBe(false) - }) - - test('returns false for 0x0x0000000000000000000000000000000000000000', () => { - expect(isNullAddress('0x0x0000000000000000000000000000000000000000')).toBe(false) - }) - - test('returns false for 0x000000000000000000000000000000000000ce10', () => { - expect(isNullAddress('0x000000000000000000000000000000000000ce10')).toBe(false) - }) -}) diff --git a/packages/sdk/base/src/address.ts b/packages/sdk/base/src/address.ts deleted file mode 100644 index 9eea852b30d..00000000000 --- a/packages/sdk/base/src/address.ts +++ /dev/null @@ -1,87 +0,0 @@ -const HEX_REGEX = /^0x[0-9A-F]*$/i - -export type Address = string - -export type StrongAddress = `0x${string}` - -export const eqAddress = (a: Address, b: Address) => normalizeAddress(a) === normalizeAddress(b) - -export const normalizeAddress = (a: Address) => trimLeading0x(a).toLowerCase() - -export const isNullAddress = (a: Address) => normalizeAddress(a) === normalizeAddress(NULL_ADDRESS) - -export const normalizeAddressWith0x = (a: Address) => ensureLeading0x(a).toLowerCase() - -export const trimLeading0x = (input: string) => (input.startsWith('0x') ? input.slice(2) : input) - -export const ensureLeading0x = (input: string): StrongAddress => - input.startsWith('0x') ? (input as StrongAddress) : (`0x${input}` as const) - -// Turns '0xce10ce10ce10ce10ce10ce10ce10ce10ce10ce10' -// into ['ce10','ce10','ce10','ce10','ce10','ce10','ce10','ce10','ce10','ce10'] -export const getAddressChunks = (input: string): string[] => - trimLeading0x(input).match(/.{1,4}/g) || [] - -export const isHexString = (input: string) => HEX_REGEX.test(input) - -export const hexToBuffer = (input: string) => Buffer.from(trimLeading0x(input), 'hex') - -export const bufferToHex = (buf: Buffer) => ensureLeading0x(buf.toString('hex')) - -export const NULL_ADDRESS = '0x0000000000000000000000000000000000000000' - -export const findAddressIndex = (address: Address, addresses: Address[]) => - addresses.findIndex((x) => eqAddress(x, address)) - -// Returns an array of indices mapping the entries of oldAddress[] to newAddress[] -export const mapAddressListOnto = (oldAddress: Address[], newAddress: Address[]) => { - const oldAddressIndex: Array<{ - address: Address - index: number - }> = oldAddress.map((x: Address, index: number) => ({ address: normalizeAddress(x), index })) - - const newAddressIndex: Array<{ - address: Address - index: number - }> = newAddress.map((x: Address, index: number) => ({ address: normalizeAddress(x), index })) - - oldAddressIndex.sort((a, b) => a.address.localeCompare(b.address)) - newAddressIndex.sort((a, b) => a.address.localeCompare(b.address)) - const res = [...Array(oldAddress.length).fill(-1)] - - for (let i = 0, j = 0; i < oldAddress.length && j < newAddress.length; ) { - const cmp = oldAddressIndex[i].address.localeCompare(newAddressIndex[j].address) - if (cmp < 0) { - i++ - } else if (cmp > 0) { - j++ - } else { - // Address is present in both lists - res[oldAddressIndex[i].index] = newAddressIndex[j].index - i++ - j++ - } - } - return res -} - -// Returns data[] reordered by mapAddressListOnto(), and initiaValue for any entry of -// oldAddress[] not present in newAddress[]. -export function mapAddressListDataOnto( - data: T[], - oldAddress: Address[], - newAddress: Address[], - initialValue: T -): T[] { - const res = [...Array(oldAddress.length).fill(initialValue)] - if (data.length === 0) { - return res - } - const addressIndexMap = mapAddressListOnto(oldAddress, newAddress) - for (let i = 0; i < addressIndexMap.length; i++) { - if (addressIndexMap[i] >= 0) { - res[addressIndexMap[i]] = data[i] - } - } - return res -} diff --git a/packages/sdk/base/src/async.test.ts b/packages/sdk/base/src/async.test.ts deleted file mode 100644 index 0a67acbced0..00000000000 --- a/packages/sdk/base/src/async.test.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { - concurrentMap, - retryAsync, - retryAsyncWithBackOffAndTimeout, - selectiveRetryAsyncWithBackOff, - sleep, - timeout, -} from './async' - -describe('retryAsync()', () => { - test('tries once if it works', async () => { - const mockFunction = jest.fn() - await retryAsync(mockFunction, 3, [], 1) - expect(mockFunction).toHaveBeenCalledTimes(1) - }) - - test('retries n times', async () => { - const mockFunction = jest.fn(() => { - throw new Error('error') - }) - - try { - await retryAsync(mockFunction, 3, [], 1) - expect(false).toBeTruthy() - } catch (error) { - // should never happen - } - - expect(mockFunction).toHaveBeenCalledTimes(3) - }) -}) - -describe('selectiveRetryAsyncWithBackOff()', () => { - test('tries only once if error is in dontRetry array', async () => { - const mockFunction = jest.fn() - mockFunction.mockImplementation(() => { - throw new Error('test error 400') - }) - let didThrowError = false - try { - await selectiveRetryAsyncWithBackOff(mockFunction, 3, ['test error'], []) - } catch { - didThrowError = true - } - expect(mockFunction).toHaveBeenCalledTimes(1) - expect(didThrowError).toBeTruthy() - }) -}) - -describe('retryAsyncWithBackOffAndTimeout()', () => { - test('tries once if it works', async () => { - const mockFunction = jest.fn(async () => { - await sleep(10) - return true - }) - const result: boolean = await retryAsyncWithBackOffAndTimeout( - mockFunction, - 3, - [], - 1 - ) - expect(result).toBeTruthy() - expect(mockFunction).toHaveBeenCalledTimes(1) - }) - - test('retries n times on failure', async () => { - const mockFunction = jest.fn(() => { - throw new Error('forced error') - }) - - try { - await retryAsyncWithBackOffAndTimeout(mockFunction, 3, [], 1, 1, 100) - expect(false).toBeTruthy() - } catch (error: any) { - expect(error.message).toContain('forced error') - } - expect(mockFunction).toHaveBeenCalledTimes(3) - }) - - test('fails on timeout', async () => { - const mockFunction = jest.fn(async () => { - await sleep(1000) - }) - - try { - await retryAsyncWithBackOffAndTimeout(mockFunction, 3, [], 1, 1, 100) - expect(false).toBeTruthy() - } catch (error: any) { - expect(error.message).toContain('Timed out') - } - - expect(mockFunction).toHaveBeenCalledTimes(1) - }) -}) - -const counter = () => { - let value = 0 - - return { - val() { - return value - }, - async inc(x: number) { - await sleep(5) - value++ - return x * x - }, - } -} - -describe('concurrentMap()', () => { - it('should be equivalent to Promise.all(xs.map())', async () => { - const fn = async (x: number) => x * x - - const xs = [1, 3, 4, 5, 6, 23, 90] - const expected = await Promise.all(xs.map(fn)) - const result = await concurrentMap(3, xs, fn) - expect(result).toEqual(expected) - }) - - // TODO this test is flaky, disabling for now - it.skip('should respect the concurrency level', async () => { - const c1 = counter() - const c2 = counter() - - const xs = [1, 3, 4, 5, 6, 23, 90] - - // launch both task, but don't wait for them - const p1 = Promise.all(xs.map(c1.inc)) - const p2 = concurrentMap(2, xs, c2.inc) - - // sleep enough for Promise.all to finish - await sleep(7) - expect(c1.val()).toEqual(xs.length) - expect(c1.val()).not.toEqual(c2.val()) - - await sleep(20) - expect(c1.val()).toEqual(c2.val()) - - await p1 - await p2 - }) - - it('should allow concurrency level > than length', async () => { - const c = counter() - const xs = [1, 3, 4] - const p = concurrentMap(5, xs, c.inc) - await sleep(7) - expect(c.val()).toEqual(xs.length) - await p - }) -}) - -describe('timeout()', () => { - test('fails on timeout', async () => { - const mockFunction = jest.fn(async () => { - await sleep(1000) - }) - - const timeoutError = Symbol() - try { - await timeout(mockFunction, [], 900, timeoutError) - expect(false).toBeTruthy() - } catch (error) { - expect(error).toBe(timeoutError) - } - - expect(mockFunction).toHaveBeenCalledTimes(1) - }) -}) diff --git a/packages/sdk/base/src/async.ts b/packages/sdk/base/src/async.ts deleted file mode 100644 index 74f4daa4df1..00000000000 --- a/packages/sdk/base/src/async.ts +++ /dev/null @@ -1,195 +0,0 @@ -import { Logger } from './logger' - -const TAG = 'utils/src/async' - -/** Sleep for a number of milliseconds */ -export function sleep(ms: number): Promise { - return new Promise((resolve) => setTimeout(resolve, ms)) -} - -type InFunction = (...params: T) => Promise - -// Retries an async function when it raises an exeption -// if all the tries fail it raises the last thrown exeption -export const retryAsync = async ( - inFunction: InFunction, - tries: number, - params: T, - delay = 100, - logger: Logger | null = null -) => { - let saveError - for (let i = 0; i < tries; i++) { - try { - // it awaits otherwise it'd always do all the retries - return await inFunction(...params) - } catch (error) { - await sleep(delay) - saveError = error - if (logger) { - logger(`${TAG}/@retryAsync, Failed to execute function on try #${i}:`, error) - } - } - } - - throw saveError -} - -// Retries an async function when it raises an exeption -// if all the tries fail it raises the last thrown exeption -export const retryAsyncWithBackOff = async ( - inFunction: InFunction, - tries: number, - params: T, - delay = 100, - factor = 1.5, - logger: Logger | null = null -) => { - let saveError - for (let i = 0; i < tries; i++) { - try { - // it awaits otherwise it'd always do all the retries - return await inFunction(...params) - } catch (error) { - await sleep(Math.pow(factor, i) * delay) - saveError = error - if (logger) { - logger(`${TAG}/@retryAsync, Failed to execute function on try #${i}`, error) - } - } - } - - throw saveError -} - -// Retries an async function when it raises an exeption -// if all the tries fail it raises the last thrown exeption -// throws automatically on specified errors -export const selectiveRetryAsyncWithBackOff = async ( - inFunction: InFunction, - tries: number, - dontRetry: string[], - params: T, - delay = 100, - factor = 1.5, - logger: Logger | null = null -) => { - let saveError - for (let i = 0; i < tries; i++) { - try { - // it awaits otherwise it'd always do all the retries - return await inFunction(...params) - } catch (error) { - if (dontRetry.some((msg) => (error as Error).message.includes(msg))) { - throw error - } - saveError = error - if (logger) { - logger(`${TAG}/@retryAsync, Failed to execute function on try #${i}`, error) - } - } - if (i < tries - 1) { - await sleep(Math.pow(factor, i) * delay) - } - } - - throw saveError -} - -// Retries an async function when it raises an exeption -// Terminates any ongoing request when the timeout is reached -// if all the tries fail it raises the last thrown exeption -export const retryAsyncWithBackOffAndTimeout = async ( - inFunction: InFunction, - tries: number, - params: T, - delayMs = 100, - factor = 1.5, - timeoutMs = 2000, - logger: Logger | null = null -) => { - return timeout( - retryAsyncWithBackOff, - [inFunction, tries, params, delayMs, factor, logger], - timeoutMs, - new Error(`Timed out after ${timeoutMs}ms`), - `${TAG}/@retryAsyncWithBackOffAndTimeout, Timed out after ${timeoutMs}ms`, - logger - ) -} - -/** - * Map an async function over a list xs with a given concurrency level - * - * @param concurrency number of `mapFn` concurrent executions - * @param xs list of value - * @param mapFn mapping function - */ -export async function concurrentMap( - concurrency: number, - xs: A[], - mapFn: (val: A, idx: number) => Promise -): Promise { - let res: B[] = [] - for (let i = 0; i < xs.length; i += concurrency) { - const remaining = xs.length - i - const sliceSize = Math.min(remaining, concurrency) - const slice = xs.slice(i, i + sliceSize) - res = res.concat(await Promise.all(slice.map((elem, index) => mapFn(elem, i + index)))) - } - return res -} - -/** - * Map an async function over the values in Object x with a given concurrency level - * - * @param concurrency number of `mapFn` concurrent executions - * @param x associative array of values - * @param mapFn mapping function - */ -export async function concurrentValuesMap( - concurrency: number, - x: Record, - mapFn: (val: IN, key: string) => Promise -): Promise> { - const xk = Object.keys(x) - const xv: IN[] = [] - xk.forEach((k) => xv.push(x[k])) - const res = await concurrentMap(concurrency, xv, (val: IN, idx: number) => mapFn(val, xk[idx])) - return res.reduce((output: Record, value: OUT, index: number) => { - output[xk[index]] = value - return output - }, {}) -} - -/** - * Wraps an async function in a timeout before calling it. - * - * @param inFunction The async function to call - * @param params The parameters of the async function - * @param timeoutMs The timeout in milliseconds - * @param timeoutError The value to which the returned Promise should reject to - */ -export const timeout = ( - inFunction: InFunction, - params: T, - timeoutMs: number, - timeoutError: any, - timeoutLogMsg: string | null = null, - logger: Logger | null = null -) => { - let timer: any - return Promise.race([ - inFunction(...params), - new Promise((_resolve, reject) => { - timer = setTimeout(() => { - if (logger) { - logger(timeoutLogMsg || `${TAG}/@timeout Timed out after ${timeoutMs}ms`) - } - reject(timeoutError) - }, timeoutMs) - }), - ]).finally(() => { - clearTimeout(timer) - }) -} diff --git a/packages/sdk/base/src/collections.test.ts b/packages/sdk/base/src/collections.test.ts deleted file mode 100644 index 635a6abab21..00000000000 --- a/packages/sdk/base/src/collections.test.ts +++ /dev/null @@ -1,211 +0,0 @@ -import BigNumber from 'bignumber.js' -import { NULL_ADDRESS } from './address' -import { - AddressListItem as ALI, - Comparator, - linkedListChange, - linkedListChanges, -} from './collections' - -type AddressListItem = ALI - -// BigNumber comparator -const bnc: Comparator = (a: BigNumber, b: BigNumber) => a.lt(b) - -describe('Collection', () => { - describe('linkedListChange', () => { - it('singleton list', () => { - const lst: AddressListItem[] = [{ address: 'address 1', value: new BigNumber(2) }] - const change: AddressListItem = { address: 'address 1', value: new BigNumber(20) } - const expected = { - lesser: NULL_ADDRESS, - greater: NULL_ADDRESS, - } - expect(linkedListChange(lst, change, bnc)).toMatchObject(expected) - }) - it('becoming greatest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(4) }, - { address: 'address 2', value: new BigNumber(4) }, - { address: 'address 3', value: new BigNumber(3) }, - { address: 'address 4', value: new BigNumber(2) }, - ] - const change: AddressListItem = { address: 'address 3', value: new BigNumber(20) } - const expected = { - lesser: 'address 1', - greater: NULL_ADDRESS, - } - expect(linkedListChange(lst, change, bnc)).toMatchObject(expected) - }) - it('becoming smallest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(4) }, - { address: 'address 2', value: new BigNumber(4) }, - { address: 'address 3', value: new BigNumber(3) }, - { address: 'address 4', value: new BigNumber(2) }, - { address: 'address 5', value: new BigNumber(2) }, - ] - const change: AddressListItem = { address: 'address 3', value: new BigNumber(1) } - const expected = { - lesser: NULL_ADDRESS, - greater: 'address 5', - } - expect(linkedListChange(lst, change, bnc)).toMatchObject(expected) - }) - it('change order', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const change: AddressListItem = { address: 'address 3', value: new BigNumber(2) } - const expected = { - greater: 'address 6', - lesser: 'address 7', - } - expect(linkedListChange(lst, change, bnc)).toMatchObject(expected) - }) - }) - describe('linkedListChanges', () => { - it('singleton list', () => { - const lst: AddressListItem[] = [{ address: 'address 1', value: new BigNumber(2) }] - const changes: AddressListItem[] = [{ address: 'address 1', value: new BigNumber(20) }] - const expected = { - lessers: ['0x0000000000000000000000000000000000000000'], - greaters: ['0x0000000000000000000000000000000000000000'], - } - expect(linkedListChanges(lst, changes, bnc)).toMatchObject(expected) - }) - it('becoming greatest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(4) }, - { address: 'address 2', value: new BigNumber(4) }, - { address: 'address 3', value: new BigNumber(3) }, - { address: 'address 4', value: new BigNumber(2) }, - ] - const changes: AddressListItem[] = [{ address: 'address 3', value: new BigNumber(20) }] - const expected = { - lessers: ['address 1'], - greaters: ['0x0000000000000000000000000000000000000000'], - } - expect(linkedListChanges(lst, changes, bnc)).toMatchObject(expected) - }) - it('becoming smallest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(4) }, - { address: 'address 2', value: new BigNumber(4) }, - { address: 'address 3', value: new BigNumber(3) }, - { address: 'address 4', value: new BigNumber(2) }, - { address: 'address 5', value: new BigNumber(2) }, - ] - const changes: AddressListItem[] = [{ address: 'address 3', value: new BigNumber(1) }] - const expected = { - lessers: ['0x0000000000000000000000000000000000000000'], - greaters: ['address 5'], - } - expect(linkedListChanges(lst, changes, bnc)).toMatchObject(expected) - }) - it('change order', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const changes: AddressListItem[] = [{ address: 'address 3', value: new BigNumber(2) }] - const expected = { - greaters: ['address 6'], - lessers: ['address 7'], - } - expect(linkedListChanges(lst, changes, bnc)).toMatchObject(expected) - }) - it('change order, become smallest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const changes: AddressListItem[] = [ - { address: 'address 3', value: new BigNumber(2) }, - { address: 'address 2', value: new BigNumber(0) }, - ] - const expected = { - greaters: ['address 6', 'address 7'], - lessers: ['address 7', NULL_ADDRESS], - } - expect(linkedListChanges(lst, changes, bnc)).toMatchObject(expected) - }) - it('change order, become largest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const changes: AddressListItem[] = [ - { address: 'address 3', value: new BigNumber(2) }, - { address: 'address 2', value: new BigNumber(8) }, - ] - const expected = { - greaters: ['address 6', NULL_ADDRESS], - lessers: ['address 7', 'address 1'], - } - expect(linkedListChanges(lst, changes, bnc)).toMatchObject(expected) - }) - it('change order, then replace with another', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const changes: AddressListItem[] = [ - { address: 'address 3', value: new BigNumber(2) }, - { address: 'address 2', value: new BigNumber(2) }, - ] - const expected = { - greaters: ['address 6', 'address 3'], - lessers: ['address 7', 'address 7'], - } - expect(linkedListChanges(lst, changes, bnc)).toMatchObject(expected) - }) - it('change order, then replace with another again', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(17) }, - { address: 'address 2', value: new BigNumber(15) }, - { address: 'address 3', value: new BigNumber(14) }, - { address: 'address 4', value: new BigNumber(13) }, - { address: 'address 5', value: new BigNumber(12) }, - { address: 'address 6', value: new BigNumber(11) }, - { address: 'address 7', value: new BigNumber(0) }, - ] - const changes: AddressListItem[] = [ - { address: 'address 3', value: new BigNumber(2) }, - { address: 'address 2', value: new BigNumber(1) }, - { address: 'address 4', value: new BigNumber(3) }, - ] - const expected = { - greaters: ['address 6', 'address 3', 'address 6'], - lessers: ['address 7', 'address 7', 'address 3'], - } - expect(linkedListChanges(lst, changes, bnc)).toMatchObject(expected) - }) - }) -}) diff --git a/packages/sdk/base/src/collections.ts b/packages/sdk/base/src/collections.ts deleted file mode 100644 index 17665eafc4e..00000000000 --- a/packages/sdk/base/src/collections.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { eqAddress, NULL_ADDRESS } from './address' - -export function zip(fn: (a: A, b: B) => C, as: A[], bs: B[]) { - const len = Math.min(as.length, bs.length) - const res: C[] = [] - - for (let i = 0; i < len; i++) { - res.push(fn(as[i], bs[i])) - } - return res -} - -export function zip3(as: A[], bs: B[], cs: C[]) { - const len = Math.min(as.length, bs.length, cs.length) - const res: Array<[A, B, C]> = [] - - for (let i = 0; i < len; i++) { - res.push([as[i], bs[i], cs[i]]) - } - return res -} - -export function zeroRange(to: number): number[] { - return Array.from(Array(to).keys()) -} - -// https://stackoverflow.com/questions/43118692/typescript-filter-out-nulls-from-an-array -export function notEmpty(value: TValue | null | undefined): value is TValue { - return value !== null && value !== undefined -} - -export function intersection(arrays: T[][]): T[] { - if (arrays.length === 0) { - return [] - } - - const sets = arrays.map((array) => new Set(array)) - const res: T[] = [] - - for (const elem of arrays[0]) { - if (sets.every((set) => set.has(elem))) { - res.push(elem) - } - } - - return res -} - -// Returns true iff a is lesser than b -export type Comparator = (a: T, b: T) => boolean - -// List of address value pairs sorted from greater to smaller -export interface AddressListItem { - address: string - value: T -} - -function upsert( - sortedList: Array>, - change: AddressListItem, - comparator: Comparator -) { - const oldIdx = sortedList.findIndex((a) => eqAddress(a.address, change.address)) - if (oldIdx === -1) { - throw new Error('') - } - sortedList.splice(oldIdx, 1) - const newIdx = sortedList.findIndex((a) => comparator(a.value, change.value)) - if (newIdx === -1) { - sortedList.push(change) - return sortedList.length - 1 - } else { - sortedList.splice(newIdx, 0, change) - return newIdx - } -} - -// Warning: sortedList is modified -function _linkedListChange( - sortedList: Array>, - change: AddressListItem, - comparator: Comparator -) { - const idx = upsert(sortedList, change, comparator) - const greater = idx === 0 ? NULL_ADDRESS : sortedList[idx - 1].address - const lesser = idx === sortedList.length - 1 ? NULL_ADDRESS : sortedList[idx + 1].address - return { lesser, greater } -} - -export function linkedListChange( - sortedList: Array>, - change: AddressListItem, - comparator: Comparator -): { lesser: string; greater: string; list: Array> } { - const list = sortedList.concat() - const { lesser, greater } = _linkedListChange(list, change, comparator) - return { lesser, greater, list } -} - -export function linkedListChanges( - sortedList: Array>, - changeList: Array>, - comparator: Comparator -): { lessers: string[]; greaters: string[]; list: Array> } { - const listClone = [...sortedList] - const lessers: string[] = [] - const greaters: string[] = [] - for (const it of changeList) { - const { lesser, greater } = _linkedListChange(listClone, it, comparator) - lessers.push(lesser) - greaters.push(greater) - } - return { lessers, greaters, list: listClone } -} diff --git a/packages/sdk/base/src/contacts.ts b/packages/sdk/base/src/contacts.ts deleted file mode 100644 index f655720212d..00000000000 --- a/packages/sdk/base/src/contacts.ts +++ /dev/null @@ -1,31 +0,0 @@ -export interface ContactPhoneNumber { - label?: string - number?: string -} - -export interface MinimalContact { - recordID: string - displayName?: string - phoneNumbers?: ContactPhoneNumber[] - thumbnailPath?: string -} - -export const getContactPhoneNumber = (contact: MinimalContact) => { - if (!contact) { - throw new Error('Invalid contact') - } - - if (!contact.phoneNumbers || !contact.phoneNumbers.length) { - return null - } - - // TODO(Rossy) find the right phone number based on the address - return contact.phoneNumbers[0].number -} - -export function isContact(contactOrNumber: any): contactOrNumber is MinimalContact { - if (typeof contactOrNumber === 'object') { - return 'recordID' in contactOrNumber - } - return false -} diff --git a/packages/sdk/base/src/currencies.ts b/packages/sdk/base/src/currencies.ts deleted file mode 100644 index 2bfbd87880a..00000000000 --- a/packages/sdk/base/src/currencies.ts +++ /dev/null @@ -1,72 +0,0 @@ -/** @deprecated use StableToken and Token */ -export enum CURRENCY_ENUM { - GOLD = 'Celo Gold', - DOLLAR = 'Celo Dollar', - EURO = 'Celo Euro', -} - -export enum StableToken { - cUSD = 'cUSD', - cEUR = 'cEUR', - cREAL = 'cREAL', -} - -export enum Token { - CELO = 'CELO', -} - -export type CeloTokenType = StableToken | Token - -interface Currency { - symbol: string - code: string - displayDecimals: number -} - -type CurrencyObject = { [key in CURRENCY_ENUM]: Currency } - -/** @deprecated */ -export const CURRENCIES: CurrencyObject = { - [CURRENCY_ENUM.GOLD]: { - symbol: '', - code: 'cGLD', - displayDecimals: 3, - }, - [CURRENCY_ENUM.DOLLAR]: { - symbol: '$', - code: 'cUSD', - displayDecimals: 2, - }, - [CURRENCY_ENUM.EURO]: { - symbol: '€', - code: 'cEUR', - displayDecimals: 2, - }, -} - -export const resolveCurrency = (label: string): CURRENCY_ENUM => { - if (label && label.toLowerCase().includes('dollar')) { - return CURRENCY_ENUM.DOLLAR - } else if (label && label.toLowerCase().includes('euro')) { - return CURRENCY_ENUM.EURO - } else if (label && label.toLowerCase().includes('gold')) { - return CURRENCY_ENUM.GOLD - } else { - console.info('Unable to resolve currency from label: ' + label) - return CURRENCY_ENUM.DOLLAR - } -} - -/** @deprecated use StableToken and Token */ -export enum SHORT_CURRENCIES { - DOLLAR = 'dollar', - GOLD = 'gold', - EURO = 'euro', -} - -/** @deprecated use StableToken and Token */ -export const currencyToShortMap = { - [CURRENCY_ENUM.DOLLAR]: SHORT_CURRENCIES.DOLLAR, - [CURRENCY_ENUM.GOLD]: SHORT_CURRENCIES.GOLD, - [CURRENCY_ENUM.EURO]: SHORT_CURRENCIES.EURO, -} diff --git a/packages/sdk/base/src/displayFormatting.ts b/packages/sdk/base/src/displayFormatting.ts deleted file mode 100644 index 6d9a85662b4..00000000000 --- a/packages/sdk/base/src/displayFormatting.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** @internal */ -export function getErrorMessage(error: Error) { - // This replacement is because when the error reaches here, it's been wrapped - // by Error: multiple times - let errorMsg = error.message || error.name || 'unknown' - errorMsg = errorMsg.replace(/Error:/g, '') - if (error.stack) { - errorMsg += ' in ' + error.stack.substring(0, 100) - } - return errorMsg -} diff --git a/packages/sdk/base/src/future.test.ts b/packages/sdk/base/src/future.test.ts deleted file mode 100644 index 32bb5b22526..00000000000 --- a/packages/sdk/base/src/future.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Future } from './future' - -test('it should expose resolve/reject inmediately', async () => { - const ep = new Future() - expect(ep.resolve).toBeDefined() - expect(ep.reject).toBeDefined() -}) - -test('it SBAT resolve inmediately', async () => { - const ep = new Future() - ep.resolve(5) - await expect(ep.wait()).resolves.toEqual(5) -}) - -test('it SBAT reject inmediately', async () => { - const ep = new Future() - const err = new Error('failed') - ep.reject(err) - await expect(ep.wait()).rejects.toBe(err) -}) diff --git a/packages/sdk/base/src/future.ts b/packages/sdk/base/src/future.ts deleted file mode 100644 index e2b92453799..00000000000 --- a/packages/sdk/base/src/future.ts +++ /dev/null @@ -1,54 +0,0 @@ -// A Future is like an externally fulfillable (resolvable) promise -/** @internal */ -export class Future { - private promise: Promise - private _finished = false - private _error: any = null - private _resolve!: (value: T) => void - private _reject!: (err: any) => void - - constructor() { - this.promise = new Promise((resolve, reject) => { - this._resolve = resolve - this._reject = reject - }) - } - - get finished() { - return this._finished - } - - get error() { - return this._error - } - - resolve(value: T): void { - this._finished = true - this._error = null - this._resolve(value) - } - - reject(error: any): void { - this._finished = true - this._error = error - this._reject(error) - } - - wait() { - return this.promise - } - - asPromise() { - return this.promise - } -} -/** @internal */ -export function toFuture(p: Promise): Future { - const future = new Future() - return pipeToFuture(p, future) -} -/** @internal */ -export function pipeToFuture(p: Promise, future: Future): Future { - p.then(future.resolve.bind(future)).catch(future.reject.bind(future)) - return future -} diff --git a/packages/sdk/base/src/index.ts b/packages/sdk/base/src/index.ts deleted file mode 100644 index 716c6645ed5..00000000000 --- a/packages/sdk/base/src/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -export * from './account' -export * from './address' -export * from './async' -export * from './collections' -export * from './contacts' -export * from './currencies' -export * from './displayFormatting' -export * from './future' -export * from './inputValidation' -export * from './io' -export * from './logger' -export * from './parsing' -export * from './phoneNumbers' -export * from './result' -export * from './signatureUtils' -export * from './string' -export * from './task' diff --git a/packages/sdk/base/src/inputValidation.ts b/packages/sdk/base/src/inputValidation.ts deleted file mode 100644 index 430b02917c8..00000000000 --- a/packages/sdk/base/src/inputValidation.ts +++ /dev/null @@ -1,30 +0,0 @@ -export enum ValidatorKind { - Custom = 'custom', - Decimal = 'decimal', - Integer = 'integer', - Phone = 'phone', -} - -export interface BaseProps { - validator?: ValidatorKind - customValidator?: (input: string) => string - countryCallingCode?: string - decimalSeparator?: string -} - -export function validateInteger(input: string): string { - return input.replace(/[^0-9]/g, '') -} - -export function validateDecimal(input: string, decimalSeparator: string = '.'): string { - const regex = decimalSeparator === ',' ? /[^0-9,]/g : /[^0-9.]/g - - const cleanedArray = input.replace(regex, '').split(decimalSeparator) - - if (cleanedArray.length <= 1) { - // Empty string or no decimals - return cleanedArray.join('') - } else { - return cleanedArray.shift() + decimalSeparator + cleanedArray.join('') - } -} diff --git a/packages/sdk/base/src/io.ts b/packages/sdk/base/src/io.ts deleted file mode 100644 index b811c219ad7..00000000000 --- a/packages/sdk/base/src/io.ts +++ /dev/null @@ -1,6 +0,0 @@ -// from http://urlregex.com/ -export const URL_REGEX = new RegExp( - /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/ -) -/** @internal */ -export const isValidUrl = (url: string) => URL_REGEX.test(url) diff --git a/packages/sdk/base/src/lock.test.ts b/packages/sdk/base/src/lock.test.ts deleted file mode 100644 index 687386b0dd1..00000000000 --- a/packages/sdk/base/src/lock.test.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { sleep } from './async' -import { Lock } from './lock' - -async function pause() { - await sleep(Math.floor(Math.random() * 10)) -} - -test('lock', async () => { - let canary: number | undefined - const lock = new Lock() - - const race = async (id: number) => { - await pause() - await lock.acquire() - canary = id - await pause() - expect(canary).toBe(id) - lock.release() - } - - const promises: Array> = [] - for (let i = 0; i < 100; i++) { - promises.push(race(i)) - } - await Promise.all(promises) -}) diff --git a/packages/sdk/base/src/lock.ts b/packages/sdk/base/src/lock.ts deleted file mode 100644 index a0974af4993..00000000000 --- a/packages/sdk/base/src/lock.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { EventEmitter } from 'events' - -enum LockEvent { - Unlock = 'unlock', -} - -// Lock which can be used to ensure mutual exclusion in concurrent code. -// -// This lock is non-reentrant, and attempting to acquire it while holding the lock will result in a deadlock. -export class Lock { - private locked: boolean = false - private emitter: EventEmitter - - constructor() { - this.emitter = new EventEmitter() - } - - // Attempt to acquire the lock without blocking. - // @returns {boolean} True if the lock was acquired. - tryAcquire(): boolean { - if (!this.locked) { - this.locked = true - return true - } - return false - } - - // Acquire the lock, blocking until the lock is available. - acquire(): Promise { - return new Promise((resolve, reject) => { - // Attempt to grab the lock without waiting. - if (this.tryAcquire()) { - resolve() - return - } - - // Wait for an event emitted when releasing the lock. - const callback = () => { - try { - if (this.tryAcquire()) { - this.emitter.removeListener(LockEvent.Unlock, callback) - resolve() - } - } catch (error) { - reject(error) - } - } - this.emitter.on(LockEvent.Unlock, callback) - }) - } - - // Release the lock such that another caller can acquire it. - // If not locked, calling this method has no effect. - release() { - if (this.locked) { - this.locked = false - this.emitter.emit(LockEvent.Unlock) - } - } -} diff --git a/packages/sdk/base/src/logger.ts b/packages/sdk/base/src/logger.ts deleted file mode 100644 index c4d60d23d15..00000000000 --- a/packages/sdk/base/src/logger.ts +++ /dev/null @@ -1,15 +0,0 @@ -export type Logger = (...args: any[]) => void -/** @internal */ -export const noopLogger: Logger = () => { - /*noop*/ -} -/** @internal */ -export const prefixLogger = (prefix: string, logger: Logger) => { - if (logger === noopLogger) { - return noopLogger - } else { - return (...args: any[]) => logger(`${prefix}:: `, ...args) - } -} -/** @internal */ -export const consoleLogger: Logger = console.log diff --git a/packages/sdk/base/src/package.test.ts b/packages/sdk/base/src/package.test.ts deleted file mode 100644 index 902f687a847..00000000000 --- a/packages/sdk/base/src/package.test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { assert } from 'chai' -import { readFileSync } from 'fs' - -const pdef = JSON.parse(readFileSync('./package.json', 'utf-8')) - -describe('Base package', () => { - // @celo/base is built on the premise of having absolutely no dependencies, no exceptions made - it('Should have an explicitly defined empty dependencies property', () => { - assert.isObject(pdef) - assert.property(pdef, 'dependencies') - assert.isEmpty(pdef.dependencies) - }) -}) diff --git a/packages/sdk/base/src/parsing.test.ts b/packages/sdk/base/src/parsing.test.ts deleted file mode 100644 index 68bc00e0f9e..00000000000 --- a/packages/sdk/base/src/parsing.test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { stringToBoolean } from './parsing' - -test('stringToBoolean()', () => { - expect(stringToBoolean('true')).toBe(true) - expect(stringToBoolean(' true ')).toBe(true) - expect(stringToBoolean('false')).toBe(false) - expect(stringToBoolean(' false ')).toBe(false) - - expect(stringToBoolean('FaLse')).toBe(false) - expect(stringToBoolean('TruE')).toBe(true) - - expect(() => stringToBoolean('fals')).toThrow("Unable to parse 'fals' as boolean") -}) diff --git a/packages/sdk/base/src/parsing.ts b/packages/sdk/base/src/parsing.ts deleted file mode 100644 index 479f129686d..00000000000 --- a/packages/sdk/base/src/parsing.ts +++ /dev/null @@ -1,32 +0,0 @@ -export const stringToBoolean = (inputString: string): boolean => { - const lowercasedInput = inputString.toLowerCase().trim() - if (lowercasedInput === 'true') { - return true - } else if (lowercasedInput === 'false') { - return false - } - throw new Error(`Unable to parse '${inputString}' as boolean`) -} - -/** - * Parses an "array of strings" that is returned from a Solidity function - * - * @param stringLengths length of each string in bytes - * @param data 0x-prefixed, hex-encoded string data in utf-8 bytes - */ -export const parseSolidityStringArray = (stringLengths: number[], data: string) => { - if (data === null) { - data = '0x' - } - const ret: string[] = [] - let offset = 0 - // @ts-ignore - const rawData = Buffer.from(data.slice(2), 'hex') - // tslint:disable-next-line:prefer-for-of - for (let i = 0; i < stringLengths.length; i++) { - const string = rawData.toString('utf-8', offset, offset + stringLengths[i]) - offset += stringLengths[i] - ret.push(string) - } - return ret -} diff --git a/packages/sdk/base/src/phoneNumbers.test.ts b/packages/sdk/base/src/phoneNumbers.test.ts deleted file mode 100644 index 5b3160aa74a..00000000000 --- a/packages/sdk/base/src/phoneNumbers.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { isE164Number } from './phoneNumbers' - -const TEST_PHONE_NUMBERS = { - VALID_US_1: '6282287826', - VALID_US_2: '(628) 228-7826', - VALID_US_3: '+16282287826', - VALID_US_4: '16282287826', - VALID_DE_1: '015229355106', - VALID_DE_2: '01522 (935)-5106', - VALID_DE_3: '+49 01522 935 5106', - VALID_AR_1: '091126431111', - VALID_AR_2: '(911) 2643-1111', - VALID_AR_3: '+5411 2643-1111', - VALID_AR_4: '9 11 2643 1111', - VALID_MX_1: '33 1234-5678', - VALID_MX_2: '1 33 1234-5678', - VALID_MX_3: '+52 1 33 1234-5678', - VALID_LR: '881551952', - FORMATTED_AR: '+5491126431111', - FORMATTED_MX: '+523312345678', - FORMATTED_LR: '+231881551952', - DISPLAY_AR: '9 11 2643-1111', - DISPLAY_MX: '33 1234 5678', - DISPLAY_LR: '88 155 1952', - INVALID_EMPTY: '', - TOO_SHORT: '123', - VALID_E164: '+141555544444', -} - -describe('Phone number formatting and utilities', () => { - describe('Other phone helper methods', () => { - it('checks if number is e164', () => { - // @ts-ignore - expect(isE164Number(null)).toBe(false) - expect(isE164Number('')).toBe(false) - expect(isE164Number(TEST_PHONE_NUMBERS.VALID_US_1)).toBe(false) - expect(isE164Number(TEST_PHONE_NUMBERS.VALID_US_2)).toBe(false) - expect(isE164Number(TEST_PHONE_NUMBERS.VALID_US_3)).toBe(true) - expect(isE164Number(TEST_PHONE_NUMBERS.VALID_US_4)).toBe(false) - }) - }) -}) diff --git a/packages/sdk/base/src/phoneNumbers.ts b/packages/sdk/base/src/phoneNumbers.ts deleted file mode 100644 index 1334c0f9e20..00000000000 --- a/packages/sdk/base/src/phoneNumbers.ts +++ /dev/null @@ -1,21 +0,0 @@ -export interface ParsedPhoneNumber { - e164Number: string - displayNumber: string - displayNumberInternational: string - countryCode?: number - regionCode?: string -} - -const E164_REGEX = /^\+[1-9][0-9]{1,14}$/ - -export function isE164Number(phoneNumber: string) { - return E164_REGEX.test(phoneNumber) -} - -export function anonymizedPhone(phoneNumber: string) { - return phoneNumber.slice(0, -4) + 'XXXX' -} - -export const PhoneNumberBase = { - isE164Number, -} diff --git a/packages/sdk/base/src/result.test.ts b/packages/sdk/base/src/result.test.ts deleted file mode 100644 index 0a724e5417e..00000000000 --- a/packages/sdk/base/src/result.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Err, isOk, Ok, Result } from '.' - -// These tests are just to check the typescript compiler -describe('discriminated collection functions', () => { - const trueValue = Ok(true) - const falseValue = Err(new Error()) - const collection: Array> = [trueValue, falseValue] - - it('can filter to the true value', () => { - const ok = collection.filter(isOk) - expect(ok.map((_) => _.result)).toEqual([true]) - }) - - it('can find in collection', () => { - const ok = collection.find(isOk) - if (ok) { - expect(ok.result).toEqual(true) - } - }) -}) diff --git a/packages/sdk/base/src/result.ts b/packages/sdk/base/src/result.ts deleted file mode 100644 index 3e339169f26..00000000000 --- a/packages/sdk/base/src/result.ts +++ /dev/null @@ -1,102 +0,0 @@ -export interface OkResult { - ok: true - result: TResult -} -export interface ErrorResult { - ok: false - error: TError -} - -export type Result = OkResult | ErrorResult - -export const Ok = (result: TResult): OkResult => ({ - ok: true, - result, -}) -export const Err = (error: TError): ErrorResult => ({ - ok: false, - error, -}) - -export function throwIfError( - result: Result, - errorModifier?: (error: TError) => TModifiedError -) { - if (!result.ok) { - if (errorModifier) { - throw errorModifier(result.error) - } - throw result.error - } - - return result.result -} - -export function makeThrowable< - TArgs extends any[], - TResult, - TError extends Error, - TModifiedError extends Error ->( - f: (...args: TArgs) => Result, - errorModifier?: (error: TError) => TModifiedError -) { - return (...args: TArgs) => throwIfError(f(...args), errorModifier) -} - -export function makeAsyncThrowable< - TArgs extends any[], - TResult, - TError extends Error, - TModifiedError extends Error ->( - f: (...args: TArgs) => Promise>, - errorModifier?: (error: TError) => TModifiedError -) { - return async (...args: TArgs) => { - const result = await f(...args) - return throwIfError(result, errorModifier) - } -} - -export interface BaseError { - errorType: T -} - -export class RootError extends Error implements BaseError { - constructor(readonly errorType: T) { - super() - // @ts-ignore - if (errorType.toString) { - // @ts-ignore - this.name = errorType.toString() - } - } -} - -export const JSONParseErrorType = 'JsonParseError' -// tslint:disable-next-line:max-classes-per-file -export class JSONParseError extends RootError { - constructor(readonly error: Error) { - super(JSONParseErrorType) - } -} -export function parseJsonAsResult(data: string) { - try { - return Ok(JSON.parse(data)) - } catch (error: any) { - return Err(new JSONParseError(error)) - } -} - -export function isOk( - result: Result -): result is OkResult { - return result.ok -} - -export function isErr( - result: Result -): result is ErrorResult { - return !result.ok -} diff --git a/packages/sdk/base/src/signatureUtils.ts b/packages/sdk/base/src/signatureUtils.ts deleted file mode 100644 index 28b885e4dfd..00000000000 --- a/packages/sdk/base/src/signatureUtils.ts +++ /dev/null @@ -1,36 +0,0 @@ -export const POP_SIZE = 65 - -export interface Signer { - sign: (message: string) => Promise -} - -// Uses a native function to sign (as signFn), most commonly `web.eth.sign` -export function NativeSigner( - signFn: (message: string, signer: string) => Promise, - signer: string -): Signer { - return { - sign: async (message: string) => { - return signFn(message, signer) - }, - } -} - -export interface Signature { - // TODO: (soloseng) should this be converted to Bigint? - v: number - r: string - s: string -} - -export function serializeSignature(signature: Signature) { - const serializedV = signature.v.toString(16) - const serializedR = signature.r.slice(2) - const serializedS = signature.s.slice(2) - return '0x' + serializedV + serializedR + serializedS -} - -export const SignatureBase = { - NativeSigner, - serializeSignature, -} diff --git a/packages/sdk/base/src/string.ts b/packages/sdk/base/src/string.ts deleted file mode 100644 index 052145c853c..00000000000 --- a/packages/sdk/base/src/string.ts +++ /dev/null @@ -1,17 +0,0 @@ -export function appendPath(baseUrl: string, path: string) { - const lastChar = baseUrl[baseUrl.length - 1] - if (lastChar === '/') { - return baseUrl + path - } - return baseUrl + '/' + path -} - -// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript -export function normalizeAccents(str: string) { - return str.normalize('NFD').replace(/[\u0300-\u036f]/g, '') -} - -export const StringBase = { - appendPath, - normalizeAccents, -} diff --git a/packages/sdk/base/src/task.test.ts b/packages/sdk/base/src/task.test.ts deleted file mode 100644 index 78598bbdae9..00000000000 --- a/packages/sdk/base/src/task.test.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { sleep } from './async' -import { conditionWatcher, repeatTask, RepeatTaskContext, tryObtainValueWithRetries } from './task' - -describe('repeatTask()', () => { - test("should repeat task until it't stopped", async () => { - const fn = jest.fn().mockResolvedValue(null) - - const task = repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - }, - fn - ) - - await sleep(15) - const currentCalls = fn.mock.calls.length - task.stop() - await sleep(10) - expect(task.isRunning()).toBeFalsy() - expect(fn).toBeCalledTimes(currentCalls) - }) - - test('should keep repeating even if task fails', async () => { - const fn = jest.fn().mockRejectedValue(new Error('Failed')) - - const task = repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - }, - fn - ) - await sleep(35) - expect(fn.mock.calls.length).toBeGreaterThan(1) - task.stop() - }) - - test('should set and increment execution number', async () => { - const executionsNumbers: number[] = [] - const fn = jest.fn(async (ctx: RepeatTaskContext) => { - executionsNumbers.push(ctx.executionNumber) - }) - - const task = repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - }, - fn - ) - - await sleep(35) - task.stop() - - for (let i = 0; i < executionsNumbers.length; i++) { - expect(executionsNumbers[i]).toBe(i + 1) - } - }) - - test('should call logger with taskName prefix', async () => { - const fn = async (ctx: RepeatTaskContext) => { - ctx.stopTask() - throw new Error('MESSAGE') - } - - const logger = jest.fn() - repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - logger, - }, - fn - ) - await sleep(5) - expect(logger.mock.calls.length).toBeGreaterThan(0) - for (const call of logger.mock.calls) { - expect(call[0]).toBe('testTask:: ') - } - }) - - test('should be able to stop repetitions from ctx', async () => { - const fn = jest.fn(async (ctx: RepeatTaskContext) => { - if (ctx.executionNumber === 2) { - ctx.stopTask() - } - }) - - const task = repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - }, - fn - ) - - await sleep(25) - expect(task.isRunning()).toBeFalsy() - expect(fn).toBeCalledTimes(2) - }) - - test('should use initialDelayMS', async () => { - const fn = jest.fn().mockResolvedValue(null) - - const task = repeatTask( - { - name: 'testTask', - initialDelayMS: 10, - timeInBetweenMS: 10, - }, - fn - ) - - await sleep(2) - expect(fn).toHaveBeenCalledTimes(0) - await sleep(10) - expect(fn).toHaveBeenCalledTimes(1) - task.stop() - }) -}) - -describe('conditionWatcher()', () => { - test('will execute onSuccess when condition triggers', async () => { - const pollCondition = jest.fn().mockResolvedValueOnce(false).mockResolvedValueOnce(true) - const onSuccess = jest.fn() - - const task = conditionWatcher({ - name: 'testCondition', - onSuccess, - pollCondition, - timeInBetweenMS: 10, - }) - - await sleep(25) - expect(task.isRunning()).toBeFalsy() - expect(onSuccess).toHaveBeenCalled() - expect(pollCondition).toHaveBeenCalledTimes(2) - }) - - test('will work ok if pollCondition throws', async () => { - const pollCondition = jest - .fn() - .mockRejectedValueOnce(new Error('pepe')) - .mockResolvedValueOnce(true) - const onSuccess = jest.fn() - - const task = conditionWatcher({ - name: 'testCondition', - onSuccess, - pollCondition, - timeInBetweenMS: 10, - }) - - await sleep(25) - expect(task.isRunning()).toBeFalsy() - expect(onSuccess).toHaveBeenCalled() - expect(pollCondition).toHaveBeenCalledTimes(2) - }) - - test('will work ok if onSuccess throws', async () => { - const pollCondition = jest.fn().mockResolvedValue(true) - const onSuccess = jest.fn().mockRejectedValue(new Error('fail')) - - const task = conditionWatcher({ - name: 'testCondition', - onSuccess, - pollCondition, - timeInBetweenMS: 10, - }) - - await sleep(25) - expect(task.isRunning()).toBeFalsy() - expect(onSuccess).toHaveBeenCalled() - }) -}) - -describe('tryObtainValueWithRetries()', () => { - test('will return value if suceeds before retries expires', async () => { - const task = tryObtainValueWithRetries({ - name: 'testGet', - maxAttemps: 2, - tryGetValue: jest.fn().mockResolvedValueOnce(null).mockResolvedValueOnce('HELLO'), - timeInBetweenMS: 7, - }) - - await expect(task.onValue()).resolves.toBe('HELLO') - }) - - test('will reject on maxAttemps', async () => { - const task = tryObtainValueWithRetries({ - name: 'testGet', - maxAttemps: 2, - tryGetValue: jest - .fn() - .mockResolvedValueOnce(null) - .mockResolvedValueOnce(null) - .mockResolvedValueOnce('HELLO'), - timeInBetweenMS: 7, - }) - - await expect(task.onValue()).rejects.toThrow('Max Retries') - }) - - test('works on when tryGetValue throws', async () => { - const task = tryObtainValueWithRetries({ - name: 'testGet', - maxAttemps: 2, - tryGetValue: jest - .fn() - .mockRejectedValueOnce(new Error('error')) - .mockResolvedValueOnce('HELLO'), - timeInBetweenMS: 7, - }) - - await expect(task.onValue()).resolves.toBe('HELLO') - }) - - test('stops when task.stop() is called', async () => { - const tryGetValue = jest.fn().mockResolvedValue(null) - const task = tryObtainValueWithRetries({ - name: 'testGet', - maxAttemps: 15, - tryGetValue, - timeInBetweenMS: 7, - }) - - await sleep(15) - task.stop() - await expect(task.onValue()).rejects.toThrow('Cancelled') - const currentCalls = tryGetValue.mock.calls.length - await sleep(10) - expect(tryGetValue).toHaveBeenCalledTimes(currentCalls) - expect(task.isRunning()).toBeFalsy() - }) -}) diff --git a/packages/sdk/base/src/task.ts b/packages/sdk/base/src/task.ts deleted file mode 100644 index 1baabfb7dfa..00000000000 --- a/packages/sdk/base/src/task.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { Future } from './future' -import { Logger, noopLogger, prefixLogger } from './logger' - -/** - * Represent a running task that can be stopped - * - * Examples: A poller, a watcher. - */ -export interface RunningTask { - /** Flag task to be stopped. Might not be inmediate */ - stop(): void - /** Indicates wether the task is running */ - isRunning(): boolean -} - -export interface TaskOptions { - /** Name for the task. To be used in logging messages */ - name: string - /** Logger function */ - logger?: Logger -} - -/** - * Given task options, creates the task logger - * - * It will prefix taskName to the logs - */ -const createTaskLogger = (opts: TaskOptions): Logger => { - if (opts.logger) { - return prefixLogger(opts.name, opts.logger) - } else { - return noopLogger - } -} - -interface RepeatTaskOptions extends TaskOptions { - /** seconds between repetition */ - timeInBetweenMS: number - /** initial delay for first run */ - initialDelayMS?: number -} - -export interface RepeatTaskContext { - /** Number of times the task has been executed (starts in 1) */ - executionNumber: number - /** Flag task to be stopped. Might not be inmediate */ - stopTask(): void -} -/** - * Runs an async function eternally until stopped - * - * @param fn function to run - */ -export function repeatTask( - opts: RepeatTaskOptions, - fn: (ctx: RepeatTaskContext) => Promise -): RunningTask { - const logger = createTaskLogger(opts) - let isActive = true - - const ctx: RepeatTaskContext = { - executionNumber: 0, - stopTask() { - isActive = false - }, - } - - const loop = async () => { - if (!isActive) { - return - } - try { - ctx.executionNumber++ - await fn(ctx) - } catch (err: any) { - logger(`Failed with error: ${err.message}`) - logger(err) - } finally { - if (isActive) { - setTimeout(loop, opts.timeInBetweenMS) - } - } - } - - if (opts.initialDelayMS != null) { - setTimeout(loop, opts.initialDelayMS) - } else { - // tslint:disable-next-line: no-floating-promises - loop() - } - - return { - stop: ctx.stopTask, - isRunning() { - return isActive - }, - } -} - -export function conditionWatcher( - opts: RepeatTaskOptions & { - pollCondition: () => Promise - onSuccess: () => void | Promise - } -): RunningTask { - return repeatTask(opts, async (ctx) => { - const val = await opts.pollCondition() - if (val) { - ctx.stopTask() - await opts.onSuccess() - } - }) -} - -export interface RunningTaskWithValue extends RunningTask { - onValue(): Promise -} - -export interface RetryTaskOptions extends TaskOptions { - /** seconds between repetition */ - timeInBetweenMS: number - /** Maximum number of attemps */ - maxAttemps: number - /** Function that tries to obtain a value A or returns null */ - tryGetValue: () => Promise -} - -export function tryObtainValueWithRetries(opts: RetryTaskOptions): RunningTaskWithValue { - const futureValue = new Future() - const task = repeatTask(opts, async (ctx) => { - if (ctx.executionNumber > opts.maxAttemps) { - ctx.stopTask() - futureValue.reject(new Error('Max Retries & no value')) - } else { - const val = await opts.tryGetValue() - if (val != null) { - futureValue.resolve(val) - ctx.stopTask() - } - } - }) - - return { - ...task, - stop: () => { - task.stop() - futureValue.reject(new Error('Cancelled')) - }, - onValue: () => futureValue.asPromise(), - } -} diff --git a/packages/sdk/base/src/types.d.ts b/packages/sdk/base/src/types.d.ts deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/packages/sdk/base/tsconfig.json b/packages/sdk/base/tsconfig.json deleted file mode 100644 index d9da7142030..00000000000 --- a/packages/sdk/base/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src"], - "exclude": ["**/*.test.ts"] -} diff --git a/packages/sdk/base/tslint.json b/packages/sdk/base/tslint.json deleted file mode 100644 index 7221d56e375..00000000000 --- a/packages/sdk/base/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "no-console": false, - "no-floating-promises": true - } -} diff --git a/packages/sdk/base/typedoc.json b/packages/sdk/base/typedoc.json deleted file mode 100644 index 5baf529f751..00000000000 --- a/packages/sdk/base/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/base", - "gitRevision": "master", - "readme": "none" -} \ No newline at end of file diff --git a/packages/sdk/connect/.gitignore b/packages/sdk/connect/.gitignore deleted file mode 100644 index 7fabe89f619..00000000000 --- a/packages/sdk/connect/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -lib/ -tmp/ -.tmp/ -.env \ No newline at end of file diff --git a/packages/sdk/connect/.npmignore b/packages/sdk/connect/.npmignore deleted file mode 100644 index a0c24a34c62..00000000000 --- a/packages/sdk/connect/.npmignore +++ /dev/null @@ -1,22 +0,0 @@ -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/connect/CHANGELOG.md b/packages/sdk/connect/CHANGELOG.md deleted file mode 100644 index 03b9c353485..00000000000 --- a/packages/sdk/connect/CHANGELOG.md +++ /dev/null @@ -1,46 +0,0 @@ -# @celo/connect - -## 5.1.1 - -### Patch Changes - -- 679ef0c60: Add back setFeeMarket function and re remove fillGasPrice which were accidentally reverted in beta 0 -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0 - - @celo/utils@5.0.6 - -## 5.1.1-beta.0 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - - @celo/utils@5.0.6-beta.0 - -## 5.1.0 - -### Minor Changes - -- 53bbd4958: Add cip64 support for feeCurrency Transactions. Note this is the replacement for the deprecated cip42 and legacy tx types https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip/0064.md - -### Patch Changes - -- d48c68afc: Add memoization to Connection.chainId() funciton. this is reset when setProvider is called. -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.1.0-beta.0 - -### Minor Changes - -- 53bbd4958: Add cip64 support for feeCurrency Transactions. Note this is the replacement for the deprecated cip42 and legacy tx types https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip/0064.md - -### Patch Changes - -- d48c68afc: Add memoization to Connection.chainId() funciton. this is reset when setProvider is called. -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/connect/LICENSE b/packages/sdk/connect/LICENSE deleted file mode 100644 index f49a4e16e68..00000000000 --- a/packages/sdk/connect/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file diff --git a/packages/sdk/connect/jest.config.js b/packages/sdk/connect/jest.config.js deleted file mode 100644 index c0198cdd329..00000000000 --- a/packages/sdk/connect/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], - verbose: true, -} diff --git a/packages/sdk/connect/package.json b/packages/sdk/connect/package.json deleted file mode 100644 index afd8f6aa59a..00000000000 --- a/packages/sdk/connect/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "@celo/connect", - "version": "5.1.1", - "description": "Light Toolkit for connecting with the Celo network", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "sideEffects": false, - "author": "Celo", - "license": "Apache-2.0", - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/connect", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/connect", - "keywords": [ - "celo", - "blockchain" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@ethereumjs/util": "8.0.5", - "@types/debug": "^4.1.5", - "@types/utf8": "^2.1.6", - "@celo/base": "^6.0.0", - "@celo/utils": "^5.0.6", - "bignumber.js": "^9.0.0", - "debug": "^4.1.1", - "utf8": "3.0.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-contract": "1.10.0" - }, - "devDependencies": { - "web3": "1.10.0", - "web3-core": "1.10.0", - "web3-eth": "1.10.0", - "web3-eth-abi": "1.10.0", - "web3-eth-contract": "1.10.0" - }, - "peerDependencies": { - "web3": "1.10.0" - }, - "engines": { - "node": ">=8.14.2" - } -} \ No newline at end of file diff --git a/packages/sdk/connect/readme.md b/packages/sdk/connect/readme.md deleted file mode 100644 index 9a96ba83163..00000000000 --- a/packages/sdk/connect/readme.md +++ /dev/null @@ -1,35 +0,0 @@ -# @celo/connect - - -*Connect to the Celo Blockchain.* `Connection` provides the core of what you need to interact with Celo blockchain. The Core Difference between it and ContractKit is that it provides zero Contract Wrappers, and therefore leaves out convenience methods for example for setting FeeCurrency, or getting configs. - -## Examples - -### Basic - -```typescript -import { Connection, CeloProvider } from '@celo/connect' - -const web3 = new Web3("YOUR_RPC_URL") -const connection = new Connection(web3) - -connection.setProvider() - -const connectedChainID = await connection.chainId() - -``` - -For a raw transaction: - -```ts -const oneCelo = connection.web3.utils.toWei('1', 'ether') - -const tx = connection.sendTransaction({ - from: myAddress, - to: someAddress, - value: oneCelo, -}) -const hash = await tx.getHash() -const receipt = await tx.waitReceipt() -``` - diff --git a/packages/sdk/connect/src/abi-types.ts b/packages/sdk/connect/src/abi-types.ts deleted file mode 100644 index 632561875ce..00000000000 --- a/packages/sdk/connect/src/abi-types.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { EventLog } from './types' - -/** @internal */ -export type ABIType = 'uint256' | 'boolean' | 'string' | 'bytes' | string // TODO complete list - -/** @internal */ -export interface DecodedParamsArray { - [index: number]: any - __length__: number -} - -/** @internal */ -export interface DecodedParamsObject extends DecodedParamsArray { - [key: string]: any -} - -// Note the following types come from web3-utils: AbiInput, AbiOutput, AbiItem, AbiType StateMutabilityType, ABIDefinition -type AbiType = 'function' | 'constructor' | 'event' | 'fallback' -type StateMutabilityType = 'pure' | 'view' | 'nonpayable' | 'payable' - -/** @internal */ -export interface AbiInput { - name: string - type: string - indexed?: boolean - components?: AbiInput[] - internalType?: string -} - -/** @internal */ -export interface AbiOutput { - name: string - type: string - components?: AbiOutput[] - internalType?: string -} -/** @internal */ -export interface AbiItem { - anonymous?: boolean - constant?: boolean - inputs?: AbiInput[] - name?: string - outputs?: AbiOutput[] - payable?: boolean - stateMutability?: StateMutabilityType - type: AbiType - gas?: number -} -/** @internal */ -export interface ABIDefinition extends AbiItem { - signature: string -} -/** @internal */ -export interface AbiCoder { - decodeLog(inputs: AbiInput[], hexString: string, topics: string[]): EventLog - - encodeParameter(type: ABIType, parameter: any): string - encodeParameters(types: ABIType[], paramaters: any[]): string - - encodeEventSignature(name: string | object): string - encodeFunctionCall(jsonInterface: object, parameters: any[]): string - encodeFunctionSignature(name: string | object): string - - decodeParameter(type: ABIType, hex: string): any - - decodeParameters(types: ABIType[], hex: string): DecodedParamsArray - decodeParameters(types: AbiInput[], hex: string): DecodedParamsObject -} diff --git a/packages/sdk/connect/src/celo-provider.test.ts b/packages/sdk/connect/src/celo-provider.test.ts deleted file mode 100644 index daa2b2668d5..00000000000 --- a/packages/sdk/connect/src/celo-provider.test.ts +++ /dev/null @@ -1,264 +0,0 @@ -import Web3 from 'web3' -import { CeloProvider } from './celo-provider' -import { Connection } from './connection' -import { - Address, - Callback, - CeloTx, - EncodedTransaction, - Error, - JsonRpcPayload, - JsonRpcResponse, - Provider, -} from './types' -import { ReadOnlyWallet } from './wallet' - -const ACCOUNT_ADDRESS1 = '0x1234567890123456789012345678901234567890' -const ACCOUNT_ADDRESS2 = '0x0987654321098765432109876543210987654321' - -class MockWallet implements ReadOnlyWallet { - private addresses = new Array
() - addAccount(privateKey: Address): void { - this.addresses.push(privateKey) - } - getAccounts(): Address[] { - return this.addresses - } - hasAccount(address?: string | undefined): boolean { - return address != null && this.addresses.includes(address) - } - signTransaction(_txParams: CeloTx): Promise { - return Promise.resolve({ - raw: '0xmock', - tx: { - type: 'celo-legacy', - nonce: 'nonce', - gasPrice: 'gasPrice', - gas: 'gas', - feeCurrency: 'feeCurrency', - gatewayFeeRecipient: 'gatewayFeeRecipient', - gatewayFee: 'gatewayFee', - to: 'to', - value: 'value', - input: 'input', - r: 'r', - s: 's', - v: 'v', - hash: 'hash', - }, - }) - } - signTypedData(_address: string, _typedData: any): Promise { - return Promise.resolve('mock') - } - signPersonalMessage(_address: string, _data: string): Promise { - return Promise.resolve('mock') - } - decrypt(_address: string, _ciphertext: Buffer): Promise { - return Promise.resolve(Buffer.from('mock')) - } - // tslint:disable-next-line: no-empty - removeAccount(_address: string): void {} - computeSharedSecret(_address: string, _publicKey: string): Promise { - return Promise.resolve(Buffer.from('mock')) - } -} - -// These tests verify the signTransaction WITHOUT the ParamsPopulator -describe('CeloProvider', () => { - let mockCallback: any - let mockProvider: Provider - let celoProvider: CeloProvider - const interceptedByCeloProvider = [ - 'eth_sendTransaction', - 'eth_signTransaction', - 'eth_sign', - 'personal_sign', - 'eth_signTypedData', - 'eth_signTypedData_v1', - 'eth_signTypedData_v3', - 'eth_signTypedData_v4', - ] - - beforeEach(() => { - mockCallback = jest.fn((payload: JsonRpcPayload, callback: Callback): any => { - const response: JsonRpcResponse = { - jsonrpc: payload.jsonrpc, - id: Number(payload.id), - result: { - params: payload.params, - method: payload.method, - }, - } - callback(null, response) - }) - mockProvider = { - send: mockCallback, - } - - const web3 = new Web3() - web3.setProvider(mockProvider as any) - const connection = new Connection(web3, new MockWallet()) - celoProvider = connection.web3.currentProvider as any as CeloProvider - }) - - describe("when celo provider don't have any local account", () => { - interceptedByCeloProvider.forEach((method: string) => { - test(`fowards the call to '${method}' to the original provider`, (done) => { - const payload: JsonRpcPayload = { - id: 0, - jsonrpc: '2.0', - method, - params: ['1', '2'], - } - const callback: Callback = ( - _error: Error | null, - _result?: JsonRpcResponse - ) => { - expect(mockCallback.mock.calls.length).toBe(1) - expect(mockCallback.mock.calls[0][0].method).toBe(method) - done() - } - celoProvider.send(payload, callback) - }) - }) - }) - - describe('when celo provider has a local account', () => { - function paramsForMethod(method: string, from: string, to: string) { - const tx: CeloTx = { - from, - to, - value: '1', - nonce: 0, - gas: 10, - gasPrice: 99, - feeCurrency: '0x124356', - gatewayFeeRecipient: '0x1234', - gatewayFee: '0x5678', - data: '0xabcdef', - chainId: 1, - } - switch (method) { - case 'eth_sendTransaction': - case 'eth_signTransaction': - return [tx] - case 'eth_sign': - return [from, '0x01'] - case 'personal_sign': - return ['0x01', from] - case 'eth_signTypedData': - case 'eth_signTypedData_v1': - case 'eth_signTypedData_v3': - case 'eth_signTypedData_v4': - return [ - from, - { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - }, - primaryType: 'Mail', - domain: { - name: 'Ether Mail', - version: '1', - chainId: 1, - verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', - }, - message: { - from: { - name: 'Cow', - wallet: from, - }, - to: { - name: 'Bob', - wallet: to, - }, - contents: 'Hello, Bob!', - }, - }, - ] - default: { - return [] - } - } - } - - beforeEach(() => { - celoProvider.addAccount(ACCOUNT_ADDRESS1) - }) - - describe('but tries to use it with a different account', () => { - interceptedByCeloProvider.forEach((method: string) => { - test(`forwards the call to '${method}' to the original provider`, (done) => { - const payload: JsonRpcPayload = { - id: 0, - jsonrpc: '2.0', - method, - params: paramsForMethod(method, ACCOUNT_ADDRESS2, ACCOUNT_ADDRESS1), - } - const callback: Callback = ( - _error: Error | null, - _result?: JsonRpcResponse - ) => { - expect(mockCallback.mock.calls.length).toBe(1) - expect(mockCallback.mock.calls[0][0].method).toBe(method) - done() - } - celoProvider.send(payload, callback) - }) - }) - }) - - describe('using that account', () => { - test("call 'send' with 'eth_sendTransaction' signs and send a eth_sendRawTransaction to the original provider", (done) => { - const payload: JsonRpcPayload = { - id: 0, - jsonrpc: '2.0', - method: 'eth_sendTransaction', - params: paramsForMethod('eth_sendTransaction', ACCOUNT_ADDRESS1, ACCOUNT_ADDRESS2), - } - const callback: Callback = ( - _error: Error | null, - _result?: JsonRpcResponse - ) => { - expect(mockCallback.mock.calls.length).toBe(1) - expect(mockCallback.mock.calls[0][0].method).toBe('eth_sendRawTransaction') - done() - } - celoProvider.send(payload, callback) - }) - - test.todo( - "call 'send' with 'eth_signTypedData' signs the message and don't call the original provider" - ) - - interceptedByCeloProvider - .filter((x) => x !== 'eth_sendTransaction' && !x.startsWith('eth_signTypedData')) - .forEach((method: string) => { - test(`call 'send' with '${method}' signs the message and don't call the original provider`, (done) => { - const payload: JsonRpcPayload = { - id: 0, - jsonrpc: '2.0', - method, - params: paramsForMethod(method, ACCOUNT_ADDRESS1, ACCOUNT_ADDRESS2), - } - const callback: Callback = ( - error: Error | null, - result?: JsonRpcResponse - ) => { - expect(error).toBeNull() - expect(result).not.toBeFalsy() - expect(mockCallback.mock.calls.length).toBe(0) - done() - } - celoProvider.send(payload, callback) - }) - }) - }) - }) -}) diff --git a/packages/sdk/connect/src/celo-provider.ts b/packages/sdk/connect/src/celo-provider.ts deleted file mode 100644 index d17b8d07388..00000000000 --- a/packages/sdk/connect/src/celo-provider.ts +++ /dev/null @@ -1,287 +0,0 @@ -import { Lock } from '@celo/base/lib/lock' -import debugFactory from 'debug' -import { Connection } from './connection' -import { - Callback, - EncodedTransaction, - Error, - JsonRpcPayload, - JsonRpcResponse, - Provider, -} from './types' -import { hasProperty, stopProvider } from './utils/provider-utils' -import { rpcCallHandler } from './utils/rpc-caller' - -const debug = debugFactory('provider:connection') -const debugPayload = debugFactory('provider:payload') -const debugTxToSend = debugFactory('provider:tx-to-send') -const debugEncodedTx = debugFactory('provider:encoded-tx') -const debugResponse = debugFactory('provider:response') - -enum InterceptedMethods { - accounts = 'eth_accounts', - sendTransaction = 'eth_sendTransaction', - signTransaction = 'eth_signTransaction', - sign = 'eth_sign', - personalSign = 'personal_sign', - signTypedData = 'eth_signTypedData', - signTypedDataV1 = 'eth_signTypedData_v1', - signTypedDataV3 = 'eth_signTypedData_v3', - signTypedDataV4 = 'eth_signTypedData_v4', - signTypedDataV5 = 'eth_signTypedData_v5', -} - -export function assertIsCeloProvider(provider: any): asserts provider is CeloProvider { - if (!(provider instanceof CeloProvider)) { - throw new Error( - 'A different Provider was manually added to the kit. The kit should have a CeloProvider' - ) - } -} - -/* - * CeloProvider wraps a web3.js provider for use with Celo - */ -export class CeloProvider implements Provider { - private alreadyStopped: boolean = false - // Transaction nonce is calculated as the max of an account's nonce on-chain, and any pending transactions in a node's - // transaction pool. As a result, once a nonce is used, the transaction must be sent to the node before the nonce can - // be calculated for another transaction. In particular the sign and send operation must be completed atomically with - // relation to other sign and send operations. - private nonceLock: Lock = new Lock() - - constructor(readonly existingProvider: Provider, readonly connection: Connection) { - this.addProviderDelegatedFunctions() - } - - // @deprecated Use the `addAccount` from the Connection - addAccount(privateKey: string) { - this.connection.addAccount(privateKey) - } - - // @deprecated Use the `removeAccount` from the Connection - removeAccount(address: string) { - this.connection.removeAccount(address) - } - - // @deprecated Use the `getAccounts` from the Connection - async getAccounts(): Promise { - return this.connection.getAccounts() - } - - isLocalAccount(address?: string): boolean { - return this.connection.wallet != null && this.connection.wallet.hasAccount(address) - } - - /** - * Send method as expected by web3.js - */ - send(payload: JsonRpcPayload, callback: Callback): void { - let txParams: any - let address: string - - debugPayload('%O', payload) - - const decoratedCallback = (error: Error | null, result?: JsonRpcResponse) => { - debugResponse('%O', result) - callback(error, result) - } - - if (this.alreadyStopped) { - throw Error('CeloProvider already stopped') - } - - switch (payload.method) { - case InterceptedMethods.accounts: { - rpcCallHandler(payload, this.handleAccounts.bind(this), decoratedCallback) - return - } - case InterceptedMethods.sendTransaction: { - this.checkPayloadWithAtLeastNParams(payload, 1) - txParams = payload.params[0] - - if (this.connection.isLocalAccount(txParams.from)) { - rpcCallHandler(payload, this.handleSendTransaction.bind(this), decoratedCallback) - } else { - this.forwardSend(payload, callback) - } - return - } - case InterceptedMethods.signTransaction: { - this.checkPayloadWithAtLeastNParams(payload, 1) - txParams = payload.params[0] - - if (this.connection.isLocalAccount(txParams.from)) { - rpcCallHandler(payload, this.handleSignTransaction.bind(this), decoratedCallback) - } else { - this.forwardSend(payload, callback) - } - return - } - case InterceptedMethods.sign: - case InterceptedMethods.personalSign: { - this.checkPayloadWithAtLeastNParams(payload, 2) - - address = payload.method === InterceptedMethods.sign ? payload.params[0] : payload.params[1] - - if (this.connection.isLocalAccount(address)) { - rpcCallHandler(payload, this.handleSignPersonalMessage.bind(this), decoratedCallback) - } else { - this.forwardSend(payload, callback) - } - - return - } - case InterceptedMethods.signTypedData: - case InterceptedMethods.signTypedDataV1: - case InterceptedMethods.signTypedDataV3: - case InterceptedMethods.signTypedDataV4: - case InterceptedMethods.signTypedDataV5: { - this.checkPayloadWithAtLeastNParams(payload, 1) - address = payload.params[0] - - if (this.connection.isLocalAccount(address)) { - rpcCallHandler(payload, this.handleSignTypedData.bind(this), decoratedCallback) - } else { - this.forwardSend(payload, callback) - } - return - } - - default: { - this.forwardSend(payload, callback) - return - } - } - } - - stop() { - if (this.alreadyStopped) { - return - } - try { - stopProvider(this.existingProvider) - this.alreadyStopped = true - } catch (error) { - debug(`Failed to close the connection: ${error}`) - } - } - - private async handleAccounts(_payload: JsonRpcPayload): Promise { - return this.connection.getAccounts() - } - - private async handleSignTypedData(payload: JsonRpcPayload): Promise { - const [address, typedData] = payload.params - const signature = this.connection.wallet!.signTypedData(address, typedData) - return signature - } - - private async handleSignPersonalMessage(payload: JsonRpcPayload): Promise { - const address = payload.method === 'eth_sign' ? payload.params[0] : payload.params[1] - const data = payload.method === 'eth_sign' ? payload.params[1] : payload.params[0] - const ecSignatureHex = this.connection.wallet!.signPersonalMessage(address, data) - return ecSignatureHex - } - - private async handleSignTransaction(payload: JsonRpcPayload): Promise { - const txParams = payload.params[0] - const filledParams = await this.connection.paramsPopulator.populate(txParams) - debugTxToSend('%O', filledParams) - const signedTx = await this.connection.wallet!.signTransaction(filledParams) - debugEncodedTx('%O', signedTx) - return signedTx - } - - private async handleSendTransaction(payload: JsonRpcPayload): Promise { - await this.nonceLock.acquire() - try { - const signedTx = await this.handleSignTransaction(payload) - const response = await this.connection.rpcCaller.call('eth_sendRawTransaction', [ - signedTx.raw, - ]) - return response.result - } finally { - this.nonceLock.release() - } - } - - private forwardSend(payload: JsonRpcPayload, callback: Callback): void { - this.connection.rpcCaller.send(payload, callback) - } - - private checkPayloadWithAtLeastNParams(payload: JsonRpcPayload, n: number) { - if (!payload.params || payload.params.length < n) { - throw Error('Invalid params') - } - } - - // Functions required to act as a delefator for the existingProvider - private addProviderDelegatedFunctions(): void { - if ( - hasProperty<{ on: (type: string, callback: () => void) => void }>(this.existingProvider, 'on') - ) { - // @ts-ignore - this.on = this.defaultOn - } - if ( - hasProperty<{ once: (type: string, callback: () => void) => void }>( - this.existingProvider, - 'once' - ) - ) { - // @ts-ignore - this.once = this.defaultOnce - } - if ( - hasProperty<{ removeListener: (type: string, callback: () => void) => void }>( - this.existingProvider, - 'removeListener' - ) - ) { - // @ts-ignore - this.removeListener = this.defaultRemoveListener - } - if ( - hasProperty<{ removeAllListener: (type: string, callback: () => void) => void }>( - this.existingProvider, - 'removeAllListener' - ) - ) { - // @ts-ignore - this.removeAllListener = this.defaultRemoveAllListeners - } - if (hasProperty<{ reset: () => void }>(this.existingProvider, 'reset')) { - // @ts-ignore - this.reset = this.defaultReset - } - } - - get connected() { - return (this.existingProvider as any).connected - } - - supportsSubscriptions() { - return (this.existingProvider as any).supportsSubscriptions() - } - - private defaultOn(type: string, callback: () => void): void { - ;(this.existingProvider as any).on(type, callback) - } - - private defaultOnce(type: string, callback: () => void): void { - ;(this.existingProvider as any).once(type, callback) - } - - private defaultRemoveListener(type: string, callback: () => void): void { - ;(this.existingProvider as any).removeListener(type, callback) - } - - private defaultRemoveAllListeners(type: string): void { - ;(this.existingProvider as any).removeAllListeners(type) - } - - private defaultReset(): void { - ;(this.existingProvider as any).reset() - } -} diff --git a/packages/sdk/connect/src/connection.test.ts b/packages/sdk/connect/src/connection.test.ts deleted file mode 100644 index 4d0f7754f3b..00000000000 --- a/packages/sdk/connect/src/connection.test.ts +++ /dev/null @@ -1,59 +0,0 @@ -import Web3 from 'web3' -import { Connection } from './connection' - -describe('Connection', () => { - let connection: Connection - beforeEach(() => { - const web3 = new Web3('http://localhost:8545') - connection = new Connection(web3) - }) - - describe('#setFeeMarketGas', () => { - describe('when fee market gas is set', () => { - it('returns with gasPrice undefined and feeMarketGas set', async () => { - const result = await connection.setFeeMarketGas({ - maxFeePerGas: '1', - maxPriorityFeePerGas: '2', - }) - expect(result).toEqual({ - gasPrice: undefined, - maxFeePerGas: '1', - maxPriorityFeePerGas: '2', - }) - }) - }) - - describe('when fee market gas is not set', () => { - beforeEach(() => { - connection.rpcCaller.call = jest.fn(async (method) => { - if (method === 'eth_gasPrice') { - return { - result: '300000', - id: 22, - jsonrpc: '2.0', - } - } - if (method === 'eth_maxPriorityFeePerGas') { - return { - result: '200000', - id: 23, - jsonrpc: '2.0', - } - } - return { - result: 0, - id: 24, - jsonrpc: '2.0', - } - }) - }) - it('asked the rpc what they should be', () => { - connection.setFeeMarketGas({ feeCurrency: '0x000000' }) - expect(connection.rpcCaller.call).toHaveBeenCalledWith('eth_gasPrice', ['0x000000']) - expect(connection.rpcCaller.call).toHaveBeenCalledWith('eth_maxPriorityFeePerGas', [ - '0x000000', - ]) - }) - }) - }) -}) diff --git a/packages/sdk/connect/src/connection.ts b/packages/sdk/connect/src/connection.ts deleted file mode 100644 index 2fbc48005c9..00000000000 --- a/packages/sdk/connect/src/connection.ts +++ /dev/null @@ -1,536 +0,0 @@ -// tslint:disable: ordered-imports -import { ensureLeading0x, toChecksumAddress } from '@celo/utils/lib/address' -import { EIP712TypedData, generateTypedDataHash } from '@celo/utils/lib/sign-typed-data-utils' -import { Signature, parseSignatureWithoutPrefix } from '@celo/utils/lib/signatureUtils' -import { bufferToHex } from '@ethereumjs/util' -import debugFactory from 'debug' -import Web3 from 'web3' -import { AbiCoder } from './abi-types' -import { CeloProvider, assertIsCeloProvider } from './celo-provider' -import { - Address, - Block, - BlockHeader, - BlockNumber, - CeloTx, - CeloTxObject, - CeloTxPending, - CeloTxReceipt, - Provider, - Syncing, -} from './types' -import { decodeStringParameter } from './utils/abi-utils' -import { - hexToNumber, - inputAddressFormatter, - inputBlockNumberFormatter, - inputDefaultBlockNumberFormatter, - inputSignFormatter, - outputBigNumberFormatter, - outputBlockFormatter, - outputBlockHeaderFormatter, - outputCeloTxFormatter, - outputCeloTxReceiptFormatter, -} from './utils/formatter' -import { hasProperty } from './utils/provider-utils' -import { HttpRpcCaller, RpcCaller, getRandomId } from './utils/rpc-caller' -import { TxParamsNormalizer } from './utils/tx-params-normalizer' -import { TransactionResult, toTxResult } from './utils/tx-result' -import { ReadOnlyWallet } from './wallet' - -const debugGasEstimation = debugFactory('connection:gas-estimation') - -type BN = ReturnType -export interface ConnectionOptions { - gasInflationFactor: number - feeCurrency?: Address - from?: Address -} - -/** - * Connection is a Class for connecting to Celo, sending Transactions, etc - * @param web3 an instance of web3 - * @optional wallet a child class of {@link WalletBase} - * @optional handleRevert sets handleRevert on the web3.eth instance passed in - */ -export class Connection { - private config: ConnectionOptions - private _chainID: number | undefined - readonly paramsPopulator: TxParamsNormalizer - rpcCaller!: RpcCaller - - constructor(readonly web3: Web3, public wallet?: ReadOnlyWallet, handleRevert = true) { - web3.eth.handleRevert = handleRevert - - this.config = { - gasInflationFactor: 1.3, - } - - const existingProvider: Provider = web3.currentProvider as Provider - this.setProvider(existingProvider) - // TODO: Add this line with the wallets separation completed - // this.wallet = _wallet ?? new LocalWallet() - this.config.from = web3.eth.defaultAccount ?? undefined - this.paramsPopulator = new TxParamsNormalizer(this) - } - - setProvider(provider: Provider) { - if (!provider) { - throw new Error('Must have a valid Provider') - } - this._chainID = undefined - try { - if (!(provider instanceof CeloProvider)) { - this.rpcCaller = new HttpRpcCaller(provider) - provider = new CeloProvider(provider, this) - } - this.web3.setProvider(provider as any) - return true - } catch (error) { - console.error(`could not attach provider`, error) - return false - } - } - - keccak256 = (value: string | BN): string => { - return this.web3.utils.keccak256(value) - } - - hexToAscii = (hex: string) => { - return this.web3.utils.hexToAscii(hex) - } - - /** - * Set default account for generated transactions (eg. tx.from ) - */ - set defaultAccount(address: Address | undefined) { - this.config.from = address - this.web3.eth.defaultAccount = address ? address : null - } - - /** - * Default account for generated transactions (eg. tx.from) - */ - get defaultAccount(): Address | undefined { - return this.config.from - } - - set defaultGasInflationFactor(factor: number) { - this.config.gasInflationFactor = factor - } - - get defaultGasInflationFactor() { - return this.config.gasInflationFactor - } - - /** - * Set the ERC20 address for the token to use to pay for transaction fees. - * The ERC20 must be whitelisted for gas. - * - * Set to `null` to use CELO - * - * @param address ERC20 address - */ - set defaultFeeCurrency(address: Address | undefined) { - this.config.feeCurrency = address - } - - get defaultFeeCurrency() { - return this.config.feeCurrency - } - - isLocalAccount(address?: Address): boolean { - return this.wallet != null && this.wallet.hasAccount(address) - } - - addAccount(privateKey: string) { - if (this.wallet) { - if (hasProperty<{ addAccount: (privateKey: string) => void }>(this.wallet, 'addAccount')) { - this.wallet.addAccount(privateKey) - } else { - throw new Error("The wallet used, can't add accounts") - } - } else { - throw new Error('No wallet set') - } - } - - removeAccount(address: string) { - if (this.wallet) { - if (hasProperty<{ removeAccount: (address: string) => void }>(this.wallet, 'removeAccount')) { - this.wallet.removeAccount(address) - } else { - throw new Error("The wallet used, can't remove accounts") - } - } else { - throw new Error('No wallet set') - } - } - - async getNodeAccounts(): Promise { - const nodeAccountsResp = await this.rpcCaller.call('eth_accounts', []) - return this.toChecksumAddresses(nodeAccountsResp.result ?? []) - } - - getLocalAccounts(): string[] { - return this.wallet ? this.toChecksumAddresses(this.wallet.getAccounts()) : [] - } - - async getAccounts(): Promise { - return (await this.getNodeAccounts()).concat(this.getLocalAccounts()) - } - - private toChecksumAddresses(addresses: string[]) { - return addresses.map((value) => toChecksumAddress(value)) - } - - isListening(): Promise { - return this.web3.eth.net.isListening() - } - - isSyncing(): Promise { - return new Promise((resolve, reject) => { - this.web3.eth - .isSyncing() - .then((response: boolean | Syncing) => { - // isSyncing returns a syncProgress object when it's still syncing - if (typeof response === 'boolean') { - resolve(response) - } else { - resolve(true) - } - }) - .catch(reject) - }) - } - - /** - * Send a transaction to celo-blockchain. - * - * Similar to `web3.eth.sendTransaction()` but with following differences: - * - applies connections tx's defaults - * - estimatesGas before sending - * - returns a `TransactionResult` instead of `PromiEvent` - */ - sendTransaction = async (tx: CeloTx): Promise => { - tx = this.fillTxDefaults(tx) - - let gas = tx.gas - if (gas == null) { - gas = await this.estimateGasWithInflationFactor(tx) - } - - return toTxResult( - this.web3.eth.sendTransaction({ - ...tx, - gas, - }) - ) - } - - sendTransactionObject = async ( - txObj: CeloTxObject, - tx?: Omit - ): Promise => { - tx = this.fillTxDefaults(tx) - - let gas = tx.gas - if (gas == null) { - const gasEstimator = (_tx: CeloTx) => txObj.estimateGas({ ..._tx }) - const getCallTx = (_tx: CeloTx) => { - // @ts-ignore missing _parent property from TransactionObject type. - return { ..._tx, data: txObj.encodeABI(), to: txObj._parent._address } - } - const caller = (_tx: CeloTx) => this.web3.eth.call(getCallTx(_tx)) - gas = await this.estimateGasWithInflationFactor(tx, gasEstimator, caller) - } - - return toTxResult( - txObj.send({ - ...tx, - gas, - }) - ) - } - - /* - * @param signer - The address of account signing this data - * @param typedData - Structured data to be signed - * @param version - Optionally provide a version which will be appended to the method. E.G. (4) becomes 'eth_signTypedData_v4' - * @remarks Some providers like Metamask treat eth_signTypedData differently from versioned method eth_signTypedData_v4 - * @see [Metamask info in signing Typed Data](https://docs.metamask.io/guide/signing-data.html) - */ - signTypedData = async ( - signer: string, - typedData: EIP712TypedData, - version?: 1 | 3 | 4 | 5 - ): Promise => { - // stringify data for v3 & v4 based on https://github.com/MetaMask/metamask-extension/blob/c72199a1a6e4151c40c22f79d0f3b6ed7a2d59a7/app/scripts/lib/typed-message-manager.js#L185 - const shouldStringify = version === 3 || version === 4 - - // Uses the Provider and not the RpcCaller, because this method should be intercepted - // by the CeloProvider if there is a local wallet that could sign it. The RpcCaller - // would just forward it to the node - const signature = await new Promise((resolve, reject) => { - const method = version ? `eth_signTypedData_v${version}` : 'eth_signTypedData' - ;(this.web3.currentProvider as Provider).send( - { - id: getRandomId(), - jsonrpc: '2.0', - method, - params: [ - inputAddressFormatter(signer), - shouldStringify ? JSON.stringify(typedData) : typedData, - ], - }, - (error, resp) => { - if (error) { - reject(error) - } else if (resp) { - resolve(resp.result as string) - } else { - reject(new Error('empty-response')) - } - } - ) - }) - - const messageHash = bufferToHex(generateTypedDataHash(typedData)) - return parseSignatureWithoutPrefix(messageHash, signature, signer) - } - - sign = async (dataToSign: string, address: Address | number): Promise => { - // Uses the Provider and not the RpcCaller, because this method should be intercepted - // by the CeloProvider if there is a local wallet that could sign it. The RpcCaller - // would just forward it to the node - const signature = await new Promise((resolve, reject) => { - ;(this.web3.currentProvider as Provider).send( - { - id: getRandomId(), - jsonrpc: '2.0', - method: 'eth_sign', - params: [inputAddressFormatter(address.toString()), inputSignFormatter(dataToSign)], - }, - (error, resp) => { - if (error) { - reject(error) - } else if (resp) { - resolve(resp.result as string) - } else { - reject(new Error('empty-response')) - } - } - ) - }) - - return signature - } - - sendSignedTransaction = async (signedTransactionData: string): Promise => { - return toTxResult(this.web3.eth.sendSignedTransaction(signedTransactionData)) - } - // if neither gas price nor feeMarket fields are present set them. - setFeeMarketGas = async (tx: CeloTx): Promise => { - // default to the current values - const calls = [Promise.resolve(tx.maxFeePerGas), Promise.resolve(tx.maxPriorityFeePerGas)] - - if (isEmpty(tx.maxFeePerGas)) { - calls[0] = this.gasPrice(tx.feeCurrency) - } - if (isEmpty(tx.maxPriorityFeePerGas)) { - calls[1] = this.rpcCaller - .call('eth_maxPriorityFeePerGas', [tx.feeCurrency]) - .then((rpcResponse) => { - return rpcResponse.result - }) - } - const [maxFeePerGas, maxPriorityFeePerGas] = await Promise.all(calls) - return { - ...tx, - gasPrice: undefined, - maxFeePerGas, - maxPriorityFeePerGas, - } - } - - estimateGas = async ( - tx: CeloTx, - gasEstimator: (tx: CeloTx) => Promise = this.web3.eth.estimateGas, - caller: (tx: CeloTx) => Promise = this.web3.eth.call - ): Promise => { - try { - const gas = await gasEstimator({ ...tx }) - debugGasEstimation('estimatedGas: %s', gas.toString()) - return gas - } catch (e) { - const called = await caller({ data: tx.data, to: tx.to, from: tx.from }) - let revertReason = 'Could not decode transaction failure reason' - if (called.startsWith('0x08c379a')) { - revertReason = decodeStringParameter(this.getAbiCoder(), called.substring(10)) - } - debugGasEstimation('Recover transaction failure reason', { - called, - data: tx.data, - to: tx.to, - from: tx.from, - error: e, - revertReason, - }) - return Promise.reject(`Gas estimation failed: ${revertReason} or ${e}`) - } - } - - getAbiCoder(): AbiCoder { - return this.web3.eth.abi as unknown as AbiCoder - } - - estimateGasWithInflationFactor = async ( - tx: CeloTx, - gasEstimator?: (tx: CeloTx) => Promise, - caller?: (tx: CeloTx) => Promise - ): Promise => { - try { - const gas = Math.round( - (await this.estimateGas(tx, gasEstimator, caller)) * this.config.gasInflationFactor - ) - debugGasEstimation('estimatedGasWithInflationFactor: %s', gas) - return gas - } catch (e: any) { - throw new Error(e) - } - } - - // An instance of Connection will only change chain id if provider is changed. - chainId = async (): Promise => { - if (this._chainID) { - return this._chainID - } - // Reference: https://eth.wiki/json-rpc/API#net_version - const response = await this.rpcCaller.call('net_version', []) - const chainID = parseInt(response.result.toString(), 10) - this._chainID = chainID - return chainID - } - - getTransactionCount = async (address: Address): Promise => { - // Reference: https://eth.wiki/json-rpc/API#eth_gettransactioncount - const response = await this.rpcCaller.call('eth_getTransactionCount', [address, 'pending']) - - return hexToNumber(response.result)! - } - - nonce = async (address: Address): Promise => { - return this.getTransactionCount(address) - } - - coinbase = async (): Promise => { - // Reference: https://eth.wiki/json-rpc/API#eth_coinbase - const response = await this.rpcCaller.call('eth_coinbase', []) - return response.result.toString() - } - - gasPrice = async (feeCurrency?: Address): Promise => { - // Required otherwise is not backward compatible - const parameter = feeCurrency ? [feeCurrency] : [] - // Reference: https://eth.wiki/json-rpc/API#eth_gasprice - const response = await this.rpcCaller.call('eth_gasPrice', parameter) - const gasPriceInHex = response.result.toString() - return gasPriceInHex - } - - getBlockNumber = async (): Promise => { - const response = await this.rpcCaller.call('eth_blockNumber', []) - - return hexToNumber(response.result)! - } - - private isBlockNumberHash = (blockNumber: BlockNumber) => - blockNumber instanceof String && blockNumber.indexOf('0x') === 0 - - getBlock = async (blockHashOrBlockNumber: BlockNumber, fullTxObjects = true): Promise => { - const endpoint = this.isBlockNumberHash(blockHashOrBlockNumber) - ? 'eth_getBlockByHash' // Reference: https://eth.wiki/json-rpc/API#eth_getBlockByHash - : 'eth_getBlockByNumber' // Reference: https://eth.wiki/json-rpc/API#eth_getBlockByNumber - - const response = await this.rpcCaller.call(endpoint, [ - inputBlockNumberFormatter(blockHashOrBlockNumber), - fullTxObjects, - ]) - - return outputBlockFormatter(response.result) - } - - getBlockHeader = async (blockHashOrBlockNumber: BlockNumber): Promise => { - const endpoint = this.isBlockNumberHash(blockHashOrBlockNumber) - ? 'eth_getHeaderByHash' - : 'eth_getHeaderByNumber' - - const response = await this.rpcCaller.call(endpoint, [ - inputBlockNumberFormatter(blockHashOrBlockNumber), - ]) - - return outputBlockHeaderFormatter(response.result) - } - - getBalance = async (address: Address, defaultBlock?: BlockNumber): Promise => { - // Reference: https://eth.wiki/json-rpc/API#eth_getBalance - const response = await this.rpcCaller.call('eth_getBalance', [ - inputAddressFormatter(address), - inputDefaultBlockNumberFormatter(defaultBlock), - ]) - return outputBigNumberFormatter(response.result) - } - - getTransaction = async (transactionHash: string): Promise => { - // Reference: https://eth.wiki/json-rpc/API#eth_getTransactionByHash - const response = await this.rpcCaller.call('eth_getTransactionByHash', [ - ensureLeading0x(transactionHash), - ]) - return outputCeloTxFormatter(response.result) - } - - getTransactionReceipt = async (txhash: string): Promise => { - // Reference: https://eth.wiki/json-rpc/API#eth_getTransactionReceipt - const response = await this.rpcCaller.call('eth_getTransactionReceipt', [ - ensureLeading0x(txhash), - ]) - - if (response.result === null) { - return null - } - - return outputCeloTxReceiptFormatter(response.result) - } - - private fillTxDefaults(tx?: CeloTx): CeloTx { - const defaultTx: CeloTx = { - from: this.config.from, - feeCurrency: this.config.feeCurrency, - } - - return { - ...defaultTx, - ...tx, - } - } - - stop() { - assertIsCeloProvider(this.web3.currentProvider) - this.web3.currentProvider.stop() - } -} - -function isEmpty(value: string | undefined | number | BN) { - return ( - value === 0 || - value === undefined || - value === null || - value === '0' || - (typeof value === 'string' && - (value.toLowerCase() === '0x' || value.toLowerCase() === '0x0')) || - Web3.utils.toBN(value.toString()).eq(Web3.utils.toBN(0)) - ) -} -export function isPresent(value: string | undefined | number | BN) { - return !isEmpty(value) -} diff --git a/packages/sdk/connect/src/index.ts b/packages/sdk/connect/src/index.ts deleted file mode 100644 index d294dc86764..00000000000 --- a/packages/sdk/connect/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './abi-types' -export * from './connection' -export * from './types' -export * from './utils/abi-utils' -export * from './utils/celo-transaction-object' -export * from './utils/rpc-caller' -export * from './utils/tx-result' -export * from './wallet' diff --git a/packages/sdk/connect/src/types.ts b/packages/sdk/connect/src/types.ts deleted file mode 100644 index 8312c142f05..00000000000 --- a/packages/sdk/connect/src/types.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { - AccessList, - PromiEvent, - Transaction, - TransactionConfig, - TransactionReceipt, -} from 'web3-core' -import { Contract } from 'web3-eth-contract' -export type Address = string - -export type Hex = `0x${string}` -export interface CeloParams { - feeCurrency: string - /* - @deprecated - */ - gatewayFeeRecipient: string - /* - @deprecated - */ - gatewayFee: string -} - -export type AccessListRaw = Array<[string, string[]]> - -export type HexOrMissing = Hex | undefined -export interface FormattedCeloTx { - chainId: number - from: HexOrMissing - to: HexOrMissing - data: string | undefined - value: HexOrMissing - feeCurrency?: HexOrMissing - /* - @deprecated - */ - gatewayFeeRecipient?: HexOrMissing - /* - @deprecated - */ - gatewayFee?: HexOrMissing - gas: HexOrMissing - gasPrice?: Hex - maxFeePerGas?: Hex - maxPriorityFeePerGas?: Hex - nonce: HexOrMissing | number - accessList?: AccessListRaw - type: TransactionTypes -} - -export type CeloTx = TransactionConfig & - Partial & { accessList?: AccessList; type?: TransactionTypes } - -export type CeloTxWithSig = CeloTx & { v: number; s: string; r: string; yParity: 0 | 1 } -export interface CeloTxObject { - arguments: any[] - call(tx?: CeloTx): Promise - send(tx?: CeloTx): PromiEvent - estimateGas(tx?: CeloTx): Promise - encodeABI(): string - _parent: Contract -} - -export { BlockNumber, EventLog, Log, PromiEvent, Sign } from 'web3-core' -export { Block, BlockHeader, Syncing } from 'web3-eth' -export { Contract, ContractSendMethod, PastEventOptions } from 'web3-eth-contract' - -export type TransactionTypes = 'eip1559' | 'celo-legacy' | 'cip42' | 'cip64' - -interface CommonTXProperties { - nonce: string - gas: string - to: string - value: string - input: string - r: string - s: string - v: string - hash: string - type: TransactionTypes -} - -interface FeeMarketAndAccessListTXProperties extends CommonTXProperties { - maxFeePerGas: string - maxPriorityFeePerGas: string - accessList?: AccessList -} - -export interface EIP1559TXProperties extends FeeMarketAndAccessListTXProperties { - type: 'eip1559' -} - -export interface CIP64TXProperties extends FeeMarketAndAccessListTXProperties { - feeCurrency: string - type: 'cip64' -} - -export interface CIP42TXProperties extends FeeMarketAndAccessListTXProperties { - feeCurrency: string - gatewayFeeRecipient?: string - gatewayFee?: string - type: 'cip42' -} - -/* - @deprecated - */ -export interface LegacyTXProperties extends CommonTXProperties { - gasPrice: string - feeCurrency: string - gatewayFeeRecipient: string - gatewayFee: string - type: 'celo-legacy' -} - -export interface EncodedTransaction { - raw: Hex - tx: LegacyTXProperties | CIP42TXProperties | EIP1559TXProperties | CIP64TXProperties -} - -export type CeloTxPending = Transaction & Partial -export type CeloTxReceipt = TransactionReceipt & Partial - -export type Callback = (error: Error | null, result?: T) => void - -export interface JsonRpcResponse { - jsonrpc: string - id: string | number - result?: any - error?: { - readonly code?: number - readonly data?: unknown - readonly message: string - } -} - -export interface JsonRpcPayload { - jsonrpc: string - method: string - params: any[] - id?: string | number -} - -export interface Provider { - send( - payload: JsonRpcPayload, - callback: (error: Error | null, result?: JsonRpcResponse) => void - ): void -} - -export interface Error { - readonly code?: number - readonly data?: unknown - readonly message: string -} - -export interface HttpProvider { - send( - payload: JsonRpcPayload, - callback: (error: Error | null, result?: JsonRpcResponse) => void - ): void -} - -export interface RLPEncodedTx { - transaction: FormattedCeloTx - rlpEncode: Hex - type: TransactionTypes -} diff --git a/packages/sdk/connect/src/utils/abi-utils.ts b/packages/sdk/connect/src/utils/abi-utils.ts deleted file mode 100644 index e2e0cfee6c0..00000000000 --- a/packages/sdk/connect/src/utils/abi-utils.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { ensureLeading0x } from '@celo/base/lib/address' -import { AbiCoder, ABIDefinition, AbiItem, DecodedParamsObject } from '../abi-types' - -/** @internal */ -export const getAbiByName = (abi: AbiItem[], methodName: string) => - abi.find((entry) => entry.name! === methodName)! - -/** @internal */ -export const parseDecodedParams = (params: DecodedParamsObject) => { - const args = new Array(params.__length__) - Object.keys(params).forEach((key) => { - if (key === '__length__') { - return - } - const argIndex = parseInt(key, 10) - if (argIndex >= 0) { - args[argIndex] = params[key] - delete params[key] - } - }) - return { args, params } -} - -/** @internal */ -export const signatureToAbiDefinition = (fnSignature: string): ABIDefinition => { - const matches = /(?[^\(]+)\((?.*)\)/.exec(fnSignature) - if (matches == null) { - throw new Error(`${fnSignature} is malformed`) - } - const method = matches.groups!.method - const args = matches.groups!.args.split(',') - - return { - name: method, - signature: fnSignature, - type: 'function', - inputs: args.map((type, index) => { - const parts = type - .trim() - .split(' ') - .map((p) => p.trim()) - if (parts.length > 2) { - throw new Error(`${fnSignature} is malformed`) - } - - return { - name: parts.length > 1 ? parts[1] : `a${index}`, - type: parts[0], - } - }), - } -} - -/** @internal */ -export const decodeStringParameter = (ethAbi: AbiCoder, str: string) => - ethAbi.decodeParameter('string', ensureLeading0x(str)) diff --git a/packages/sdk/connect/src/utils/celo-transaction-object.ts b/packages/sdk/connect/src/utils/celo-transaction-object.ts deleted file mode 100644 index b71948c2ca1..00000000000 --- a/packages/sdk/connect/src/utils/celo-transaction-object.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Connection } from '../connection' -import { CeloTx, CeloTxObject, CeloTxReceipt } from '../types' -import { TransactionResult } from './tx-result' - -export type CeloTransactionParams = Omit - -export function toTransactionObject( - connection: Connection, - txo: CeloTxObject, - defaultParams?: CeloTransactionParams -): CeloTransactionObject { - return new CeloTransactionObject(connection, txo, defaultParams) -} - -export class CeloTransactionObject { - constructor( - private connection: Connection, - readonly txo: CeloTxObject, - readonly defaultParams?: CeloTransactionParams - ) {} - - /** send the transaction to the chain */ - send = (params?: CeloTransactionParams): Promise => { - return this.connection.sendTransactionObject(this.txo, { ...this.defaultParams, ...params }) - } - - /** send the transaction and waits for the receipt */ - sendAndWaitForReceipt = (params?: CeloTransactionParams): Promise => - this.send(params).then((result) => result.waitReceipt()) -} diff --git a/packages/sdk/connect/src/utils/formatter.test.ts b/packages/sdk/connect/src/utils/formatter.test.ts deleted file mode 100644 index 0eaeaa92be6..00000000000 --- a/packages/sdk/connect/src/utils/formatter.test.ts +++ /dev/null @@ -1,297 +0,0 @@ -import { CeloTx } from '../types' -import { inputAccessListFormatter, inputCeloTxFormatter, outputCeloTxFormatter } from './formatter' - -describe('inputAccessListFormatter', () => { - test('with valid accessList', () => { - const accessList = [ - { - address: '0x0000000000000000000000000000000000000000', - storageKeys: [ - '0x0000000000000000000000000000000000000000000000000000000000000001', - '0x60fdd29ff912ce880cd3edaf9f932dc61d3dae823ea77e0323f94adb9f6a72fe', - ], - }, - ] - - expect(inputAccessListFormatter(accessList)).toEqual([ - [ - '0x0000000000000000000000000000000000000000', - [ - '0x0000000000000000000000000000000000000000000000000000000000000001', - '0x60fdd29ff912ce880cd3edaf9f932dc61d3dae823ea77e0323f94adb9f6a72fe', - ], - ], - ]) - }) -}) - -describe('inputCeloTxFormatter', () => { - const base: CeloTx = { - chainId: 42220, - nonce: 1, - gas: 1000000, - value: '0x0241', - from: '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe', - to: '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe', - data: '0x', - } - describe('when address does not pass checksum', () => { - ;['from', 'to', 'feeCurrency'].forEach((property) => { - test(`${property}`, () => { - const faulty = { ...base, [property]: '0x3e8' } - expect(() => inputCeloTxFormatter(faulty)).toThrowError( - `Provided address 0x3e8 is invalid, the capitalization checksum test failed` - ) - }) - }) - }) - - describe('valid celo-legacy tx', () => { - const legacy = { - ...base, - gasPrice: '0x3e8', - feeCurrency: '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe', - } - it('formats', () => { - expect(inputCeloTxFormatter(legacy)).toMatchInlineSnapshot(` - { - "data": "0x", - "feeCurrency": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "from": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "gas": "0xf4240", - "gasPrice": "0x3e8", - "nonce": "0x1", - "to": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "value": "0x241", - } - `) - }) - }) - describe('valid cip64 tx', () => { - const cip64 = { - ...base, - maxFeePerGas: '0x3e8', - maxPriorityFeePerGas: '0x3e8', - feeCurrency: '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe', - } - it('formats', () => { - expect(inputCeloTxFormatter(cip64)).toMatchInlineSnapshot(` - { - "data": "0x", - "feeCurrency": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "from": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "gas": "0xf4240", - "maxFeePerGas": "0x3e8", - "maxPriorityFeePerGas": "0x3e8", - "nonce": "0x1", - "to": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "value": "0x241", - } - `) - }) - }) - describe('valid cip42 tx', () => { - const cip42 = { - ...base, - maxFeePerGas: '0x3e8', - maxPriorityFeePerGas: '0x3e8', - feeCurrency: '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe', - } - it('formats', () => { - expect(inputCeloTxFormatter(cip42)).toMatchInlineSnapshot(` - { - "data": "0x", - "feeCurrency": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "from": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "gas": "0xf4240", - "maxFeePerGas": "0x3e8", - "maxPriorityFeePerGas": "0x3e8", - "nonce": "0x1", - "to": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "value": "0x241", - } - `) - }) - }) - describe('valid eip1559 tx', () => { - const eip1559 = { - ...base, - maxFeePerGas: '0x3e8', - maxPriorityFeePerGas: '0x3e8', - } - it('formats', () => { - expect(inputCeloTxFormatter(eip1559)).toMatchInlineSnapshot(` - { - "data": "0x", - "from": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "gas": "0xf4240", - "maxFeePerGas": "0x3e8", - "maxPriorityFeePerGas": "0x3e8", - "nonce": "0x1", - "to": "0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae", - "value": "0x241", - } - `) - }) - }) -}) - -describe('outputCeloTxFormatter', () => { - const base = { - nonce: '0x4', - data: '0x', - input: '0x3454645634534', - from: '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe', - to: '0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae', - value: '0x3e8', - gas: '0x3e8', - transactionIndex: '0x1', - blockNumber: '0x3e8', - blockHash: '0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9', - } - describe('with blockNumber', () => { - test('when valid', () => { - expect(outputCeloTxFormatter({ ...base, blockNumber: '0x1' })).toMatchInlineSnapshot(` - { - "blockHash": "0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9", - "blockNumber": 1, - "data": "0x", - "from": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "gas": 1000, - "input": "0x3454645634534", - "nonce": 4, - "to": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "transactionIndex": 1, - "value": "1000", - } - `) - }) - test('when invalid', () => { - expect(outputCeloTxFormatter({ ...base, blockNumber: null })).toMatchInlineSnapshot(` - { - "blockHash": "0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9", - "blockNumber": null, - "data": "0x", - "from": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "gas": 1000, - "input": "0x3454645634534", - "nonce": 4, - "to": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "transactionIndex": 1, - "value": "1000", - } - `) - }) - }) - describe('with valid celo-legacy tx', () => { - const legacy = { - ...base, - gasPrice: '0x3e8', - } - test('when valid', () => { - expect(outputCeloTxFormatter(legacy)).toMatchInlineSnapshot(` - { - "blockHash": "0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9", - "blockNumber": 1000, - "data": "0x", - "from": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "gas": 1000, - "gasPrice": "1000", - "input": "0x3454645634534", - "nonce": 4, - "to": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "transactionIndex": 1, - "value": "1000", - } - `) - }) - }) - describe('with valid cip42 tx', () => { - const cip42 = { - ...base, - gateWayFee: '0x3e8', - feeCurrency: '0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae', - maxFeePerGas: '0x3e8', - maxPriorityFeePerGas: '0x3e8', - } - test('when valid', () => { - expect(outputCeloTxFormatter(cip42)).toMatchInlineSnapshot(` - { - "blockHash": "0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9", - "blockNumber": 1000, - "data": "0x", - "feeCurrency": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "from": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "gas": 1000, - "gateWayFee": "0x3e8", - "input": "0x3454645634534", - "maxFeePerGas": "1000", - "maxPriorityFeePerGas": "1000", - "nonce": 4, - "to": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "transactionIndex": 1, - "value": "1000", - } - `) - }) - }) - describe('with valid eip1559 tx', () => { - const eip1559 = { - ...base, - maxFeePerGas: '0x3e8', - maxPriorityFeePerGas: '0x3e8', - } - test('when valid', () => { - expect(outputCeloTxFormatter(eip1559)).toMatchInlineSnapshot(` - { - "blockHash": "0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9", - "blockNumber": 1000, - "data": "0x", - "from": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "gas": 1000, - "input": "0x3454645634534", - "maxFeePerGas": "1000", - "maxPriorityFeePerGas": "1000", - "nonce": 4, - "to": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "transactionIndex": 1, - "value": "1000", - } - `) - }) - }) - describe('when properties are missing', () => { - test('without from', () => { - expect(outputCeloTxFormatter({ ...base, from: null })).toMatchInlineSnapshot(` - { - "blockHash": "0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9", - "blockNumber": 1000, - "data": "0x", - "from": null, - "gas": 1000, - "input": "0x3454645634534", - "nonce": 4, - "to": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "transactionIndex": 1, - "value": "1000", - } - `) - }) - test('without to', () => { - expect(outputCeloTxFormatter({ ...base, to: null })).toMatchInlineSnapshot(` - { - "blockHash": "0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9", - "blockNumber": 1000, - "data": "0x", - "from": "0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe", - "gas": 1000, - "input": "0x3454645634534", - "nonce": 4, - "to": null, - "transactionIndex": 1, - "value": "1000", - } - `) - }) - }) -}) diff --git a/packages/sdk/connect/src/utils/formatter.ts b/packages/sdk/connect/src/utils/formatter.ts deleted file mode 100644 index ebba6760dce..00000000000 --- a/packages/sdk/connect/src/utils/formatter.ts +++ /dev/null @@ -1,375 +0,0 @@ -import { ensureLeading0x, StrongAddress, trimLeading0x } from '@celo/base/lib/address' -import { isValidAddress, toChecksumAddress } from '@celo/utils/lib/address' -import { sha3 } from '@celo/utils/lib/solidity' -import BigNumber from 'bignumber.js' -import { encode } from 'utf8' -import { AccessList } from 'web3-core' -import { - AccessListRaw, - Block, - BlockHeader, - BlockNumber, - CeloTx, - CeloTxPending, - CeloTxReceipt, - FormattedCeloTx, - Hex, - Log, -} from '../types' - -/** - * Formats the input of a transaction and converts all values to HEX - */ -export function inputCeloTxFormatter(tx: CeloTx): FormattedCeloTx { - const { - from, - chainId, - nonce, - to, - gas, - gasPrice, - maxFeePerGas, - maxPriorityFeePerGas, - feeCurrency, - gatewayFee, - gatewayFeeRecipient, - data, - value, - accessList, - common, - chain, - hardfork, - ...rest - } = tx - const formattedTX: Partial = rest - formattedTX.from = inputAddressFormatter(from?.toString()) - formattedTX.to = inputAddressFormatter(to) - - formattedTX.gas = numberToHex(gas) - - formattedTX.value = numberToHex(value?.toString()) - formattedTX.nonce = numberToHex(nonce?.toString()) - - if (feeCurrency) { - formattedTX.feeCurrency = inputAddressFormatter(feeCurrency) - } - if (gatewayFeeRecipient) { - formattedTX.gatewayFeeRecipient = inputAddressFormatter(gatewayFeeRecipient) - } - if (gatewayFee) { - formattedTX.gatewayFee = numberToHex(gatewayFee) - } - - if (data && !isHex(data)) { - throw new Error('The data field must be HEX encoded data.') - } else if (data) { - formattedTX.data = ensureLeading0x(data) - } - - if (gasPrice) { - formattedTX.gasPrice = numberToHex(gasPrice.toString()) - } - if (maxFeePerGas) { - formattedTX.maxFeePerGas = numberToHex(maxFeePerGas.toString()) - } - if (maxPriorityFeePerGas) { - formattedTX.maxPriorityFeePerGas = numberToHex(maxPriorityFeePerGas.toString()) - } - if (accessList) { - formattedTX.accessList = inputAccessListFormatter(accessList) - } - - return formattedTX as FormattedCeloTx -} - -export function outputCeloTxFormatter(tx: any): CeloTxPending { - if (tx.blockNumber !== null) { - tx.blockNumber = hexToNumber(tx.blockNumber) - } - if (tx.transactionIndex !== null) { - tx.transactionIndex = hexToNumber(tx.transactionIndex) - } - tx.nonce = hexToNumber(tx.nonce) - tx.gas = hexToNumber(tx.gas) - tx.value = outputBigNumberFormatter(tx.value) - - if (tx.gatewayFee) { - tx.gatewayFee = outputBigNumberFormatter(tx.gatewayFee) - } - - if (tx.gasPrice) { - tx.gasPrice = outputBigNumberFormatter(tx.gasPrice) - } - if (tx.maxFeePerGas) { - tx.maxFeePerGas = outputBigNumberFormatter(tx.maxFeePerGas) - } - if (tx.maxPriorityFeePerGas) { - tx.maxPriorityFeePerGas = outputBigNumberFormatter(tx.maxPriorityFeePerGas) - } - - tx.to = - tx.to && isValidAddress(tx.to) - ? // tx.to could be `0x0` or `null` while contract creation - (tx.to = toChecksumAddress(tx.to)) - : null // set to `null` if invalid address - - if (tx.from) { - tx.from = toChecksumAddress(tx.from) - } - - if (tx.feeCurrency) { - tx.feeCurrency = toChecksumAddress(tx.feeCurrency) - } - - if (tx.gatewayFeeRecipient) { - tx.gatewayFeeRecipient = toChecksumAddress(tx.gatewayFeeRecipient) - } - - return tx as CeloTxPending -} - -export function outputCeloTxReceiptFormatter(receipt: any): CeloTxReceipt { - if (typeof receipt !== 'object') { - throw new Error('Received receipt is invalid: ' + receipt) - } - - if (receipt.blockNumber !== null) { - receipt.blockNumber = hexToNumber(receipt.blockNumber) - } - if (receipt.transactionIndex !== null) { - receipt.transactionIndex = hexToNumber(receipt.transactionIndex) - } - receipt.cumulativeGasUsed = hexToNumber(receipt.cumulativeGasUsed) - receipt.gasUsed = hexToNumber(receipt.gasUsed) - - if (Array.isArray(receipt.logs)) { - receipt.logs = receipt.logs.map(outputLogFormatter) - } - - if (receipt.contractAddress) { - receipt.contractAddress = toChecksumAddress(receipt.contractAddress) - } - - if (typeof receipt.status !== 'undefined' && receipt.status !== null) { - receipt.status = Boolean(parseInt(trimLeading0x(receipt.status), 10)) - } - - return receipt as CeloTxReceipt -} - -export function inputDefaultBlockNumberFormatter(blockNumber: BlockNumber | null | undefined) { - if (blockNumber == null) { - blockNumber = 'latest' - } - - return inputBlockNumberFormatter(blockNumber) -} - -export function inputBlockNumberFormatter(blockNumber: BlockNumber) { - if (blockNumber == null) { - return undefined - } - - if (isPredefinedBlockNumber(blockNumber)) { - return blockNumber - } - - if (blockNumber === 'genesis') { - return '0x0' - } - - return isHexStrict(blockNumber.toString()) - ? blockNumber.toString().toLocaleLowerCase() - : numberToHex(blockNumber.toString())! -} - -// TODO prune after gingerbread hardfork -export function outputBlockHeaderFormatter(blockHeader: any): BlockHeader { - // transform to number - blockHeader.gasLimit = hexToNumber(blockHeader.gasLimit) - blockHeader.gasUsed = hexToNumber(blockHeader.gasUsed) - blockHeader.size = hexToNumber(blockHeader.size) - blockHeader.timestamp = hexToNumber(blockHeader.timestamp) - if (blockHeader.number !== null) { - blockHeader.number = hexToNumber(blockHeader.number) - } - if (blockHeader.miner) { - blockHeader.miner = toChecksumAddress(blockHeader.miner) - } - return blockHeader as BlockHeader -} - -export function outputBlockFormatter(block: any): Block { - block = outputBlockHeaderFormatter(block) - - if (block.difficulty) { - block.difficulty = outputBigNumberFormatter(block.difficulty) - } - if (block.totalDifficulty) { - block.totalDifficulty = outputBigNumberFormatter(block.totalDifficulty) - } - - if (Array.isArray(block.transactions)) { - block.transactions.forEach((item: any) => { - if (typeof item !== 'string' && !(item instanceof String)) { - return outputCeloTxFormatter(item) - } - }) - } - - return block as Block -} - -export function hexToNumber(hex?: string): number | undefined { - if (hex) { - return new BigNumber(hex).toNumber() - } - return undefined -} - -export function outputLogFormatter(log: any): Log { - // generate a custom log id - if ( - typeof log.blockHash === 'string' && - typeof log.transactionHash === 'string' && - typeof log.logIndex === 'string' - ) { - const shaId = sha3( - trimLeading0x(log.blockHash) + - trimLeading0x(log.transactionHash) + - trimLeading0x(log.logIndex) - )! - log.id = 'log_' + trimLeading0x(shaId).substring(0, 8) - } else if (!log.id) { - log.id = null - } - - if (log.blockNumber !== null) { - log.blockNumber = hexToNumber(log.blockNumber) - } - if (log.transactionIndex !== null) { - log.transactionIndex = hexToNumber(log.transactionIndex) - } - if (log.logIndex !== null) { - log.logIndex = hexToNumber(log.logIndex) - } - - if (log.address) { - log.address = toChecksumAddress(log.address) - } - - return log as Log -} - -export function outputBigNumberFormatter(hex: string): string { - return new BigNumber(hex).toString(10) -} - -function isHash(value: string) { - return isHex(value) && value.length === 32 -} - -export function parseAccessList(accessListRaw: AccessListRaw | undefined): AccessList { - const accessList: AccessList = [] - if (!accessListRaw) { - return accessList - } - for (const entry of accessListRaw) { - const [address, storageKeys] = entry - - throwIfInvalidAddress(address) - - accessList.push({ - address, - storageKeys: storageKeys.map((key) => { - if (isHash(key)) { - return key - } else { - // same behavior as web3 - throw new Error(`Invalid storage key: ${key}`) - } - }), - }) - } - return accessList -} - -function throwIfInvalidAddress(address: string) { - if (!isValidAddress(address)) { - throw new Error(`Invalid address: ${address}`) - } -} - -export function inputAccessListFormatter(accessList?: AccessList): AccessListRaw { - if (!accessList || accessList.length === 0) { - return [] - } - return accessList.reduce((acc, { address, storageKeys }) => { - throwIfInvalidAddress(address) - - storageKeys.forEach((storageKey) => { - if (storageKey.length - 2 !== 64) { - throw new Error(`Invalid storage key: ${storageKey}`) - } - }) - acc.push([address, storageKeys]) - return acc - }, [] as AccessListRaw) -} - -export function inputAddressFormatter(address?: string): StrongAddress | undefined { - if (!address || address === '0x') { - return undefined - } - if (isValidAddress(address)) { - return ensureLeading0x(address).toLocaleLowerCase() as StrongAddress - } - throw new Error(`Provided address ${address} is invalid, the capitalization checksum test failed`) -} - -export function inputSignFormatter(data: string) { - return isHexStrict(data) ? data : utf8ToHex(data) -} - -function utf8ToHex(str: string): string { - str = encode(str) - let hex = '' - - // remove \u0000 padding from either side - str = str.replace(/^(?:\u0000)*/, '') - str = str.split('').reverse().join('') - str = str.replace(/^(?:\u0000)*/, '') - str = str.split('').reverse().join('') - - for (let i = 0; i < str.length; i++) { - const code = str.charCodeAt(i) - // if (code !== 0) { - const n = code.toString(16) - hex += n.length < 2 ? '0' + n : n - // } - } - - return ensureLeading0x(hex) -} - -function isHex(hex: string): boolean { - return /^(-0x|0x)?[0-9a-f]*$/i.test(hex) -} - -function isHexStrict(hex: string): boolean { - return /^(-)?0x[0-9a-f]*$/i.test(hex) -} - -function numberToHex(value?: BigNumber.Value): Hex | undefined { - if (value) { - const numberValue = new BigNumber(value) - const result = ensureLeading0x(new BigNumber(value).toString(16)) - // Seen in web3, copied just in case - return (numberValue.lt(new BigNumber(0)) ? `-${result}` : result) as Hex - } - return undefined -} - -function isPredefinedBlockNumber(blockNumber: BlockNumber) { - return blockNumber === 'latest' || blockNumber === 'pending' || blockNumber === 'earliest' -} diff --git a/packages/sdk/connect/src/utils/provider-utils.ts b/packages/sdk/connect/src/utils/provider-utils.ts deleted file mode 100644 index 06ede8d5538..00000000000 --- a/packages/sdk/connect/src/utils/provider-utils.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Provider } from '../types' - -/** @internal */ -export function hasProperty(object: any, property: string): object is T { - return property in object -} - -/** @internal */ -export function stopProvider(defaultProvider: Provider) { - if (hasProperty<{ stop: () => void }>(defaultProvider, 'stop')) { - defaultProvider.stop() - } else { - // Close the web3 connection or the CLI hangs forever. - if (hasProperty<{ connection: any }>(defaultProvider, 'connection')) { - const connection = defaultProvider.connection - // WS - if (hasProperty<{ close: () => void }>(connection, 'close')) { - connection.close() - } - // Net (IPC provider) - if (hasProperty<{ destroy: () => void }>(connection, 'destroy')) { - connection.destroy() - } - // TODO: more cases? default? - } - } -} diff --git a/packages/sdk/connect/src/utils/rpc-caller.test.ts b/packages/sdk/connect/src/utils/rpc-caller.test.ts deleted file mode 100644 index 579d4cb1473..00000000000 --- a/packages/sdk/connect/src/utils/rpc-caller.test.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { Callback, Error, JsonRpcPayload, JsonRpcResponse, Provider } from '../types' -import { HttpRpcCaller, RpcCaller, rpcCallHandler } from './rpc-caller' - -const mockProvider: Provider = { - send: (payload: JsonRpcPayload, callback: Callback): any => { - const response: JsonRpcResponse = { - jsonrpc: payload.jsonrpc, - id: Number(payload.id), - result: { - params: payload.params, - method: payload.method, - }, - } - if (payload.method === 'mock_error_method') { - callback(new Error(payload.method)) - return - } else if (payload.method === 'mock_response_error_method') { - response.error = { - code: -32000, - message: 'foobar', - } - } - - callback(null, response) - }, -} - -describe('RPC Caller class', () => { - let rpcCaller: RpcCaller - - beforeEach(async () => { - rpcCaller = new HttpRpcCaller(mockProvider) - }) - - describe('when calling the provider', () => { - it('populates the payload id', async () => { - const result = await rpcCaller.call('mock_method', ['mock_param']) - expect(result.id).not.toBeUndefined() - expect(result.id).not.toBe(0) - }) - - it('populates the payload jsonrpc', async () => { - const result = await rpcCaller.call('mock_method', ['mock_param']) - expect(result.jsonrpc).not.toBeUndefined() - expect(result.jsonrpc).toBe('2.0') - }) - }) - - describe('when the provider fails', () => { - it('raises an error', async () => { - await expect(rpcCaller.call('mock_error_method', ['mock_param'])).rejects.toThrowError() - }) - }) - - describe('when the result contains an error', () => { - it('raises an error with the error message', async () => { - await expect( - rpcCaller.call('mock_response_error_method', ['mock_param']) - ).rejects.toThrowError('foobar') - }) - }) -}) - -function handleMock(payload: JsonRpcPayload): Promise { - if (payload.method === 'fail_not_promise') { - throw Error('fail') - } - return new Promise((resolve, reject) => { - if (payload.method === 'fail_promise') { - reject(Error('fail promise')) - } else { - resolve('mock_response') - } - }) -} - -describe('rpcCallHandler function', () => { - let payload: JsonRpcPayload - - beforeEach(async () => { - payload = { - jsonrpc: '2.0', - id: 1, - method: 'test', - params: [], - } - }) - - describe('when the handle promise fails', () => { - it('the callback receives a response with the error', (done) => { - function callback(_error: Error | null, response?: JsonRpcResponse) { - try { - expect((response as any).error.code).toBe(-32000) - done() - } catch (error) { - done(error) - } - } - expect.assertions(1) - payload.method = 'fail_promise' - rpcCallHandler(payload, handleMock, callback) - }) - }) - - describe('when the handle fails (not the promise)', () => { - it('the callback receives a response with the error', (done) => { - function callback(error: Error | null, response?: JsonRpcResponse) { - try { - expect(response).toBeUndefined() - expect(error).not.toBeNull() - done() - } catch (error) { - done(error) - } - } - expect.assertions(2) - payload.method = 'fail_not_promise' - rpcCallHandler(payload, handleMock, callback) - }) - }) - - describe('when the handle succeeds', () => { - it('the callback receives a response with a result', (done) => { - function callback(_error: Error | null, response?: JsonRpcResponse) { - try { - expect((response as any).error).toBeUndefined() - expect(response!.result).toBe('mock_response') - done() - } catch (error) { - done(error) - } - } - expect.assertions(2) - rpcCallHandler(payload, handleMock, callback) - }) - }) -}) diff --git a/packages/sdk/connect/src/utils/rpc-caller.ts b/packages/sdk/connect/src/utils/rpc-caller.ts deleted file mode 100644 index d7c5fb79427..00000000000 --- a/packages/sdk/connect/src/utils/rpc-caller.ts +++ /dev/null @@ -1,126 +0,0 @@ -import debugFactory from 'debug' -import { Callback, Error, HttpProvider, JsonRpcPayload, JsonRpcResponse } from '../types' - -const debugRpcPayload = debugFactory('rpc:payload') -const debugRpcResponse = debugFactory('rpc:response') -const debugRpcCallback = debugFactory('rpc:callback:exception') - -export function rpcCallHandler( - payload: JsonRpcPayload, - handler: (p: JsonRpcPayload) => Promise, - callback: Callback -) { - try { - handler(payload) - .then( - (result) => { - callback(null, toRPCResponse(payload, result)) - }, - // Called if the Promise of the 'handler' fails - (error) => { - callback(error, toRPCResponse(payload, null, error)) - } - ) - .catch((error) => { - // Called if the 'callback' fails - debugRpcCallback('Callback for handling the JsonRpcResponse fails') - debugRpcCallback('%O', error) - }) - } catch (error) { - // Called if the handler fails before making the promise - callback(error instanceof Error ? error : null) - } -} - -// Ported from: https://github.com/MetaMask/provider-engine/blob/master/util/random-id.js -export function getRandomId(): number { - const extraDigits = 3 - const baseTen = 10 - // 13 time digits - const datePart = new Date().getTime() * Math.pow(baseTen, extraDigits) - // 3 random digits - const extraPart = Math.floor(Math.random() * Math.pow(baseTen, extraDigits)) - // 16 digits - return datePart + extraPart -} - -function toRPCResponse(payload: JsonRpcPayload, result: any, error?: Error): JsonRpcResponse { - const response: JsonRpcResponse = { - id: Number(payload.id), - jsonrpc: payload.jsonrpc, - result, - } - - if (error != null) { - response.error = { - message: error.message || error.toString(), - code: -32000, - } - } - return response -} - -export interface RpcCaller { - call: (method: string, params: any[]) => Promise - send: ( - payload: JsonRpcPayload, - callback: (error: Error | null, result?: JsonRpcResponse) => void - ) => void -} - -export class HttpRpcCaller implements RpcCaller { - constructor(readonly httpProvider: HttpProvider, readonly jsonrpcVersion: string = '2.0') {} - - public async call(method: string, params: any[]): Promise { - return new Promise((resolve, reject) => { - const payload: JsonRpcPayload = { - id: getRandomId(), - jsonrpc: this.jsonrpcVersion, - method, - params, - } - this.send(payload, (err: any, response?: JsonRpcResponse) => { - if (err != null || !response) { - reject(err) - } else { - resolve(response) - } - }) - }) - } - - public send( - payload: JsonRpcPayload, - callback: (error: Error | null, result?: JsonRpcResponse) => void - ): void { - debugRpcPayload('%O', payload) - - const decoratedCallback: Callback = ( - error: Error | null, - result?: JsonRpcResponse - ): void => { - let err: Error | null = null - // error could be false - if (error) { - err = error - } - debugRpcResponse('%O', result) - // The provider send call will not provide an error to the callback if - // the result itself specifies an error. Here, we extract the error in the - // result. - if ( - result && - result.error != null && - typeof result.error !== 'string' && - result.error.message != null - ) { - err = new Error(result.error.message) - } - callback(err, result) - } - - if (this.httpProvider && typeof this.httpProvider !== 'string') { - this.httpProvider.send!(payload, decoratedCallback) - } - } -} diff --git a/packages/sdk/connect/src/utils/tx-params-normalizer.test.ts b/packages/sdk/connect/src/utils/tx-params-normalizer.test.ts deleted file mode 100644 index b43b01954bd..00000000000 --- a/packages/sdk/connect/src/utils/tx-params-normalizer.test.ts +++ /dev/null @@ -1,143 +0,0 @@ -import Web3 from 'web3' -import { Connection } from '../connection' -import { Callback, CeloTx, JsonRpcPayload, JsonRpcResponse } from '../types' -import { RpcCaller } from './rpc-caller' -import { TxParamsNormalizer } from './tx-params-normalizer' - -describe('TxParamsNormalizer class', () => { - let populator: TxParamsNormalizer - let mockRpcCall: any - let mockGasEstimation: any - const completeCeloTx: CeloTx = { - nonce: 1, - chainId: 1, - from: 'test', - to: 'test', - data: 'test', - value: 1, - gas: 1, - gasPrice: 1, - maxFeePerGas: undefined, - maxPriorityFeePerGas: undefined, - feeCurrency: undefined, - gatewayFeeRecipient: '1', - gatewayFee: '1', - } - - beforeEach(() => { - mockRpcCall = jest.fn((method: string, _params: any[]): Promise => { - return new Promise((resolve, _reject) => - resolve({ - jsonrpc: '2.0', - id: 1, - result: method === 'net_version' ? '27' : '0x27', - }) - ) - }) - const rpcMock: RpcCaller = { - call: mockRpcCall, - // tslint:disable-next-line: no-empty - send: (_payload: JsonRpcPayload, _callback: Callback): void => {}, - } - const connection = new Connection(new Web3('http://localhost:8545')) - connection.rpcCaller = rpcMock - mockGasEstimation = jest.fn( - ( - _tx: CeloTx, - _gasEstimator?: (tx: CeloTx) => Promise, - _caller?: (tx: CeloTx) => Promise - ): Promise => { - return Promise.resolve(27) - } - ) - connection.estimateGas = mockGasEstimation - populator = new TxParamsNormalizer(connection) - }) - - describe('when missing parameters', () => { - test('will populate the chaindId', async () => { - const celoTx: CeloTx = { ...completeCeloTx } - celoTx.chainId = undefined - const newCeloTx = await populator.populate(celoTx) - expect(newCeloTx.chainId).toBe(27) - expect(mockRpcCall.mock.calls.length).toBe(1) - expect(mockRpcCall.mock.calls[0][0]).toBe('net_version') - }) - - test('will retrieve only once the chaindId', async () => { - const celoTx: CeloTx = { ...completeCeloTx } - celoTx.chainId = undefined - const newCeloTx = await populator.populate(celoTx) - expect(newCeloTx.chainId).toBe(27) - - const newCeloTx2 = await populator.populate(celoTx) - expect(newCeloTx2.chainId).toBe(27) - - expect(mockRpcCall.mock.calls.length).toBe(1) - expect(mockRpcCall.mock.calls[0][0]).toBe('net_version') - }) - - test('will populate the nonce', async () => { - const celoTx: CeloTx = { ...completeCeloTx } - celoTx.nonce = undefined - const newCeloTx = await populator.populate(celoTx) - expect(newCeloTx.nonce).toBe(39) // 0x27 => 39 - expect(mockRpcCall.mock.calls.length).toBe(1) - expect(mockRpcCall.mock.calls[0][0]).toBe('eth_getTransactionCount') - }) - - test('will populate the gas', async () => { - const celoTx: CeloTx = { ...completeCeloTx } - celoTx.gas = undefined - const newCeloTx = await populator.populate(celoTx) - expect(newCeloTx.gas).toBe(27) - expect(mockGasEstimation.mock.calls.length).toBe(1) - }) - - test('will not pop maxFeePerGas and maxPriorityFeePerGas when gasPrice is set', async () => { - const celoTx: CeloTx = { ...completeCeloTx } - celoTx.gasPrice = 1 - const newCeloTx = await populator.populate(celoTx) - expect(newCeloTx.maxFeePerGas).toBe(undefined) - expect(newCeloTx.maxPriorityFeePerGas).toBe(undefined) - }) - test('will not pop maxFeePerGas if it is set', async () => { - const celoTx: CeloTx = { ...completeCeloTx } - celoTx.maxFeePerGas = 100 - const newCeloTx = await populator.populate(celoTx) - expect(newCeloTx.maxFeePerGas).toBe(100) - }) - test('will not pop maxPriorityFeePerGas if it is set', async () => { - const celoTx: CeloTx = { ...completeCeloTx } - celoTx.maxPriorityFeePerGas = 2000 - const newCeloTx = await populator.populate(celoTx) - expect(newCeloTx.maxPriorityFeePerGas).toBe(2000) - }) - - test('will populate the maxFeePerGas and maxPriorityFeePerGas without fee currency', async () => { - const celoTx: CeloTx = { ...completeCeloTx } - celoTx.gasPrice = undefined - celoTx.maxFeePerGas = undefined - celoTx.maxPriorityFeePerGas = undefined - celoTx.feeCurrency = undefined - const newCeloTx = await populator.populate(celoTx) - expect(newCeloTx.maxFeePerGas).toBe('0x2f') - expect(newCeloTx.maxPriorityFeePerGas).toBe('0x27') - expect(mockRpcCall.mock.calls[0]).toEqual(['eth_gasPrice', []]) - expect(mockRpcCall.mock.calls[1]).toEqual(['eth_maxPriorityFeePerGas', []]) - }) - - test('will populate the maxFeePerGas and maxPriorityFeePerGas with fee currency', async () => { - const celoTx: CeloTx = { ...completeCeloTx } - celoTx.gasPrice = undefined - celoTx.maxFeePerGas = undefined - celoTx.maxPriorityFeePerGas = undefined - celoTx.feeCurrency = 'celoMagic' - const newCeloTx = await populator.populate(celoTx) - expect(newCeloTx.maxFeePerGas).toBe('0x2f') - expect(newCeloTx.maxPriorityFeePerGas).toBe('0x27') - expect(mockRpcCall.mock.calls[0]).toEqual(['eth_gasPrice', ['celoMagic']]) - expect(mockRpcCall.mock.calls[1]).toEqual(['eth_maxPriorityFeePerGas', []]) - }) - }) -}) diff --git a/packages/sdk/connect/src/utils/tx-params-normalizer.ts b/packages/sdk/connect/src/utils/tx-params-normalizer.ts deleted file mode 100644 index 986bd3d4b6e..00000000000 --- a/packages/sdk/connect/src/utils/tx-params-normalizer.ts +++ /dev/null @@ -1,122 +0,0 @@ -import BigNumber from 'bignumber.js' -import { Connection } from '../connection' -import { CeloTx } from '../types' - -function isEmpty(value: string | undefined) { - return ( - value === undefined || - value === null || - value === '0' || - value.toLowerCase() === '0x' || - value.toLowerCase() === '0x0' - ) -} -function isPresent(value: string | undefined) { - return !isEmpty(value) -} - -export class TxParamsNormalizer { - private chainId: number | null = null - private gatewayFeeRecipient: string | null = null - - constructor(readonly connection: Connection) {} - - public async populate(celoTxParams: CeloTx): Promise { - const txParams = { ...celoTxParams } - - if (isPresent(txParams.gatewayFeeRecipient) || isPresent(txParams.gatewayFee)) { - console.warn( - 'Gateway fee has been deprecated and will be removed see: https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0057.md' - ) - } - - const [chainId, nonce, gas, maxFeePerGas] = await Promise.all( - [ - async () => { - if (txParams.chainId == null) { - return this.getChainId() - } - return txParams.chainId - }, - async () => { - if (txParams.nonce == null) { - return this.connection.nonce(txParams.from!.toString()) - } - return txParams.nonce - }, - async () => { - if (!txParams.gas || isEmpty(txParams.gas.toString())) { - return this.connection.estimateGas(txParams) - } - return txParams.gas - }, - async () => { - // if gasPrice is not set and maxFeePerGas is not set, set maxFeePerGas - if ( - isEmpty(txParams.gasPrice?.toString()) && - isEmpty(txParams.maxFeePerGas?.toString()) - ) { - const suggestedPrice = await this.connection.gasPrice(txParams.feeCurrency) - // add small buffer to suggested price like other libraries do - const priceWithRoom = new BigNumber(suggestedPrice) - .times(120) - .dividedBy(100) - .integerValue() - .toString(16) - return `0x${priceWithRoom}` - } - return txParams.maxFeePerGas - }, - ].map(async (fn) => fn()) - ) - txParams.chainId = chainId as number - txParams.nonce = nonce as number - txParams.gas = gas as string - txParams.maxFeePerGas = maxFeePerGas - - // need to wait until after gas price has been handled - // if maxFeePerGas is set make sure maxPriorityFeePerGas is also set - if ( - isPresent(txParams.maxFeePerGas?.toString()) && - isEmpty(txParams.maxPriorityFeePerGas?.toString()) - ) { - const clientMaxPriorityFeePerGas = await this.connection.rpcCaller.call( - 'eth_maxPriorityFeePerGas', - [] - ) - txParams.maxPriorityFeePerGas = clientMaxPriorityFeePerGas.result - } - - // remove gasPrice if maxFeePerGas is set - if (isPresent(txParams.gasPrice?.toString()) && isPresent(txParams.maxFeePerGas?.toString())) { - txParams.gasPrice = undefined - delete txParams.gasPrice - } - - return txParams - } - - private async getChainId(): Promise { - if (this.chainId === null) { - this.chainId = await this.connection.chainId() - } - return this.chainId - } - - // Right now, Forno does not expose a node's coinbase so we can't - // set the gatewayFeeRecipient. Once that is fixed, we can reenable - // this. - // @ts-ignore - see comment above - private async getCoinbase(): Promise { - if (this.gatewayFeeRecipient === null) { - this.gatewayFeeRecipient = await this.connection.coinbase() - } - if (this.gatewayFeeRecipient == null) { - throw new Error( - 'missing-tx-params-populator@getCoinbase: Coinbase is null, we are not connected to a full ' + - 'node, cannot sign transactions locally' - ) - } - return this.gatewayFeeRecipient - } -} diff --git a/packages/sdk/connect/src/utils/tx-result.ts b/packages/sdk/connect/src/utils/tx-result.ts deleted file mode 100644 index 0536a0311e3..00000000000 --- a/packages/sdk/connect/src/utils/tx-result.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Future } from '@celo/base/lib/future' -import debugFactory from 'debug' -import { CeloTxReceipt, PromiEvent } from '../types' - -const debug = debugFactory('connection:tx:result') - -/** - * Transforms a `PromiEvent` to a `TransactionResult`. - */ -export function toTxResult(pe: PromiEvent) { - return new TransactionResult(pe) -} - -/** - * Replacement interface for web3's `PromiEvent`. Instead of emiting events - * to signal different stages, eveything is exposed as a promise. Which ends - * up being nicer when doing promise/async based programming. - */ -export class TransactionResult { - private hashFuture = new Future() - private receiptFuture = new Future() - - constructor(pe: PromiEvent) { - pe.on('transactionHash', (hash: string) => { - debug('hash: %s', hash) - this.hashFuture.resolve(hash) - }) - .on('receipt', (receipt: CeloTxReceipt) => { - debug('receipt: %O', receipt) - this.receiptFuture.resolve(receipt) - }) - - .on('error', ((error: any, receipt: CeloTxReceipt | false) => { - if (!receipt) { - debug('send-error: %o', error) - this.hashFuture.reject(error) - } else { - debug('mining-error: %o, %O', error, receipt) - } - this.receiptFuture.reject(error) - }) as any) - } - - /** Get (& wait for) transaction hash */ - getHash() { - return this.hashFuture.wait().catch((err) => { - // if hashFuture fails => receiptFuture also fails - // we wait for it here; so not UnhandlePromise error occurrs - this.receiptFuture.wait().catch(() => { - // ignore - }) - throw err - }) - } - - /** Get (& wait for) transaction receipt */ - async waitReceipt() { - // Make sure `getHash()` promise is consumed - await this.getHash() - - return this.receiptFuture.wait() - } -} diff --git a/packages/sdk/connect/src/wallet.ts b/packages/sdk/connect/src/wallet.ts deleted file mode 100644 index fbc12e5b8e5..00000000000 --- a/packages/sdk/connect/src/wallet.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { EIP712TypedData } from '@celo/utils/lib/sign-typed-data-utils' -import { Address, CeloTx, EncodedTransaction, RLPEncodedTx } from './types' - -export interface ReadOnlyWallet { - getAccounts: () => Address[] - removeAccount: (address: Address) => void - hasAccount: (address?: Address) => boolean - signTransaction: (txParams: CeloTx) => Promise - signTypedData: (address: Address, typedData: EIP712TypedData) => Promise - signPersonalMessage: (address: Address, data: string) => Promise - decrypt: (address: Address, ciphertext: Buffer) => Promise - computeSharedSecret: (address: Address, publicKey: string) => Promise -} - -export interface Signer { - /** - * Signs the message and returns an EVM transaction - * @param addToV represents the chainId and is added to the recoveryId to prevent replay - * @param encodedTx is the RLPEncoded transaction object - */ - signTransaction: ( - addToV: number, - encodedTx: RLPEncodedTx - ) => Promise<{ v: number; r: Buffer; s: Buffer }> - signPersonalMessage: (data: string) => Promise<{ v: number; r: Buffer; s: Buffer }> - signTypedData: (typedData: EIP712TypedData) => Promise<{ v: number; r: Buffer; s: Buffer }> - getNativeKey: () => string - decrypt: (ciphertext: Buffer) => Promise - computeSharedSecret: (publicKey: string) => Promise -} diff --git a/packages/sdk/connect/tsconfig.json b/packages/sdk/connect/tsconfig.json deleted file mode 100644 index d9da7142030..00000000000 --- a/packages/sdk/connect/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src"], - "exclude": ["**/*.test.ts"] -} diff --git a/packages/sdk/connect/tslint.json b/packages/sdk/connect/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/connect/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/connect/typedoc.json b/packages/sdk/connect/typedoc.json deleted file mode 100644 index b0d7efceb98..00000000000 --- a/packages/sdk/connect/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/generated/*.ts", "**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/connect", - "gitRevision": "master", - "readme": "./README.md" - } \ No newline at end of file diff --git a/packages/sdk/contractkit/.gitignore b/packages/sdk/contractkit/.gitignore deleted file mode 100644 index 12ef3d224b1..00000000000 --- a/packages/sdk/contractkit/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -src/generated -lib/ -.devchain/ -.devchain.tar.gz -tmp/ -.tmp/ -.env \ No newline at end of file diff --git a/packages/sdk/contractkit/.npmignore b/packages/sdk/contractkit/.npmignore deleted file mode 100644 index d8d8e42b865..00000000000 --- a/packages/sdk/contractkit/.npmignore +++ /dev/null @@ -1,24 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/contractkit/CHANGELOG.md b/packages/sdk/contractkit/CHANGELOG.md deleted file mode 100644 index d5acb0a11fa..00000000000 --- a/packages/sdk/contractkit/CHANGELOG.md +++ /dev/null @@ -1,113 +0,0 @@ -# @celo/contractkit - -## 6.0.0 - -### Major Changes - -- 1c9c844cf: Remove contracts from lib/generated. now available in @celo/abis package at @celo/abis/web3 - -## 6.0.0-beta.2 - -### Patch Changes - -- ba27783ae: Revert removal of Contracts - -## 6.0.0-beta.1 - -### Major Changes - - -- 9ab9d00eb: Remove Support for deprecated MetaTransactionWallet and MetaTransactionWalletDeployer. IF absolutely needed the contracts can be accessed directly or an alternative such as account abstraction should be used -- 9ab9d00eb: Removes Grandamento from cli and contractkit completely as it has become no op by mento team - -## 6.0.0-beta.0 - -### Major Changes - -- 1c9c844cf: Remove contracts from lib/generated. now available in @celo/abis package at @celo/abis/web3 - - If you were directly importing contracts from `@celo/contractkit/lib/generated/*` eg `@celo/lib/generated/Accounts` do a find replace - - find: `@celo/contractkit/lib/generated/` - replace: `@celo/abis/web3/` - -## 5.2.1 - -### Patch Changes - -- 88e3788b8: add notice that LockedGold.getTotalPendingWithdrawalsCount is not yet available on all networks -- 70f600bb0: Mark MetaTransactionWallet and MetaTransactionWalletDeployer as deprecated, including functions to get them and their wrappers. see https://github.com/celo-org/celo-monorepo/issues/10766 -- 2985f9eb2: Refactor Accounts.getParsedSignatureOfAddress - -## 5.2.0 - -### Minor Changes - -- add FeeHandler Wrapper -- 32face3d8: Governance delegation functions added -- 87647b46b: Add multisig:approve command to CLI, expose MultiSig.confirmTransaction in ContractKit. - -### Patch Changes - -- Updated dependencies [679ef0c60] -- Updated dependencies [97d5ccf43] - - @celo/connect@5.1.1 - - @celo/base@6.0.0 - - @celo/utils@5.0.6 - - @celo/wallet-local@5.1.1 - -## 5.2.0-beta.0 - -### Minor Changes - -- add FeeHandler Wrapper -- 32face3d8: Governance delegation functions added -- 87647b46b: Add multisig:approve command to CLI, expose MultiSig.confirmTransaction in ContractKit. - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - - @celo/connect@5.1.1-beta.0 - - @celo/utils@5.0.6-beta.0 - - @celo/wallet-local@5.1.1-beta.0 - -## 5.1.0 - -### Minor Changes - -- d48c68afc: Add MultiSig.getTransaction() now optionally takes a second boolean param to avoid fetching confirmations information -- d48c68afc: Add method getConfirmations() to Multisig Wrapper -- 53bbd4958: Add cip64 support for feeCurrency Transactions. Note this is the replacement for the deprecated cip42 and legacy tx types https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip/0064.md - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- d48c68afc: parallelize async calls in Governance Wrapper -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0 - - @celo/wallet-local@5.1.0 - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.1.0-beta.0 - -### Minor Changes - -- d48c68afc: Add MultiSig.getTransaction() now optionally takes a second boolean param to avoid fetching confirmations information -- d48c68afc: Add method getConfirmations() to Multisig Wrapper -- 53bbd4958: Add cip64 support for feeCurrency Transactions. Note this is the replacement for the deprecated cip42 and legacy tx types https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip/0064.md - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- d48c68afc: parallelize async calls in Governance Wrapper -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0-beta.0 - - @celo/wallet-local@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/contractkit/DEVELOP.md b/packages/sdk/contractkit/DEVELOP.md deleted file mode 100644 index 7fe8fdfd578..00000000000 --- a/packages/sdk/contractkit/DEVELOP.md +++ /dev/null @@ -1,26 +0,0 @@ -# Developer Guide - -## Running Tests - -`yarn test` - -### Testing Azure HSM Signer - -The tests include an in-memory mock implementation which tests a majority of the functionality. In the case that changes are made to any of the wallet/signing logic, the HSM signer should be tested end-to-end by using an Azure KeyVault. To test against the KeyVault, environment variables are used to provide the client ID and client secret for authentication. Please see the .env file for the required variables. After deploying your KeyVault and generating an ECDSA-SECP256k1 key, you must create a service principal account and provide it signing access to the KeyVault. Instructions on how to do this can be found here: . If the .env variables are specified, the tests will automatically switch from using the mock client to the actual KeyVault. - -## Testing Ledger Signer - -Similarly, the tests include an in-memory mock implementation of the Ledger signer. To run the tests using an actual Ledger device: - -- Set `USE_PHYSICAL_LEDGER` to `true` in ledger-wallet.test.ts -- Install libusb-dev `apt-get install lsb-release libudev-dev libusb-dev libusb-1.0-0 -y` -- Add reference to package: `@ledgerhq/hw-transport-node-hid@5.11.0` - - Note that this package should not be added to contractkit since it forces all contract kit users to add libusb-dev - -## Documenting Code - -To generate docs from [TSdoc](https://github.com/microsoft/tsdoc) annotations using [typedoc](https://typedoc.org/): - -`yarn docs` - -To customize this generation, see the [linkdocs](./scripts/linkdocs.ts) script. diff --git a/packages/sdk/contractkit/MIGRATION-TO-ETHERS.md b/packages/sdk/contractkit/MIGRATION-TO-ETHERS.md deleted file mode 100644 index 55d68442a1c..00000000000 --- a/packages/sdk/contractkit/MIGRATION-TO-ETHERS.md +++ /dev/null @@ -1,108 +0,0 @@ -# Migration document from Contractkit - -Hello devs 🌱 this is a migration path away from contractkit. This aims to give examples to help you move to [ethers](https://docs.ethers.org/). - -## Initialization - -```diff -- import Web3 from "web3"; -- import { newKitFromWeb3 } from "@celo/contractkit"; - -- const web3 = new Web3("https://alfajores-forno.celo-testnet.org"); -- const kit = newKitFromWeb3(web3); -+ import { providers } from 'ethers' -+ -+ const provider = new providers.JsonRpcProvider('https://alfajores-forno.celo-testnet.org') -``` - -## Basic usage - -While we cannot here show all the use-cases of contrackit or ethers or viem, let's try to give an overview of how they can be used for different goals. - -### Get address - -```diff -- const accounts = await kit.web3.eth.getAccounts(); -+ const accounts = await provider.listAccounts(); -const defaultAccount = accounts[0]; -``` - -### Get wallet - -```diff -+ import { Wallet } from 'ethers' - -- const wallet = kit.getWallet(); -+ const wallet = new Wallet('0x...', provider); -``` - -### Provider methods - -```diff -- const provider = kit.connection.web3.currentProvider -- kit.connection.getBlock(...) -- kit.connection.getTransaction(...) -provider.getBlock(...) -provider.getTransaction(...) -``` - -### Signer methods - -```diff -- const provider = kit.connection.web3.currentProvider -- const signer = provider.getSigner(kit.connection.defaultAccount) -+ const signer = provider.getSigner(address) -+ signer.sendTransaction(...) -+ signer.signMessage(...) -``` - -### Contract interaction - -I'll show the most "basic" interaction, which is a transfer. On CELO, it comes with a twist, you can transfer 4 currencies, CELO, cUSD, cEUR, and cREAL. - -You can get the addresses on these tokens by heading to the explorer and getting their abi and addresses, or you can also use our [registry contract](https://docs.celo.org/developer/contractkit/contracts-wrappers-registry). You can also use the [`@celo/abis`](https://www.npmjs.com/package/@celo/abis) package to get the ABIs directly. - -```ts -// this address is constant -const REGISTRY_CONTRACT_ADDRESS = '0x000000000000000000000000000000000000ce10' -const registry = new Contract(REGISTRY_CONTRACT_ADDRESS, registryAbi, wallet) - -async function getToken(token: string) { - const goldTokenAddress = await registry.getAddressForString(token) - return goldTokenAddress -} -async function CeloTokens(): Promise<[string, string][]> { - return Promise.all( - ['GoldToken', 'StableToken', 'StableTokenEUR', 'StableTokenBRL'].map(async (token) => [ - token, - await getToken(token), - ]) - ) -} -``` - -#### Balance - -```diff -+ import { tokenAbi } from './abi.json' - -- const contract = await kit.contracts.getGoldToken(); -+ const tokenAddress = '0x...' // Grabbed from the registry or from the explorer -+ const contract = new ethers.Contract(tokenAddress, tokenAbi, signer); -const balance = await contract.balanceOf(wallet.address); -``` - -#### Transfer - -Then, use the address of the token that you need and call the transfer method of the contract. - -```diff -+ import { tokenAbi } from './abi.json' - -- const contract = await kit.contracts.getGoldToken(); -+ const tokenAddress = '0x...' // Grabbed from the registry or from the explorer -+ const contract = new ethers.Contract(tokenAddress, tokenAbi, signer); -const txReceipt = await contract.transfer('0x...', amount); -``` - -For more in depth examples, I highly recommend checking out the extensive documentations of both [ethers](https://docs.ethers.org/) and [viem](https://viem.sh/). diff --git a/packages/sdk/contractkit/MIGRATION-TO-VIEM.md b/packages/sdk/contractkit/MIGRATION-TO-VIEM.md deleted file mode 100644 index 494f158ce93..00000000000 --- a/packages/sdk/contractkit/MIGRATION-TO-VIEM.md +++ /dev/null @@ -1,232 +0,0 @@ -# Migration document from Contractkit - -Hello devs 🌱 this is a migration path away from contractkit. This aims to give examples to help you move to [viem](https://viem.sh/). - -## Initialization - -```diff -- import Web3 from "web3"; -- import { newKitFromWeb3 } from "@celo/contractkit"; -- -- const web3 = new Web3("https://alfajores-forno.celo-testnet.org"); -- const kit = newKitFromWeb3(web3); -+ import { createPublicClient, http } from 'viem' -+ import { celo, celoAlfajores } from 'viem/chains' -+ -+ const publicClient = createPublicClient({ -+ chain: celoAlfajores, // or celo for celo's mainnet -+ transport: http() -+ }) -``` - -## Basic usage - -While we cannot here show all the use-cases of contrackit or ethers or viem, let's try to give an overview of how they can be used for different goals. - -### Get address - -With viem: - -```diff -- const accounts = await kit.web3.eth.getAccounts(); -+ const accounts = await publicClient.getAddresses() -const defaultAccount = accounts[0]; -``` - -### Get wallet - -With viem: - -> [viem does not full support](<[source](https://viem.sh/docs/ethers-migration.html#viem-11)>) client-side signing (it's coming shortly!) – until then, you can use an Ethers Wallet, however it does support `signMessage` and `signTypedData` already. - -```diff -+ import { privateKeyToAccount } from 'viem/accounts' -+ -+ const privateKey = "0x..."; -+ const walletClient = createWalletClient({ -+ transport: http(celoAlfajores.rpcUrls.default.http[0] as string), -+ chain: celoAlfajores, -+ }); -+ const account = privateKeyToAccount(privateKey); -+ await walletClient.signMessage({ -+ account, -+ message: 'hello world', -+ }) -``` - -### Provider methods - -```diff -- const provider = kit.connection.web3.currentProvider -- kit.connection.getBlock(...) -- kit.connection.getTransaction(...) -+ const block = await publicClient.getBlock() -+ /** -+ * { -+ * baseFeePerGas: 10000n, -+ * number: 1234n, -+ * parentHash: "0x....", -+ * ... -+ * } -+ */ -+ const tx = await publicClient.getTransaction({ -+ hash: "0x...", -+ }) -+ /** -+ * { -+ * blockHash: '0x...', -+ * blockNumber: 1234n, -+ * from: '0x...', -+ * ... -+ * } -+ */ -``` - -### Signer methods - -```diff -- const provider = kit.connection.web3.currentProvider -- const signer = provider.getSigner(kit.connection.defaultAccount) -+ const [account] = await walletClient.getAddresses() -+ const hash = await walletClient.sendTransaction({ account, to: "0x...", value: 1000n }) -``` - -### Contract interaction - -I'll show the most "basic" interaction, which is a transfer. On CELO, it comes with a twist, you can transfer 4 currencies, CELO, cUSD, cEUR, and cREAL. - -You can get the addresses on these tokens by heading to the explorer and getting their abi and addresses, or you can also use our [registry contract](https://docs.celo.org/developer/contractkit/contracts-wrappers-registry). You can also use the [`@celo/abis`](https://www.npmjs.com/package/@celo/abis) package to get the ABIs directly. - -```ts -import { getContract } from 'viem' -import { registryABI } from '@celo/abis/types/viem' - -// this address is constant -const REGISTRY_CONTRACT_ADDRESS = '0x000000000000000000000000000000000000ce10' -const registryContract = getContract({ - address: REGISTRY_CONTRACT_ADDRESS, - abi: registryABI, - publicClient, -}) - -async function CeloTokens(): Promise<[string, string][]> { - return Promise.all( - ['GoldToken', 'StableToken', 'StableTokenEUR', 'StableTokenBRL'].map(async (token) => [ - token, - await registryContract.read.getAddressForString(token), - ]) - ) -} -``` - -#### Balance - -```diff -+ import { stableTokenABI } from '@celo/abis/types/viem' - -- const contract = await kit.contracts.getGoldToken(); -- const balance = await contract.balanceOf(wallet.address); -+ const tokenAddresses = await CeloTokens(); -+ const cUSD = tokenAddresses["StableToken] -+ const balance = await client.readContract({ -+ abi: tokenAbi, -+ address: cUSD, -+ functionName: "balanceOf", -+ args: [account.address], -+ }); -``` - -#### Transfer - -Then, use the address of the token that you need and call the transfer method of the contract. - -```diff -+ import { stableTokenABI } from '@celo/abis/types/viem' -- const CELO = await kit.contracts.getGoldToken(); -- const txReceipt = await CELO.transfer('0x...', amount) -+ const tokenAddresses = await CeloTokens(); -+ const cUSD = tokenAddresses["StableToken] -+ const { request } = await walletClient.simulateContract({ -+ abi, -+ address: cUSD, -+ functionName: 'transfer', -+ args: [ -+ '0x...', // to address -+ amount: 1000n, -+ ], -+ account: '0x...', // from address -+ }) -+ const hash = await walletClient.sendTransaction(request); -``` - -#### Multicall - -While contractkit didn't directly support multicall, you could use libraries such as `@dopex-io/web3-multicall` as such: - -```ts -import Multicall from '@dopex-io/web3-multicall' -const MULTICALL_ADDRESS = '0xcA11bde05977b3631167028862bE2a173976CA11' // same on mainnet and alfajores -const multicall = new Multicall({ - provider, - chainId, - multicallAddress: MULTICALL_ADDRESS, -}) -const governance = await kit.contracts._web3Contracts.getGovernance() -const stageTxs = _dequeue.map((proposalId) => governance.methods.getProposalStage(proposalId)) -const stages: string[] = await multicall.aggregate(stageTxs) -``` - -You now can use `viem` directly to multicall since they have the address configured in the `viem/chains` files. - -```ts -const governanceAddress = await registryContract.read.getAddressForString(['Governance']) -const governanceContract = getContract({ - address: governanceAddress, - abi: governanceABI, - publicClient, -}) -const _dequeue = await governanceContract.read.getDequeue() -const stageCalls = _dequeue.map((proposalId) => ({ - address: governanceAddress, - abi: governanceABI, - functionName: 'getProposalStage', - args: [proposalId], -})) -const stages = (await publicClient.multicall({ contracts: stageCalls })).map((x) => x.result) -``` - -#### Fee Currency - -With Viem's built in Celo transaction serializer and Celo block/transaction formatters it is easy to build a wallet that supports Celo's ability to pay gas fees with various erc20 tokens. Simply, import a Celo chain from `viem/chain` and pass it to Viem's `createWalletClient`. Once the client is created you can add the feeCurrency field to your transaction with the address of the token you want to use for gas. - -```ts - import { celo } from 'viem/chains' - import { createWalletClient, privateKeyToAccount, type SendTransactionParameters, http } from 'viem' - - const account = privateKeyToAccount(PRIVATE_KEY) - - // ALFAJORES ADDRESS: Celo Mainnet can be fetched from the registry - const cUSDAddress = '0x874069Fa1Eb16D44d622F2e0Ca25eeA172369bC1' - - const localAccountClient = createWalletClient({ - account, - chain: celo, - }) - - const sendTransaction = (tx: SendTransactionParameters) => { - return localAccountClient.sendTransaction(tx) - } - - const hash = await sendTransaction({ - feeCurrency: cUSDAddress, - value: BigInt(100000000), - to: '0x22579CA45eE22E2E16dDF72D955D6cf4c767B0eF', - }) -``` - -### Further reading - -For more in depth examples and documentation about viem specifically, I highly recommend checking out the extensive documentations of [viem](https://viem.sh/). - -Another interesting application to help you migrate could be StCelo-v2. -You can checkout the changes going from `react-celo` + `contractkit` to `rainbowkit` + `wagmi` + `viem` in [this pull-request](https://github.com/celo-org/staked-celo-web-app/pull/129). diff --git a/packages/sdk/contractkit/README.md b/packages/sdk/contractkit/README.md deleted file mode 100644 index e18079e1cb2..00000000000 --- a/packages/sdk/contractkit/README.md +++ /dev/null @@ -1,290 +0,0 @@ -# ContractKit - -Celo's ContractKit is a library to help developers and validators to interact with the Celo blockchain. - -ContractKit supports the following functionality: - -- Connect to a node -- Access web3 object to interact with node's Json RPC API -- Send Transaction with celo's extra fields: (feeCurrency) -- Simple interface to interact with CELO and cUSD -- Simple interface to interact with Celo Core contracts -- Utilities - -## User Guide - -:::tip - -You might not need the full ContractKit. Consider using `@celo/connect` which powers much of ContractKit such as building and sending Transactions, signing, etc, but does not give access to any celo Contract Wrappers. Or if a subset of Wrappers, setting the feeCurrency and account info is all your dapp needs consider replacing your imports of Contractkit with `@celo/contractkit/lib/mini-kit` - -::: - -### Getting Started - -To install: - -```bash -npm install @celo/contractkit -// or -yarn add @celo/contractkit -``` - -You will need Node.js v18.14.2. or greater. - -To start working with contractkit you need a `kit` instance: - -```ts -import { newKit } from '@celo/contractkit' // or import { newKit } from '@celo/contractkit/lib/mini-kit' - -// Remotely connect to the Alfajores testnet -const kit = newKit('https://alfajores-forno.celo-testnet.org') -``` - -To access balances: - -```ts -// returns an object with {lockedGold, pending, cUSD, cEUR, cREAL} - -const balances = await kit.getTotalBalance() - -// returns an object with {cUSD, cEUR, cREAL} -const balances = await miniKit.getTotalBalance() - -``` - -If you don't need the balances of all tokens use the balanceOf method -```ts - -const stableTokenWrapper = await kit.getStableToken(StableToken.cREAL) - -const cRealBalance = stableTokenWrapper.balanceOf(accountAddress) - -``` - - - -### Setting Default Tx Options - -`kit` allows you to set default transaction options: - -```ts -import { newKit, CeloContract } from '@celo/contractkit/lib/mini-kit' - -async function getKit(myAddress: string, privateKey: string) { - const kit = newKit('https://alfajores-forno.celo-testnet.org') - - // default from account - kit.defaultAccount = myAddress - - // add the account private key for tx signing when connecting to a remote node - kit.connection.addAccount(privateKey) - - // paid gas in celo dollars - await kit.setFeeCurrency(CeloContract.StableToken) - - return kit -} -``` - -### Interacting with CELO & cUSD - -Celo has two initial coins: CELO and cUSD (stableToken). -Both implement the ERC20 standard, and to interact with them is as simple as: - -```ts -// get the CELO contract -const celoToken = await kit.contracts.getGoldToken() - -// get the cUSD contract -const stableToken = await kit.contracts.getStableToken() - -const celoBalance = await celoToken.balanceOf(someAddress) -const cusdBalance = await stableToken.balanceOf(someAddress) -``` - -To send funds: - -```ts -const oneGold = kit.connection.web3.utils.toWei('1', 'ether') -const tx = await goldToken.transfer(someAddress, oneGold).send({ - from: myAddress -}) - -const hash = await tx.getHash() -const receipt = await tx.waitReceipt() -``` - -If you would like to pay fees in cUSD, (or other cStables like cEUR, cUSD). - -```ts - -kit.setFeeCurrency(CeloContract.StableToken) // Default to paying fees in cUSD - -const stableTokenContract = kit.contracts.getStableToken() - -const tx = await stableTokenContract - .transfer(recipient, weiTransferAmount) - .send({ from: myAddress, gasPrice }) - -const hash = await tx.getHash() - -const receipt = await tx.waitReceipt() - -``` - -### Interacting with Core Contracts - -There are many core contracts. - -- AccountsWrapper -- AttestationsWrapper -- BlockchainParametersWrapper -- DoubleSigningSlasherWrapper -- DowntimeSlasherWrapper -- ElectionWrapper -- EpochRewardsWrapper -- Erc20Wrapper -- EscrowWrapper -- ExchangeWrapper -- FreezerWrapper -- GasPriceMinimumWrapper -- GoldTokenWrapper -- GovernanceWrapper -- GrandaMentoWrapper -- LockedGoldWrapper -- MetaTransactionWalletWrapper -- MetaTransactionWalletDeployerWrapper -- MultiSigWrapper -- ReserveWrapper -- SortedOraclesWrapper -- StableTokenWrapper -- ValidatorsWrapper - -#### Wrappers Through Kit - -When using the `kit` you can access core contracts like - -`kit.contracts.get{ContractName}` - -E.G. `kit.contracts.getAccounts()`, `kit.contracts.getValidators()` - - -#### Stand Alone Wrappers - -You can also initialize contracts wrappers directly. They require a `Connection` and their contract: - -```typescript -// MiniContractKit only gives access to a limited set of Contracts, so we import Multisig - -import { newKit } from "@celo/contractkit/lib/mini-kit" -import { MultiSigWrapper } from '@celo/contractkit/lib/wrappers/MultiSig' -import { newMultiSig } from '@celo/abis/web3/MultiSig' - - -const miniKit = newKit("https://alfajores-forno.celo-testnet.org/") - -// Alternatively import { Connection } from '@celo/connect' -// const connection = new Connection(web3) - -const contract = newMultiSig(web3) - -const multisigWrapper = new MultiSigWrapper(miniKit.connection, contract) -``` - -### Accessing web3 contract wrappers - -`MiniContractKit` *does not provide access to the web3 contracts* - -Some user might want to access web3 native contract wrappers. - -To do so, you can: - -```ts -const web3Exchange = await kit._web3Contracts.getExchange() -``` - -We expose native wrappers for all Celo core contracts. - -The complete list of Celo Core contracts is: - -- Accounts -- Attestations -- LockedGold -- Escrow -- Exchange -- FeeCurrencyWhitelist -- GasPriceMinimum -- GoldToken -- Governance -- MultiSig -- Random -- Registry -- Reserve -- SortedOracles -- StableToken -- Validators - -### A Note About Contract Addresses - -Celo Core Contracts addresses, can be obtained by looking at the `Registry` contract. -That's how `kit` obtains them. - -We expose the registry API, which can be accessed by: - -```ts -const goldTokenAddress = await kit.registry.addressFor(CeloContract.GoldToken) -``` - -### Sending Custom Transactions - -Celo transaction object is not the same as Ethereum's. There are three new fields present: - -- feeCurrency (address of the ERC20 contract to use to pay for gas and the gateway fee) -- gatewayFeeRecipient (coinbase address of the full serving the light client's trasactions) -- gatewayFee (value paid to the gateway fee recipient, denominated in the fee currency) - -:::note -The `gatewayFeeRecipient`, and `gatewayFee` fields are currently not used by the protocol. -::: - -This means that using `web3.eth.sendTransaction` or `myContract.methods.transfer().send()` should be avoided to take advantage of paying transaction fees in alternative currencies. - -Instead, `kit` provides an utility method to send transaction in both scenarios. **If you use contract wrappers, there is no need to use this.** - -For a raw transaction: - -```ts -const tx = kit.sendTransaction({ - from: myAddress, - to: someAddress, - value: oneGold, -}) -const hash = await tx.getHash() -const receipt = await tx.waitReceipt() -``` - -When interacting with a web3 contract object: - -```ts -const celoNativeToken = await kit._web3Contracts.getGoldToken() -const oneGold = kit.connection.web3.utils.toWei('1', 'ether') - -const txo = await celoNativeToken.methods.transfer(someAddress, oneGold) -const tx = await kit.sendTransactionObject(txo, { from: myAddress }) -const hash = await tx.getHash() -const receipt = await tx.waitReceipt() -``` - -### More Information - -You can find more information about the ContractKit in the Celo docs at [https://docs.celo.org/developer-guide/contractkit](https://docs.celo.org/developer-guide/contractkit). - -### Debugging - -If you need to debug `kit`, we use the well known [debug](https://github.com/visionmedia/debug) node library. - -So set the environment variable `DEBUG` as: - -```bash -DEBUG="kit:*, -``` diff --git a/packages/sdk/contractkit/jest.config.js b/packages/sdk/contractkit/jest.config.js deleted file mode 100644 index 5ce2d268625..00000000000 --- a/packages/sdk/contractkit/jest.config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], - setupFilesAfterEnv: ['@celo/dev-utils/lib/matchers', '/jest_setup.ts'], - globalSetup: '/src/test-utils/setup.global.ts', - globalTeardown: '/src/test-utils/teardown.global.ts', - testSequencer: '/src/test-utils/AlphabeticSequencer.js', - verbose: true, -} diff --git a/packages/sdk/contractkit/jest_setup.ts b/packages/sdk/contractkit/jest_setup.ts deleted file mode 100644 index 3bc66344853..00000000000 --- a/packages/sdk/contractkit/jest_setup.ts +++ /dev/null @@ -1,5 +0,0 @@ -const fetchMockSandbox = require('fetch-mock').sandbox() -jest.mock('cross-fetch', () => fetchMockSandbox) - -// @ts-ignore -global.fetchMock = fetchMockSandbox diff --git a/packages/sdk/contractkit/package.json b/packages/sdk/contractkit/package.json deleted file mode 100644 index 6e663d5afa8..00000000000 --- a/packages/sdk/contractkit/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "@celo/contractkit", - "version": "6.0.0", - "description": "Celo's ContractKit to interact with Celo network", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "sideEffects": false, - "author": "Celo", - "license": "Apache-2.0", - "homepage": "https://docs.celo.org/developer-guide/contractkit", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/contractkit", - "keywords": [ - "celo", - "blockchain", - "contractkit" - ], - "scripts": { - "build:ts": "tsc -b .", - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "prepublishOnly": "yarn build", - "docs": "typedoc", - "test": "jest --runInBand --forceExit", - "lint": "tslint -c tslint.json --project ." - }, - "dependencies": { - "@celo/abis": "10.0.0", - "@celo/base": "^6.0.0", - "@celo/connect": "^5.1.1", - "@celo/utils": "^5.0.6", - "@celo/wallet-local": "^5.1.1", - "@types/bn.js": "^5.1.0", - "@types/debug": "^4.1.5", - "bignumber.js": "^9.0.0", - "cross-fetch": "3.0.6", - "debug": "^4.1.1", - "fp-ts": "2.1.1", - "io-ts": "2.0.1", - "semver": "^7.3.5", - "web3": "1.10.0", - "web3-core-helpers": "1.10.0" - }, - "devDependencies": { - "@celo/celo-devchain": "^6.0.3", - "@celo/odis-identifiers": "^1.0.0", - "@celo/dev-utils": "0.0.1", - "@types/debug": "^4.1.5", - "fetch-mock": "9.10.4", - "ganache": "npm:@celo/ganache@7.8.0-unofficial.0", - "jest": "^29.0.2", - "bn.js": "^5.1.0", - "ts-node": "^10.9.1", - "typedoc": "^0.19.2", - "typedoc-plugin-markdown": "^2.2.16", - "xhr2-cookies": "1.1.0" - }, - "resolutions": { - "**/elliptic": "^6.5.4" - }, - "engines": { - "node": ">=8.14.2" - }, - "browser": { - "child_process": false - } -} diff --git a/packages/sdk/contractkit/src/address-registry.ts b/packages/sdk/contractkit/src/address-registry.ts deleted file mode 100644 index 33e5958de7f..00000000000 --- a/packages/sdk/contractkit/src/address-registry.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { newRegistry, Registry } from '@celo/abis/web3/Registry' -import { Address, NULL_ADDRESS } from '@celo/base/lib/address' -import { Connection } from '@celo/connect' -import debugFactory from 'debug' -import { CeloContract, RegisteredContracts, stripProxy } from './base' - -const debug = debugFactory('kit:registry') - -// Registry contract is always predeployed to this address -export const REGISTRY_CONTRACT_ADDRESS = '0x000000000000000000000000000000000000ce10' - -export class UnregisteredError extends Error { - constructor(contract: CeloContract) { - super(`${contract} not (yet) registered`) - } -} - -/** - * Celo Core Contract's Address Registry - * - * @param connection – an instance of @celo/connect {@link Connection} - */ -export class AddressRegistry { - private readonly registry: Registry - private readonly cache: Map = new Map() - - constructor(readonly connection: Connection) { - this.cache.set(CeloContract.Registry, REGISTRY_CONTRACT_ADDRESS) - this.registry = newRegistry(connection.web3, REGISTRY_CONTRACT_ADDRESS) - } - - /** - * Get the address for a `CeloContract` - */ - async addressFor(contract: CeloContract): Promise
{ - if (!this.cache.has(contract)) { - debug('Fetching address from Registry for %s', contract) - const address = await this.registry.methods.getAddressForString(stripProxy(contract)).call() - - debug('Fetched address %s', address) - if (!address || address === NULL_ADDRESS) { - throw new UnregisteredError(contract) - } - this.cache.set(contract, address) - } - const cachedAddress = this.cache.get(contract)! - return cachedAddress - } - - /** - * Get the address mapping for known registered contracts - */ - async addressMapping() { - await Promise.all( - RegisteredContracts.map(async (contract) => { - try { - await this.addressFor(contract) - } catch (e) { - debug(e) - } - }) - ) - return this.cache - } -} diff --git a/packages/sdk/contractkit/src/base.ts b/packages/sdk/contractkit/src/base.ts deleted file mode 100644 index ff93fe7b8cc..00000000000 --- a/packages/sdk/contractkit/src/base.ts +++ /dev/null @@ -1,72 +0,0 @@ -export enum CeloContract { - Accounts = 'Accounts', - Attestations = 'Attestations', - BlockchainParameters = 'BlockchainParameters', - DoubleSigningSlasher = 'DoubleSigningSlasher', - DowntimeSlasher = 'DowntimeSlasher', - Election = 'Election', - EpochRewards = 'EpochRewards', - ERC20 = 'ERC20', - Escrow = 'Escrow', - Exchange = 'Exchange', - ExchangeEUR = 'ExchangeEUR', - ExchangeBRL = 'ExchangeBRL', - FederatedAttestations = 'FederatedAttestations', - FeeCurrencyWhitelist = 'FeeCurrencyWhitelist', - FeeHandler = 'FeeHandler', - Freezer = 'Freezer', - GasPriceMinimum = 'GasPriceMinimum', - GoldToken = 'GoldToken', - Governance = 'Governance', - GrandaMento = 'GrandaMento', - LockedGold = 'LockedGold', - MentoFeeHandlerSeller = 'MentoFeeHandlerSeller', - UniswapFeeHandlerSeller = 'UniswapFeeHandlerSeller', - MetaTransactionWallet = 'MetaTransactionWallet', - MetaTransactionWalletDeployer = 'MetaTransactionWalletDeployer', - MultiSig = 'MultiSig', - OdisPayments = 'OdisPayments', - Random = 'Random', - Registry = 'Registry', - Reserve = 'Reserve', - SortedOracles = 'SortedOracles', - StableToken = 'StableToken', - StableTokenEUR = 'StableTokenEUR', - StableTokenBRL = 'StableTokenBRL', - Validators = 'Validators', -} - -export type StableTokenContract = - | CeloContract.StableToken - | CeloContract.StableTokenEUR - | CeloContract.StableTokenBRL - -export type ExchangeContract = - | CeloContract.Exchange - | CeloContract.ExchangeEUR - | CeloContract.ExchangeBRL - -export type CeloTokenContract = StableTokenContract | CeloContract.GoldToken -/** - * Deprecated alias for CeloTokenContract. - * @deprecated Use CeloTokenContract instead - */ -export type CeloToken = CeloTokenContract - -export const AllContracts = Object.keys(CeloContract) as CeloContract[] -const AuxiliaryContracts = [ - CeloContract.MultiSig, - CeloContract.MetaTransactionWalletDeployer, - CeloContract.MetaTransactionWallet, - CeloContract.ERC20, -] -export const RegisteredContracts = AllContracts.filter((v) => !AuxiliaryContracts.includes(v)) - -/** @internal */ -export const stripProxy = (contract: CeloContract) => contract.replace('Proxy', '') as CeloContract - -/** @internal */ -export const suffixProxy = (contract: CeloContract) => - contract.endsWith('Proxy') ? contract : (`${contract}Proxy` as CeloContract) - -export const ProxyContracts = AllContracts.map((c) => suffixProxy(c)) diff --git a/packages/sdk/contractkit/src/basic-contract-cache-type.ts b/packages/sdk/contractkit/src/basic-contract-cache-type.ts deleted file mode 100644 index f576a340a8b..00000000000 --- a/packages/sdk/contractkit/src/basic-contract-cache-type.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { StableToken } from '@celo/base' -import { CeloContract, CeloTokenContract } from './base' -import { AccountsWrapper } from './wrappers/Accounts' -import { ExchangeWrapper } from './wrappers/Exchange' -import { GoldTokenWrapper, GoldTokenWrapperType } from './wrappers/GoldTokenWrapper' -import { StableTokenWrapper } from './wrappers/StableTokenWrapper' - -/** - * Interface for a class with the minimum required wrappers - * to make a {@link MiniContractKit} or {@link CeloTokens} Class - */ -export interface ContractCacheType { - getAccounts(): Promise - getExchange(stableToken: StableToken): Promise - - getGoldToken(): Promise - - getStableToken(stableToken: StableToken): Promise - - getContract( - contract: CeloContract.Exchange | CeloContract.ExchangeEUR | CeloContract.ExchangeBRL - ): Promise - getContract(contract: CeloTokenContract): Promise - getContract(contract: CeloContract.GoldToken): Promise -} diff --git a/packages/sdk/contractkit/src/celo-tokens.test.ts b/packages/sdk/contractkit/src/celo-tokens.test.ts deleted file mode 100644 index cf6a20c08a8..00000000000 --- a/packages/sdk/contractkit/src/celo-tokens.test.ts +++ /dev/null @@ -1,52 +0,0 @@ -import Web3 from 'web3' -import { CeloContract } from './base' -import { CeloTokenInfo, CeloTokens, StableToken, Token } from './celo-tokens' -import { ContractKit, newKitFromWeb3 } from './kit' - -describe('CeloTokens', () => { - let kit: ContractKit - let celoTokens: CeloTokens - - beforeEach(() => { - kit = newKitFromWeb3(new Web3('http://localhost:8545')) - celoTokens = kit.celoTokens - }) - - describe('forEachCeloToken()', () => { - it('returns an object with a key for each celo token and the value from a provided async fn', async () => { - const result = await celoTokens.forEachCeloToken(async (info: CeloTokenInfo) => - Promise.resolve(info.symbol) - ) - for (const [key, value] of Object.entries(result)) { - expect(key).toEqual(value) - } - }) - - it('returns an object with a key for each celo token and the value from a provided non-async fn', async () => { - const result = await celoTokens.forEachCeloToken(async (info: CeloTokenInfo) => info.symbol) - for (const [key, value] of Object.entries(result)) { - expect(key).toEqual(value) - } - }) - }) - - describe('isStableToken()', () => { - it('returns true if the token is a stable token', () => { - expect(celoTokens.isStableToken(StableToken.cUSD)).toEqual(true) - }) - - it('returns false if the token is not a stable token', () => { - expect(celoTokens.isStableToken(Token.CELO)).toEqual(false) - }) - }) - - describe('isStableTokenContract()', () => { - it('returns true if the contract is a stable token contract', () => { - expect(celoTokens.isStableTokenContract(CeloContract.StableToken)).toEqual(true) - }) - - it('returns false if the contract is not a stable token contract', () => { - expect(celoTokens.isStableTokenContract(CeloContract.Exchange)).toEqual(false) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/celo-tokens.ts b/packages/sdk/contractkit/src/celo-tokens.ts deleted file mode 100644 index c2fb5338587..00000000000 --- a/packages/sdk/contractkit/src/celo-tokens.ts +++ /dev/null @@ -1,281 +0,0 @@ -import { CeloTokenType, StableToken, Token } from '@celo/base' -import { BigNumber } from 'bignumber.js' -import { AddressRegistry } from './address-registry' -import { CeloContract, CeloTokenContract, ExchangeContract, StableTokenContract } from './base' -import { ContractCacheType } from './basic-contract-cache-type' -import { GoldTokenWrapper } from './wrappers/GoldTokenWrapper' -import { StableTokenWrapper } from './wrappers/StableTokenWrapper' -export { CeloTokenType, StableToken, Token } from '@celo/base' - -export type EachCeloToken = { - [key in CeloTokenType]?: T -} - -export type CeloTokenWrapper = GoldTokenWrapper | StableTokenWrapper - -export interface CeloTokenInfo { - contract: CeloTokenContract - symbol: CeloTokenType -} - -export interface StableTokenInfo extends CeloTokenInfo { - contract: StableTokenContract - exchangeContract: ExchangeContract -} - -/** Basic info for each stable token */ -export const stableTokenInfos: { - [key in StableToken]: StableTokenInfo -} = { - [StableToken.cUSD]: { - contract: CeloContract.StableToken, - exchangeContract: CeloContract.Exchange, - symbol: StableToken.cUSD, - }, - [StableToken.cEUR]: { - contract: CeloContract.StableTokenEUR, - exchangeContract: CeloContract.ExchangeEUR, - symbol: StableToken.cEUR, - }, - [StableToken.cREAL]: { - contract: CeloContract.StableTokenBRL, - exchangeContract: CeloContract.ExchangeBRL, - symbol: StableToken.cREAL, - }, -} - -/** Basic info for each supported celo token, including stable tokens */ -export const celoTokenInfos: { - [key in CeloTokenType]: CeloTokenInfo -} = { - [Token.CELO]: { - contract: CeloContract.GoldToken, - symbol: Token.CELO, - }, - ...stableTokenInfos, -} - -/** - * A helper class to interact with all Celo tokens, ie CELO and stable tokens - */ -export class CeloTokens { - constructor(readonly contracts: ContractCacheType, readonly registry: AddressRegistry) {} - - /** - * Gets an address's balance for each celo token. - * @param address the address to look up the balances for - * @return a promise resolving to an object containing the address's balance - * for each celo token - */ - balancesOf(address: string): Promise> { - return this.forEachCeloToken(async (info: CeloTokenInfo) => { - const wrapper = await this.contracts.getContract(info.contract) - return wrapper.balanceOf(address) - }) - } - - /** - * Gets the wrapper for each celo token. - * @return an promise resolving to an object containing the wrapper for each celo token. - */ - getWrappers(): Promise> { - return this.forEachCeloToken((info: CeloTokenInfo) => this.contracts.getContract(info.contract)) - } - - /** - * Gets the address for each celo token proxy contract. - * @return an promise resolving to an object containing the address for each celo token proxy. - */ - getAddresses(): Promise> { - return this.forEachCeloToken((info: CeloTokenInfo) => this.registry.addressFor(info.contract)) - } - - async getStablesConfigs(humanReadable: boolean = false) { - return this.forStableCeloToken(async (info: StableTokenInfo) => { - const stableWrapper = await this.contracts.getContract(info.contract) - if (humanReadable) { - return stableWrapper.getHumanReadableConfig() - } - return stableWrapper.getConfig() - }) - } - - async getExchangesConfigs(humanReadable: boolean = false) { - return this.forStableCeloToken(async (info: StableTokenInfo) => { - const exchangeWrapper = await this.contracts.getContract(info.exchangeContract) - if (humanReadable) { - return exchangeWrapper.getHumanReadableConfig() - } - return exchangeWrapper.getConfig() - }) - } - - /** - * Runs fn for each celo token found in celoTokenInfos, and returns the - * value of each call in an object keyed by the token. - * @param fn the function to be called for each CeloTokenInfo. - * @return an object containing the resolved value the call to fn for each - * celo token. - */ - async forEachCeloToken( - fn: (info: CeloTokenInfo) => T | Promise - ): Promise> { - const wrapperInfoFunction = async () => - Promise.all( - (await this.validCeloTokenInfos()).map(async (info) => { - const fnResult = fn(info) - return { - symbol: info.symbol, - data: await fnResult, - } - }) - ) - return this.forEachWrapperInfo(wrapperInfoFunction) - } - - /** - * Runs fn for each stable token found in stableTokenInfos, and returns the - * value of each call in an object keyed by the token. - * @param fn the function to be called for each StableTokenInfo. - * @return an object containing the resolved value the call to fn for each - * celo token. - */ - async forStableCeloToken( - fn: (info: StableTokenInfo) => T | Promise - ): Promise> { - const wrapperInfoFunction = async () => - Promise.all( - (await this.validStableTokenInfos()).map(async (info) => { - const fnResult = fn(info) - return { - symbol: info.symbol, - data: await fnResult, - } - }) - ) - return this.forEachWrapperInfo(wrapperInfoFunction) - } - - private async forEachWrapperInfo( - fn: () => Promise> - ): Promise> { - return (await fn()).reduce( - ( - obj: { - [key in CeloTokenType]?: T - }, - wrapperInfo - ) => ({ - ...obj, - [wrapperInfo.symbol]: wrapperInfo.data, - }), - {} - ) as EachCeloToken - } - - async validCeloTokenInfos(): Promise { - const results = await Promise.all( - Object.values(celoTokenInfos).map(async (info) => { - try { - // The registry add the valid addresses to a cache - await this.registry.addressFor(info.contract) - return true - } catch { - // The contract was not deployed in the chain - return false - } - }) - ) - - return Object.values(celoTokenInfos).filter((_v, index) => results[index]) - } - - async validStableTokenInfos(): Promise { - const results = await Promise.all( - Object.values(stableTokenInfos).map(async (info) => { - try { - // The registry add the valid addresses to a cache - await this.registry.addressFor(info.contract) - await this.registry.addressFor(info.exchangeContract) - return true - } catch { - // The contract was not deployed in the chain - return false - } - }) - ) - - return Object.values(stableTokenInfos).filter((_v, index) => results[index]) - } - - /** - * Gets the wrapper for a given celo token. - * @param token the token to get the appropriate wrapper for - * @return an promise resolving to the wrapper for the token - */ - getWrapper(token: StableToken): Promise - getWrapper(token: Token): Promise - getWrapper(token: CeloTokenType): Promise - getWrapper(token: CeloTokenType): Promise { - return this.contracts.getContract(celoTokenInfos[token].contract) - } - - /** - * Gets the contract for the provided token - * @param token the token to get the contract of - * @return The contract for the token - */ - getContract(token: StableToken): StableTokenContract - getContract(token: CeloTokenType): CeloTokenContract { - return celoTokenInfos[token].contract - } - - /** - * Gets the exchange contract for the provided stable token - * @param token the stable token to get exchange contract of - * @return The exchange contract for the token - */ - getExchangeContract(token: StableToken) { - return stableTokenInfos[token].exchangeContract - } - - /** - * Gets the address of the contract for the provided token. - * @param token the token to get the (proxy) contract address for - * @return A promise resolving to the address of the token's contract - */ - getAddress = (token: CeloTokenType) => this.registry.addressFor(celoTokenInfos[token].contract) - - /** - * Gets the address to use as the feeCurrency when paying for gas with the - * provided token. - * @param token the token to get the feeCurrency address for - * @return If not CELO, the address of the token's contract. If CELO, undefined. - */ - getFeeCurrencyAddress(token: CeloTokenType) { - if (token === Token.CELO) { - return undefined - } - return this.getAddress(token) - } - - /** - * Returns if the provided token is a StableToken - * @param token the token - * @return if token is a StableToken - */ - isStableToken(token: CeloTokenType) { - // We cast token as StableToken to make typescript happy - return Object.values(StableToken).includes(token as StableToken) - } - - isStableTokenContract = isStableTokenContract -} - -export function isStableTokenContract(contract: CeloContract) { - const allStableTokenContracts = Object.values(StableToken).map( - (token) => stableTokenInfos[token].contract - ) - // We cast token as StableTokenContract to make typescript happy - return allStableTokenContracts.includes(contract as StableTokenContract) -} diff --git a/packages/sdk/contractkit/src/contract-cache.test.ts b/packages/sdk/contractkit/src/contract-cache.test.ts deleted file mode 100644 index b20c8f28519..00000000000 --- a/packages/sdk/contractkit/src/contract-cache.test.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { Connection } from '@celo/connect' -import Web3 from 'web3' -import { CeloContract } from '.' -import { AddressRegistry } from './address-registry' -import { ValidWrappers, WrapperCache } from './contract-cache' -import { Web3ContractCache } from './web3-contract-cache' - -const TestedWrappers: ValidWrappers[] = [ - CeloContract.GoldToken, - CeloContract.StableToken, - CeloContract.StableTokenEUR, - CeloContract.Exchange, - CeloContract.ExchangeEUR, - CeloContract.Validators, - CeloContract.LockedGold, -] - -function newWrapperCache() { - const web3 = new Web3('http://localhost:8545') - const connection = new Connection(web3) - const registry = new AddressRegistry(connection) - const web3ContractCache = new Web3ContractCache(registry) - const AnyContractAddress = '0xe832065fb5117dbddcb566ff7dc4340999583e38' - jest.spyOn(registry, 'addressFor').mockResolvedValue(AnyContractAddress) - const contractCache = new WrapperCache(connection, web3ContractCache, registry) - return contractCache -} - -describe('getContract()', () => { - const contractCache = newWrapperCache() - - for (const contractName of TestedWrappers) { - test(`SBAT get ${contractName}`, async () => { - const contract = await contractCache.getContract(contractName) - expect(contract).not.toBeNull() - expect(contract).toBeDefined() - }) - } - - test('should create a new instance when an address is provided', async () => { - const address1 = Web3.utils.randomHex(20) - const address2 = Web3.utils.randomHex(20) - const contract1 = await contractCache.getContract(CeloContract.MultiSig, address1) - const contract2 = await contractCache.getContract(CeloContract.MultiSig, address2) - expect(contract1?.address).not.toEqual(contract2?.address) - }) -}) - -test('should cache contracts', async () => { - const contractCache = newWrapperCache() - for (const contractName of TestedWrappers) { - const contract = await contractCache.getContract(contractName) - const contractBis = await contractCache.getContract(contractName) - expect(contract).toBe(contractBis) - } -}) diff --git a/packages/sdk/contractkit/src/contract-cache.ts b/packages/sdk/contractkit/src/contract-cache.ts deleted file mode 100644 index ff7e033e609..00000000000 --- a/packages/sdk/contractkit/src/contract-cache.ts +++ /dev/null @@ -1,252 +0,0 @@ -import { IERC20 } from '@celo/abis/web3/IERC20' -import { Connection } from '@celo/connect' -import { AddressRegistry } from './address-registry' -import { CeloContract } from './base' -import { ContractCacheType } from './basic-contract-cache-type' -import { StableToken, stableTokenInfos } from './celo-tokens' -import { Web3ContractCache } from './web3-contract-cache' -import { AccountsWrapper } from './wrappers/Accounts' -import { AttestationsWrapper } from './wrappers/Attestations' -import { BlockchainParametersWrapper } from './wrappers/BlockchainParameters' -import { DoubleSigningSlasherWrapper } from './wrappers/DoubleSigningSlasher' -import { DowntimeSlasherWrapper } from './wrappers/DowntimeSlasher' -import { ElectionWrapper } from './wrappers/Election' -import { EpochRewardsWrapper } from './wrappers/EpochRewards' -import { Erc20Wrapper } from './wrappers/Erc20Wrapper' -import { EscrowWrapper } from './wrappers/Escrow' -import { ExchangeWrapper } from './wrappers/Exchange' -import { FederatedAttestationsWrapper } from './wrappers/FederatedAttestations' -import { FreezerWrapper } from './wrappers/Freezer' -import { GasPriceMinimumWrapper } from './wrappers/GasPriceMinimum' -import { GoldTokenWrapper } from './wrappers/GoldTokenWrapper' -import { GovernanceWrapper } from './wrappers/Governance' -import { GrandaMentoWrapper } from './wrappers/GrandaMento' -import { LockedGoldWrapper } from './wrappers/LockedGold' -import { MetaTransactionWalletWrapper } from './wrappers/MetaTransactionWallet' -import { MetaTransactionWalletDeployerWrapper } from './wrappers/MetaTransactionWalletDeployer' -import { MultiSigWrapper } from './wrappers/MultiSig' -import { OdisPaymentsWrapper } from './wrappers/OdisPayments' -import { ReserveWrapper } from './wrappers/Reserve' -import { SortedOraclesWrapper } from './wrappers/SortedOracles' -import { StableTokenWrapper } from './wrappers/StableTokenWrapper' -import { ValidatorsWrapper } from './wrappers/Validators' - -const WrapperFactories = { - [CeloContract.Accounts]: AccountsWrapper, - [CeloContract.BlockchainParameters]: BlockchainParametersWrapper, - [CeloContract.EpochRewards]: EpochRewardsWrapper, - [CeloContract.ERC20]: Erc20Wrapper, - [CeloContract.Escrow]: EscrowWrapper, - [CeloContract.Exchange]: ExchangeWrapper, - [CeloContract.ExchangeEUR]: ExchangeWrapper, - [CeloContract.ExchangeBRL]: ExchangeWrapper, - [CeloContract.FederatedAttestations]: FederatedAttestationsWrapper, - // [CeloContract.FeeCurrencyWhitelist]: FeeCurrencyWhitelistWrapper, - [CeloContract.Freezer]: FreezerWrapper, - [CeloContract.GasPriceMinimum]: GasPriceMinimumWrapper, - [CeloContract.GoldToken]: GoldTokenWrapper, - [CeloContract.GrandaMento]: GrandaMentoWrapper, - // [CeloContract.Random]: RandomWrapper, - // [CeloContract.Registry]: RegistryWrapper, - [CeloContract.MetaTransactionWallet]: MetaTransactionWalletWrapper, - [CeloContract.MetaTransactionWalletDeployer]: MetaTransactionWalletDeployerWrapper, - [CeloContract.MultiSig]: MultiSigWrapper, - [CeloContract.OdisPayments]: OdisPaymentsWrapper, - [CeloContract.Reserve]: ReserveWrapper, - [CeloContract.StableToken]: StableTokenWrapper, - [CeloContract.StableTokenEUR]: StableTokenWrapper, - [CeloContract.StableTokenBRL]: StableTokenWrapper, -} as const - -const WithRegistry = { - [CeloContract.SortedOracles]: SortedOraclesWrapper, -} as const - -const WrapperFactoriesWhichNeedCache = { - [CeloContract.Attestations]: AttestationsWrapper, - [CeloContract.DoubleSigningSlasher]: DoubleSigningSlasherWrapper, - [CeloContract.DowntimeSlasher]: DowntimeSlasherWrapper, - [CeloContract.Election]: ElectionWrapper, - [CeloContract.Governance]: GovernanceWrapper, - [CeloContract.LockedGold]: LockedGoldWrapper, - [CeloContract.Validators]: ValidatorsWrapper, -} - -type CFType = typeof WrapperFactories -type RegistryType = typeof WithRegistry -type WrapperFactoriesWhichNeedCacheType = typeof WrapperFactoriesWhichNeedCache -export type ValidWrappers = - | keyof CFType - | keyof RegistryType - | keyof WrapperFactoriesWhichNeedCacheType - -const contractsWhichRequireCache = new Set(Object.keys(WrapperFactoriesWhichNeedCache)) - -interface WrapperCacheMap { - [CeloContract.Accounts]?: AccountsWrapper - [CeloContract.Attestations]?: AttestationsWrapper - [CeloContract.BlockchainParameters]?: BlockchainParametersWrapper - [CeloContract.DoubleSigningSlasher]?: DoubleSigningSlasherWrapper - [CeloContract.DowntimeSlasher]?: DowntimeSlasherWrapper - [CeloContract.Election]?: ElectionWrapper - [CeloContract.EpochRewards]?: EpochRewardsWrapper - [CeloContract.ERC20]?: Erc20Wrapper - [CeloContract.Escrow]?: EscrowWrapper - [CeloContract.Exchange]?: ExchangeWrapper - [CeloContract.ExchangeEUR]?: ExchangeWrapper - [CeloContract.ExchangeBRL]?: ExchangeWrapper - [CeloContract.FederatedAttestations]?: FederatedAttestationsWrapper - // [CeloContract.FeeCurrencyWhitelist]?: FeeCurrencyWhitelistWrapper, - [CeloContract.Freezer]?: FreezerWrapper - [CeloContract.GasPriceMinimum]?: GasPriceMinimumWrapper - [CeloContract.GoldToken]?: GoldTokenWrapper - [CeloContract.Governance]?: GovernanceWrapper - [CeloContract.GrandaMento]?: GrandaMentoWrapper - [CeloContract.LockedGold]?: LockedGoldWrapper - [CeloContract.MetaTransactionWallet]?: MetaTransactionWalletWrapper - [CeloContract.MetaTransactionWalletDeployer]?: MetaTransactionWalletDeployerWrapper - [CeloContract.MultiSig]?: MultiSigWrapper - [CeloContract.OdisPayments]?: OdisPaymentsWrapper - // [CeloContract.Random]?: RandomWrapper, - // [CeloContract.Registry]?: RegistryWrapper, - [CeloContract.Reserve]?: ReserveWrapper - [CeloContract.SortedOracles]?: SortedOraclesWrapper - [CeloContract.StableToken]?: StableTokenWrapper - [CeloContract.StableTokenEUR]?: StableTokenWrapper - [CeloContract.StableTokenBRL]?: StableTokenWrapper - [CeloContract.Validators]?: ValidatorsWrapper -} - -/** - * Kit ContractWrappers factory & cache. - * - * Provides access to all contract wrappers for celo core contracts - * - * @remarks - * - * Because it provides access to all contract wrappers it must load all wrappers and the contract ABIs for them - * Consider Using {@link MiniWrapperCache}, building your own, or if you only need one Wrapper using it directly - */ - -export class WrapperCache implements ContractCacheType { - private wrapperCache: WrapperCacheMap = {} - constructor( - readonly connection: Connection, - readonly _web3Contracts: Web3ContractCache, - readonly registry: AddressRegistry - ) {} - - getAccounts() { - return this.getContract(CeloContract.Accounts) - } - getAttestations() { - return this.getContract(CeloContract.Attestations) - } - getBlockchainParameters() { - return this.getContract(CeloContract.BlockchainParameters) - } - getDoubleSigningSlasher() { - return this.getContract(CeloContract.DoubleSigningSlasher) - } - getDowntimeSlasher() { - return this.getContract(CeloContract.DowntimeSlasher) - } - getElection() { - return this.getContract(CeloContract.Election) - } - getEpochRewards() { - return this.getContract(CeloContract.EpochRewards) - } - getErc20(address: string) { - return this.getContract(CeloContract.ERC20, address) - } - getEscrow(): Promise { - return this.getContract(CeloContract.Escrow) - } - getExchange(stableToken: StableToken = StableToken.cUSD) { - return this.getContract(stableTokenInfos[stableToken].exchangeContract) - } - getFreezer() { - return this.getContract(CeloContract.Freezer) - } - getFederatedAttestations() { - return this.getContract(CeloContract.FederatedAttestations) - } - getGasPriceMinimum() { - return this.getContract(CeloContract.GasPriceMinimum) - } - getGoldToken() { - return this.getContract(CeloContract.GoldToken) - } - getGovernance() { - return this.getContract(CeloContract.Governance) - } - getGrandaMento() { - return this.getContract(CeloContract.GrandaMento) - } - getLockedGold() { - return this.getContract(CeloContract.LockedGold) - } - /* - @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - getMetaTransactionWallet(address: string) { - return this.getContract(CeloContract.MetaTransactionWallet, address) - } - /* - @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - getMetaTransactionWalletDeployer(address: string) { - return this.getContract(CeloContract.MetaTransactionWalletDeployer, address) - } - getMultiSig(address: string) { - return this.getContract(CeloContract.MultiSig, address) - } - getOdisPayments() { - return this.getContract(CeloContract.OdisPayments) - } - getReserve() { - return this.getContract(CeloContract.Reserve) - } - getSortedOracles() { - return this.getContract(CeloContract.SortedOracles) - } - getStableToken(stableToken: StableToken = StableToken.cUSD) { - return this.getContract(stableTokenInfos[stableToken].contract) - } - getValidators() { - return this.getContract(CeloContract.Validators) - } - - /** - * Get Contract wrapper - */ - public async getContract(contract: C, address?: string) { - if (this.wrapperCache[contract] == null || address !== undefined) { - const instance = await this._web3Contracts.getContract(contract, address) - if (contract === CeloContract.SortedOracles) { - const Klass = WithRegistry[CeloContract.SortedOracles] - this.wrapperCache[CeloContract.SortedOracles] = new Klass( - this.connection, - instance as any, - this.registry - ) - } else if (contractsWhichRequireCache.has(contract)) { - const contractName = contract as keyof WrapperFactoriesWhichNeedCacheType - const Klass = WrapperFactoriesWhichNeedCache[contractName] - const wrapper = new Klass(this.connection, instance as any, this) - this.wrapperCache[contractName] = wrapper as any - } else { - const simpleContractName = contract as keyof typeof WrapperFactories - const Klass = WrapperFactories[simpleContractName] - this.wrapperCache[simpleContractName] = new Klass(this.connection, instance as any) as any - } - } - return this.wrapperCache[contract]! - } - - public invalidateContract(contract: C) { - this._web3Contracts.invalidateContract(contract) - this.wrapperCache[contract] = undefined - } -} diff --git a/packages/sdk/contractkit/src/globals.d.ts b/packages/sdk/contractkit/src/globals.d.ts deleted file mode 100644 index 0318570a84f..00000000000 --- a/packages/sdk/contractkit/src/globals.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare const fetchMock diff --git a/packages/sdk/contractkit/src/identity/claims/account.test.ts b/packages/sdk/contractkit/src/identity/claims/account.test.ts deleted file mode 100644 index d9f0a72696b..00000000000 --- a/packages/sdk/contractkit/src/identity/claims/account.test.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { ACCOUNT_ADDRESSES, ACCOUNT_PRIVATE_KEYS } from '@celo/dev-utils/lib/ganache-setup' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { privateKeyToAddress, privateKeyToPublicKey } from '@celo/utils/lib/address' -import { NativeSigner } from '@celo/utils/lib/signatureUtils' -import { newKitFromWeb3 } from '../../kit' -import { IdentityMetadataWrapper } from '../metadata' -import { createAccountClaim } from './account' -import { Claim } from './claim' -import { verifyClaim } from './verify' - -testWithGanache('Account claims', (web3) => { - const kit = newKitFromWeb3(web3) - const address = ACCOUNT_ADDRESSES[0] - const otherAddress = ACCOUNT_ADDRESSES[1] - - it('can make an account claim', async () => { - const metadata = IdentityMetadataWrapper.fromEmpty(address) - await metadata.addClaim( - createAccountClaim(otherAddress), - NativeSigner(kit.connection.sign, address) - ) - }) - - it('can make an account claim with the public key', async () => { - const metadata = IdentityMetadataWrapper.fromEmpty(address) - const otherKey = ACCOUNT_PRIVATE_KEYS[1] - await metadata.addClaim( - createAccountClaim(privateKeyToAddress(otherKey), privateKeyToPublicKey(otherKey)), - NativeSigner(kit.connection.sign, address) - ) - }) - - it("can't claim itself", async () => { - const metadata = IdentityMetadataWrapper.fromEmpty(address) - await expect( - metadata.addClaim(createAccountClaim(address), NativeSigner(kit.connection.sign, address)) - ).rejects.toEqual(new Error("Can't claim self")) - }) - - it('fails to create a claim with in invalid address', () => { - expect(() => { - createAccountClaim('notanaddress') - }).toThrow() - }) - - it('fails when passing a public key that is derived from a different private key', async () => { - const key1 = ACCOUNT_PRIVATE_KEYS[0] - const key2 = ACCOUNT_PRIVATE_KEYS[1] - - expect(() => - createAccountClaim(privateKeyToAddress(key1), privateKeyToPublicKey(key2)) - ).toThrow() - }) - - describe('verifying', () => { - let claim: Claim - let otherMetadata: IdentityMetadataWrapper - - // Mocking static function calls was too difficult, so manually mocking it - const originalFetchFromURLImplementation = IdentityMetadataWrapper.fetchFromURL - - beforeEach(async () => { - otherMetadata = IdentityMetadataWrapper.fromEmpty(otherAddress) - - const myUrl = 'https://www.test.com/' - const accounts = await kit.contracts.getAccounts() - await accounts.createAccount().send({ from: address }) - await accounts.setMetadataURL(myUrl).sendAndWaitForReceipt({ from: address, gas: 0 }) - await accounts.createAccount().send({ from: otherAddress }) - await accounts.setMetadataURL(myUrl).sendAndWaitForReceipt({ from: otherAddress, gas: 0 }) - - IdentityMetadataWrapper.fetchFromURL = () => Promise.resolve(otherMetadata) - - const metadata = IdentityMetadataWrapper.fromEmpty(address) - claim = createAccountClaim(otherAddress) - await metadata.addClaim(claim, NativeSigner(kit.connection.sign, address)) - }) - - afterEach(() => { - IdentityMetadataWrapper.fetchFromURL = originalFetchFromURLImplementation - }) - - describe('when the metadata URL of the other account has not been set', () => { - beforeEach(async () => { - await (await kit.contracts.getAccounts()) - .setMetadataURL('') - .sendAndWaitForReceipt({ from: otherAddress, gas: 0 }) - }) - - it('indicates that the metadata url could not be retrieved', async () => { - const error = await verifyClaim(kit, claim, address) - expect(error).toContain('could not be retrieved') - }) - }) - - describe('when the metadata URL is set, but does not contain the address claim', () => { - it('indicates that the metadata does not contain the counter claim', async () => { - const error = await verifyClaim(kit, claim, address) - expect(error).toContain('did not claim') - }) - }) - - describe('when the other account correctly counter-claims', () => { - beforeEach(async () => { - await otherMetadata.addClaim( - createAccountClaim(address), - NativeSigner(kit.connection.sign, otherAddress) - ) - }) - - it('returns undefined succesfully', async () => { - const error = await verifyClaim(kit, claim, address) - expect(error).toBeUndefined() - }) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/identity/claims/account.ts b/packages/sdk/contractkit/src/identity/claims/account.ts deleted file mode 100644 index 5896d21fbcc..00000000000 --- a/packages/sdk/contractkit/src/identity/claims/account.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { publicKeyToAddress } from '@celo/utils/lib/address' -import { AddressType, PublicKeyType } from '@celo/utils/lib/io' -import { either, isLeft } from 'fp-ts/lib/Either' -import * as t from 'io-ts' -import { ClaimTypes, now, TimestampType } from './types' - -/** - * - * Provide the type minus the validation that the public key and address are derived from the same private key - */ -export const AccountClaimTypeH = t.type({ - type: t.literal(ClaimTypes.ACCOUNT), - timestamp: TimestampType, - address: AddressType, - // io-ts way of defining optional key-value pair - publicKey: t.union([t.undefined, PublicKeyType]), -}) - -export const AccountClaimType = new t.Type( - 'AccountClaimType', - AccountClaimTypeH.is, - (unknownValue, context) => - either.chain(AccountClaimTypeH.validate(unknownValue, context), (claim) => { - if (claim.publicKey === undefined) { - return t.success(claim) - } - const derivedAddress = publicKeyToAddress(claim.publicKey) - return derivedAddress === claim.address - ? t.success(claim) - : t.failure(claim, context, 'public key did not match the address in the claim') - }), - (x) => x -) - -export type AccountClaim = t.TypeOf - -export const createAccountClaim = (address: string, publicKey?: string): AccountClaim => { - const claim = { - timestamp: now(), - type: ClaimTypes.ACCOUNT, - address, - publicKey, - } - - const parsedClaim = AccountClaimType.decode(claim) - - if (isLeft(parsedClaim)) { - throw new Error(`A valid claim could not be created`) - } - - return parsedClaim.right -} diff --git a/packages/sdk/contractkit/src/identity/claims/claim.ts b/packages/sdk/contractkit/src/identity/claims/claim.ts deleted file mode 100644 index 71b157beb6d..00000000000 --- a/packages/sdk/contractkit/src/identity/claims/claim.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { hashMessage } from '@celo/utils/lib/signatureUtils' -import * as t from 'io-ts' -import { AccountClaim, AccountClaimType } from './account' -import { ClaimTypes, now, SignatureType, TimestampType } from './types' - -export const KeybaseClaimType = t.type({ - type: t.literal(ClaimTypes.KEYBASE), - timestamp: TimestampType, - // TODO: Validate compliant username before just interpolating - username: t.string, -}) -export type KeybaseClaim = t.TypeOf - -const DomainClaimType = t.type({ - type: t.literal(ClaimTypes.DOMAIN), - timestamp: TimestampType, - domain: t.string, -}) - -const NameClaimType = t.type({ - type: t.literal(ClaimTypes.NAME), - timestamp: TimestampType, - name: t.string, -}) - -const StorageClaimType = t.type({ - type: t.literal(ClaimTypes.STORAGE), - timestamp: TimestampType, - address: t.string, - filteredDataPaths: t.string, -}) - -export const ClaimType = t.union([ - AccountClaimType, - DomainClaimType, - KeybaseClaimType, - NameClaimType, - StorageClaimType, -]) - -export const SignedClaimType = t.type({ - claim: ClaimType, - signature: SignatureType, -}) - -export const DOMAIN_TXT_HEADER = 'celo-site-verification' -export type DomainClaim = t.TypeOf -export type NameClaim = t.TypeOf -export type StorageClaim = t.TypeOf -export type Claim = DomainClaim | KeybaseClaim | NameClaim | AccountClaim | StorageClaim - -export type ClaimPayload = K extends typeof ClaimTypes.DOMAIN - ? DomainClaim - : K extends typeof ClaimTypes.NAME - ? NameClaim - : K extends typeof ClaimTypes.KEYBASE - ? KeybaseClaim - : K extends typeof ClaimTypes.ACCOUNT - ? AccountClaim - : StorageClaim - -/** @internal */ -export const isOfType = - (type: K) => - (data: Claim): data is ClaimPayload => - data.type === type - -export function hashOfClaim(claim: Claim) { - return hashMessage(serializeClaim(claim)) -} - -export function hashOfClaims(claims: Claim[]) { - const hashes = claims.map(hashOfClaim) - return hashMessage(hashes.join('')) -} - -export function serializeClaim(claim: Claim) { - return JSON.stringify(claim) -} - -export const createNameClaim = (name: string): NameClaim => ({ - name, - timestamp: now(), - type: ClaimTypes.NAME, -}) - -export const createDomainClaim = (domain: string): DomainClaim => ({ - domain, - timestamp: now(), - type: ClaimTypes.DOMAIN, -}) - -export const createStorageClaim = (storageURL: string): StorageClaim => ({ - address: storageURL, - timestamp: now(), - type: ClaimTypes.STORAGE, - filteredDataPaths: '.*', -}) diff --git a/packages/sdk/contractkit/src/identity/claims/domain.test.ts b/packages/sdk/contractkit/src/identity/claims/domain.test.ts deleted file mode 100644 index 8f6b0709d07..00000000000 --- a/packages/sdk/contractkit/src/identity/claims/domain.test.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { ACCOUNT_ADDRESSES } from '@celo/dev-utils/lib/ganache-setup' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { NativeSigner, Signer, verifySignature } from '@celo/utils/lib/signatureUtils' -import { newKitFromWeb3 } from '../../kit' -import { IdentityMetadataWrapper } from '../metadata' -import { createDomainClaim, DomainClaim, serializeClaim } from './claim' -import { verifyDomainRecord } from './verify' - -testWithGanache('Domain claims', (web3) => { - const kit = newKitFromWeb3(web3) - const address = ACCOUNT_ADDRESSES[0] - const secondAddress = ACCOUNT_ADDRESSES[1] - - it('can make a domain claim', async () => { - const domain = 'test.com' - const metadata = IdentityMetadataWrapper.fromEmpty(address) - await metadata.addClaim(createDomainClaim(domain), NativeSigner(kit.connection.sign, address)) - }) - - describe('verifying', () => { - let claim: DomainClaim - let metadata: IdentityMetadataWrapper - let signature: string - let signatureBase64: string - let signer: Signer - const domain = 'test.com' - const originalFetchFromURLImplementation = IdentityMetadataWrapper.fetchFromURL - const dnsResolver = ( - _hostname: string, - callback: (err: any, addresses: string[][]) => void - ) => { - setTimeout(() => { - callback(null, [ - [`header=xxx`], - [`celo-site-verification=${signatureBase64}`, `header=yyy`], - ]) - }, 100) - } - - beforeEach(async () => { - signer = NativeSigner(kit.connection.sign, address) - metadata = IdentityMetadataWrapper.fromEmpty(address) - claim = createDomainClaim(domain) - - await metadata.addClaim(claim, signer) - - IdentityMetadataWrapper.fetchFromURL = () => Promise.resolve(metadata) - - signature = await signer.sign(serializeClaim(claim)) - signatureBase64 = Buffer.from(signature, 'binary').toString('base64') - }) - - afterEach(() => { - IdentityMetadataWrapper.fetchFromURL = originalFetchFromURLImplementation - }) - - describe('when we have a signature', () => { - it('indicates that signature is correct', async () => { - const verifiedSignature = await verifySignature(serializeClaim(claim), signature, address) - expect(verifiedSignature).toBeTruthy() - }) - - it('indicates a fixed signature is correct', async () => { - const newClaim = createDomainClaim('orco.dev') - newClaim.timestamp = 1584618795 - - const newSignature = await NativeSigner(kit.connection.sign, secondAddress).sign( - serializeClaim(newClaim) - ) - - const verifiedSignature = await verifySignature( - serializeClaim(newClaim), - newSignature, - secondAddress - ) - - expect(verifiedSignature).toBeTruthy() - }) - }) - - describe('when the metadata URL is set', () => { - it('indicates that the metadata contain the right claim', async () => { - const output = await verifyDomainRecord(kit, claim, address, dnsResolver) - expect(output).toBeUndefined() - }) - - it('indicates that the metadata does not contain the proper domain claim', async () => { - const error = await verifyDomainRecord(kit, claim, address) - expect(error).toContain('Unable to verify domain claim') - }) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/identity/claims/keybase.ts b/packages/sdk/contractkit/src/identity/claims/keybase.ts deleted file mode 100644 index 25ed806760c..00000000000 --- a/packages/sdk/contractkit/src/identity/claims/keybase.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import fetch from 'cross-fetch' -import { isLeft } from 'fp-ts/lib/Either' -import { ContractKit } from '../../kit' -import { IdentityMetadataWrapper } from '../metadata' -import { hashOfClaim, KeybaseClaim, KeybaseClaimType, SignedClaimType } from './claim' -import { ClaimTypes, now } from './types' - -export const keybaseFilePathToProof = `.well-known/celo/` -export const proofFileName = (address: Address) => `verify-${address}.json` -export const targetURL = (username: string, address: Address) => - `https://${username}.keybase.pub/${keybaseFilePathToProof}${proofFileName(address)}` - -/** - * - * @remarks - * If verification encounters an error, returns the error message as a string - * otherwise returns undefined when successful - * - * @param kit - * @param claim - * @param signer - * @returns a human readable string with claims (non)verifiability or undefined - */ - -export async function verifyKeybaseClaim( - kit: ContractKit, - claim: KeybaseClaim, - signer: Address -): Promise { - try { - const resp = await fetch(targetURL(claim.username, signer)) - if (!resp.ok) { - return `Proof of ownership could not be retrieved at ${targetURL( - claim.username, - signer - )}, request yielded ${resp.status} status code` - } - - const jsonResp = await resp.json() - const parsedClaim = SignedClaimType.decode(jsonResp) - if (isLeft(parsedClaim)) { - return 'Claim is incorrectly formatted' - } - - const hasValidSignature = await IdentityMetadataWrapper.verifySignerForAddress( - await kit.contracts.getAccounts(), - hashOfClaim(parsedClaim.right.claim), - parsedClaim.right.signature, - signer - ) - - if (!hasValidSignature) { - return 'Claim does not contain a valid signature' - } - - const parsedKeybaseClaim = KeybaseClaimType.decode(parsedClaim.right.claim) - if (isLeft(parsedKeybaseClaim)) { - return 'Hosted claim is not a Keybase claim' - } - - if (parsedKeybaseClaim.right.username !== claim.username) { - return 'Usernames do not match' - } - - return - } catch (error) { - return 'Could not verify Keybase claim: ' + error - } -} - -export const createKeybaseClaim = (username: string): KeybaseClaim => ({ - username, - timestamp: now(), - type: ClaimTypes.KEYBASE, -}) diff --git a/packages/sdk/contractkit/src/identity/claims/types.ts b/packages/sdk/contractkit/src/identity/claims/types.ts deleted file mode 100644 index 3f9eea780f1..00000000000 --- a/packages/sdk/contractkit/src/identity/claims/types.ts +++ /dev/null @@ -1,20 +0,0 @@ -import * as t from 'io-ts' - -export const SignatureType = t.string -export const TimestampType = t.number - -/** @internal */ -export const now = () => Math.round(new Date().getTime() / 1000) - -export enum ClaimTypes { - ACCOUNT = 'ACCOUNT', - DOMAIN = 'DOMAIN', - KEYBASE = 'KEYBASE', - NAME = 'NAME', - PROFILE_PICTURE = 'PROFILE_PICTURE', - STORAGE = 'STORAGE', - TWITTER = 'TWITTER', -} - -export const VERIFIABLE_CLAIM_TYPES = [ClaimTypes.KEYBASE, ClaimTypes.ACCOUNT, ClaimTypes.DOMAIN] -export const SINGULAR_CLAIM_TYPES = [ClaimTypes.NAME] diff --git a/packages/sdk/contractkit/src/identity/claims/verify.ts b/packages/sdk/contractkit/src/identity/claims/verify.ts deleted file mode 100644 index 5d966c52c87..00000000000 --- a/packages/sdk/contractkit/src/identity/claims/verify.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { eqAddress } from '@celo/base/lib/address' -import { isValidUrl } from '@celo/base/lib/io' -import { resolveTxt } from 'dns' -import { promisify } from 'util' -import { ContractKit } from '../..' -import { IdentityMetadataWrapper } from '../metadata' -import { AccountClaim } from './account' -import { Claim, DOMAIN_TXT_HEADER, DomainClaim, serializeClaim } from './claim' -import { verifyKeybaseClaim } from './keybase' -import { ClaimTypes } from './types' - -/** - * Verifies a claim made by an account, i.e. whether a claim can be verified to be correct - * @param kit ContractKit object - * @param claim The claim to verify - * @param address The address that is making the claim - * @returns If valid, returns undefined. If invalid or unable to verify, returns a string with the error - */ -export async function verifyClaim(kit: ContractKit, claim: Claim, address: string, tries = 3) { - switch (claim.type) { - case ClaimTypes.KEYBASE: - return verifyKeybaseClaim(kit, claim, address) - case ClaimTypes.ACCOUNT: - return verifyAccountClaim(kit, claim, address, tries) - case ClaimTypes.DOMAIN: - return verifyDomainRecord(kit, claim, address) - default: - break - } - return -} - -export const verifyAccountClaim = async ( - kit: ContractKit, - claim: AccountClaim, - address: string, - tries = 3 -) => { - const metadataURL = await (await kit.contracts.getAccounts()).getMetadataURL(claim.address) - - if (!isValidUrl(metadataURL)) { - return `Metadata URL of ${claim.address} could not be retrieved` - } - - let metadata: IdentityMetadataWrapper - try { - metadata = await IdentityMetadataWrapper.fetchFromURL( - await kit.contracts.getAccounts(), - metadataURL, - tries - ) - } catch (error: any) { - return `Metadata could not be fetched for ${ - claim.address - } at ${metadataURL}: ${error.toString()}` - } - - const accountClaims = metadata.filterClaims(ClaimTypes.ACCOUNT) - - if (accountClaims.find((x) => eqAddress(x.address, address)) === undefined) { - return `${claim.address} did not claim ${address}` - } - - return -} - -type dnsResolverFunction = ( - hostname: string, - callback: (err: NodeJS.ErrnoException, addresses: string[][]) => void -) => void - -/** - * It verifies if a DNS domain includes in the TXT records an entry with name - * `celo-site-verification` and a valid signature in base64 - */ -export const verifyDomainRecord = async ( - kit: ContractKit, - claim: DomainClaim, - address: string, - dnsResolver: dnsResolverFunction = resolveTxt as any -) => { - try { - const getRecords = promisify(dnsResolver) - const domainRecords = await getRecords(claim.domain) - for (const record of domainRecords) { - for (const entry of record) { - if (entry.startsWith(DOMAIN_TXT_HEADER)) { - const signatureBase64 = entry.substring(DOMAIN_TXT_HEADER.length + 1) - const signature = Buffer.from(signatureBase64, 'base64').toString('binary') - if ( - await IdentityMetadataWrapper.verifySignerForAddress( - await kit.contracts.getAccounts(), - serializeClaim(claim), - signature, - address - ) - ) { - return - } - } - } - } - return `Unable to verify domain claim with address ${address}` - } catch (error: any) { - return `Unable to fetch domain TXT records: ${error.toString()}` - } -} diff --git a/packages/sdk/contractkit/src/identity/index.ts b/packages/sdk/contractkit/src/identity/index.ts deleted file mode 100644 index 1402164045d..00000000000 --- a/packages/sdk/contractkit/src/identity/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './metadata' diff --git a/packages/sdk/contractkit/src/identity/metadata.test.ts b/packages/sdk/contractkit/src/identity/metadata.test.ts deleted file mode 100644 index 94c28439349..00000000000 --- a/packages/sdk/contractkit/src/identity/metadata.test.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { ACCOUNT_ADDRESSES } from '@celo/dev-utils/lib/ganache-setup' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { Address } from '@celo/utils/lib/address' -import { NativeSigner } from '@celo/utils/lib/signatureUtils' -import { newKitFromWeb3 } from '../kit' -import { createNameClaim } from './claims/claim' -import { ClaimTypes, IdentityMetadataWrapper } from './metadata' -testWithGanache('Metadata', (web3) => { - const kit = newKitFromWeb3(web3) - const address = ACCOUNT_ADDRESSES[0] - const otherAddress = ACCOUNT_ADDRESSES[1] - - test('correctly recovers the claims when signed by the account', async () => { - const name = 'Celo' - const metadata = IdentityMetadataWrapper.fromEmpty(address) - await metadata.addClaim(createNameClaim(name), NativeSigner(kit.connection.sign, address)) - const serializedMetadata = metadata.toString() - const parsedMetadata = await IdentityMetadataWrapper.fromRawString( - await kit.contracts.getAccounts(), - serializedMetadata - ) - const nameClaim = parsedMetadata.findClaim(ClaimTypes.NAME) - - expect(nameClaim).not.toBeUndefined() - expect(nameClaim!.name).toEqual(name) - }) - - test("correctly recovers the claims when the metadata is signed by any of the account's authorized signers", async () => { - const validator = await kit.contracts.getValidators() - const name = 'Celo' - const voteMetadata = IdentityMetadataWrapper.fromEmpty(address) - const validatorMetadata = IdentityMetadataWrapper.fromEmpty(address) - const attestationMetadata = IdentityMetadataWrapper.fromEmpty(address) - const accounts = await kit.contracts.getAccounts() - const voteSigner = ACCOUNT_ADDRESSES[2] - const validatorSigner = ACCOUNT_ADDRESSES[3] - const attestationSigner = ACCOUNT_ADDRESSES[4] - await accounts.createAccount().send({ from: address }) - const testSigner = async ( - signer: Address, - action: string, - metadata: IdentityMetadataWrapper - ) => { - const pop = await accounts.generateProofOfKeyPossession(address, signer) - if (action === 'vote') { - await ( - await accounts.authorizeVoteSigner(signer, pop) - ).sendAndWaitForReceipt({ from: address, gas: 13000000 }) - } else if (action === 'validator') { - await ( - await accounts.authorizeValidatorSigner(signer, pop, validator) - ).sendAndWaitForReceipt({ - from: address, - gas: 13000000, - }) - } else if (action === 'attestation') { - await ( - await accounts.authorizeAttestationSigner(signer, pop) - ).sendAndWaitForReceipt({ from: address, gas: 13000000 }) - } - await metadata.addClaim(createNameClaim(name), NativeSigner(kit.connection.sign, signer)) - const serializedMetadata = metadata.toString() - const parsedMetadata = await IdentityMetadataWrapper.fromRawString( - await kit.contracts.getAccounts(), - serializedMetadata - ) - const nameClaim = parsedMetadata.findClaim(ClaimTypes.NAME) - - expect(nameClaim).not.toBeUndefined() - expect(nameClaim!.name).toEqual(name) - } - await testSigner(voteSigner, 'vote', voteMetadata) - await testSigner(validatorSigner, 'validator', validatorMetadata) - await testSigner(attestationSigner, 'attestation', attestationMetadata) - }) - - test('should reject metadata that contains a signature by a different account', async () => { - const name = 'Celo' - const metadata = IdentityMetadataWrapper.fromEmpty(address) - await metadata.addClaim(createNameClaim(name), NativeSigner(kit.connection.sign, otherAddress)) - const serializedMetadata = metadata.toString() - try { - await IdentityMetadataWrapper.fromRawString( - await kit.contracts.getAccounts(), - serializedMetadata - ) - } catch (e: any) { - expect(e.toString()).toContain('Signature could not be validated') - } - }) -}) diff --git a/packages/sdk/contractkit/src/identity/metadata.ts b/packages/sdk/contractkit/src/identity/metadata.ts deleted file mode 100644 index 3eccd7d3874..00000000000 --- a/packages/sdk/contractkit/src/identity/metadata.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { Address, eqAddress } from '@celo/base/lib/address' -import { selectiveRetryAsyncWithBackOff } from '@celo/base/lib/async' -import { Signer } from '@celo/base/lib/signatureUtils' -import { AddressType, SignatureType } from '@celo/utils/lib/io' -import { guessSigner, verifySignature } from '@celo/utils/lib/signatureUtils' -import fetch from 'cross-fetch' -import { isLeft } from 'fp-ts/lib/Either' -import * as t from 'io-ts' -import { PathReporter } from 'io-ts/lib/PathReporter' -import { ContractKit } from '../kit' -import { AccountsWrapper } from '../wrappers/Accounts' -import { Claim, ClaimPayload, ClaimType, hashOfClaims, isOfType } from './claims/claim' -import { ClaimTypes, SINGULAR_CLAIM_TYPES } from './claims/types' - -export { ClaimTypes } from './claims/types' - -type KitOrAccountsWrapper = ContractKit | AccountsWrapper - -const MetaType = t.type({ - address: AddressType, - signature: SignatureType, -}) - -export const IdentityMetadataType = t.type({ - claims: t.array(ClaimType), - meta: MetaType, -}) - -export type IdentityMetadata = t.TypeOf - -export class IdentityMetadataWrapper { - data: IdentityMetadata - - static fromEmpty(address: Address) { - return new IdentityMetadataWrapper({ - claims: [], - meta: { - address, - signature: '', - }, - }) - } - - static async fetchFromURL( - contractKitOrAccountsWrapper: KitOrAccountsWrapper, - url: string, - tries = 3 - ) { - return selectiveRetryAsyncWithBackOff( - async () => { - const resp = await fetch(url) - if (!resp.ok) { - throw new Error(`Request failed with status ${resp.status}`) - } - return this.fromRawString(contractKitOrAccountsWrapper, await resp.text()) - }, - tries, - ['Request failed with status 404'], - [] - ) - } - - static fromFile(contractKitOrAccountsWrapper: KitOrAccountsWrapper, path: string) { - let readFileSync - try { - const fs = require('fs') - readFileSync = fs.readFileSync - } catch { - console.error('cant read from file in browser or environment without native fs module') - } - return this.fromRawString(contractKitOrAccountsWrapper, readFileSync(path, 'utf-8')) - } - - static async verifySigner( - contractKitOrAccountsWrapper: KitOrAccountsWrapper, - hash: any, - signature: any, - metadata: any - ) { - return this.verifySignerForAddress( - contractKitOrAccountsWrapper, - hash, - signature, - metadata.address - ) - } - - static async verifySignerForAddress( - contractKitOrAccountsWrapper: KitOrAccountsWrapper, - hash: any, - signature: any, - address: Address - ) { - // First try to verify on account's address - if (!verifySignature(hash, signature, address)) { - const accounts = await getAccounts(contractKitOrAccountsWrapper) - // If this fails, signature may still be one of `address`' signers - if (await accounts.isAccount(address)) { - const signers = await Promise.all([ - accounts.getVoteSigner(address), - accounts.getValidatorSigner(address), - accounts.getAttestationSigner(address), - ]) - return signers.some((signer) => verifySignature(hash, signature, signer)) - } - return false - } - return true - } - - static async fromRawString(contractKitOrAccountsWrapper: KitOrAccountsWrapper, rawData: string) { - const data = JSON.parse(rawData) - - const validatedData = IdentityMetadataType.decode(data) - - if (isLeft(validatedData)) { - // TODO: We could probably return a more useful error in the future - throw new Error(PathReporter.report(validatedData).join(', ')) - } - - // Verify signature on the data - const claims = validatedData.right.claims - const hash = hashOfClaims(claims) - if ( - claims.length > 0 && - !(await this.verifySigner( - contractKitOrAccountsWrapper, - hash, - validatedData.right.meta.signature, - validatedData.right.meta - )) - ) { - throw new Error( - `Signature could not be validated. Guessing signer: ${guessSigner( - hash, - validatedData.right.meta.signature - )}` - ) - } - - const res = new IdentityMetadataWrapper(validatedData.right) - - // Verify that singular claim types appear at most once - SINGULAR_CLAIM_TYPES.forEach((claimType) => { - const results = res.filterClaims(claimType) - if (results.length > 1) { - throw new Error(`Found ${results.length} claims of type ${claimType}, should be at most 1`) - } - }) - - return res - } - - constructor(data: IdentityMetadata) { - this.data = data - } - - get claims() { - return this.data.claims - } - - hashOfClaims() { - return hashOfClaims(this.data.claims) - } - - toString() { - return JSON.stringify({ - claims: this.data.claims, - meta: this.data.meta, - }) - } - - async addClaim(claim: Claim, signer: Signer) { - switch (claim.type) { - case ClaimTypes.ACCOUNT: - if (eqAddress(claim.address, this.data.meta.address)) { - throw new Error("Can't claim self") - } - break - case ClaimTypes.DOMAIN: { - const existingClaims = this.data.claims.filter((el: any) => el.domain === claim.domain) - if (existingClaims.length > 0) { - return existingClaims[0] - } - break - } - case ClaimTypes.KEYBASE: { - const existingClaims = this.data.claims.filter((el: any) => el.username === claim.username) - if (existingClaims.length > 0) { - return existingClaims[0] - } - } - default: - break - } - - if (SINGULAR_CLAIM_TYPES.includes(claim.type)) { - const index = this.data.claims.findIndex(isOfType(claim.type)) - if (index !== -1) { - this.data.claims.splice(index, 1) - } - } - - this.data.claims.push(claim) - this.data.meta.signature = await signer.sign(this.hashOfClaims()) - return claim - } - - findClaim(type: K): ClaimPayload | undefined { - return this.data.claims.find(isOfType(type)) - } - - filterClaims(type: K): Array> { - return this.data.claims.filter(isOfType(type)) - } -} - -// at first these functions required a `kit` but thats a bit heavy -// as all that is used is the Accounts Wrapper so allow either. -async function getAccounts( - contractKitOrAccountsWrapper: KitOrAccountsWrapper -): Promise { - if (contractKitOrAccountsWrapper instanceof AccountsWrapper) { - return contractKitOrAccountsWrapper - } else { - return contractKitOrAccountsWrapper.contracts.getAccounts() - } -} diff --git a/packages/sdk/contractkit/src/index.ts b/packages/sdk/contractkit/src/index.ts deleted file mode 100644 index 2d650761cb4..00000000000 --- a/packages/sdk/contractkit/src/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -export { Address, NULL_ADDRESS } from '@celo/base/lib/address' -export { REGISTRY_CONTRACT_ADDRESS } from './address-registry' -export { - AllContracts, - CeloContract, - CeloToken, - CeloTokenContract, - RegisteredContracts, -} from './base' -export { CeloTokens, CeloTokenType, StableToken, Token } from './celo-tokens' -export { IdentityMetadataWrapper } from './identity' -export * from './kit' -export * from './proxy' diff --git a/packages/sdk/contractkit/src/kit.test.ts b/packages/sdk/contractkit/src/kit.test.ts deleted file mode 100644 index f2d76946676..00000000000 --- a/packages/sdk/contractkit/src/kit.test.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { CeloTx, CeloTxObject, CeloTxReceipt, JsonRpcPayload, PromiEvent } from '@celo/connect' -import Web3 from 'web3' -import { HttpProvider } from 'web3-core' -import { newKitFromWeb3 as newFullKitFromWeb3, newKitWithApiKey } from './kit' -import { newKitFromWeb3 as newMiniKitFromWeb3 } from './mini-kit' -import { promiEventSpy } from './test-utils/PromiEventStub' - -interface TransactionObjectStub extends CeloTxObject { - sendMock: jest.Mock, [CeloTx | undefined]> - estimateGasMock: jest.Mock, []> - resolveHash(hash: string): void - resolveReceipt(receipt: CeloTxReceipt): void - rejectHash(error: any): void - rejectReceipt(receipt: CeloTxReceipt, error: any): void -} - -export function txoStub(): TransactionObjectStub { - const estimateGasMock = jest.fn() - const peStub = promiEventSpy() - const sendMock = jest.fn().mockReturnValue(peStub) - - const pe: TransactionObjectStub = { - arguments: [], - call: () => { - throw new Error('not implemented') - }, - encodeABI: () => { - throw new Error('not implemented') - }, - estimateGas: estimateGasMock, - send: sendMock, - sendMock, - estimateGasMock, - resolveHash: peStub.resolveHash, - rejectHash: peStub.rejectHash, - resolveReceipt: peStub.resolveReceipt, - rejectReceipt: peStub.resolveReceipt, - _parent: jest.fn() as any, - } - return pe -} - -;[newFullKitFromWeb3, newMiniKitFromWeb3].forEach((newKitFromWeb3) => { - describe('kit.sendTransactionObject()', () => { - const kit = newKitFromWeb3(new Web3('http://')) - - test('should send transaction on simple case', async () => { - const txo = txoStub() - txo.estimateGasMock.mockResolvedValue(1000) - const txRes = await kit.connection.sendTransactionObject(txo) - - txo.resolveHash('HASH') - txo.resolveReceipt('Receipt' as any) - - await expect(txRes.getHash()).resolves.toBe('HASH') - await expect(txRes.waitReceipt()).resolves.toBe('Receipt') - }) - - test('should not estimateGas if gas is provided', async () => { - const txo = txoStub() - await kit.connection.sendTransactionObject(txo, { gas: 555 }) - expect(txo.estimateGasMock).not.toBeCalled() - }) - - test('should use inflation factor on gas', async () => { - const txo = txoStub() - txo.estimateGasMock.mockResolvedValue(1000) - kit.connection.defaultGasInflationFactor = 2 - await kit.connection.sendTransactionObject(txo) - expect(txo.send).toBeCalledWith( - expect.objectContaining({ - gas: 1000 * 2, - }) - ) - }) - - test('should forward txoptions to txo.send()', async () => { - const txo = txoStub() - await kit.connection.sendTransactionObject(txo, { gas: 555, from: '0xAAFFF' }) - expect(txo.send).toBeCalledWith({ - feeCurrency: undefined, - gas: 555, - from: '0xAAFFF', - }) - }) - - test('works with maxFeePerGas and maxPriorityFeePerGas', async () => { - const txo = txoStub() - await kit.connection.sendTransactionObject(txo, { - gas: 1000, - maxFeePerGas: 555, - maxPriorityFeePerGas: 555, - from: '0xAAFFF', - }) - expect(txo.send).toBeCalledWith({ - feeCurrency: undefined, - maxFeePerGas: 555, - maxPriorityFeePerGas: 555, - gas: 1000, - from: '0xAAFFF', - }) - }) - - test('when maxFeePerGas and maxPriorityFeePerGas and feeCurrency', async () => { - const txo = txoStub() - await kit.connection.sendTransactionObject(txo, { - gas: 1000, - maxFeePerGas: 555, - maxPriorityFeePerGas: 555, - feeCurrency: '0xe8537a3d056da446677b9e9d6c5db704eaab4787', - from: '0xAAFFF', - }) - expect(txo.send).toBeCalledWith({ - gas: 1000, - maxFeePerGas: 555, - maxPriorityFeePerGas: 555, - feeCurrency: '0xe8537a3d056da446677b9e9d6c5db704eaab4787', - from: '0xAAFFF', - }) - }) - }) -}) - -describe('newKitWithApiKey()', () => { - const kit = newKitWithApiKey('http://', 'key') - const fetchSpy = jest.spyOn(global, 'fetch') - - afterEach(() => { - jest.restoreAllMocks() - }) - - test('should set apiKey in request header', async () => { - const httpProvider = kit.web3.currentProvider as HttpProvider - const rpcPayload: JsonRpcPayload = { - jsonrpc: '', - method: '', - params: [], - } - httpProvider.send(rpcPayload, (error: Error | null) => - expect(error?.message).toContain("Couldn't connect to node http://") - ) - const headers: any = fetchSpy.mock.calls[0]?.[1]?.headers - if (headers.apiKey) { - // Api Key should be set in the request header of fetch - expect(headers.apiKey).toBe('key') - } else { - throw new Error('apiKey not set in request header') - } - - expect(fetchSpy).toHaveBeenCalled() - }) -}) diff --git a/packages/sdk/contractkit/src/kit.ts b/packages/sdk/contractkit/src/kit.ts deleted file mode 100644 index 5c47fdb22c0..00000000000 --- a/packages/sdk/contractkit/src/kit.ts +++ /dev/null @@ -1,289 +0,0 @@ -// tslint:disable: ordered-imports -import { - Address, - CeloTx, - CeloTxObject, - Connection, - ReadOnlyWallet, - TransactionResult, -} from '@celo/connect' -import { EIP712TypedData } from '@celo/utils/lib/sign-typed-data-utils' -import { Signature } from '@celo/utils/lib/signatureUtils' -import { LocalWallet } from '@celo/wallet-local' -import { BigNumber } from 'bignumber.js' -import Web3 from 'web3' -import { AddressRegistry } from './address-registry' -import { CeloContract, CeloTokenContract } from './base' -import { CeloTokens, EachCeloToken } from './celo-tokens' -import { ValidWrappers, WrapperCache } from './contract-cache' -import { - HttpProviderOptions, - ensureCurrentProvider, - getWeb3ForKit, - setupAPIKey, -} from './setupForKits' -import { Web3ContractCache } from './web3-contract-cache' -import { AttestationsConfig } from './wrappers/Attestations' -import { BlockchainParametersConfig } from './wrappers/BlockchainParameters' -import { DowntimeSlasherConfig } from './wrappers/DowntimeSlasher' -import { ElectionConfig } from './wrappers/Election' -import { ExchangeConfig } from './wrappers/Exchange' -import { GasPriceMinimumConfig } from './wrappers/GasPriceMinimum' -import { GovernanceConfig } from './wrappers/Governance' -import { GrandaMentoConfig } from './wrappers/GrandaMento' -import { LockedGoldConfig } from './wrappers/LockedGold' -import { ReserveConfig } from './wrappers/Reserve' -import { SortedOraclesConfig } from './wrappers/SortedOracles' -import { StableTokenConfig } from './wrappers/StableTokenWrapper' -import { ValidatorsConfig } from './wrappers/Validators' -export { API_KEY_HEADER_KEY, HttpProviderOptions } from './setupForKits' - -/** - * Creates a new instance of `ContractKit` given a nodeUrl - * @param url CeloBlockchain node url - * @optional wallet to reuse or add a wallet different than the default (example ledger-wallet) - * @optional options to pass to the Web3 HttpProvider constructor - */ -export function newKit(url: string, wallet?: ReadOnlyWallet, options?: HttpProviderOptions) { - const web3: Web3 = getWeb3ForKit(url, options) - return newKitFromWeb3(web3, wallet) -} - -/** - * Creates a new instance of `ContractKit` given a nodeUrl and apiKey - * @param url CeloBlockchain node url - * @param apiKey to include in the http request header - * @optional wallet to reuse or add a wallet different than the default (example ledger-wallet) - */ -export function newKitWithApiKey(url: string, apiKey: string, wallet?: ReadOnlyWallet) { - const options: HttpProviderOptions = setupAPIKey(apiKey) - return newKit(url, wallet, options) -} - -/** - * Creates a new instance of the `ContractKit` with a web3 instance - * @param web3 Web3 instance - */ -export function newKitFromWeb3(web3: Web3, wallet: ReadOnlyWallet = new LocalWallet()) { - ensureCurrentProvider(web3) - return new ContractKit(new Connection(web3, wallet)) -} -export interface NetworkConfig { - exchanges: EachCeloToken - stableTokens: EachCeloToken - election: ElectionConfig - attestations: AttestationsConfig - governance: GovernanceConfig - lockedGold: LockedGoldConfig - sortedOracles: SortedOraclesConfig - gasPriceMinimum: GasPriceMinimumConfig - reserve: ReserveConfig - validators: ValidatorsConfig - downtimeSlasher: DowntimeSlasherConfig - blockchainParameters: BlockchainParametersConfig - grandaMento: GrandaMentoConfig -} - -interface AccountBalance extends EachCeloToken { - lockedCELO: BigNumber - pending: BigNumber -} -/* - * ContractKit provides a convenient interface for All Celo Contracts - * - * @remarks - * - * For most use cases this ContractKit class might be more than you need. - * Consider {@link MiniContractKit} for a scaled down subset of contract Wrappers, - * or {@link Connection} for a lighter package without contract Wrappers - * - * @param connection – an instance of @celo/connect {@link Connection} - */ - -export class ContractKit { - /** core contract's address registry */ - readonly registry: AddressRegistry - /** factory for core contract's native web3 wrappers */ - readonly _web3Contracts: Web3ContractCache - /** factory for core contract's kit wrappers */ - readonly contracts: WrapperCache - /** helper for interacting with CELO & stable tokens */ - readonly celoTokens: CeloTokens - - /** @deprecated no longer needed since gasPrice is available on node rpc */ - gasPriceSuggestionMultiplier = 5 - - constructor(readonly connection: Connection) { - this.registry = new AddressRegistry(connection) - this._web3Contracts = new Web3ContractCache(this.registry) - this.contracts = new WrapperCache(connection, this._web3Contracts, this.registry) - this.celoTokens = new CeloTokens(this.contracts, this.registry) - } - - getWallet() { - return this.connection.wallet - } - - async getTotalBalance(address: string): Promise { - const lockedCelo = await this.contracts.getLockedGold() - const lockedBalance = await lockedCelo.getAccountTotalLockedGold(address) - let pending = new BigNumber(0) - try { - pending = await lockedCelo.getPendingWithdrawalsTotalValue(address) - } catch (err) { - // Just means that it's not an account - } - - return { - lockedCELO: lockedBalance, - pending, - ...(await this.celoTokens.balancesOf(address)), - } - } - - async getNetworkConfig( - humanReadable = false - ): Promise> { - const configContracts: ValidWrappers[] = [ - CeloContract.Election, - CeloContract.Attestations, - CeloContract.Governance, - CeloContract.LockedGold, - CeloContract.SortedOracles, - CeloContract.GasPriceMinimum, - CeloContract.Reserve, - CeloContract.Validators, - CeloContract.DowntimeSlasher, - CeloContract.BlockchainParameters, - CeloContract.EpochRewards, - CeloContract.GrandaMento, - ] - - const configMethod = async (contract: ValidWrappers) => { - try { - const eachTokenAddress = await this.celoTokens.getAddresses() - const addresses = Object.values(eachTokenAddress) - const configContractWrapper = await this.contracts.getContract(contract) - if (humanReadable && 'getHumanReadableConfig' in configContractWrapper) { - return configContractWrapper.getHumanReadableConfig(addresses) - } else if ('getConfig' in configContractWrapper) { - return configContractWrapper.getConfig(addresses) - } else { - throw new Error('No config endpoint found') - } - } catch (e) { - return new Error(`Failed to fetch config for contract ${contract}: \n${e}`) - } - } - - const configArray = await Promise.all(configContracts.map(configMethod)) - - const configMap: { - [C in CeloContract]?: ReturnType extends Promise ? U : never - } = {} - configArray.forEach((config, index) => (configMap[configContracts[index]] = config)) - - return { - exchanges: await this.celoTokens.getExchangesConfigs(humanReadable), - stableTokens: await this.celoTokens.getStablesConfigs(humanReadable), - ...configMap, - } - } - - getHumanReadableNetworkConfig = () => this.getNetworkConfig(true) - - /** - * Set CeloToken to use to pay for gas fees - * @param tokenContract CELO (GoldToken) or a supported StableToken contract - */ - async setFeeCurrency(tokenContract: CeloTokenContract): Promise { - const address = - tokenContract === CeloContract.GoldToken - ? undefined - : await this.registry.addressFor(tokenContract) - this.connection.defaultFeeCurrency = address - } - - async getEpochSize(): Promise { - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - return blockchainParamsWrapper.getEpochSizeNumber() - } - - async getFirstBlockNumberForEpoch(epochNumber: number): Promise { - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - return blockchainParamsWrapper.getFirstBlockNumberForEpoch(epochNumber) - } - - async getLastBlockNumberForEpoch(epochNumber: number): Promise { - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - return blockchainParamsWrapper.getLastBlockNumberForEpoch(epochNumber) - } - - async getEpochNumberOfBlock(blockNumber: number): Promise { - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - return blockchainParamsWrapper.getEpochNumberOfBlock(blockNumber) - } - - // *** NOTICE *** - // Next functions exists for backwards compatibility - // These should be consumed via connection to avoid future deprecation issues - - addAccount(privateKey: string) { - this.connection.addAccount(privateKey) - } - - set defaultAccount(address: Address | undefined) { - this.connection.defaultAccount = address - } - - get defaultAccount(): Address | undefined { - return this.connection.defaultAccount - } - - set gasInflationFactor(factor: number) { - this.connection.defaultGasInflationFactor = factor - } - - get gasInflationFactor() { - return this.connection.defaultGasInflationFactor - } - - set defaultFeeCurrency(address: Address | undefined) { - this.connection.defaultFeeCurrency = address - } - - get defaultFeeCurrency() { - return this.connection.defaultFeeCurrency - } - - isListening(): Promise { - return this.connection.isListening() - } - - isSyncing(): Promise { - return this.connection.isSyncing() - } - - async sendTransaction(tx: CeloTx): Promise { - return this.connection.sendTransaction(tx) - } - - async sendTransactionObject( - txObj: CeloTxObject, - tx?: Omit - ): Promise { - return this.connection.sendTransactionObject(txObj, tx) - } - - async signTypedData(signer: string, typedData: EIP712TypedData): Promise { - return this.connection.signTypedData(signer, typedData) - } - - stop() { - this.connection.stop() - } - - get web3() { - return this.connection.web3 - } -} diff --git a/packages/sdk/contractkit/src/mini-contract-cache.ts b/packages/sdk/contractkit/src/mini-contract-cache.ts deleted file mode 100644 index c4b6e25d125..00000000000 --- a/packages/sdk/contractkit/src/mini-contract-cache.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { newGasPriceMinimum } from '@celo/abis/web3/0.8/GasPriceMinimum' -import { newAccounts } from '@celo/abis/web3/Accounts' -import { newGoldToken } from '@celo/abis/web3/GoldToken' -import { newExchange } from '@celo/abis/web3/mento/Exchange' -import { newExchangeBRL } from '@celo/abis/web3/mento/ExchangeBRL' -import { newExchangeEUR } from '@celo/abis/web3/mento/ExchangeEUR' -import { newStableToken } from '@celo/abis/web3/mento/StableToken' -import { newStableTokenBRL } from '@celo/abis/web3/mento/StableTokenBRL' -import { newStableTokenEUR } from '@celo/abis/web3/mento/StableTokenEUR' -import { StableToken } from '@celo/base' -import { Connection } from '@celo/connect' -import { AddressRegistry } from './address-registry' -import { CeloContract } from './base' -import { ContractCacheType } from './basic-contract-cache-type' -import { stableTokenInfos } from './celo-tokens' -import { AccountsWrapper } from './wrappers/Accounts' -import { ExchangeWrapper } from './wrappers/Exchange' -import { GasPriceMinimumWrapper } from './wrappers/GasPriceMinimum' -import { GoldTokenWrapper } from './wrappers/GoldTokenWrapper' -import { StableTokenWrapper } from './wrappers/StableTokenWrapper' - -const MINIMUM_CONTRACTS = { - [CeloContract.Accounts]: { - newInstance: newAccounts, - wrapper: AccountsWrapper, - }, - [CeloContract.GasPriceMinimum]: { - newInstance: newGasPriceMinimum, - wrapper: GasPriceMinimumWrapper, - }, - [CeloContract.GoldToken]: { - newInstance: newGoldToken, - wrapper: GoldTokenWrapper, - }, - [CeloContract.Exchange]: { - newInstance: newExchange, - wrapper: ExchangeWrapper, - }, - [CeloContract.ExchangeEUR]: { - newInstance: newExchangeEUR, - wrapper: ExchangeWrapper, - }, - [CeloContract.ExchangeBRL]: { - newInstance: newExchangeBRL, - wrapper: ExchangeWrapper, - }, - [CeloContract.StableToken]: { - newInstance: newStableToken, - wrapper: StableTokenWrapper, - }, - [CeloContract.StableTokenBRL]: { - newInstance: newStableTokenBRL, - wrapper: StableTokenWrapper, - }, - [CeloContract.StableTokenEUR]: { - newInstance: newStableTokenEUR, - wrapper: StableTokenWrapper, - }, -} - -export type ContractsBroughtBase = typeof MINIMUM_CONTRACTS - -type Keys = keyof ContractsBroughtBase - -type Wrappers = InstanceType - -const contractsWhichRequireCache = new Set([ - CeloContract.Attestations, - CeloContract.DoubleSigningSlasher, - CeloContract.DowntimeSlasher, - CeloContract.Election, - CeloContract.Governance, - CeloContract.LockedGold, - CeloContract.Validators, -]) - -/** - * Alternative Contract Cache with Minimal Contracts - * - * Provides access to a subset of wrappers: {@link AccountsWrapper}, {@link ExchangeWrapper}, {@link GasPriceMinimumWrapper} and Celo Token contracts - * Used internally by {@link MiniContractKit} - * - * @param connection – {@link Connection} - * @param registry – {@link AddressRegistry} - */ - -export class MiniContractCache implements ContractCacheType { - private cache: Map = new Map() - - constructor( - readonly connection: Connection, - readonly registry: AddressRegistry, - private readonly contractClasses: ContractsBroughtBase = MINIMUM_CONTRACTS - ) {} - - getAccounts(): Promise { - return this.getContract(CeloContract.Accounts) - } - getExchange(stableToken: StableToken = StableToken.cUSD): Promise { - return this.getContract(stableTokenInfos[stableToken].exchangeContract) - } - - getGoldToken(): Promise { - return this.getContract(CeloContract.GoldToken) - } - - getStableToken(stableToken: StableToken = StableToken.cUSD): Promise { - return this.getContract(stableTokenInfos[stableToken].contract) - } - - /** - * Get Contract wrapper - */ - public async getContract( - contract: ContractKey, - address?: string - ): Promise> { - if (!this.isContractAvailable(contract)) { - throw new Error( - `This instance of MiniContracts was not given a mapping for ${contract}. Either add it or use WrapperCache for full set of contracts` - ) - } - - if (contractsWhichRequireCache.has(contract)) { - throw new Error( - `${contract} cannot be used with MiniContracts as it requires an instance of WrapperCache to be passed in as an argument` - ) - } - - if (this.cache.get(contract) == null || address !== undefined) { - await this.setContract(contract, address) - } - return this.cache.get(contract)! as Wrappers - } - - private async setContract( - contract: ContractKey, - address: string | undefined - ) { - if (!address) { - address = await this.registry.addressFor(contract) - } - - const classes = this.contractClasses[contract] - - const instance = classes.newInstance(this.connection.web3, address) - - const Klass = classes.wrapper as ContractsBroughtBase[ContractKey]['wrapper'] - const wrapper = new Klass(this.connection, instance as any) - - this.cache.set(contract, wrapper) - } - - public invalidateContract(contract: C) { - this.cache.delete(contract) - } - - private isContractAvailable(contract: keyof ContractsBroughtBase) { - return !!this.contractClasses[contract] - } -} diff --git a/packages/sdk/contractkit/src/mini-kit.ts b/packages/sdk/contractkit/src/mini-kit.ts deleted file mode 100644 index 4dc3db248db..00000000000 --- a/packages/sdk/contractkit/src/mini-kit.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Connection, ReadOnlyWallet } from '@celo/connect' -import { LocalWallet } from '@celo/wallet-local' -import { BigNumber } from 'bignumber.js' -import Web3 from 'web3' -import { AddressRegistry } from './address-registry' -import { CeloTokens, EachCeloToken } from './celo-tokens' -import { MiniContractCache } from './mini-contract-cache' -import { - ensureCurrentProvider, - getWeb3ForKit, - HttpProviderOptions, - setupAPIKey, -} from './setupForKits' - -/** - * Creates a new instance of `MiniMiniContractKit` given a nodeUrl - * @param url CeloBlockchain node url - * @optional wallet to reuse or add a wallet different than the default (example ledger-wallet) - * @optional options to pass to the Web3 HttpProvider constructor - */ -export function newKit(url: string, wallet?: ReadOnlyWallet, options?: HttpProviderOptions) { - const web3: Web3 = getWeb3ForKit(url, options) - return newKitFromWeb3(web3, wallet) -} - -/** - * Creates a new instance of `MiniContractKit` given a nodeUrl and apiKey - * @param url CeloBlockchain node url - * @param apiKey to include in the http request header - * @optional wallet to reuse or add a wallet different than the default (example ledger-wallet) - */ -export function newKitWithApiKey(url: string, apiKey: string, wallet?: ReadOnlyWallet) { - const options: HttpProviderOptions = setupAPIKey(apiKey) - return newKit(url, wallet, options) -} - -/** - * Creates a new instance of the `MiniContractKit` with a web3 instance - * @param web3 Web3 instance - */ -export function newKitFromWeb3(web3: Web3, wallet: ReadOnlyWallet = new LocalWallet()) { - ensureCurrentProvider(web3) - return new MiniContractKit(new Connection(web3, wallet)) -} - -/** - * MiniContractKit provides a core subset of {@link ContractKit}'s functionality - * - * @remarks - * - * It is recommended to use this over ContractKit for dApps as it is lighter - * - * @param connection – an instance of @celo/connect {@link Connection} - */ -export class MiniContractKit { - /** core contract's address registry */ - readonly registry: AddressRegistry - /** factory for subset of core contract's kit wrappers */ - readonly contracts: MiniContractCache - /** helper for interacting with CELO & stable tokens */ - readonly celoTokens: CeloTokens - - constructor(readonly connection: Connection) { - this.registry = new AddressRegistry(connection) - this.contracts = new MiniContractCache(connection, this.registry) - this.celoTokens = new CeloTokens(this.contracts, this.registry) - } - - getWallet() { - return this.connection.wallet - } - - // Like get Total Balance on MiniContractKit but does not include locked celo or pending - async getTotalBalance(address: string): Promise> { - return { - ...(await this.celoTokens.balancesOf(address)), - } - } -} - -// For easy switching from full contractKit to Mini -export const ContractKit = MiniContractKit diff --git a/packages/sdk/contractkit/src/proxy.ts b/packages/sdk/contractkit/src/proxy.ts deleted file mode 100644 index 6c57ec4adea..00000000000 --- a/packages/sdk/contractkit/src/proxy.ts +++ /dev/null @@ -1,151 +0,0 @@ -// tslint:disable: ordered-imports -import { ABIDefinition, AbiItem } from '@celo/connect' -import Web3 from 'web3' -import { ABI as GasPriceMinimumABI } from '@celo/abis/web3/0.8/GasPriceMinimum' -import { ABI as AccountsABI } from '@celo/abis/web3/Accounts' -import { ABI as AttestationsABI } from '@celo/abis/web3/Attestations' -import { ABI as BlockchainParametersABI } from '@celo/abis/web3/BlockchainParameters' -import { ABI as DoubleSigningSlasherABI } from '@celo/abis/web3/DoubleSigningSlasher' -import { ABI as DowntimeSlasherABI } from '@celo/abis/web3/DowntimeSlasher' -import { ABI as ElectionABI } from '@celo/abis/web3/Election' -import { ABI as EpochRewardsABI } from '@celo/abis/web3/EpochRewards' -import { ABI as EscrowABI } from '@celo/abis/web3/Escrow' -import { ABI as FederatedAttestationsABI } from '@celo/abis/web3/FederatedAttestations' -import { ABI as FeeCurrencyWhitelistABI } from '@celo/abis/web3/FeeCurrencyWhitelist' -import { ABI as FeeHandlerABI } from '@celo/abis/web3/FeeHandler' -import { ABI as FreezerABI } from '@celo/abis/web3/Freezer' -import { ABI as GoldTokenABI } from '@celo/abis/web3/GoldToken' -import { ABI as GovernanceABI } from '@celo/abis/web3/Governance' -import { ABI as LockedGoldABI } from '@celo/abis/web3/LockedGold' -import { ABI as MentoFeeHandlerSellerABI } from '@celo/abis/web3/MentoFeeHandlerSeller' -import { ABI as MetaTransactionWalletABI } from '@celo/abis/web3/MetaTransactionWallet' -import { ABI as MetaTransactionWalletDeployerABI } from '@celo/abis/web3/MetaTransactionWalletDeployer' -import { ABI as MultiSigABI } from '@celo/abis/web3/MultiSig' -import { ABI as OdisPaymentsABI } from '@celo/abis/web3/OdisPayments' -import { ABI as ProxyABI } from '@celo/abis/web3/Proxy' -import { ABI as RandomABI } from '@celo/abis/web3/Random' -import { ABI as RegistryABI } from '@celo/abis/web3/Registry' -import { ABI as SortedOraclesABI } from '@celo/abis/web3/SortedOracles' -import { ABI as UniswapFeeHandlerSellerABI } from '@celo/abis/web3/UniswapFeeHandlerSeller' -import { ABI as ValidatorsABI } from '@celo/abis/web3/Validators' -import { ABI as ExchangeABI } from '@celo/abis/web3/mento/Exchange' -import { ABI as GrandaMentoABI } from '@celo/abis/web3/mento/GrandaMento' -import { ABI as ReserveABI } from '@celo/abis/web3/mento/Reserve' -import { ABI as StableTokenABI } from '@celo/abis/web3/mento/StableToken' - -export const GET_IMPLEMENTATION_ABI: ABIDefinition = { - constant: true, - inputs: [], - name: '_getImplementation', - outputs: [ - { - name: 'implementation', - type: 'address', - }, - ], - payable: false, - stateMutability: 'view', - type: 'function', - signature: '0x42404e07', -} - -export const SET_IMPLEMENTATION_ABI: ABIDefinition = { - constant: false, - inputs: [ - { - name: 'implementation', - type: 'address', - }, - ], - name: '_setImplementation', - outputs: [], - payable: false, - stateMutability: 'nonpayable', - type: 'function', - signature: '0xbb913f41', -} - -export const SET_AND_INITIALIZE_IMPLEMENTATION_ABI: ABIDefinition = { - constant: false, - inputs: [ - { - name: 'implementation', - type: 'address', - }, - { - name: 'callbackData', - type: 'bytes', - }, - ], - name: '_setAndInitializeImplementation', - outputs: [], - payable: true, - stateMutability: 'payable', - type: 'function', - signature: '0x03386ba3', -} - -export const PROXY_ABI: ABIDefinition[] = [ - GET_IMPLEMENTATION_ABI, - SET_IMPLEMENTATION_ABI, - SET_AND_INITIALIZE_IMPLEMENTATION_ABI, -] - -export const PROXY_SET_IMPLEMENTATION_SIGNATURE = SET_IMPLEMENTATION_ABI.signature -export const PROXY_SET_AND_INITIALIZE_IMPLEMENTATION_SIGNATURE = - SET_AND_INITIALIZE_IMPLEMENTATION_ABI.signature - -const findInitializeAbi = (items: AbiItem[]) => items.find((item) => item.name === 'initialize') - -const initializeAbiMap = { - AccountsProxy: findInitializeAbi(AccountsABI), - AttestationsProxy: findInitializeAbi(AttestationsABI), - BlockchainParametersProxy: findInitializeAbi(BlockchainParametersABI), - DoubleSigningSlasherProxy: findInitializeAbi(DoubleSigningSlasherABI), - DowntimeSlasherProxy: findInitializeAbi(DowntimeSlasherABI), - ElectionProxy: findInitializeAbi(ElectionABI), - EpochRewardsProxy: findInitializeAbi(EpochRewardsABI), - EscrowProxy: findInitializeAbi(EscrowABI), - ExchangeProxy: findInitializeAbi(ExchangeABI), - ExchangeEURProxy: findInitializeAbi(ExchangeABI), - ExchangeBRLProxy: findInitializeAbi(ExchangeABI), - FederatedAttestationsProxy: findInitializeAbi(FederatedAttestationsABI), - FeeCurrencyWhitelistProxy: findInitializeAbi(FeeCurrencyWhitelistABI), - FeeHandlerProxy: findInitializeAbi(FeeHandlerABI), - MentoFeeHandlerSellerProxy: findInitializeAbi(MentoFeeHandlerSellerABI), - UniswapFeeHandlerSellerProxy: findInitializeAbi(UniswapFeeHandlerSellerABI), - FreezerProxy: findInitializeAbi(FreezerABI), - GasPriceMinimumProxy: findInitializeAbi(GasPriceMinimumABI), - GoldTokenProxy: findInitializeAbi(GoldTokenABI), - GovernanceProxy: findInitializeAbi(GovernanceABI), - GrandaMentoProxy: findInitializeAbi(GrandaMentoABI), - LockedGoldProxy: findInitializeAbi(LockedGoldABI), - MetaTransactionWalletProxy: findInitializeAbi(MetaTransactionWalletABI), - MetaTransactionWalletDeployerProxy: findInitializeAbi(MetaTransactionWalletDeployerABI), - MultiSigProxy: findInitializeAbi(MultiSigABI), - OdisPaymentsProxy: findInitializeAbi(OdisPaymentsABI), - ProxyProxy: findInitializeAbi(ProxyABI), - RandomProxy: findInitializeAbi(RandomABI), - RegistryProxy: findInitializeAbi(RegistryABI), - ReserveProxy: findInitializeAbi(ReserveABI), - SortedOraclesProxy: findInitializeAbi(SortedOraclesABI), - StableTokenProxy: findInitializeAbi(StableTokenABI), - StableTokenEURProxy: findInitializeAbi(StableTokenABI), - StableTokenBRLProxy: findInitializeAbi(StableTokenABI), - ValidatorsProxy: findInitializeAbi(ValidatorsABI), -} - -export const getInitializeAbiOfImplementation = ( - proxyContractName: keyof typeof initializeAbiMap -) => { - const initializeAbi = initializeAbiMap[proxyContractName] - if (!initializeAbi) { - throw new Error(`Initialize method not found on implementation of ${proxyContractName}`) - } - return initializeAbi -} - -export const setImplementationOnProxy = (address: string, web3: Web3) => { - const proxyWeb3Contract = new web3.eth.Contract(PROXY_ABI) - return proxyWeb3Contract.methods._setImplementation(address) -} diff --git a/packages/sdk/contractkit/src/setupForKits.ts b/packages/sdk/contractkit/src/setupForKits.ts deleted file mode 100644 index 4a27513da6e..00000000000 --- a/packages/sdk/contractkit/src/setupForKits.ts +++ /dev/null @@ -1,40 +0,0 @@ -import Web3 from 'web3' -import { HttpProviderOptions as Web3HttpProviderOptions } from 'web3-core-helpers' -export type HttpProviderOptions = Web3HttpProviderOptions - -export const API_KEY_HEADER_KEY = 'apiKey' - -/** @internal */ -export function setupAPIKey(apiKey: string) { - const options: HttpProviderOptions = {} - options.headers = [] - options.headers.push({ - name: API_KEY_HEADER_KEY, - value: apiKey, - }) - return options -} -/** @internal */ -export function ensureCurrentProvider(web3: Web3) { - if (!web3.currentProvider) { - throw new Error('Must have a valid Provider') - } -} -/** @internal */ -export function getWeb3ForKit(url: string, options: Web3HttpProviderOptions | undefined) { - let web3: Web3 - if (url.endsWith('.ipc')) { - try { - const net = require('net') - web3 = new Web3(new Web3.providers.IpcProvider(url, net)) - } catch (e) { - console.error('.ipc only works in environments with native net module') - } - web3 = new Web3(url) - } else if (url.toLowerCase().startsWith('http')) { - web3 = new Web3(new Web3.providers.HttpProvider(url, options)) - } else { - web3 = new Web3(url) - } - return web3 -} diff --git a/packages/sdk/contractkit/src/test-utils/AlphabeticSequencer.js b/packages/sdk/contractkit/src/test-utils/AlphabeticSequencer.js deleted file mode 100644 index 64fe0a314cd..00000000000 --- a/packages/sdk/contractkit/src/test-utils/AlphabeticSequencer.js +++ /dev/null @@ -1,10 +0,0 @@ -const Sequencer = require('@jest/test-sequencer').default - -class AlphabeticSequencer extends Sequencer { - sort(tests) { - const copyTests = Array.from(tests) - return copyTests.sort((testA, testB) => (testA.path > testB.path ? 1 : -1)) - } -} - -module.exports = AlphabeticSequencer diff --git a/packages/sdk/contractkit/src/test-utils/PromiEventStub.ts b/packages/sdk/contractkit/src/test-utils/PromiEventStub.ts deleted file mode 100644 index 5536a16a4e3..00000000000 --- a/packages/sdk/contractkit/src/test-utils/PromiEventStub.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { CeloTxReceipt, PromiEvent } from '@celo/connect' -import { EventEmitter } from 'events' - -interface PromiEventStub extends PromiEvent { - emitter: EventEmitter - resolveHash(hash: string): void - resolveReceipt(receipt: CeloTxReceipt): void - rejectHash(error: any): void - rejectReceipt(receipt: CeloTxReceipt, error: any): void -} -export function promiEventSpy(): PromiEventStub { - const ee = new EventEmitter() - const pe: PromiEventStub = { - finally: () => { - throw new Error('not implemented') - }, - catch: () => { - throw new Error('not implemented') - }, - then: () => { - throw new Error('not implemented') - }, - on: ((event: string, listener: (...args: any[]) => void) => ee.on(event, listener)) as any, - once: ((event: string, listener: (...args: any[]) => void) => ee.once(event, listener)) as any, - [Symbol.toStringTag]: 'Not Implemented', - emitter: ee, - resolveHash: (hash: string) => { - ee.emit('transactionHash', hash) - }, - resolveReceipt: (receipt: CeloTxReceipt) => { - ee.emit('receipt', receipt) - }, - rejectHash: (error: any) => { - ee.emit('error', error, false) - }, - rejectReceipt: (receipt: CeloTxReceipt, error: any) => { - ee.emit('error', error, receipt) - }, - } - return pe -} diff --git a/packages/sdk/contractkit/src/test-utils/grandaMento.ts b/packages/sdk/contractkit/src/test-utils/grandaMento.ts deleted file mode 100644 index c640d040373..00000000000 --- a/packages/sdk/contractkit/src/test-utils/grandaMento.ts +++ /dev/null @@ -1,13 +0,0 @@ -import BigNumber from 'bignumber.js' -import { GrandaMentoWrapper } from '../wrappers/GrandaMento' - -export const setGrandaMentoLimits = async ( - grandaMento: GrandaMentoWrapper, - newLimitMin: BigNumber = new BigNumber('1000'), - newLimitMax: BigNumber = new BigNumber('1000000000000'), - stableToken: string = 'StableToken' -) => { - await grandaMento - .setStableTokenExchangeLimits(stableToken, newLimitMin.toString(), newLimitMax.toString()) - .sendAndWaitForReceipt() -} diff --git a/packages/sdk/contractkit/src/test-utils/setup.global.ts b/packages/sdk/contractkit/src/test-utils/setup.global.ts deleted file mode 100644 index 016be0d3266..00000000000 --- a/packages/sdk/contractkit/src/test-utils/setup.global.ts +++ /dev/null @@ -1,19 +0,0 @@ -import baseSetup from '@celo/dev-utils/lib/ganache-setup' -// Has to import the matchers somewhere so that typescript knows the matchers have been made available -import _unused from '@celo/dev-utils/lib/matchers' -import { waitForPortOpen } from '@celo/dev-utils/lib/network' -import * as path from 'path' - -// Warning: There should be an unused import of '@celo/dev-utils/lib/matchers' above. -// If there is not, then your editor probably deleted it automatically. - -export default async function globalSetup() { - console.log('\nstarting ganache...') - const chainDataPath = path.join(path.dirname(require.resolve('@celo/celo-devchain')), '../chains') - // v10 refers to core contract release 10 - await baseSetup(path.resolve(chainDataPath), 'v10.tar.gz', { - from_targz: true, - }) - await waitForPortOpen('localhost', 8545, 60) - console.log('...ganache started') -} diff --git a/packages/sdk/contractkit/src/test-utils/teardown.global.ts b/packages/sdk/contractkit/src/test-utils/teardown.global.ts deleted file mode 100644 index aea64f79dbb..00000000000 --- a/packages/sdk/contractkit/src/test-utils/teardown.global.ts +++ /dev/null @@ -1,5 +0,0 @@ -import teardown from '@celo/dev-utils/lib/ganache-teardown' - -export default async function globalTeardown() { - await teardown() -} diff --git a/packages/sdk/contractkit/src/test-utils/transferownership.ts b/packages/sdk/contractkit/src/test-utils/transferownership.ts deleted file mode 100644 index a4080d9a2b5..00000000000 --- a/packages/sdk/contractkit/src/test-utils/transferownership.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { NetworkConfig, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' -import { newKitFromWeb3 } from '../kit' -import { AccountsWrapper } from '../wrappers/Accounts' -import { Proposal, ProposalTransaction } from '../wrappers/Governance' - -// Implements a transfer ownership function using only contractkit primitives - -const expConfigGovernance = NetworkConfig.governance - -export async function assumeOwnership(web3: Web3, to: string) { - const kit = newKitFromWeb3(web3) - const ONE_CGLD = web3.utils.toWei('1', 'ether') - const accounts = await web3.eth.getAccounts() - let accountWrapper: AccountsWrapper - accountWrapper = await kit.contracts.getAccounts() - const lockedGold = await kit.contracts.getLockedGold() - - try { - await accountWrapper.createAccount().sendAndWaitForReceipt({ from: accounts[0] }) - await lockedGold.lock().sendAndWaitForReceipt({ from: accounts[0], value: ONE_CGLD }) - } catch (error) { - console.log('Account already created') - } - - const grandaMento = await kit._web3Contracts.getGrandaMento() - const governance = await kit.contracts.getGovernance() - const multiSig = await kit.contracts.getMultiSig(await governance.getApprover()) - - const tenMillionCELO = web3.utils.toWei('10000000') - - await lockedGold.lock().sendAndWaitForReceipt({ value: tenMillionCELO }) - - const ownershiptx: ProposalTransaction = { - value: '0', - to: (grandaMento as any)._address, - input: grandaMento.methods.transferOwnership(to).encodeABI(), - } - const proposal: Proposal = [ownershiptx] - - await governance.propose(proposal, 'URL').sendAndWaitForReceipt({ - from: accounts[0], - value: (await governance.getConfig()).minDeposit.toNumber(), - }) - - const proposalReceipt = await governance.propose(proposal, 'URL').sendAndWaitForReceipt({ - from: accounts[0], - value: (await governance.getConfig()).minDeposit.toNumber(), - }) - const proposalId = proposalReceipt.events!.ProposalQueued.returnValues.proposalId - - const tx = await governance.upvote(proposalId, accounts[1]) - await tx.sendAndWaitForReceipt() - await timeTravel(expConfigGovernance.dequeueFrequency, web3) - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - - const tx2 = await governance.approve(proposalId) - const multisigTx = await multiSig.submitOrConfirmTransaction(governance.address, tx2.txo) - await multisigTx.sendAndWaitForReceipt({ from: accounts[0] }) - - const tx3 = await governance.vote(proposalId, 'Yes') - await tx3.sendAndWaitForReceipt({ from: accounts[0] }) - await timeTravel(expConfigGovernance.referendumStageDuration, web3) - - const tx4 = await governance.execute(proposalId) - await tx4.sendAndWaitForReceipt() -} diff --git a/packages/sdk/contractkit/src/test-utils/utils.ts b/packages/sdk/contractkit/src/test-utils/utils.ts deleted file mode 100644 index 07f5c3af5b2..00000000000 --- a/packages/sdk/contractkit/src/test-utils/utils.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { mineBlocks } from '@celo/dev-utils/lib/ganache-test' -import Web3 from 'web3' - -const GANACHE_EPOCH_SIZE = 100 -export const currentEpochNumber = async (web3: Web3, epochSize: number = GANACHE_EPOCH_SIZE) => { - const blockNumber = await web3.eth.getBlockNumber() - - return getEpochNumberOfBlock(blockNumber, epochSize) -} - -const getFirstBlockNumberForEpoch = ( - epochNumber: number, - epochSize: number = GANACHE_EPOCH_SIZE -) => { - if (epochNumber === 0) { - // No first block for epoch 0 - return 0 - } - return (epochNumber - 1) * epochSize + 1 -} - -const getEpochNumberOfBlock = (blockNumber: number, epochSize: number = GANACHE_EPOCH_SIZE) => { - // Follows GetEpochNumber from celo-blockchain/blob/master/consensus/istanbul/utils.go - const epochNumber = Math.floor(blockNumber / epochSize) - if (blockNumber % epochSize === 0) { - return epochNumber - } else { - return epochNumber + 1 - } -} - -export const mineToNextEpoch = async (web3: Web3, epochSize: number = GANACHE_EPOCH_SIZE) => { - const blockNumber = await web3.eth.getBlockNumber() - const epochNumber = await currentEpochNumber(web3, epochSize) - const blocksUntilNextEpoch = getFirstBlockNumberForEpoch(epochNumber + 1, epochSize) - blockNumber - await mineBlocks(blocksUntilNextEpoch, web3) -} diff --git a/packages/sdk/contractkit/src/utils/getParsedSignatureOfAddress.ts b/packages/sdk/contractkit/src/utils/getParsedSignatureOfAddress.ts deleted file mode 100644 index 53a7c5a7479..00000000000 --- a/packages/sdk/contractkit/src/utils/getParsedSignatureOfAddress.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Connection } from '@celo/connect' -import { parseSignature } from '@celo/utils/lib/signatureUtils' -import Web3 from 'web3' - -export const getParsedSignatureOfAddress = async ( - sha3: Web3['utils']['soliditySha3'], - sign: Connection['sign'], - address: string, - signer: string -) => { - const addressHash = sha3({ type: 'address', value: address })! - const signature = await sign(addressHash, signer) - return parseSignature(addressHash, signature, signer) -} diff --git a/packages/sdk/contractkit/src/utils/signing.test.ts b/packages/sdk/contractkit/src/utils/signing.test.ts deleted file mode 100644 index d19430f782b..00000000000 --- a/packages/sdk/contractkit/src/utils/signing.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { ACCOUNT_ADDRESSES, ACCOUNT_PRIVATE_KEYS } from '@celo/dev-utils/lib/ganache-setup' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { LocalSigner, NativeSigner, parseSignature } from '@celo/utils/lib/signatureUtils' - -// This only really tests signatureUtils in @celo/utils, but is tested here -// to avoid the web3/ganache setup in @celo/utils -testWithGanache('Signing', (web3) => { - const account = ACCOUNT_ADDRESSES[0] - const pKey = ACCOUNT_PRIVATE_KEYS[0] - - const nativeSigner = NativeSigner(web3.eth.sign, account) - const localSigner = LocalSigner(pKey) - - it('signs a message the same way via RPC and with an explicit private key', async () => { - const message = 'message' - const nativeSignature = await nativeSigner.sign(message) - const localSignature = await localSigner.sign(message) - - expect(parseSignature(message, nativeSignature, account)).toEqual( - parseSignature(message, localSignature, account) - ) - }) - - it('signs a message that was hashed the same way via RPC and with an explicit private key', async () => { - // This test checks that the prefixing in `signMessage` appropriately considers hex strings - // as bytes the same way the native RPC signing would - const message = web3.utils.soliditySha3('message')! - const nativeSignature = await nativeSigner.sign(message) - const localSignature = await localSigner.sign(message) - - expect(parseSignature(message, nativeSignature, account)).toEqual( - parseSignature(message, localSignature, account) - ) - }) -}) diff --git a/packages/sdk/contractkit/src/versions.ts b/packages/sdk/contractkit/src/versions.ts deleted file mode 100644 index d042de00063..00000000000 --- a/packages/sdk/contractkit/src/versions.ts +++ /dev/null @@ -1,21 +0,0 @@ -const semverGte = require('semver/functions/gte') - -/** @internal */ -export class ContractVersion { - constructor( - public readonly storage: number | string, - public readonly major: number | string, - public readonly minor: number | string, - public readonly patch: number | string - ) {} - private toSemver = () => `${this.storage}.${this.major}.${this.minor}` - isAtLeast = (other: ContractVersion) => semverGte(this.toSemver(), other.toSemver()) - toString = () => this.toSemver().concat(`.${this.patch}`) - toRaw = () => [this.storage, this.major, this.minor, this.patch] - static fromRaw = (raw: ReturnType) => - new ContractVersion(raw[0], raw[1], raw[2], raw[3]) -} - -/** @internal */ -export const newContractVersion = (storage: number, major: number, minor: number, patch: number) => - new ContractVersion(storage, major, minor, patch) diff --git a/packages/sdk/contractkit/src/web3-contract-cache.test.ts b/packages/sdk/contractkit/src/web3-contract-cache.test.ts deleted file mode 100644 index 73258bf23db..00000000000 --- a/packages/sdk/contractkit/src/web3-contract-cache.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Connection } from '@celo/connect' -import Web3 from 'web3' -import { AddressRegistry } from './address-registry' -import { AllContracts } from './index' -import { Web3ContractCache } from './web3-contract-cache' -function newWeb3ContractCache() { - const web3 = new Web3('http://localhost:8545') - const connection = new Connection(web3) - const registry = new AddressRegistry(connection) - const AnyContractAddress = '0xe832065fb5117dbddcb566ff7dc4340999583e38' - jest.spyOn(registry, 'addressFor').mockResolvedValue(AnyContractAddress) - - return new Web3ContractCache(registry) -} - -describe('getContract()', () => { - const contractCache = newWeb3ContractCache() - - for (const contractName of AllContracts) { - test(`SBAT get ${contractName}`, async () => { - const contract = await contractCache.getContract(contractName) - expect(contract).not.toBeNull() - expect(contract).toBeDefined() - }) - } -}) - -test('should cache contracts', async () => { - const contractCache = newWeb3ContractCache() - for (const contractName of AllContracts) { - const contract = await contractCache.getContract(contractName) - const contractBis = await contractCache.getContract(contractName) - expect(contract).toBe(contractBis) - } -}) diff --git a/packages/sdk/contractkit/src/web3-contract-cache.ts b/packages/sdk/contractkit/src/web3-contract-cache.ts deleted file mode 100644 index c3e31b36549..00000000000 --- a/packages/sdk/contractkit/src/web3-contract-cache.ts +++ /dev/null @@ -1,228 +0,0 @@ -// tslint:disable: ordered-imports -import debugFactory from 'debug' -import { AddressRegistry } from './address-registry' -import { CeloContract, ProxyContracts } from './base' -import { StableToken } from './celo-tokens' -import { newGasPriceMinimum } from '@celo/abis/web3/0.8/GasPriceMinimum' -import { newAccounts } from '@celo/abis/web3/Accounts' -import { newAttestations } from '@celo/abis/web3/Attestations' -import { newBlockchainParameters } from '@celo/abis/web3/BlockchainParameters' -import { newDoubleSigningSlasher } from '@celo/abis/web3/DoubleSigningSlasher' -import { newDowntimeSlasher } from '@celo/abis/web3/DowntimeSlasher' -import { newElection } from '@celo/abis/web3/Election' -import { newEpochRewards } from '@celo/abis/web3/EpochRewards' -import { newEscrow } from '@celo/abis/web3/Escrow' -import { newFederatedAttestations } from '@celo/abis/web3/FederatedAttestations' -import { newFeeCurrencyWhitelist } from '@celo/abis/web3/FeeCurrencyWhitelist' -import { newFeeHandler } from '@celo/abis/web3/FeeHandler' -import { newFreezer } from '@celo/abis/web3/Freezer' -import { newGoldToken } from '@celo/abis/web3/GoldToken' -import { newGovernance } from '@celo/abis/web3/Governance' -import { newIERC20 } from '@celo/abis/web3/IERC20' -import { newLockedGold } from '@celo/abis/web3/LockedGold' -import { newMetaTransactionWallet } from '@celo/abis/web3/MetaTransactionWallet' -import { newMetaTransactionWalletDeployer } from '@celo/abis/web3/MetaTransactionWalletDeployer' -import { newMultiSig } from '@celo/abis/web3/MultiSig' -import { newOdisPayments } from '@celo/abis/web3/OdisPayments' -import { newProxy } from '@celo/abis/web3/Proxy' -import { newRandom } from '@celo/abis/web3/Random' -import { newRegistry } from '@celo/abis/web3/Registry' -import { newSortedOracles } from '@celo/abis/web3/SortedOracles' -import { newValidators } from '@celo/abis/web3/Validators' -import { newExchange } from '@celo/abis/web3/mento/Exchange' -import { newExchangeBRL } from '@celo/abis/web3/mento/ExchangeBRL' -import { newExchangeEUR } from '@celo/abis/web3/mento/ExchangeEUR' -import { newGrandaMento } from '@celo/abis/web3/mento/GrandaMento' -import { newReserve } from '@celo/abis/web3/mento/Reserve' -import { newStableToken } from '@celo/abis/web3/mento/StableToken' - -import { newMentoFeeHandlerSeller } from '@celo/abis/web3/MentoFeeHandlerSeller' -import { newUniswapFeeHandlerSeller } from '@celo/abis/web3/UniswapFeeHandlerSeller' - -const debug = debugFactory('kit:web3-contract-cache') - -export const ContractFactories = { - [CeloContract.Accounts]: newAccounts, - [CeloContract.Attestations]: newAttestations, - [CeloContract.BlockchainParameters]: newBlockchainParameters, - [CeloContract.DoubleSigningSlasher]: newDoubleSigningSlasher, - [CeloContract.DowntimeSlasher]: newDowntimeSlasher, - [CeloContract.Election]: newElection, - [CeloContract.EpochRewards]: newEpochRewards, - [CeloContract.ERC20]: newIERC20, - [CeloContract.Escrow]: newEscrow, - [CeloContract.Exchange]: newExchange, - [CeloContract.ExchangeEUR]: newExchangeEUR, - [CeloContract.ExchangeBRL]: newExchangeBRL, - [CeloContract.FederatedAttestations]: newFederatedAttestations, - [CeloContract.FeeCurrencyWhitelist]: newFeeCurrencyWhitelist, - [CeloContract.Freezer]: newFreezer, - [CeloContract.FeeHandler]: newFeeHandler, - [CeloContract.MentoFeeHandlerSeller]: newMentoFeeHandlerSeller, - [CeloContract.UniswapFeeHandlerSeller]: newUniswapFeeHandlerSeller, - [CeloContract.GasPriceMinimum]: newGasPriceMinimum, - [CeloContract.GoldToken]: newGoldToken, - [CeloContract.Governance]: newGovernance, - [CeloContract.GrandaMento]: newGrandaMento, - [CeloContract.LockedGold]: newLockedGold, - [CeloContract.MetaTransactionWallet]: newMetaTransactionWallet, - [CeloContract.MetaTransactionWalletDeployer]: newMetaTransactionWalletDeployer, - [CeloContract.MultiSig]: newMultiSig, - [CeloContract.OdisPayments]: newOdisPayments, - [CeloContract.Random]: newRandom, - [CeloContract.Registry]: newRegistry, - [CeloContract.Reserve]: newReserve, - [CeloContract.SortedOracles]: newSortedOracles, - [CeloContract.StableToken]: newStableToken, - [CeloContract.StableTokenEUR]: newStableToken, - [CeloContract.StableTokenBRL]: newStableToken, - [CeloContract.Validators]: newValidators, -} - -const StableToContract = { - [StableToken.cEUR]: CeloContract.StableTokenEUR, - [StableToken.cUSD]: CeloContract.StableToken, - [StableToken.cREAL]: CeloContract.StableTokenBRL, -} - -const StableToExchange = { - [StableToken.cEUR]: CeloContract.ExchangeEUR, - [StableToken.cUSD]: CeloContract.Exchange, - [StableToken.cREAL]: CeloContract.ExchangeBRL, -} - -export type CFType = typeof ContractFactories -type ContractCacheMap = { [K in keyof CFType]?: ReturnType } - -/** - * Native Web3 contracts factory and cache. - * - * Exposes accessors to all `CeloContract` web3 contracts. - * - * Mostly a private cache, kit users would normally use - * a contract wrapper - */ -export class Web3ContractCache { - private cacheMap: ContractCacheMap = {} - /** core contract's address registry */ - constructor(readonly registry: AddressRegistry) {} - getAccounts() { - return this.getContract(CeloContract.Accounts) - } - getAttestations() { - return this.getContract(CeloContract.Attestations) - } - getBlockchainParameters() { - return this.getContract(CeloContract.BlockchainParameters) - } - getDoubleSigningSlasher() { - return this.getContract(CeloContract.DoubleSigningSlasher) - } - getDowntimeSlasher() { - return this.getContract(CeloContract.DowntimeSlasher) - } - getElection() { - return this.getContract(CeloContract.Election) - } - getEpochRewards() { - return this.getContract(CeloContract.EpochRewards) - } - getErc20(address: string) { - return this.getContract(CeloContract.ERC20, address) - } - getEscrow() { - return this.getContract(CeloContract.Escrow) - } - getExchange(stableToken: StableToken = StableToken.cUSD) { - return this.getContract(StableToExchange[stableToken]) - } - getFederatedAttestations() { - return this.getContract(CeloContract.FederatedAttestations) - } - getFeeCurrencyWhitelist() { - return this.getContract(CeloContract.FeeCurrencyWhitelist) - } - getFreezer() { - return this.getContract(CeloContract.Freezer) - } - getFeeHandler() { - return this.getContract(CeloContract.FeeHandler) - } - getGasPriceMinimum() { - return this.getContract(CeloContract.GasPriceMinimum) - } - getGoldToken() { - return this.getContract(CeloContract.GoldToken) - } - getGovernance() { - return this.getContract(CeloContract.Governance) - } - getGrandaMento() { - return this.getContract(CeloContract.GrandaMento) - } - getLockedGold() { - return this.getContract(CeloContract.LockedGold) - } - /* - @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - getMetaTransactionWallet(address: string) { - return this.getContract(CeloContract.MetaTransactionWallet, address) - } - /* - @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - getMetaTransactionWalletDeployer(address: string) { - return this.getContract(CeloContract.MetaTransactionWalletDeployer, address) - } - getMultiSig(address: string) { - return this.getContract(CeloContract.MultiSig, address) - } - getOdisPayments() { - return this.getContract(CeloContract.OdisPayments) - } - getRandom() { - return this.getContract(CeloContract.Random) - } - getRegistry() { - return this.getContract(CeloContract.Registry) - } - getReserve() { - return this.getContract(CeloContract.Reserve) - } - getSortedOracles() { - return this.getContract(CeloContract.SortedOracles) - } - getStableToken(stableToken: StableToken = StableToken.cUSD) { - return this.getContract(StableToContract[stableToken]) - } - getValidators() { - return this.getContract(CeloContract.Validators) - } - - /** - * Get native web3 contract wrapper - */ - async getContract(contract: C, address?: string) { - if (this.cacheMap[contract] == null || address !== undefined) { - // core contract in the registry - if (!address) { - address = await this.registry.addressFor(contract) - } - debug('Initiating contract %s', contract) - debug('is it included?', ProxyContracts.includes(contract)) - debug('is it included?', ProxyContracts.toString()) - const createFn = ProxyContracts.includes(contract) ? newProxy : ContractFactories[contract] - this.cacheMap[contract] = createFn( - this.registry.connection.web3, - address - ) as ContractCacheMap[C] - } - // we know it's defined (thus the !) - return this.cacheMap[contract]! - } - - public invalidateContract(contract: C) { - this.cacheMap[contract] = undefined - } -} diff --git a/packages/sdk/contractkit/src/wrappers/Accounts.test.ts b/packages/sdk/contractkit/src/wrappers/Accounts.test.ts deleted file mode 100644 index d7d2905fd17..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Accounts.test.ts +++ /dev/null @@ -1,229 +0,0 @@ -import { getParsedSignatureOfAddress } from '../utils/getParsedSignatureOfAddress' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { addressToPublicKey } from '@celo/utils/lib/signatureUtils' -import Web3 from 'web3' -import { ContractKit, newKitFromWeb3 } from '../kit' -import { AccountsWrapper } from './Accounts' -import { valueToBigNumber, valueToFixidityString } from './BaseWrapper' -import { LockedGoldWrapper } from './LockedGold' -import { ValidatorsWrapper } from './Validators' -jest.setTimeout(10 * 1000) - -/* -TEST NOTES: -- In migrations: The only account that has cUSD is accounts[0] -*/ - -const minLockedGoldValue = Web3.utils.toWei('10000', 'ether') // 10k gold - -// Random hex strings -const blsPublicKey = - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00' -const blsPoP = - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900' - -testWithGanache('Accounts Wrapper', (web3) => { - let kit: ContractKit - let accounts: string[] = [] - let accountsInstance: AccountsWrapper - let validators: ValidatorsWrapper - let lockedGold: LockedGoldWrapper - - const registerAccountWithLockedGold = async (account: string) => { - if (!(await accountsInstance.isAccount(account))) { - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - } - await lockedGold.lock().sendAndWaitForReceipt({ from: account, value: minLockedGoldValue }) - } - - function getParsedSignatureOfAddressForTest(address: string, signer: string) { - return getParsedSignatureOfAddress( - web3.utils.soliditySha3, - kit.connection.sign, - address, - signer - ) - } - - beforeAll(async () => { - kit = newKitFromWeb3(web3) - accounts = await kit.connection.getAccounts() - validators = await kit.contracts.getValidators() - lockedGold = await kit.contracts.getLockedGold() - accountsInstance = await kit.contracts.getAccounts() - }) - - afterAll(async () => { - kit.connection.stop() - }) - - const setupValidator = async (validatorAccount: string) => { - await registerAccountWithLockedGold(validatorAccount) - const ecdsaPublicKey = await addressToPublicKey(validatorAccount, kit.connection.sign) - await validators - // @ts-ignore - .registerValidator(ecdsaPublicKey, blsPublicKey, blsPoP) - .sendAndWaitForReceipt({ - from: validatorAccount, - }) - } - - test('SBAT authorize attestation key', async () => { - const account = accounts[0] - const signer = accounts[1] - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - const sig = await getParsedSignatureOfAddressForTest(account, signer) - await ( - await accountsInstance.authorizeAttestationSigner(signer, sig) - ).sendAndWaitForReceipt({ - from: account, - }) - const attestationSigner = await accountsInstance.getAttestationSigner(account) - expect(attestationSigner).toEqual(signer) - }) - - test('SBAT remove attestation key authorization', async () => { - const account = accounts[0] - const signer = accounts[1] - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - const sig = await getParsedSignatureOfAddressForTest(account, signer) - await ( - await accountsInstance.authorizeAttestationSigner(signer, sig) - ).sendAndWaitForReceipt({ - from: account, - }) - - let attestationSigner = await accountsInstance.getAttestationSigner(account) - expect(attestationSigner).toEqual(signer) - - await ( - await accountsInstance.removeAttestationSigner() - ).sendAndWaitForReceipt({ - from: account, - }) - - attestationSigner = await accountsInstance.getAttestationSigner(account) - expect(attestationSigner).toEqual(account) - }) - - test('SBAT authorize validator key when not a validator', async () => { - const account = accounts[0] - const signer = accounts[1] - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - const sig = await getParsedSignatureOfAddressForTest(account, signer) - await ( - await accountsInstance.authorizeValidatorSigner(signer, sig, validators) - ).sendAndWaitForReceipt({ from: account }) - - const validatorSigner = await accountsInstance.getValidatorSigner(account) - expect(validatorSigner).toEqual(signer) - }) - - test('SBAT authorize validator key when a validator', async () => { - const account = accounts[0] - const signer = accounts[1] - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - await setupValidator(account) - const sig = await getParsedSignatureOfAddressForTest(account, signer) - await ( - await accountsInstance.authorizeValidatorSigner(signer, sig, validators) - ).sendAndWaitForReceipt({ from: account }) - - const validatorSigner = await accountsInstance.getValidatorSigner(account) - expect(validatorSigner).toEqual(signer) - }) - - test('SBAT authorize validator key and change BLS key atomically', async () => { - const newBlsPublicKey = web3.utils.randomHex(96) - const newBlsPoP = web3.utils.randomHex(48) - const account = accounts[0] - const signer = accounts[1] - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - await setupValidator(account) - const sig = await getParsedSignatureOfAddressForTest(account, signer) - await ( - await accountsInstance.authorizeValidatorSignerAndBls(signer, sig, newBlsPublicKey, newBlsPoP) - ).sendAndWaitForReceipt({ from: account }) - - const validatorSigner = await accountsInstance.getValidatorSigner(account) - expect(validatorSigner).toEqual(signer) - }) - - test('SBAT set the wallet address to the caller', async () => { - const account = accounts[0] - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - await accountsInstance.setWalletAddress(account).sendAndWaitForReceipt({ from: account }) - - const walletAddress = await accountsInstance.getWalletAddress(account) - expect(walletAddress).toEqual(account) - }) - - test('SBAT set the wallet address to a different wallet address', async () => { - const account = accounts[0] - const wallet = accounts[1] - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - const signature = await accountsInstance.generateProofOfKeyPossession(account, wallet) - await accountsInstance - .setWalletAddress(wallet, signature) - .sendAndWaitForReceipt({ from: account }) - - const walletAddress = await accountsInstance.getWalletAddress(account) - expect(walletAddress).toEqual(wallet) - }) - - test('SNBAT to set to a different wallet address without a signature', async () => { - const account = accounts[0] - const wallet = accounts[1] - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - await expect(accountsInstance.setWalletAddress(wallet)).rejects - }) - - test('SNBAT fraction greater than 1', async () => { - const account = accounts[0] - const beneficiary = accounts[1] - const fractionInvalid = valueToFixidityString(valueToBigNumber('2.5')) - - kit.defaultAccount = account - - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - await expect( - accountsInstance.setPaymentDelegation(beneficiary, fractionInvalid).sendAndWaitForReceipt({}) - ).rejects.toEqual( - new Error( - 'Error: VM Exception while processing transaction: revert Fraction must not be greater than 1' - ) - ) - }) - - test('SNBAT beneficiary and fraction', async () => { - const account = accounts[0] - const beneficiary = accounts[1] - const fractionValid = valueToFixidityString(valueToBigNumber('.25')) - const expectedRetval = { 0: beneficiary, 1: fractionValid } - - kit.defaultAccount = account - - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - await accountsInstance.setPaymentDelegation(beneficiary, fractionValid).sendAndWaitForReceipt() - - const retval = await accountsInstance.getPaymentDelegation(account) - expect(retval).toEqual(expectedRetval) - }) - - test('SNBAT delete expected to clear beneficiary and fraction', async () => { - const account = accounts[0] - const beneficiary = accounts[1] - const fractionValid = valueToFixidityString(valueToBigNumber('.25')) - const expectedRetval = { 0: '0x0000000000000000000000000000000000000000', 1: '0' } - - kit.defaultAccount = account - - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - await accountsInstance.setPaymentDelegation(beneficiary, fractionValid).sendAndWaitForReceipt() - - await accountsInstance.deletePaymentDelegation().sendAndWaitForReceipt() - - const retval = await accountsInstance.getPaymentDelegation(account) - expect(retval).toEqual(expectedRetval) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/Accounts.ts b/packages/sdk/contractkit/src/wrappers/Accounts.ts deleted file mode 100644 index a9d2935f18e..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Accounts.ts +++ /dev/null @@ -1,508 +0,0 @@ -import { Accounts } from '@celo/abis/web3/Accounts' -import { NativeSigner, Signature, Signer } from '@celo/base/lib/signatureUtils' -import { Address, CeloTransactionObject, toTransactionObject } from '@celo/connect' -import { - hashMessageWithPrefix, - LocalSigner, - parseSignature, - signedMessageToPublicKey, -} from '@celo/utils/lib/signatureUtils' -import { soliditySha3 } from '@celo/utils/lib/solidity' -import { authorizeSigner as buildAuthorizeSignerTypedData } from '@celo/utils/lib/typed-data-constructors' -import type BN from 'bn.js' // just the types -import { getParsedSignatureOfAddress } from '../utils/getParsedSignatureOfAddress' -import { newContractVersion } from '../versions' -import { - proxyCall, - proxySend, - solidityBytesToString, - stringToSolidityBytes, -} from '../wrappers/BaseWrapper' -import { BaseWrapper } from './BaseWrapper' -interface AccountSummary { - address: string - name: string - authorizedSigners: { - vote: Address - validator: Address - attestation: Address - } - metadataURL: string - wallet: Address - dataEncryptionKey: string -} - -/** - * Contract for handling deposits needed for voting. - */ -export class AccountsWrapper extends BaseWrapper { - private RELEASE_4_VERSION = newContractVersion(1, 1, 2, 0) - - /** - * Creates an account. - */ - createAccount = proxySend(this.connection, this.contract.methods.createAccount) - - /** - * Returns the attestation signer for the specified account. - * @param account The address of the account. - * @return The address with which the account can vote. - */ - getAttestationSigner: (account: string) => Promise
= proxyCall( - this.contract.methods.getAttestationSigner - ) - - /** - * Returns if the account has authorized an attestation signer - * @param account The address of the account. - * @return If the account has authorized an attestation signer - */ - hasAuthorizedAttestationSigner: (account: string) => Promise = proxyCall( - this.contract.methods.hasAuthorizedAttestationSigner - ) - - /** - * Returns the vote signer for the specified account. - * @param account The address of the account. - * @return The address with which the account can vote. - */ - getVoteSigner: (account: string) => Promise
= proxyCall( - this.contract.methods.getVoteSigner - ) - /** - * Returns the validator signer for the specified account. - * @param account The address of the account. - * @return The address with which the account can register a validator or group. - */ - getValidatorSigner: (account: string) => Promise
= proxyCall( - this.contract.methods.getValidatorSigner - ) - - /** - * Returns the account address given the signer for voting - * @param signer Address that is authorized to sign the tx as voter - * @return The Account address - */ - voteSignerToAccount: (signer: Address) => Promise
= proxyCall( - this.contract.methods.voteSignerToAccount - ) - - /** - * Returns the account address given the signer for validating - * @param signer Address that is authorized to sign the tx as validator - * @return The Account address - */ - validatorSignerToAccount: (signer: Address) => Promise
= proxyCall( - this.contract.methods.validatorSignerToAccount - ) - - /** - * Returns the account associated with `signer`. - * @param signer The address of the account or previously authorized signer. - * @dev Fails if the `signer` is not an account or previously authorized signer. - * @return The associated account. - */ - signerToAccount: (signer: Address) => Promise
= proxyCall( - this.contract.methods.signerToAccount - ) - - /** - * Check if an account already exists. - * @param account The address of the account - * @return Returns `true` if account exists. Returns `false` otherwise. - */ - isAccount: (account: string) => Promise = proxyCall(this.contract.methods.isAccount) - - /** - * Check if an address is a signer address - * @param address The address of the account - * @return Returns `true` if account exists. Returns `false` otherwise. - */ - isSigner: (address: string) => Promise = proxyCall( - this.contract.methods.isAuthorizedSigner - ) - - getCurrentSigners(address: string): Promise { - return Promise.all([ - this.getVoteSigner(address), - this.getValidatorSigner(address), - this.getAttestationSigner(address), - ]) - } - - async getAccountSummary(account: string): Promise { - const ret = await Promise.all([ - this.getName(account), - this.getVoteSigner(account), - this.getValidatorSigner(account), - this.getAttestationSigner(account), - this.getMetadataURL(account), - this.getWalletAddress(account), - this.getDataEncryptionKey(account), - ]) - return { - address: account, - name: ret[0], - authorizedSigners: { - vote: ret[1], - validator: ret[2], - attestation: ret[3], - }, - metadataURL: ret[4], - wallet: ret[5], - dataEncryptionKey: ret[6], - } - } - - /** - * Authorize an attestation signing key on behalf of this account to another address. - * @param signer The address of the signing key to authorize. - * @param proofOfSigningKeyPossession The account address signed by the signer address. - * @return A CeloTransactionObject - */ - async authorizeAttestationSigner( - signer: Address, - proofOfSigningKeyPossession: Signature - ): Promise> { - return toTransactionObject( - this.connection, - this.contract.methods.authorizeAttestationSigner( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - ) - } - /** - * Authorizes an address to sign votes on behalf of the account. - * @param signer The address of the vote signing key to authorize. - * @param proofOfSigningKeyPossession The account address signed by the signer address. - * @return A CeloTransactionObject - */ - async authorizeVoteSigner( - signer: Address, - proofOfSigningKeyPossession: Signature - ): Promise> { - return toTransactionObject( - this.connection, - this.contract.methods.authorizeVoteSigner( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - ) - } - - /** - * Authorizes an address to sign consensus messages on behalf of the account. - * @param signer The address of the signing key to authorize. - * @param proofOfSigningKeyPossession The account address signed by the signer address. - * @return A CeloTransactionObject - */ - async authorizeValidatorSigner( - signer: Address, - proofOfSigningKeyPossession: Signature, - validatorsWrapper: { isValidator: (account: string) => Promise } - ): Promise> { - const account = this.connection.defaultAccount || (await this.connection.getAccounts())[0] - if (await validatorsWrapper.isValidator(account)) { - const message = this.connection.web3.utils.soliditySha3({ - type: 'address', - value: account, - })! - const prefixedMsg = hashMessageWithPrefix(message) - const pubKey = signedMessageToPublicKey( - prefixedMsg!, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - return toTransactionObject( - this.connection, - this.contract.methods.authorizeValidatorSignerWithPublicKey( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s, - stringToSolidityBytes(pubKey) - ) - ) - } else { - return toTransactionObject( - this.connection, - this.contract.methods.authorizeValidatorSigner( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - ) - } - } - - /** - * Authorizes an address to sign consensus messages on behalf of the account. Also switch BLS key at the same time. - * @param signer The address of the signing key to authorize. - * @param proofOfSigningKeyPossession The account address signed by the signer address. - * @param blsPublicKey The BLS public key that the validator is using for consensus, should pass proof - * of possession. 48 bytes. - * @param blsPop The BLS public key proof-of-possession, which consists of a signature on the - * account address. 96 bytes. - * @return A CeloTransactionObject - */ - async authorizeValidatorSignerAndBls( - signer: Address, - proofOfSigningKeyPossession: Signature, - blsPublicKey: string, - blsPop: string - ): Promise> { - const account = this.connection.defaultAccount || (await this.connection.getAccounts())[0] - const message = this.connection.web3.utils.soliditySha3({ - type: 'address', - value: account, - })! - const prefixedMsg = hashMessageWithPrefix(message) - const pubKey = signedMessageToPublicKey( - prefixedMsg!, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - return toTransactionObject( - this.connection, - this.contract.methods.authorizeValidatorSignerWithKeys( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s, - stringToSolidityBytes(pubKey), - stringToSolidityBytes(blsPublicKey), - stringToSolidityBytes(blsPop) - ) - ) - } - - async authorizeSigner(signer: Address, role: string) { - await this.onlyVersionOrGreater(this.RELEASE_4_VERSION) - const [accounts, chainId] = await Promise.all([ - this.connection.getAccounts(), - this.connection.chainId(), - // This IS the accounts contract wrapper no need to get it - ]) - const account = this.connection.defaultAccount || accounts[0] - - const hashedRole = this.keccak256(role) - const typedData = buildAuthorizeSignerTypedData({ - account, - signer, - chainId, - role: hashedRole, - accountsContractAddress: this.address, - }) - - const sig = await this.connection.signTypedData(signer, typedData) - return toTransactionObject( - this.connection, - this.contract.methods.authorizeSignerWithSignature(signer, hashedRole, sig.v, sig.r, sig.s) - ) - } - - async startSignerAuthorization(signer: Address, role: string) { - await this.onlyVersionOrGreater(this.RELEASE_4_VERSION) - return toTransactionObject( - this.connection, - this.contract.methods.authorizeSigner(signer, this.keccak256(role)) - ) - } - - async completeSignerAuthorization(account: Address, role: string) { - await this.onlyVersionOrGreater(this.RELEASE_4_VERSION) - return toTransactionObject( - this.connection, - this.contract.methods.completeSignerAuthorization(account, this.keccak256(role)) - ) - } - - /** - * Removes the currently authorized attestation signer for the account - * @returns A CeloTransactionObject - */ - async removeAttestationSigner(): Promise> { - return toTransactionObject(this.connection, this.contract.methods.removeAttestationSigner()) - } - - async generateProofOfKeyPossession(account: Address, signer: Address) { - return this.getParsedSignatureOfAddress( - account, - signer, - NativeSigner(this.connection.web3.eth.sign, signer) - ) - } - - async generateProofOfKeyPossessionLocally(account: Address, signer: Address, privateKey: string) { - return this.getParsedSignatureOfAddress(account, signer, LocalSigner(privateKey)) - } - - /** - * Returns the set name for the account - * @param account Account - * @param blockNumber Height of result, defaults to tip. - */ - async getName(account: Address, blockNumber?: number): Promise { - // @ts-ignore: Expected 0-1 arguments, but got 2 - return this.contract.methods.getName(account).call({}, blockNumber) - } - - /** - * Returns the set data encryption key for the account - * @param account Account - */ - getDataEncryptionKey = proxyCall(this.contract.methods.getDataEncryptionKey, undefined, (res) => - solidityBytesToString(res) - ) - - /** - * Returns the set wallet address for the account - * @param account Account - */ - getWalletAddress = proxyCall(this.contract.methods.getWalletAddress) - - /** - * Returns the metadataURL for the account - * @param account Account - */ - getMetadataURL = proxyCall(this.contract.methods.getMetadataURL) - - /** - * Sets the data encryption of the account - * @param encryptionKey The key to set - */ - setAccountDataEncryptionKey = proxySend( - this.connection, - this.contract.methods.setAccountDataEncryptionKey - ) - - /** - * Convenience Setter for the dataEncryptionKey and wallet address for an account - * @param name A string to set as the name of the account - * @param dataEncryptionKey secp256k1 public key for data encryption. Preferably compressed. - * @param walletAddress The wallet address to set for the account - * @param proofOfPossession Signature from the wallet address key over the sender's address - */ - setAccount( - name: string, - dataEncryptionKey: string, - walletAddress: Address, - proofOfPossession: Signature | null = null - ): CeloTransactionObject { - if (proofOfPossession) { - return toTransactionObject( - this.connection, - this.contract.methods.setAccount( - name, - // @ts-ignore - dataEncryptionKey, - walletAddress, - proofOfPossession.v, - proofOfPossession.r, - proofOfPossession.s - ) - ) - } else { - return toTransactionObject( - this.connection, - this.contract.methods.setAccount( - name, - // @ts-ignore - dataEncryptionKey, - walletAddress, - '0x0', - '0x0', - '0x0' - ) - ) - } - } - - /** - * Sets the name for the account - * @param name The name to set - */ - setName = proxySend(this.connection, this.contract.methods.setName) - - /** - * Sets the metadataURL for the account - * @param url The url to set - */ - setMetadataURL = proxySend(this.connection, this.contract.methods.setMetadataURL) - - /** - * Set a validator's payment delegation settings. - * @param beneficiary The address that should receive a portion of validator - * payments. - * @param fraction The fraction of the validator's payment that should be - * diverted to `beneficiary` every epoch, given as FixidityLib value. Must not - * be greater than 1. - * @dev Use `deletePaymentDelegation` to unset the payment delegation. - */ - setPaymentDelegation = proxySend(this.connection, this.contract.methods.setPaymentDelegation) - - /** - * Remove a validator's payment delegation by setting benficiary and - * fraction to 0. - */ - deletePaymentDelegation = proxySend( - this.connection, - this.contract.methods.deletePaymentDelegation - ) - - /** - * Get a validator's payment delegation settings. - * @param account Account of the validator. - * @return Beneficiary address and fraction of payment delegated. - */ - getPaymentDelegation = proxyCall(this.contract.methods.getPaymentDelegation) - - /** - * Sets the wallet address for the account - * @param address The address to set - */ - setWalletAddress( - walletAddress: Address, - proofOfPossession: Signature | null = null - ): CeloTransactionObject { - if (proofOfPossession) { - return toTransactionObject( - this.connection, - this.contract.methods.setWalletAddress( - walletAddress, - proofOfPossession.v, - proofOfPossession.r, - proofOfPossession.s - ) - ) - } else { - return toTransactionObject( - this.connection, - this.contract.methods.setWalletAddress(walletAddress, '0x0', '0x0', '0x0') - ) - } - } - - parseSignatureOfAddress(address: Address, signer: string, signature: string) { - const hash = soliditySha3({ type: 'address', value: address }) - return parseSignature(hash!, signature, signer) - } - - private async getParsedSignatureOfAddress(address: Address, signer: string, signerFn: Signer) { - return getParsedSignatureOfAddress(soliditySha3, signerFn.sign, address, signer) - } - - private keccak256(value: string | BN): string { - return this.connection.keccak256(value) - } -} - -export type AccountsWrapperType = AccountsWrapper diff --git a/packages/sdk/contractkit/src/wrappers/Attestations.test.ts b/packages/sdk/contractkit/src/wrappers/Attestations.test.ts deleted file mode 100644 index f4cc03e1248..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Attestations.test.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { getIdentifierHash, IdentifierPrefix } from '@celo/odis-identifiers' -import { newKitFromWeb3 } from '../kit' -import { AttestationsWrapper } from './Attestations' - -testWithGanache('Attestations Wrapper', (web3) => { - const PHONE_NUMBER = '+15555555555' - const IDENTIFIER = getIdentifierHash( - web3.utils.sha3, - PHONE_NUMBER, - IdentifierPrefix.PHONE_NUMBER, - 'pepper' - ) - - const kit = newKitFromWeb3(web3) - let accounts: string[] = [] - let attestations: AttestationsWrapper - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - attestations = await kit.contracts.getAttestations() - }) - - describe('Verification with default values', () => { - it('No completions returns false', async () => { - jest - .spyOn(attestations, 'getAttestationStat') - .mockReturnValue({ completed: 0, total: 3 }) - - const result = await attestations.getVerifiedStatus(IDENTIFIER, accounts[0]) - expect(result.isVerified).toBeFalsy() - expect(result.numAttestationsRemaining).toBe(3) - }) - it('Not enough completions returns false', async () => { - jest - .spyOn(attestations, 'getAttestationStat') - .mockReturnValue({ completed: 2, total: 6 }) - - const result = await attestations.getVerifiedStatus(IDENTIFIER, accounts[0]) - expect(result.isVerified).toBeFalsy() - expect(result.numAttestationsRemaining).toBe(1) - }) - it('Fraction too low returns false', async () => { - jest - .spyOn(attestations, 'getAttestationStat') - .mockReturnValue({ completed: 3, total: 30 }) - - const result = await attestations.getVerifiedStatus(IDENTIFIER, accounts[0]) - expect(result.isVerified).toBeFalsy() - }) - it('Fraction pass threshold returns true', async () => { - jest - .spyOn(attestations, 'getAttestationStat') - .mockReturnValue({ completed: 3, total: 9 }) - - const result = await attestations.getVerifiedStatus(IDENTIFIER, accounts[0]) - expect(result.isVerified).toBeTruthy() - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/Attestations.ts b/packages/sdk/contractkit/src/wrappers/Attestations.ts deleted file mode 100644 index 5787d06d4bb..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Attestations.ts +++ /dev/null @@ -1,324 +0,0 @@ -import { Attestations } from '@celo/abis/web3/Attestations' -import { StableToken } from '@celo/base' -import { eqAddress } from '@celo/base/lib/address' -import { Address, Connection, toTransactionObject } from '@celo/connect' -import BigNumber from 'bignumber.js' -import { AccountsWrapper } from './Accounts' -import { - BaseWrapper, - blocksToDurationString, - proxyCall, - proxySend, - valueToBigNumber, - valueToInt, -} from './BaseWrapper' -import { StableTokenWrapper } from './StableTokenWrapper' - -export interface AttestationStat { - completed: number - total: number -} - -export interface AttestationStateForIssuer { - attestationState: AttestationState -} - -export interface AttestationsToken { - address: Address - fee: BigNumber -} - -export interface AttestationsConfig { - attestationExpiryBlocks: number - attestationRequestFees: AttestationsToken[] -} - -/** - * Contract for managing identities - */ -export enum AttestationState { - None, - Incomplete, - Complete, -} - -export interface UnselectedRequest { - blockNumber: number - attestationsRequested: number - attestationRequestFeeToken: string -} - -// Map of identifier -> (Map of address -> AttestationStat) -export type IdentifierLookupResult = Record< - string, - Record | undefined -> - -interface ContractsForAttestation { - getAccounts(): Promise - - getStableToken(stableToken: StableToken): Promise -} - -export class AttestationsWrapper extends BaseWrapper { - constructor( - protected readonly connection: Connection, - protected readonly contract: Attestations, - protected readonly contracts: ContractsForAttestation - ) { - super(connection, contract) - } - - /** - * Returns the time an attestation can be completable before it is considered expired - */ - attestationExpiryBlocks = proxyCall( - this.contract.methods.attestationExpiryBlocks, - undefined, - valueToInt - ) - - /** - * Returns the attestation request fee in a given currency. - * @param address Token address. - * @returns The fee as big number. - */ - attestationRequestFees = proxyCall( - this.contract.methods.attestationRequestFees, - undefined, - valueToBigNumber - ) - - selectIssuersWaitBlocks = proxyCall( - this.contract.methods.selectIssuersWaitBlocks, - undefined, - valueToInt - ) - - /** - * @notice Returns the unselected attestation request for an identifier/account pair, if any. - * @param identifier Attestation identifier (e.g. phone hash) - * @param account Address of the account - */ - getUnselectedRequest = proxyCall( - this.contract.methods.getUnselectedRequest, - undefined, - (res) => ({ - blockNumber: valueToInt(res[0]), - attestationsRequested: valueToInt(res[1]), - attestationRequestFeeToken: res[2], - }) - ) - - /** - * @notice Checks if attestation request is expired. - * @param attestationRequestBlockNumber Attestation Request Block Number to be checked - */ - isAttestationExpired = async (attestationRequestBlockNumber: number) => { - // We duplicate the implementation here, until Attestation.sol->isAttestationExpired is not external - const attestationExpiryBlocks = await this.attestationExpiryBlocks() - const blockNumber = await this.connection.getBlockNumber() - return blockNumber >= attestationRequestBlockNumber + attestationExpiryBlocks - } - - /** - * Returns the issuers of attestations for a phoneNumber/account combo - * @param identifier Attestation identifier (e.g. phone hash) - * @param account Address of the account - */ - getAttestationIssuers = proxyCall(this.contract.methods.getAttestationIssuers) - - /** - * Returns the attestation state of a phone number/account/issuer tuple - * @param identifier Attestation identifier (e.g. phone hash) - * @param account Address of the account - */ - getAttestationState: ( - identifier: string, - account: Address, - issuer: Address - ) => Promise = proxyCall( - this.contract.methods.getAttestationState, - undefined, - (state) => ({ attestationState: valueToInt(state[0]) }) - ) - - /** - * Returns the attestation stats of a identifer/account pair - * @param identifier Attestation identifier (e.g. phone hash) - * @param account Address of the account - */ - getAttestationStat: (identifier: string, account: Address) => Promise = - proxyCall(this.contract.methods.getAttestationStats, undefined, (stat) => ({ - completed: valueToInt(stat[0]), - total: valueToInt(stat[1]), - })) - - /** - * Returns the verified status of an identifier/account pair indicating whether the attestation - * stats for a given pair are completed beyond a certain threshold of confidence (aka "verified") - * @param identifier Attestation identifier (e.g. phone hash) - * @param account Address of the account - * @param numAttestationsRequired Optional number of attestations required. Will default to - * hardcoded value if absent. - * @param attestationThreshold Optional threshold for fraction attestations completed. Will - * default to hardcoded value if absent. - */ - async getVerifiedStatus( - identifier: string, - account: Address, - numAttestationsRequired: number = 3, - attestationThreshold: number = 0.25 - ) { - const stats = await this.getAttestationStat(identifier, account) - if (!stats) { - return { - isVerified: false, - numAttestationsRemaining: 0, - total: 0, - completed: 0, - } - } - const numAttestationsRemaining = numAttestationsRequired - stats.completed - const fractionAttestation = stats.total < 1 ? 0 : stats.completed / stats.total - // 'verified' is a term of convenience to mean that the attestation stats for a - // given identifier are beyond a certain threshold of confidence - const isVerified = numAttestationsRemaining <= 0 && fractionAttestation >= attestationThreshold - - return { - isVerified, - numAttestationsRemaining, - total: stats.total, - completed: stats.completed, - } - } - - /** - * Calculates the amount of StableToken required to request Attestations - * @param attestationsRequested The number of attestations to request - */ - async getAttestationFeeRequired(attestationsRequested: number) { - const contract = await this.contracts.getStableToken(StableToken.cUSD) - const attestationFee = await this.contract.methods - .getAttestationRequestFee(contract.address) - .call() - return new BigNumber(attestationFee).times(attestationsRequested) - } - - /** - * Approves the necessary amount of StableToken to request Attestations - * @param attestationsRequested The number of attestations to request - */ - async approveAttestationFee(attestationsRequested: number) { - const tokenContract = await this.contracts.getStableToken(StableToken.cUSD) - const fee = await this.getAttestationFeeRequired(attestationsRequested) - return tokenContract.approve(this.address, fee.toFixed()) - } - - /** - * Returns the attestation signer for the specified account. - * @param account The address of token rewards are accumulated in. - * @param account The address of the account. - * @return The reward amount. - */ - getPendingWithdrawals: (token: string, account: string) => Promise = proxyCall( - this.contract.methods.pendingWithdrawals, - undefined, - valueToBigNumber - ) - - /** - * Allows issuers to withdraw accumulated attestation rewards - * @param address The address of the token that will be withdrawn - */ - withdraw = proxySend(this.connection, this.contract.methods.withdraw) - - /** - * Returns the current configuration parameters for the contract. - * @param tokens List of tokens used for attestation fees. use CeloTokens.getAddresses() to get - * @return AttestationsConfig object - */ - async getConfig(tokens: string[]): Promise { - const feeTokens = tokens - const fees = await Promise.all( - feeTokens.map(async (token) => { - const fee = await this.attestationRequestFees(token) - return { fee, address: token } - }) - ) - return { - attestationExpiryBlocks: await this.attestationExpiryBlocks(), - attestationRequestFees: fees, - } - } - - /** - * @dev Returns human readable configuration of the attestations contract - * @param tokens List of tokens used for attestation fees. use CeloTokens.getAddresses() to get - * @return AttestationsConfig object - */ - async getHumanReadableConfig(tokens: string[]) { - const config = await this.getConfig(tokens) - return { - attestationRequestFees: config.attestationRequestFees, - attestationExpiry: blocksToDurationString(config.attestationExpiryBlocks), - } - } - - /** - * Returns the list of accounts associated with an identifier. - * @param identifier Attestation identifier (e.g. phone hash) - */ - lookupAccountsForIdentifier = proxyCall(this.contract.methods.lookupAccountsForIdentifier) - - /** - * Lookup mapped wallet addresses for a given list of identifiers - * @param identifiers Attestation identifiers (e.g. phone hashes) - */ - async lookupIdentifiers(identifiers: string[]): Promise { - // Unfortunately can't be destructured - const stats = await this.contract.methods.batchGetAttestationStats(identifiers).call() - - const matches = stats[0].map(valueToInt) - const addresses = stats[1] - const completed = stats[2].map(valueToInt) - const total = stats[3].map(valueToInt) - // Map of identifier -> (Map of address -> AttestationStat) - const result: IdentifierLookupResult = {} - - let rIndex = 0 - - for (let pIndex = 0; pIndex < identifiers.length; pIndex++) { - const pHash = identifiers[pIndex] - const numberOfMatches = matches[pIndex] - if (numberOfMatches === 0) { - continue - } - - const matchingAddresses: Record = {} - for (let mIndex = 0; mIndex < numberOfMatches; mIndex++) { - const matchingAddress = addresses[rIndex] - matchingAddresses[matchingAddress] = { - completed: completed[rIndex], - total: total[rIndex], - } - rIndex++ - } - - result[pHash] = matchingAddresses - } - - return result - } - - async revoke(identifer: string, account: Address) { - const accounts = await this.lookupAccountsForIdentifier(identifer) - const idx = accounts.findIndex((acc) => eqAddress(acc, account)) - if (idx < 0) { - throw new Error("Account not found in identifier's accounts") - } - return toTransactionObject(this.connection, this.contract.methods.revoke(identifer, idx)) - } -} - -export type AttestationsWrapperType = AttestationsWrapper diff --git a/packages/sdk/contractkit/src/wrappers/BaseSlasher.ts b/packages/sdk/contractkit/src/wrappers/BaseSlasher.ts deleted file mode 100644 index 122df4322a0..00000000000 --- a/packages/sdk/contractkit/src/wrappers/BaseSlasher.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { findAddressIndex } from '@celo/base/lib/address' -import { CeloTxObject, Contract, toTransactionObject } from '@celo/connect' -import { proxyCall, valueToBigNumber } from './BaseWrapper' -import { BaseWrapperForGoverning } from './BaseWrapperForGoverning' - -type TrailingSlasherParams = [ - number | string, - string[], - string[], - Array, - string[], - string[], - Array -] - -interface SlasherContract extends Contract { - methods: { - slash(...args: any): CeloTxObject - slashingIncentives(): CeloTxObject<{ - penalty: string - reward: string - }> - } -} - -export class BaseSlasher extends BaseWrapperForGoverning { - protected async signerIndexAtBlock(address: string, blockNumber: number) { - const election = await this.contracts.getElection() - const validators = await this.contracts.getValidators() - const validator = await validators.getValidator(address, blockNumber) - return findAddressIndex(validator.signer, await election.getValidatorSigners(blockNumber)) - } - - protected async trailingSlashArgs( - address: string, - blockNumber: number - ): Promise { - const validators = await this.contracts.getValidators() - const account = await validators.validatorSignerToAccount(address) - const membership = await validators.getValidatorMembershipHistoryIndex(account, blockNumber) - const incentives = await this.slashingIncentives() - const lockedGold = await this.contracts.getLockedGold() - const lockedGoldValidatorSlash = await lockedGold.computeInitialParametersForSlashing( - account, - incentives.penalty - ) - const lockedGoldValidatorGroupSlash = await lockedGold.computeParametersForSlashing( - membership.group, - incentives.penalty, - lockedGoldValidatorSlash.list - ) - return [ - membership.historyIndex, - lockedGoldValidatorSlash.lessers, - lockedGoldValidatorSlash.greaters, - lockedGoldValidatorSlash.indices, - lockedGoldValidatorGroupSlash.lessers, - lockedGoldValidatorGroupSlash.greaters, - lockedGoldValidatorGroupSlash.indices, - ] - } - - protected slash = (...args: Parameters) => - toTransactionObject(this.connection, this.contract.methods.slash(...(args as any[]))) - - /** - * Returns slashing incentives. - * @return Rewards and penalties for slashing. - */ - public slashingIncentives = proxyCall( - this.contract.methods.slashingIncentives, - undefined, - (res) => ({ - reward: valueToBigNumber(res.reward), - penalty: valueToBigNumber(res.penalty), - }) - ) -} diff --git a/packages/sdk/contractkit/src/wrappers/BaseWrapper.test.ts b/packages/sdk/contractkit/src/wrappers/BaseWrapper.test.ts deleted file mode 100644 index fa52d068888..00000000000 --- a/packages/sdk/contractkit/src/wrappers/BaseWrapper.test.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { NULL_ADDRESS } from '@celo/base' -import { CeloTxObject, Connection } from '@celo/connect' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { - ICeloVersionedContract, - newICeloVersionedContract, -} from '@celo/abis/web3/ICeloVersionedContract' -import { ContractVersion, newContractVersion } from '../versions' -import { BaseWrapper, unixSecondsTimestampToDateString } from './BaseWrapper' - -const web3 = new Web3('http://localhost:8545') -const mockContract = newICeloVersionedContract(web3, NULL_ADDRESS) -const mockVersion = newContractVersion(1, 1, 1, 1) -// @ts-ignore -mockContract.methods.getVersionNumber = (): CeloTxObject => ({ - call: async () => mockVersion.toRaw(), -}) - -class TestWrapper extends BaseWrapper { - constructor() { - super(new Connection(web3), mockContract) - } - - async protectedFunction(v: ContractVersion) { - await this.onlyVersionOrGreater(v) - } -} - -describe('TestWrapper', () => { - const tw = new TestWrapper() - - describe(`#onlyVersionOrGreater (actual = ${mockVersion})`, () => { - const throwTests = [ - newContractVersion(2, 0, 0, 0), - newContractVersion(1, 2, 0, 0), - newContractVersion(1, 1, 2, 0), - ] - const resolveTests = [newContractVersion(1, 1, 1, 2), newContractVersion(1, 0, 0, 0)] - - throwTests.forEach((v) => { - it(`should throw with incompatible version ${v}`, async () => { - await expect(tw.protectedFunction(v)).rejects.toThrow( - `Bytecode version ${mockVersion} is not compatible with ${v} yet` - ) - }) - }) - - resolveTests.forEach((v) => { - it(`should resolve with compatible version ${v}`, async () => { - await expect(tw.protectedFunction(v)).resolves.not.toThrow() - }) - }) - }) -}) - -describe('unixSecondsTimestampToDateString()', () => { - const date = new BigNumber(1627489780) - - const timezoneMock = (zone: string) => { - const DateTimeFormat = Intl.DateTimeFormat - - jest - .spyOn(global.Intl, 'DateTimeFormat') - .mockImplementation( - (locale, options) => new DateTimeFormat(locale, { ...options, timeZone: zone }) - ) - } - - afterEach(() => { - jest.restoreAllMocks() - }) - - describe('when Brazil/East', () => { - it('returns local time', () => { - timezoneMock('Brazil/East') - let str = unixSecondsTimestampToDateString(date) - // due to behavior of node 18 https://github.com/nodejs/node/issues/46123 - str = str.replace(/[\u00A0\u1680​\u180e\u2000-\u2009\u200a​\u200b​\u202f\u205f​\u3000]/g, ' ') - expect(str).toEqual('Wed, Jul 28, 2021, 1:29 PM GMT-3') - }) - }) - - describe('when UTC', () => { - it('returns utc time', () => { - timezoneMock('UTC') - let str = unixSecondsTimestampToDateString(date) - str = str.replace(/[\u00A0\u1680​\u180e\u2000-\u2009\u200a​\u200b​\u202f\u205f​\u3000]/g, ' ') - expect(str).toEqual('Wed, Jul 28, 2021, 4:29 PM UTC') - }) - }) - describe('when Australia/Adelaide', () => { - it('returns local time', () => { - timezoneMock('Australia/Adelaide') - let str = unixSecondsTimestampToDateString(date) - str = str.replace(/[\u00A0\u1680​\u180e\u2000-\u2009\u200a​\u200b​\u202f\u205f​\u3000]/g, ' ') - expect(str).toEqual('Thu, Jul 29, 2021, 1:59 AM GMT+9:30') - }) - }) - describe('when Europe/London', () => { - it('returns local time', () => { - timezoneMock('Europe/London') - let str = unixSecondsTimestampToDateString(date) - str = str.replace(/[\u00A0\u1680​\u180e\u2000-\u2009\u200a​\u200b​\u202f\u205f​\u3000]/g, ' ') - expect(str).toEqual('Wed, Jul 28, 2021, 5:29 PM GMT+1') - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts b/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts deleted file mode 100644 index efce69af554..00000000000 --- a/packages/sdk/contractkit/src/wrappers/BaseWrapper.ts +++ /dev/null @@ -1,343 +0,0 @@ -import { ICeloVersionedContract } from '@celo/abis/web3/ICeloVersionedContract' -import { bufferToHex, ensureLeading0x } from '@celo/base/lib/address' -import { zip } from '@celo/base/lib/collections' -import { - CeloTransactionObject, - CeloTxObject, - Connection, - Contract, - EventLog, - PastEventOptions, - toTransactionObject, -} from '@celo/connect' -import { fromFixed, toFixed } from '@celo/utils/lib/fixidity' -import BigNumber from 'bignumber.js' -import { ContractVersion } from '../versions' - -/** Represents web3 native contract Method */ -type Method = (...args: I) => CeloTxObject - -type Events = keyof T['events'] -type Methods = keyof T['methods'] -type EventsEnum = { - [event in Events]: event -} - -/** - * @internal -- use its children - */ -export abstract class BaseWrapper { - protected _version?: T['methods'] extends ICeloVersionedContract['methods'] - ? ContractVersion - : never - - constructor(protected readonly connection: Connection, protected readonly contract: T) {} - - /** Contract address */ - get address(): string { - return this.contract.options.address - } - - async version() { - if (!this._version) { - const raw = await this.contract.methods.getVersionNumber().call() - // @ts-ignore conditional type - this._version = ContractVersion.fromRaw(raw) - } - return this._version! - } - - protected async onlyVersionOrGreater(version: ContractVersion) { - if (!(await this.version()).isAtLeast(version)) { - throw new Error(`Bytecode version ${this._version} is not compatible with ${version} yet`) - } - } - - /** Contract getPastEvents */ - public getPastEvents(event: Events, options: PastEventOptions): Promise { - return this.contract.getPastEvents(event as string, options) - } - - events: T['events'] = this.contract.events - - eventTypes = Object.keys(this.events).reduce>( - (acc, key) => ({ ...acc, [key]: key }), - {} as any - ) - - methodIds = Object.keys(this.contract.methods).reduce, string>>( - (acc, method: Methods) => { - const methodABI = this.contract.options.jsonInterface.find((item) => item.name === method) - - acc[method] = - methodABI === undefined - ? '0x' - : this.connection.getAbiCoder().encodeFunctionSignature(methodABI) - - return acc - }, - {} as any - ) -} - -export const valueToBigNumber = (input: BigNumber.Value) => new BigNumber(input) - -export const fixidityValueToBigNumber = (input: BigNumber.Value) => fromFixed(new BigNumber(input)) - -export const valueToString = (input: BigNumber.Value) => valueToBigNumber(input).toFixed() - -export const valueToFixidityString = (input: BigNumber.Value) => - toFixed(valueToBigNumber(input)).toFixed() - -export const valueToInt = (input: BigNumber.Value) => - valueToBigNumber(input).integerValue().toNumber() - -export const valueToFrac = (numerator: BigNumber.Value, denominator: BigNumber.Value) => - valueToBigNumber(numerator).div(valueToBigNumber(denominator)) - -enum TimeDurations { - millennium = 31536000000000, - century = 3153600000000, - decade = 315360000000, - year = 31536000000, - quarter = 7776000000, - month = 2592000000, - week = 604800000, - day = 86400000, - hour = 3600000, - minute = 60000, - second = 1000, - millisecond = 1, -} - -type TimeUnit = keyof typeof TimeDurations - -// taken mostly from https://gist.github.com/RienNeVaPlus/024de3431ae95546d60f2acce128a7e2 -export function secondsToDurationString( - durationSeconds: BigNumber.Value, - outputUnits: TimeUnit[] = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second'] -) { - let durationMilliseconds = valueToBigNumber(durationSeconds) - .times(TimeDurations.second) - .toNumber() - - if (durationMilliseconds <= 0) { - return 'past' - } - - const durations = outputUnits.reduce((res: Map, key) => { - const unitDuration = TimeDurations[key] - const value = Math.floor(durationMilliseconds / unitDuration) - durationMilliseconds -= value * unitDuration - return res.set(key, value) - }, new Map()) - - let s = '' - durations.forEach((value, unit) => { - if (value > 0) { - s += s !== '' ? ', ' : '' - s += `${value} ${unit}${value > 1 ? 's' : ''}` - } - }) - return s -} - -export const blocksToDurationString = (input: BigNumber.Value) => - secondsToDurationString(valueToBigNumber(input).times(5)) // TODO: fetch blocktime - -const DATE_TIME_OPTIONS = { - year: 'numeric', - month: 'short', - weekday: 'short', - day: 'numeric', - hour: 'numeric', - minute: 'numeric', - timeZoneName: 'short', -} as const - -export const unixSecondsTimestampToDateString = (input: BigNumber.Value) => { - const date = new Date(valueToInt(input) * TimeDurations.second) - return Intl.DateTimeFormat('default', DATE_TIME_OPTIONS).format(date) -} - -// Type of bytes in solidity gets represented as a string of number array by typechain and web3 -// Hopefully this will improve in the future, at which point we can make improvements here -type SolidityBytes = string | number[] -export const stringToSolidityBytes = (input: string) => ensureLeading0x(input) as SolidityBytes -export const bufferToSolidityBytes = (input: Buffer) => stringToSolidityBytes(bufferToHex(input)) -export const solidityBytesToString = (input: SolidityBytes): string => { - if (input === null || input === undefined || typeof input === 'string') { - return input - } else if (Array.isArray(input)) { - const hexString = input.reduce((acc, num) => acc + num.toString(16).padStart(2, '0'), '') - return ensureLeading0x(hexString) - } else { - throw new Error('Unexpected input type for solidity bytes') - } -} - -type Parser = (input: A) => B - -/** Identity Parser */ -export const identity = (a: A) => a -export const stringIdentity = (x: string) => x - -/** - * Tuple parser - * Useful to map different input arguments - */ -export function tupleParser(parser0: Parser): (...args: [A0]) => [B0] -export function tupleParser( - parser0: Parser, - parser1: Parser -): (...args: [A0, A1]) => [B0, B1] -export function tupleParser( - parser0: Parser, - parser1: Parser, - parser2: Parser -): (...args: [A0, A1, A2]) => [B0, B1, B2] -export function tupleParser( - parser0: Parser, - parser1: Parser, - parser2: Parser, - parser3: Parser -): (...args: [A0, A1, A2, A3]) => [B0, B1, B2, B3] -export function tupleParser(...parsers: Array>) { - return (...args: any[]) => zip((parser, input) => parser(input), parsers, args) -} - -/** - * Specifies all different possible proxyCall arguments so that - * it always return a function of type: (...args:InputArgs) => Promise - * - * cases: - * - methodFn - * - parseInputArgs => methodFn - * - parseInputArgs => methodFn => parseOutput - * - methodFn => parseOutput - */ -type ProxyCallArgs< - InputArgs extends any[], - ParsedInputArgs extends any[], - PreParsedOutput, - Output -> = - // parseInputArgs => methodFn => parseOutput - | [ - Method, - (...arg: InputArgs) => ParsedInputArgs, - (arg: PreParsedOutput) => Output - ] - // methodFn => parseOutput - | [Method, undefined, (arg: PreParsedOutput) => Output] - // parseInputArgs => methodFn - | [Method, (...arg: InputArgs) => ParsedInputArgs] - // methodFn - | [Method] - -/** - * Creates a proxy to call a web3 native contract method. - * - * There are 4 cases: - * - methodFn - * - parseInputArgs => methodFn - * - parseInputArgs => methodFn => parseOutput - * - methodFn => parseOutput - * - * @param methodFn Web3 methods function - * @param parseInputArgs [optional] parseInputArgs function, tranforms arguments into `methodFn` expected inputs - * @param parseOutput [optional] parseOutput function, transforms `methodFn` output into proxy return - */ -export function proxyCall< - InputArgs extends any[], - ParsedInputArgs extends any[], - PreParsedOutput, - Output ->( - methodFn: Method, - parseInputArgs: (...args: InputArgs) => ParsedInputArgs, - parseOutput: (o: PreParsedOutput) => Output -): (...args: InputArgs) => Promise -export function proxyCall( - methodFn: Method, - x: undefined, - parseOutput: (o: PreParsedOutput) => Output -): (...args: InputArgs) => Promise -export function proxyCall( - methodFn: Method, - parseInputArgs: (...args: InputArgs) => ParsedInputArgs -): (...args: InputArgs) => Promise -export function proxyCall( - methodFn: Method -): (...args: InputArgs) => Promise - -export function proxyCall< - InputArgs extends any[], - ParsedInputArgs extends any[], - PreParsedOutput, - Output ->( - ...callArgs: ProxyCallArgs -): (...args: InputArgs) => Promise { - if (callArgs.length === 3 && callArgs[1] != null) { - const methodFn = callArgs[0] - const parseInputArgs = callArgs[1] - const parseOutput = callArgs[2] - return (...args: InputArgs) => - methodFn(...parseInputArgs(...args)) - .call() - .then(parseOutput) - } else if (callArgs.length === 3) { - const methodFn = callArgs[0] - const parseOutput = callArgs[2] - return (...args: InputArgs) => - methodFn(...args) - .call() - .then(parseOutput) - } else if (callArgs.length === 2) { - const methodFn = callArgs[0] - const parseInputArgs = callArgs[1] - return (...args: InputArgs) => methodFn(...parseInputArgs(...args)).call() - } else { - const methodFn = callArgs[0] - return (...args: InputArgs) => methodFn(...args).call() - } -} - -/** - * Specifies all different possible proxySend arguments so that - * it always return a function of type: (...args:InputArgs) => CeloTransactionObject - * - * cases: - * - methodFn - * - parseInputArgs => methodFn - */ -type ProxySendArgs = - // parseInputArgs => methodFn - | [Method, (...arg: InputArgs) => ParsedInputArgs] - // methodFn - | [Method] - -/** - * Creates a proxy to send a tx on a web3 native contract method. - * - * There are 2 cases: - * - call methodFn (no pre or post parsing) - * - preParse arguments & call methodFn - * - * @param methodFn Web3 methods function - * @param preParse [optional] preParse function, tranforms arguments into `methodFn` expected inputs - */ -export function proxySend( - connection: Connection, - ...sendArgs: ProxySendArgs -): (...args: InputArgs) => CeloTransactionObject { - if (sendArgs.length === 2) { - const methodFn = sendArgs[0] - const preParse = sendArgs[1] - return (...args: InputArgs) => toTransactionObject(connection, methodFn(...preParse(...args))) - } else { - const methodFn = sendArgs[0] - return (...args: InputArgs) => toTransactionObject(connection, methodFn(...args)) - } -} diff --git a/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts b/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts deleted file mode 100644 index 03031b29c19..00000000000 --- a/packages/sdk/contractkit/src/wrappers/BaseWrapperForGoverning.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Connection, Contract } from '@celo/connect' -import { AccountsWrapper } from './Accounts' -import { BaseWrapper } from './BaseWrapper' -import { BlockchainParametersWrapper } from './BlockchainParameters' -import { ElectionWrapper } from './Election' -import { LockedGoldWrapper } from './LockedGold' -import { MultiSigWrapper } from './MultiSig' -import { ValidatorsWrapper } from './Validators' - -interface ContractWrappersForVotingAndRules { - getAccounts: () => Promise - getValidators: () => Promise - getElection: () => Promise - getLockedGold: () => Promise - getMultiSig: (address: string) => Promise - getBlockchainParameters: () => Promise -} - -/** @internal */ -export class BaseWrapperForGoverning extends BaseWrapper { - constructor( - protected readonly connection: Connection, - protected readonly contract: T, - protected readonly contracts: ContractWrappersForVotingAndRules - ) { - super(connection, contract) - } -} diff --git a/packages/sdk/contractkit/src/wrappers/BlockChainParameters.test.ts b/packages/sdk/contractkit/src/wrappers/BlockChainParameters.test.ts deleted file mode 100644 index c677dba2d55..00000000000 --- a/packages/sdk/contractkit/src/wrappers/BlockChainParameters.test.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Connection } from '@celo/connect' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import { AddressRegistry } from '../address-registry' -import { CeloContract } from '../base' -import { newBlockchainParameters } from '@celo/abis/web3/BlockchainParameters' -import { BlockchainParametersWrapper } from './BlockchainParameters' - -testWithGanache('BlockChainParametersWrapper', (web3) => { - const connection = new Connection(web3) - let blockchainParamsWrapper: BlockchainParametersWrapper - - beforeAll(async () => { - const addressRegistry = new AddressRegistry(connection) - const blockchainParamsAddress = await addressRegistry.addressFor( - CeloContract.BlockchainParameters - ) - const contract = newBlockchainParameters(web3, blockchainParamsAddress) - blockchainParamsWrapper = new BlockchainParametersWrapper(connection, contract) - }) - - describe('#getEpochSizeNumber', () => { - it('returns epoch size as number', async () => { - const epochSizeNumber = await blockchainParamsWrapper.getEpochSizeNumber() - expect(epochSizeNumber).toEqual(100) - }) - }) - - describe('#getFirstBlockNumberForEpoch', () => { - it('returns block number', async () => { - const blockNumber = await blockchainParamsWrapper.getFirstBlockNumberForEpoch(100) - expect(blockNumber).toEqual(9901) - }) - }) - - describe('#getLastBlockNumberForEpoch', () => { - it('returns block number', async () => { - const blockNumber = await blockchainParamsWrapper.getLastBlockNumberForEpoch(100) - expect(blockNumber).toEqual(10000) - }) - }) - - describe('#getEpochNumberOfBlock', () => { - it('returns epoch number', async () => { - const blockNumber = await blockchainParamsWrapper.getEpochNumberOfBlock(932837) - expect(blockNumber).toEqual(9329) - }) - }) - - describe('#getConfig', () => { - it('returns config', async () => { - const config = await blockchainParamsWrapper.getConfig() - expect(config.blockGasLimit).toEqual(new BigNumber('20000000')) - expect(config.intrinsicGasForAlternativeFeeCurrency).toEqual(new BigNumber('50000')) - }) - }) - - describe('#getUptimeLookbackWindow', () => { - it('returns LookBack window as a number', async () => { - const lookBack = await blockchainParamsWrapper.getUptimeLookbackWindow() - expect(lookBack).toEqual(12) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts b/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts deleted file mode 100644 index 30e04f7c051..00000000000 --- a/packages/sdk/contractkit/src/wrappers/BlockchainParameters.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { BlockchainParameters } from '@celo/abis/web3/BlockchainParameters' -import { BigNumber } from 'bignumber.js' -import { BaseWrapper, proxyCall, proxySend, valueToBigNumber, valueToInt } from './BaseWrapper' - -export interface BlockchainParametersConfig { - blockGasLimit: BigNumber - intrinsicGasForAlternativeFeeCurrency: BigNumber -} - -/** - * Network parameters that are configurable by governance. - */ -export class BlockchainParametersWrapper extends BaseWrapper { - /** - * Get the extra intrinsic gas for transactions, where gas is paid using non-gold currency. - */ - getIntrinsicGasForAlternativeFeeCurrency = proxyCall( - this.contract.methods.intrinsicGasForAlternativeFeeCurrency, - undefined, - valueToBigNumber - ) - - /** - * Setting the extra intrinsic gas for transactions, where gas is paid using non-gold currency. - */ - setIntrinsicGasForAlternativeFeeCurrency = proxySend( - this.connection, - this.contract.methods.setIntrinsicGasForAlternativeFeeCurrency - ) - - /** - * Getting the block gas limit. - */ - getBlockGasLimit = proxyCall(this.contract.methods.blockGasLimit, undefined, valueToBigNumber) - - /** - * Setting the block gas limit. - */ - setBlockGasLimit = proxySend(this.connection, this.contract.methods.setBlockGasLimit) - - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - return { - blockGasLimit: await this.getBlockGasLimit(), - intrinsicGasForAlternativeFeeCurrency: await this.getIntrinsicGasForAlternativeFeeCurrency(), - } - } - - /** - * Getting the uptime lookback window. - */ - getUptimeLookbackWindow = proxyCall( - this.contract.methods.getUptimeLookbackWindow, - undefined, - valueToInt - ) - /** - * Setting the uptime lookback window. - */ - setUptimeLookbackWindow = proxySend( - this.connection, - this.contract.methods.setUptimeLookbackWindow - ) - - async getEpochSizeNumber(): Promise { - const epochSize = await this.getEpochSize() - - return epochSize.toNumber() - } - - async getFirstBlockNumberForEpoch(epochNumber: number): Promise { - const epochSize = await this.getEpochSizeNumber() - // Follows GetEpochFirstBlockNumber from celo-blockchain/blob/master/consensus/istanbul/utils.go - if (epochNumber === 0) { - // No first block for epoch 0 - return 0 - } - return (epochNumber - 1) * epochSize + 1 - } - - async getLastBlockNumberForEpoch(epochNumber: number): Promise { - const epochSize = await this.getEpochSizeNumber() - // Follows GetEpochLastBlockNumber from celo-blockchain/blob/master/consensus/istanbul/utils.go - if (epochNumber === 0) { - return 0 - } - const firstBlockNumberForEpoch = await this.getFirstBlockNumberForEpoch(epochNumber) - return firstBlockNumberForEpoch + (epochSize - 1) - } - - async getEpochNumberOfBlock(blockNumber: number): Promise { - const epochSize = await this.getEpochSizeNumber() - // Follows GetEpochNumber from celo-blockchain/blob/master/consensus/istanbul/utils.go - const epochNumber = Math.floor(blockNumber / epochSize) - if (blockNumber % epochSize === 0) { - return epochNumber - } else { - return epochNumber + 1 - } - } - - getEpochNumber = proxyCall(this.contract.methods.getEpochNumber, undefined, valueToBigNumber) - - getEpochSize = proxyCall(this.contract.methods.getEpochSize, undefined, valueToBigNumber) -} - -export type BlockchainParametersWrapperType = BlockchainParametersWrapper diff --git a/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts b/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts deleted file mode 100644 index 255f2c44cca..00000000000 --- a/packages/sdk/contractkit/src/wrappers/CeloTokenWrapper.ts +++ /dev/null @@ -1,39 +0,0 @@ -// NOTE: removing this import results in `yarn build` failures in Dockerfiles -// after the move to node 10. This allows types to be inferred without -// referencing '@celo/utils/node_modules/bignumber.js' -import { ICeloToken } from '@celo/abis/web3/ICeloToken' -import { IERC20 } from '@celo/abis/web3/IERC20' -import 'bignumber.js' -import { proxyCall, proxySend, valueToInt } from './BaseWrapper' -import { Erc20Wrapper } from './Erc20Wrapper' - -/** - * Contract for Celo native currency that adheres to the ICeloToken and IERC20 interfaces. - */ -export class CeloTokenWrapper extends Erc20Wrapper { - /** - * Returns the name of the token. - * @returns Name of the token. - */ - name = proxyCall(this.contract.methods.name) - - /** - * Returns the three letter symbol of the token. - * @returns Symbol of the token. - */ - symbol = proxyCall(this.contract.methods.symbol) - /** - * Returns the number of decimals used in the token. - * @returns Number of decimals. - */ - decimals = proxyCall(this.contract.methods.decimals, undefined, valueToInt) - - /** - * Transfers the token from one address to another with a comment. - * @param to The address to transfer the token to. - * @param value The amount of the token to transfer. - * @param comment The transfer comment - * @return True if the transaction succeeds. - */ - transferWithComment = proxySend(this.connection, this.contract.methods.transferWithComment) -} diff --git a/packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts b/packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts deleted file mode 100644 index 6958b59b815..00000000000 --- a/packages/sdk/contractkit/src/wrappers/DoubleSigningSlasher.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { DoubleSigningSlasher } from '@celo/abis/web3/DoubleSigningSlasher' -import { Address } from '@celo/connect' -import { BaseSlasher } from './BaseSlasher' -import { valueToInt } from './BaseWrapper' - -/** - * Contract handling slashing for Validator double-signing - */ -export class DoubleSigningSlasherWrapper extends BaseSlasher { - /** - * Parses block number out of header. - * @param header RLP encoded header - * @return Block number. - */ - async getBlockNumberFromHeader(header: string): Promise { - const res = await this.contract.methods.getBlockNumberFromHeader(header).call() - return valueToInt(res) - } - - /** - * Slash a Validator for double-signing. - * @param validatorAddress Validator to slash. - * @param headerA First double signed block header. - * @param headerB Second double signed block header. - */ - async slashValidator(validatorAddress: Address, headerA: string, headerB: string) { - const validators = await this.contracts.getValidators() - const validator = await validators.getValidator(validatorAddress) - return this.slashSigner(validator.signer, headerA, headerB) - } - - /** - * Slash a Validator signer for double-signing. - * @param signer Validator signer address to slash. - * @param headerA First double signed block header. - * @param headerB Second double signed block header. - */ - async slashSigner(signerAddress: Address, headerA: string, headerB: string) { - const blockNumber = await this.getBlockNumberFromHeader(headerA) - const index = await this.signerIndexAtBlock(signerAddress, blockNumber) - return this.slash( - signerAddress, - index, - headerA, - headerB, - ...(await this.trailingSlashArgs(signerAddress, blockNumber)) - ) - } -} - -export type DoubleSigningSlasherWrapperType = DoubleSigningSlasherWrapper diff --git a/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts b/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts deleted file mode 100644 index d3ad94bafe5..00000000000 --- a/packages/sdk/contractkit/src/wrappers/DowntimeSlasher.ts +++ /dev/null @@ -1,223 +0,0 @@ -import { DowntimeSlasher } from '@celo/abis/web3/DowntimeSlasher' -import { Address } from '@celo/connect' -import BigNumber from 'bignumber.js' -import { BaseSlasher } from './BaseSlasher' -import { - blocksToDurationString, - proxyCall, - proxySend, - solidityBytesToString, - valueToInt, -} from './BaseWrapper' - -export interface DowntimeSlasherConfig { - slashableDowntime: number - slashingIncentives: { - reward: BigNumber - penalty: BigNumber - } -} - -export interface Interval { - start: number - end: number -} - -const unpackInterval = (interval: Interval) => [interval.start, interval.end] as any - -/** - * Contract handling slashing for Validator downtime using intervals. - */ -export class DowntimeSlasherWrapper extends BaseSlasher { - /** - * Returns slashable downtime in blocks. - * @return The number of consecutive blocks before a Validator missing from IBFT consensus - * can be slashed. - */ - slashableDowntime = proxyCall(this.contract.methods.slashableDowntime, undefined, valueToInt) - - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - const res = await Promise.all([this.slashableDowntime(), this.slashingIncentives()]) - return { - slashableDowntime: res[0], - slashingIncentives: res[1], - } - } - - /** - * @dev Returns human readable configuration of the downtime slasher contract - * @return DowntimeSlasherConfig object - */ - async getHumanReadableConfig() { - const config = await this.getConfig() - return { - ...config, - slashableDowntime: blocksToDurationString(config.slashableDowntime), - } - } - - /** - * Calculates and returns the signature bitmap for the specified interval. - * Similar to the parentSealBitmap of every block (where you have which validators were - * able to sign the previous block), this bitmap shows for that specific interval which - * validators signed at least one block - * @param interval First and last block of the interval. - * @return (string) The signature uptime bitmap for the specified interval. - * @dev startBlock and endBlock must be in the same epoch. - * @dev The getParentSealBitmap precompile requires that startBlock must be within 4 epochs of - * the current block. - */ - getBitmapForInterval = proxyCall( - this.contract.methods.getBitmapForInterval, - unpackInterval, - solidityBytesToString - ) - - /** - * Calculates and sets the signature bitmap for the specified interval. - * @param interval First and last block of the interval. - * @dev interval.start and interval.end must be in the same epoch. - * @return The signature bitmap for the specified interval. - */ - setBitmapForInterval = proxySend( - this.connection, - this.contract.methods.setBitmapForInterval, - unpackInterval - ) - - /** - * Calculates intervals which span `slashableDowntime` before provided block. - * @param block Block number to build intervals before. - * @param maximumLength Maximum length for any interval (limited by gas limit). - * @dev if block is undefined, latest will be used - * @return The signature bitmap for the specified interval. - */ - async slashableDowntimeIntervalsBefore( - block?: number, - maximumLength = 4000 - ): Promise { - const [window, blockchainParamsWrapper] = await Promise.all([ - this.getSlashableDowntimeWindow(undefined, block), - this.contracts.getBlockchainParameters(), - ]) - - let end = window.end - const intervals: Interval[] = [] - while (end > window.start) { - const epochNumber = await blockchainParamsWrapper.getEpochNumberOfBlock(end) - const firstBlock = await blockchainParamsWrapper.getFirstBlockNumberForEpoch(epochNumber) - const start = Math.max(window.start, end - maximumLength, firstBlock) - intervals.push({ start, end }) - end = start - 1 - } - return intervals.reverse() - } - - /** - * Shows if the user already called the `setBitmapForInterval` for - * the specific interval. - * @param interval First and last block of the interval. - * @return True if the user already called the `setBitmapForInterval` for - * the specific interval. - */ - isBitmapSetForInterval = proxyCall(this.contract.methods.isBitmapSetForInterval, unpackInterval) - - /** - * Shows if the user already called the `setBitmapForInterval` for intervals. - * @param intervals First and last block of the interval. - * @return True if the user already called the `setBitmapForInterval` for intervals. - */ - async isBitmapSetForIntervals(intervals: Interval[]) { - const setArray = await Promise.all( - intervals.map((interval) => this.isBitmapSetForInterval(interval)) - ) - return !setArray.some((set) => !set) - } - - lastSlashedBlock = proxyCall(this.contract.methods.lastSlashedBlock, undefined, valueToInt) - - /** - * Tests if the given validator or signer did not sign any blocks in the interval. - * @param address Address of the validator account or signer. - * @param interval First and last block of the interval. - */ - async wasValidatorDownForInterval(address: Address, interval: Interval) { - const startSignerIndex = await this.signerIndexAtBlock(address, interval.start) - return this.contract.methods - .wasDownForInterval(interval.start, interval.end, startSignerIndex) - .call() - } - - /** - * Returns true if the validator did not sign any blocks for the specified overlapping or adjacent - * intervals. - * @param address Address of the validator account or signer. - * @param intervals - * @return True if the validator signature does not appear in any block within the window. - */ - async wasValidatorDownForIntervals(address: Address, intervals: Interval[]) { - const downArray = await Promise.all( - intervals.map((interval) => this.wasValidatorDownForInterval(address, interval)) - ) - return downArray.every((down) => down) - } - - /** - * Returns true if the validator did not sign any blocks for the specified overlapping or adjacent - * intervals. - * @param address Address of the validator account or signer. - * @param intervals A list of ordered intervals for which signature bitmaps have already been set. - */ - async slashValidator(address: Address, intervals: Interval[]) { - if (intervals.length === 0) { - throw new Error('intervals array should have at least one element') - } - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - const signerIndices = [] - let prevEpochNumber = -1 - for (const interval of intervals) { - const epochNumber = await blockchainParamsWrapper.getFirstBlockNumberForEpoch(interval.start) - if (epochNumber !== prevEpochNumber) { - const signerIndex = await this.signerIndexAtBlock(address, interval.start) - signerIndices.push(signerIndex) - prevEpochNumber = epochNumber - } - } - - return this.slash( - intervals.map((interval) => interval.start), - intervals.map((interval) => interval.end), - signerIndices, - ...(await this.trailingSlashArgs(address, intervals[0].start)) - ) - } - - /** - * Calculate the slashable downtime window with respect to a provided start/end block numbers and length. - * @param startBlock First block of the downtime. Determined from endBlock if not provided. - * @param endBlock Last block of the downtime. Determined from startBlock or grandparent of latest block if not provided. - * @param length Length of downtime. Determined from minimum slashable downtime if not provided. - */ - private async getSlashableDowntimeWindow( - startBlock?: number, - endBlock?: number, - length?: number - ): Promise { - if (!length) { - length = await this.slashableDowntime() - } - if (!endBlock) { - endBlock = startBlock ? startBlock + length - 1 : (await this.connection.getBlockNumber()) - 2 // latest grandparent - } - - return { - start: startBlock ?? endBlock - length + 1, - end: endBlock, - } - } -} - -export type DowntimeSlasherWrapperType = DowntimeSlasherWrapper diff --git a/packages/sdk/contractkit/src/wrappers/Election.test.ts b/packages/sdk/contractkit/src/wrappers/Election.test.ts deleted file mode 100644 index 6391de2bee6..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Election.test.ts +++ /dev/null @@ -1,341 +0,0 @@ -import { CeloTxReceipt } from '@celo/connect/lib/types' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { addressToPublicKey } from '@celo/utils/lib/signatureUtils' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { mineToNextEpoch } from '../test-utils/utils' - -import { zeroAddress } from '@ethereumjs/util' -import { newKitFromWeb3 } from '../kit' -import { AccountsWrapper } from './Accounts' -import { ElectionWrapper } from './Election' -import { LockedGoldWrapper } from './LockedGold' -import { ValidatorsWrapper } from './Validators' - -const minLockedGoldValue = Web3.utils.toWei('10000', 'ether') // 10k gold - -const blsPublicKey = - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00' -const blsPoP = - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900' - -jest.setTimeout(20000) - -testWithGanache('Election Wrapper', (web3) => { - const ZERO_GOLD = new BigNumber(web3.utils.toWei('0', 'ether')) - const ONE_HUNDRED_GOLD = new BigNumber(web3.utils.toWei('100', 'ether')) - const ONE_HUNDRED_ONE_GOLD = new BigNumber(web3.utils.toWei('101', 'ether')) - const TWO_HUNDRED_GOLD = new BigNumber(web3.utils.toWei('200', 'ether')) - const TWO_HUNDRED_ONE_GOLD = new BigNumber(web3.utils.toWei('201', 'ether')) - const THREE_HUNDRED_GOLD = new BigNumber(web3.utils.toWei('300', 'ether')) - const GROUP_COMMISSION = new BigNumber(0.1) - const kit = newKitFromWeb3(web3) - let accounts: string[] = [] - let election: ElectionWrapper - let accountsInstance: AccountsWrapper - let validators: ValidatorsWrapper - let lockedGold: LockedGoldWrapper - - beforeAll(async () => { - accounts = await kit.connection.getAccounts() - - election = await kit.contracts.getElection() - - validators = await kit.contracts.getValidators() - - lockedGold = await kit.contracts.getLockedGold() - - accountsInstance = await kit.contracts.getAccounts() - }) - - afterAll(async () => { - kit.connection.stop() - }) - - const registerAccountWithLockedGold = async ( - account: string, - value: string = minLockedGoldValue - ) => { - if (!(await accountsInstance.isAccount(account))) { - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - } - await lockedGold.lock().sendAndWaitForReceipt({ from: account, value }) - } - - const setupGroup = async (groupAccount: string) => { - await registerAccountWithLockedGold(groupAccount, new BigNumber(minLockedGoldValue).toFixed()) - await ( - await validators.registerValidatorGroup(GROUP_COMMISSION) - ).sendAndWaitForReceipt({ - from: groupAccount, - }) - } - - const setupValidator = async (validatorAccount: string) => { - await registerAccountWithLockedGold(validatorAccount) - const ecdsaPublicKey = await addressToPublicKey(validatorAccount, kit.connection.sign) - await validators - // @ts-ignore - .registerValidator(ecdsaPublicKey, blsPublicKey, blsPoP) - .sendAndWaitForReceipt({ - from: validatorAccount, - }) - } - - const setupGroupAndAffiliateValidator = async ( - groupAccount: string, - validatorAccount: string - ) => { - await setupGroup(groupAccount) - await setupValidator(validatorAccount) - await validators.affiliate(groupAccount).sendAndWaitForReceipt({ from: validatorAccount }) - await ( - await validators.addMember(groupAccount, validatorAccount) - ).sendAndWaitForReceipt({ - from: groupAccount, - }) - } - - const activateAndVote = async (groupAccount: string, userAccount: string, amount: BigNumber) => { - await (await election.vote(groupAccount, amount)).sendAndWaitForReceipt({ from: userAccount }) - await mineToNextEpoch(web3) - - const txList = await election.activate(userAccount) - - let promises: Promise[] = [] - - for (let tx of txList) { - const promise = tx.sendAndWaitForReceipt({ from: userAccount }) - promises.push(promise) - } - - await Promise.all(promises) - } - - describe('', () => { - let groupAccount: string - let validatorAccount: string - let userAccount: string - - beforeEach(async () => { - groupAccount = accounts[0] - validatorAccount = accounts[1] - userAccount = accounts[2] - - await setupGroupAndAffiliateValidator(groupAccount, validatorAccount) - await registerAccountWithLockedGold(userAccount) - }) - - describe('#getValidatorGroupVotes', () => { - // Confirm base assumptions once to avoid duplicating test code later - test('shows non-empty group as eligible', async () => { - const groupVotesBefore = await election.getValidatorGroupVotes(groupAccount) - expect(groupVotesBefore.eligible).toBe(true) - }) - - test('shows empty group as ineligible', async () => { - await validators.deaffiliate().sendAndWaitForReceipt({ from: validatorAccount }) - const groupVotesAfter = await election.getValidatorGroupVotes(groupAccount) - expect(groupVotesAfter.eligible).toBe(false) - }) - }) - - describe('#vote', () => { - beforeEach(async () => { - await ( - await election.vote(groupAccount, ONE_HUNDRED_GOLD) - ).sendAndWaitForReceipt({ - from: userAccount, - }) - }) - test('SBAT vote', async () => { - const totalGroupVotes = await election.getTotalVotesForGroup(groupAccount) - expect(totalGroupVotes).toEqual(ONE_HUNDRED_GOLD) - }) - - test('total votes remain unchanged when group becomes ineligible', async () => { - await validators.deaffiliate().sendAndWaitForReceipt({ from: validatorAccount }) - const totalGroupVotes = await election.getTotalVotesForGroup(groupAccount) - expect(totalGroupVotes).toEqual(ONE_HUNDRED_GOLD) - }) - }) - - describe('#activate', () => { - beforeEach(async () => { - await ( - await election.vote(groupAccount, ONE_HUNDRED_GOLD) - ).sendAndWaitForReceipt({ - from: userAccount, - }) - await mineToNextEpoch(web3) - - const txList = await election.activate(userAccount) - let promises: Promise[] = [] - for (let tx of txList) { - const promise = tx.sendAndWaitForReceipt({ from: userAccount }) - promises.push(promise) - } - await Promise.all(promises) - }) - - test('SBAT activate vote', async () => { - const activeVotes = await election.getActiveVotesForGroup(groupAccount) - expect(activeVotes).toEqual(ONE_HUNDRED_GOLD) - }) - - test('active votes remain unchanged when group becomes ineligible', async () => { - await validators.deaffiliate().sendAndWaitForReceipt({ from: validatorAccount }) - const activeVotes = await election.getActiveVotesForGroup(groupAccount) - expect(activeVotes).toEqual(ONE_HUNDRED_GOLD) - }) - }) - - describe('#revokeActive', () => { - beforeEach(async () => { - await activateAndVote(groupAccount, userAccount, ONE_HUNDRED_GOLD) - }) - - test('SBAT revoke active', async () => { - await ( - await election.revokeActive(userAccount, groupAccount, ONE_HUNDRED_GOLD) - ).sendAndWaitForReceipt({ - from: userAccount, - }) - - const remainingVotes = await election.getTotalVotesForGroup(groupAccount) - expect(remainingVotes).toEqual(ZERO_GOLD) - }) - - test('SBAT revoke active when group is ineligible', async () => { - await validators.deaffiliate().sendAndWaitForReceipt({ from: validatorAccount }) - await ( - await election.revokeActive(userAccount, groupAccount, ONE_HUNDRED_GOLD) - ).sendAndWaitForReceipt({ from: userAccount }) - - const remainingVotes = await election.getTotalVotesForGroup(groupAccount) - expect(remainingVotes).toEqual(ZERO_GOLD) - }) - }) - - describe('#revokePending', () => { - beforeEach(async () => { - await ( - await election.vote(groupAccount, ONE_HUNDRED_GOLD) - ).sendAndWaitForReceipt({ - from: userAccount, - }) - }) - - test('SBAT revoke pending', async () => { - await ( - await election.revokePending(userAccount, groupAccount, ONE_HUNDRED_GOLD) - ).sendAndWaitForReceipt({ - from: userAccount, - }) - const remainingVotes = await election.getTotalVotesForGroup(groupAccount) - expect(remainingVotes).toEqual(ZERO_GOLD) - }) - - test('SBAT revoke pending when group is ineligible', async () => { - await validators.deaffiliate().sendAndWaitForReceipt({ from: validatorAccount }) - await ( - await election.revokePending(userAccount, groupAccount, ONE_HUNDRED_GOLD) - ).sendAndWaitForReceipt({ - from: userAccount, - }) - const remainingVotes = await election.getTotalVotesForGroup(groupAccount) - expect(remainingVotes).toEqual(ZERO_GOLD) - }) - }) - - describe('#revoke', () => { - beforeEach(async () => { - await activateAndVote(groupAccount, userAccount, TWO_HUNDRED_GOLD) - await ( - await election.vote(groupAccount, ONE_HUNDRED_GOLD) - ).sendAndWaitForReceipt({ - from: userAccount, - }) - }) - - test('SBAT revoke active and pending votes', async () => { - const revokeTransactionsList = await election.revoke( - userAccount, - groupAccount, - THREE_HUNDRED_GOLD - ) - for (let tx of revokeTransactionsList) { - await tx.sendAndWaitForReceipt({ from: userAccount }) - } - const remainingVotes = await election.getTotalVotesForGroup(groupAccount) - expect(remainingVotes).toEqual(ZERO_GOLD) - }) - - test('SBAT revoke active and pending votes when group is ineligible', async () => { - await validators.deaffiliate().sendAndWaitForReceipt({ from: validatorAccount }) - const revokeTransactionsList = await election.revoke( - userAccount, - groupAccount, - THREE_HUNDRED_GOLD - ) - for (let tx of revokeTransactionsList) { - await tx.sendAndWaitForReceipt({ from: userAccount }) - } - const remainingVotes = await election.getTotalVotesForGroup(groupAccount) - expect(remainingVotes).toEqual(ZERO_GOLD) - }) - }) - }) - - describe('#findLesserAndGreaterAfterVote', () => { - let groupAccountA: string - let groupAccountB: string - let groupAccountC: string - let validatorAccountA: string - let validatorAccountB: string - let validatorAccountC: string - let userAccount: string - - beforeEach(async () => { - ;[ - groupAccountA, - groupAccountB, - groupAccountC, - validatorAccountA, - validatorAccountB, - validatorAccountC, - userAccount, - ] = accounts - - await registerAccountWithLockedGold(userAccount) - - // Cant `await Promise.all()` because of race condition when finding - // lesser and greater addresses for voting and adding a member to a group. - await setupGroupAndAffiliateValidator(groupAccountA, validatorAccountA) - await setupGroupAndAffiliateValidator(groupAccountB, validatorAccountB) - await setupGroupAndAffiliateValidator(groupAccountC, validatorAccountC) - - await activateAndVote(groupAccountA, userAccount, TWO_HUNDRED_GOLD) - await activateAndVote(groupAccountB, userAccount, TWO_HUNDRED_ONE_GOLD) - await activateAndVote(groupAccountC, userAccount, ONE_HUNDRED_ONE_GOLD) - }) - - test('Validator groups should be in the correct order', async () => { - await ( - await election.vote(groupAccountA, ONE_HUNDRED_GOLD) - ).sendAndWaitForReceipt({ - from: userAccount, - }) - const revokeTransactionsList = await election.revoke( - userAccount, - groupAccountA, - TWO_HUNDRED_GOLD - ) - for (let tx of revokeTransactionsList) { - await tx.sendAndWaitForReceipt({ from: userAccount }) - } - const groupOrder = await election.findLesserAndGreaterAfterVote(groupAccountA, ZERO_GOLD) - expect(groupOrder).toEqual({ lesser: zeroAddress(), greater: groupAccountC }) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/Election.ts b/packages/sdk/contractkit/src/wrappers/Election.ts deleted file mode 100644 index 61e8e164fb6..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Election.ts +++ /dev/null @@ -1,569 +0,0 @@ -import { Election } from '@celo/abis/web3/Election' -import { - eqAddress, - findAddressIndex, - normalizeAddressWith0x, - NULL_ADDRESS, -} from '@celo/base/lib/address' -import { concurrentMap, concurrentValuesMap } from '@celo/base/lib/async' -import { zeroRange, zip } from '@celo/base/lib/collections' -import { Address, CeloTransactionObject, EventLog, toTransactionObject } from '@celo/connect' -import BigNumber from 'bignumber.js' -import { - fixidityValueToBigNumber, - identity, - proxyCall, - proxySend, - tupleParser, - valueToBigNumber, - valueToInt, -} from './BaseWrapper' -import { BaseWrapperForGoverning } from './BaseWrapperForGoverning' -import { Validator, ValidatorGroup } from './Validators' - -export interface ValidatorGroupVote { - address: Address - name: string - votes: BigNumber - capacity: BigNumber - eligible: boolean -} - -export interface Voter { - address: Address - votes: GroupVote[] -} - -export interface VoterReward { - address: Address - addressPayment: BigNumber - group: ValidatorGroup - epochNumber: number -} - -export interface GroupVote { - group: Address - pending: BigNumber - active: BigNumber -} - -export interface GroupVoterReward { - group: ValidatorGroup - groupVoterPayment: BigNumber - epochNumber: number -} - -export interface ElectableValidators { - min: BigNumber - max: BigNumber -} - -export interface ElectionConfig { - electableValidators: ElectableValidators - electabilityThreshold: BigNumber - maxNumGroupsVotedFor: BigNumber - totalVotes: BigNumber - currentThreshold: BigNumber -} - -/** - * Contract for voting for validators and managing validator groups. - */ -export class ElectionWrapper extends BaseWrapperForGoverning { - /** - * Returns the minimum and maximum number of validators that can be elected. - * @returns The minimum and maximum number of validators that can be elected. - */ - async electableValidators(): Promise { - const { min, max } = await this.contract.methods.electableValidators().call() - return { min: valueToBigNumber(min), max: valueToBigNumber(max) } - } - - /** - * Returns the current election threshold. - * @returns Election threshold. - */ - electabilityThreshold = proxyCall( - this.contract.methods.getElectabilityThreshold, - undefined, - fixidityValueToBigNumber - ) - - /** - * Gets a validator address from the validator set at the given block number. - * @param index Index of requested validator in the validator set. - * @param blockNumber Block number to retrieve the validator set from. - * @return Address of validator at the requested index. - */ - validatorSignerAddressFromSet: (signerIndex: number, blockNumber: number) => Promise
= - proxyCall(this.contract.methods.validatorSignerAddressFromSet) - - /** - * Gets a validator address from the current validator set. - * @param index Index of requested validator in the validator set. - * @return Address of validator at the requested index. - */ - validatorSignerAddressFromCurrentSet: (index: number) => Promise
= proxyCall( - this.contract.methods.validatorSignerAddressFromCurrentSet, - tupleParser(identity) - ) - - /** - * Gets the size of the validator set that must sign the given block number. - * @param blockNumber Block number to retrieve the validator set from. - * @return Size of the validator set. - */ - numberValidatorsInSet: (blockNumber: number) => Promise = proxyCall( - this.contract.methods.numberValidatorsInSet, - undefined, - valueToInt - ) - - /** - * Gets the size of the current elected validator set. - * @return Size of the current elected validator set. - */ - numberValidatorsInCurrentSet = proxyCall( - this.contract.methods.numberValidatorsInCurrentSet, - undefined, - valueToInt - ) - - /** - * Returns the total votes received across all groups. - * @return The total votes received across all groups. - */ - getTotalVotes = proxyCall(this.contract.methods.getTotalVotes, undefined, valueToBigNumber) - - /** - * Returns the current validator signers using the precompiles. - * @return List of current validator signers. - */ - getCurrentValidatorSigners: () => Promise = proxyCall( - this.contract.methods.getCurrentValidatorSigners - ) - - /** - * Returns the validator signers for block `blockNumber`. - * @param blockNumber Block number to retrieve signers for. - * @return Address of each signer in the validator set. - */ - async getValidatorSigners(blockNumber: number): Promise { - const numValidators = await this.numberValidatorsInSet(blockNumber) - return concurrentMap(10, zeroRange(numValidators), (i: number) => - this.validatorSignerAddressFromSet(i, blockNumber) - ) - } - - /** - * Returns a list of elected validators with seats allocated to groups via the D'Hondt method. - * @return The list of elected validators. - * @dev See https://en.wikipedia.org/wiki/D%27Hondt_method#Allocation for more information. - */ - async electValidatorSigners(min?: number, max?: number): Promise { - if (min !== undefined || max !== undefined) { - const config = await this.getConfig() - const minArg = min === undefined ? config.electableValidators.min : min - const maxArg = max === undefined ? config.electableValidators.max : max - return this.contract.methods - .electNValidatorSigners(minArg.toString(10), maxArg.toString(10)) - .call() - } else { - return this.contract.methods.electValidatorSigners().call() - } - } - - /** - * Returns the total votes for `group`. - * @param group The address of the validator group. - * @return The total votes for `group`. - */ - async getTotalVotesForGroup(group: Address, blockNumber?: number): Promise { - // @ts-ignore: Expected 0-1 arguments, but got 2 - const votes = await this.contract.methods.getTotalVotesForGroup(group).call({}, blockNumber) - return valueToBigNumber(votes) - } - - /** - * Returns the total votes for `group` made by `account`. - * @param group The address of the validator group. - * @param account The address of the voting account. - * @return The total votes for `group` made by `account`. - */ - getTotalVotesForGroupByAccount = proxyCall( - this.contract.methods.getTotalVotesForGroupByAccount, - undefined, - valueToBigNumber - ) - - /** - * Returns the active votes for `group`. - * @param group The address of the validator group. - * @return The active votes for `group`. - */ - async getActiveVotesForGroup(group: Address, blockNumber?: number): Promise { - // @ts-ignore: Expected 0-1 arguments, but got 2 - const votes = await this.contract.methods.getActiveVotesForGroup(group).call({}, blockNumber) - return valueToBigNumber(votes) - } - - /** - * Returns the groups that `account` has voted for. - * @param account The address of the account casting votes. - * @return The groups that `account` has voted for. - */ - getGroupsVotedForByAccount: (account: Address) => Promise = proxyCall( - this.contract.methods.getGroupsVotedForByAccount - ) - - async getVotesForGroupByAccount( - account: Address, - group: Address, - blockNumber?: number - ): Promise { - const pending = await this.contract.methods - .getPendingVotesForGroupByAccount(group, account) - // @ts-ignore: Expected 0-1 arguments, but got 2 - .call({}, blockNumber) - - const active = await this.contract.methods - .getActiveVotesForGroupByAccount(group, account) - // @ts-ignore: Expected 0-1 arguments, but got 2 - .call({}, blockNumber) - - return { - group, - pending: valueToBigNumber(pending), - active: valueToBigNumber(active), - } - } - - async getVoter(account: Address, blockNumber?: number): Promise { - const groups: Address[] = await this.contract.methods - .getGroupsVotedForByAccount(account) - // @ts-ignore: Expected 0-1 arguments, but got 2 - .call({}, blockNumber) - - const votes = await concurrentMap(10, groups, (g) => - this.getVotesForGroupByAccount(account, g, blockNumber) - ) - return { address: account, votes } - } - - getTotalVotesByAccount = proxyCall( - this.contract.methods.getTotalVotesByAccount, - undefined, - valueToBigNumber - ) - - /** - * Returns whether or not the account has any pending votes. - * @param account The address of the account casting votes. - * @return The groups that `account` has voted for. - */ - async hasPendingVotes(account: Address): Promise { - const groups: string[] = await this.contract.methods.getGroupsVotedForByAccount(account).call() - const isPending = await Promise.all( - groups.map(async (g) => - valueToBigNumber( - await this.contract.methods.getPendingVotesForGroupByAccount(g, account).call() - ).isGreaterThan(0) - ) - ) - return isPending.some((a: boolean) => a) - } - - async hasActivatablePendingVotes(account: Address): Promise { - const groups = await this.contract.methods.getGroupsVotedForByAccount(account).call() - const isActivatable = await Promise.all( - groups.map((g: string) => this.contract.methods.hasActivatablePendingVotes(account, g).call()) - ) - return isActivatable.some((a: boolean) => a) - } - - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - const res = await Promise.all([ - this.electableValidators(), - this.electabilityThreshold(), - this.contract.methods.maxNumGroupsVotedFor().call(), - this.getTotalVotes(), - ]) - return { - electableValidators: res[0], - electabilityThreshold: res[1], - maxNumGroupsVotedFor: valueToBigNumber(res[2]), - totalVotes: res[3], - currentThreshold: res[3].multipliedBy(res[1]), - } - } - - async getValidatorGroupVotes(address: Address): Promise { - const votes = await this.contract.methods.getTotalVotesForGroup(address).call() - const eligible = await this.contract.methods.getGroupEligibility(address).call() - const numVotesReceivable = await this.contract.methods.getNumVotesReceivable(address).call() - const accounts = await this.contracts.getAccounts() - const name = (await accounts.getName(address)) || '' - return { - address, - name, - votes: valueToBigNumber(votes), - capacity: valueToBigNumber(numVotesReceivable).minus(votes), - eligible, - } - } - /** - * Returns the current registered validator groups and their total votes and eligibility. - */ - async getValidatorGroupsVotes(): Promise { - const validators = await this.contracts.getValidators() - const groups = await validators.getRegisteredValidatorGroupsAddresses() - return concurrentMap(5, groups, (g) => this.getValidatorGroupVotes(g as string)) - } - - private _activate = proxySend(this.connection, this.contract.methods.activate) - - /** - * Activates any activatable pending votes. - * @param account The account with pending votes to activate. - */ - async activate(account: Address): Promise>> { - const groups = await this.contract.methods.getGroupsVotedForByAccount(account).call() - const isActivatable = await Promise.all( - groups.map((g) => this.contract.methods.hasActivatablePendingVotes(account, g).call()) - ) - const groupsActivatable = groups.filter((_, i) => isActivatable[i]) - return groupsActivatable.map((g) => this._activate(g)) - } - - async revokePending( - account: Address, - group: Address, - value: BigNumber - ): Promise> { - const groups = await this.contract.methods.getGroupsVotedForByAccount(account).call() - const index = findAddressIndex(group, groups) - const { lesser, greater } = await this.findLesserAndGreaterAfterVote(group, value.times(-1)) - - return toTransactionObject( - this.connection, - this.contract.methods.revokePending(group, value.toFixed(), lesser, greater, index) - ) - } - - /** - * Creates a transaction object for revoking active votes. - * @param account Account to revoke votes for. - * @param group Validator group to revoke votes from. - * @param value Amount to be removed from active votes. - * @param lesserAfterVote First group address with less vote than `account`. - * @param greaterAfterVote First group address with more vote than `account`. - * @dev Must pass both `lesserAfterVote` and `greaterAfterVote` or neither. - */ - async revokeActive( - account: Address, - group: Address, - value: BigNumber, - lesserAfterVote?: Address, - greaterAfterVote?: Address - ): Promise> { - let lesser: Address, greater: Address - - const groups = await this.contract.methods.getGroupsVotedForByAccount(account).call() - const index = findAddressIndex(group, groups) - if (lesserAfterVote !== undefined && greaterAfterVote !== undefined) { - lesser = lesserAfterVote - greater = greaterAfterVote - } else { - const res = await this.findLesserAndGreaterAfterVote(group, value.times(-1)) - lesser = res.lesser - greater = res.greater - } - return toTransactionObject( - this.connection, - this.contract.methods.revokeActive(group, value.toFixed(), lesser, greater, index) - ) - } - - async revoke( - account: Address, - group: Address, - value: BigNumber - ): Promise>> { - const vote = await this.getVotesForGroupByAccount(account, group) - if (value.gt(vote.pending.plus(vote.active))) { - throw new Error(`can't revoke more votes for ${group} than have been made by ${account}`) - } - const txos = [] - const pendingValue = BigNumber.minimum(vote.pending, value) - if (!pendingValue.isZero()) { - txos.push(await this.revokePending(account, group, pendingValue)) - } - if (pendingValue.lt(value)) { - const activeValue = value.minus(pendingValue) - const { lesser, greater } = await this.findLesserAndGreaterAfterVote(group, value.times(-1)) - txos.push(await this.revokeActive(account, group, activeValue, lesser, greater)) - } - return txos - } - - /** - * Increments the number of total and pending votes for `group`. - * @param validatorGroup The validator group to vote for. - * @param value The amount of gold to use to vote. - */ - async vote(validatorGroup: Address, value: BigNumber): Promise> { - const { lesser, greater } = await this.findLesserAndGreaterAfterVote(validatorGroup, value) - - return toTransactionObject( - this.connection, - this.contract.methods.vote(validatorGroup, value.toFixed(), lesser, greater) - ) - } - - /** - * Returns the current eligible validator groups and their total votes. - */ - async getEligibleValidatorGroupsVotes(): Promise { - const res = await this.contract.methods.getTotalVotesForEligibleValidatorGroups().call() - return zip( - (a, b) => ({ - address: a, - name: '', - votes: new BigNumber(b), - capacity: new BigNumber(0), - eligible: true, - }), - res[0], - res[1] - ) - } - - async findLesserAndGreaterAfterVote( - votedGroup: Address, - voteWeight: BigNumber - ): Promise<{ lesser: Address; greater: Address }> { - const currentVotes = await this.getEligibleValidatorGroupsVotes() - const selectedGroup = currentVotes.find((votes) => eqAddress(votes.address, votedGroup)) - const voteTotal = selectedGroup ? selectedGroup.votes.plus(voteWeight) : voteWeight - let greaterKey = NULL_ADDRESS - let lesserKey = NULL_ADDRESS - - // This leverages the fact that the currentVotes are already sorted from - // greatest to lowest value - for (const vote of currentVotes) { - if (!eqAddress(vote.address, votedGroup)) { - if (vote.votes.isLessThanOrEqualTo(voteTotal)) { - lesserKey = vote.address - break - } - greaterKey = vote.address - } - } - - return { lesser: lesserKey, greater: greaterKey } - } - - /** - * Retrieves the set of validatorsparticipating in BFT at epochNumber. - * @param epochNumber The epoch to retrieve the elected validator set at. - */ - async getElectedValidators(epochNumber: number): Promise { - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - const blockNumber = await blockchainParamsWrapper.getFirstBlockNumberForEpoch(epochNumber) - const signers = await this.getValidatorSigners(blockNumber) - const validators = await this.contracts.getValidators() - return concurrentMap(10, signers, (addr) => validators.getValidatorFromSigner(addr)) - } - - /** - * Retrieves GroupVoterRewards at epochNumber. - * @param epochNumber The epoch to retrieve GroupVoterRewards at. - */ - async getGroupVoterRewards( - epochNumber: number, - useBlockNumber?: boolean - ): Promise { - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - - const blockNumber = await blockchainParamsWrapper.getLastBlockNumberForEpoch(epochNumber) - const events = await this.getPastEvents('EpochRewardsDistributedToVoters', { - fromBlock: blockNumber, - toBlock: blockNumber, - }) - const validators = await this.contracts.getValidators() - const validatorGroup: ValidatorGroup[] = await concurrentMap(10, events, (e: EventLog) => { - return validators.getValidatorGroup( - e.returnValues.group, - false, - useBlockNumber ? blockNumber : undefined - ) - }) - return events.map( - (e: EventLog, index: number): GroupVoterReward => ({ - epochNumber, - group: validatorGroup[index], - groupVoterPayment: valueToBigNumber(e.returnValues.value), - }) - ) - } - - /** - * Retrieves VoterRewards for address at epochNumber. - * @param address The address to retrieve VoterRewards for. - * @param epochNumber The epoch to retrieve VoterRewards at. - * @param voterShare Optionally address' share of group rewards. - */ - async getVoterRewards( - address: Address, - epochNumber: number, - useBlockNumber?: boolean, - voterShare?: Record - ): Promise { - const activeVoteShare = - voterShare || - (await this.getVoterShare( - address, - await ( - await this.contracts.getBlockchainParameters() - ).getLastBlockNumberForEpoch(epochNumber) - )) - const groupVoterRewards = await this.getGroupVoterRewards(epochNumber, useBlockNumber) - const voterRewards = groupVoterRewards.filter( - (e: GroupVoterReward) => normalizeAddressWith0x(e.group.address) in activeVoteShare - ) - return voterRewards.map((e: GroupVoterReward): VoterReward => { - const group = normalizeAddressWith0x(e.group.address) - return { - address, - addressPayment: e.groupVoterPayment.times(activeVoteShare[group]), - group: e.group, - epochNumber: e.epochNumber, - } - }) - } - - /** - * Retrieves a voter's share of active votes. - * @param address The voter to retrieve share for. - * @param blockNumber The block to retrieve the voter's share at. - */ - async getVoterShare(address: Address, blockNumber?: number): Promise> { - const activeVoterVotes: Record = {} - const voter = await this.getVoter(address, blockNumber) - for (const vote of voter.votes) { - const group: string = normalizeAddressWith0x(vote.group) - activeVoterVotes[group] = vote.active - } - return concurrentValuesMap( - 10, - activeVoterVotes, - async (voterVotes: BigNumber, group: Address) => - voterVotes.dividedBy(await this.getActiveVotesForGroup(group, blockNumber)) - ) - } -} - -export type ElectionWrapperType = ElectionWrapper diff --git a/packages/sdk/contractkit/src/wrappers/EpochRewards.ts b/packages/sdk/contractkit/src/wrappers/EpochRewards.ts deleted file mode 100644 index c69d6b9244c..00000000000 --- a/packages/sdk/contractkit/src/wrappers/EpochRewards.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { EpochRewards } from '@celo/abis/web3/EpochRewards' -import { fromFixed } from '@celo/utils/lib/fixidity' -import { BaseWrapper, proxyCall, valueToBigNumber } from './BaseWrapper' - -const parseFixidity = (v: string) => fromFixed(valueToBigNumber(v)) - -export class EpochRewardsWrapper extends BaseWrapper { - getRewardsMultiplierParameters = proxyCall( - this.contract.methods.getRewardsMultiplierParameters, - undefined, - (res) => ({ - max: parseFixidity(res[0]), - underspendAdjustment: parseFixidity(res[1]), - overspendAdjustment: parseFixidity(res[2]), - }) - ) - - getTargetVotingYieldParameters = proxyCall( - this.contract.methods.getTargetVotingYieldParameters, - undefined, - (res) => ({ - target: parseFixidity(res[0]), - max: parseFixidity(res[1]), - adjustment: parseFixidity(res[2]), - }) - ) - - getCommunityReward = proxyCall( - this.contract.methods.getCommunityRewardFraction, - undefined, - parseFixidity - ) - - getCarbonOffsetting = async () => { - const factor = parseFixidity(await this.contract.methods.getCarbonOffsettingFraction().call()) - const partner = await this.contract.methods.carbonOffsettingPartner().call() - return { - factor, - partner, - } - } - - getTargetValidatorEpochPayment = proxyCall( - this.contract.methods.targetValidatorEpochPayment, - undefined, - valueToBigNumber - ) - - async getConfig() { - const rewardsMultiplier = await this.getRewardsMultiplierParameters() - const carbonOffsetting = await this.getCarbonOffsetting() - const communityReward = await this.getCommunityReward() - const targetVotingYield = await this.getTargetVotingYieldParameters() - const targetValidatorEpochPayment = await this.getTargetValidatorEpochPayment() - return { - rewardsMultiplier, - carbonOffsetting, - communityReward, - targetVotingYield, - targetValidatorEpochPayment, - } - } -} - -export type EpochRewardsWrapperType = EpochRewardsWrapper diff --git a/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts b/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts deleted file mode 100644 index b9228cd455f..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Erc20Wrapper.ts +++ /dev/null @@ -1,63 +0,0 @@ -// NOTE: removing this import results in `yarn build` failures in Dockerfiles -// after the move to node 10. This allows types to be inferred without -// referencing '@celo/utils/node_modules/bignumber.js' -import { IERC20 } from '@celo/abis/web3/IERC20' -import BigNumber from 'bignumber.js' -import { BaseWrapper, proxyCall, proxySend, valueToBigNumber } from './BaseWrapper' - -/** - * ERC-20 contract only containing the non-optional functions - */ -export class Erc20Wrapper extends BaseWrapper { - /** - * Querying allowance. - * @param from Account who has given the allowance. - * @param to Address of account to whom the allowance was given. - * @returns Amount of allowance. - */ - allowance = proxyCall(this.contract.methods.allowance, undefined, valueToBigNumber) - - /** - * Returns the total supply of the token, that is, the amount of tokens currently minted. - * @returns Total supply. - */ - totalSupply = proxyCall(this.contract.methods.totalSupply, undefined, valueToBigNumber) - - /** - * Approve a user to transfer the token on behalf of another user. - * @param spender The address which is being approved to spend the token. - * @param value The amount of the token approved to the spender. - * @return True if the transaction succeeds. - */ - approve = proxySend(this.connection, this.contract.methods.approve) - - /** - * Transfers the token from one address to another. - * @param to The address to transfer the token to. - * @param value The amount of the token to transfer. - * @return True if the transaction succeeds. - */ - transfer = proxySend(this.connection, this.contract.methods.transfer) - - /** - * Transfers the token from one address to another on behalf of a user. - * @param from The address to transfer the token from. - * @param to The address to transfer the token to. - * @param value The amount of the token to transfer. - * @return True if the transaction succeeds. - */ - transferFrom = proxySend(this.connection, this.contract.methods.transferFrom) - - /** - * Gets the balance of the specified address. - * @param owner The address to query the balance of. - * @return The balance of the specified address. - */ - balanceOf: (owner: string) => Promise = proxyCall( - this.contract.methods.balanceOf, - undefined, - valueToBigNumber - ) -} - -export type Erc20WrapperType = Erc20Wrapper diff --git a/packages/sdk/contractkit/src/wrappers/Escrow.test.ts b/packages/sdk/contractkit/src/wrappers/Escrow.test.ts deleted file mode 100644 index 89fecbdaebf..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Escrow.test.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { newKitFromWeb3 } from '../kit' -import { getParsedSignatureOfAddress } from '../utils/getParsedSignatureOfAddress' -import { EscrowWrapper } from './Escrow' -import { FederatedAttestationsWrapper } from './FederatedAttestations' -import { StableTokenWrapper } from './StableTokenWrapper' - -testWithGanache('Escrow Wrapper', (web3) => { - const kit = newKitFromWeb3(web3) - const TEN_CUSD = kit.web3.utils.toWei('10', 'ether') - const TIMESTAMP = 1665080820 - - function getParsedSignatureOfAddressForTest(address: string, signer: string) { - return getParsedSignatureOfAddress( - web3.utils.soliditySha3, - kit.connection.sign, - address, - signer - ) - } - - let accounts: string[] = [] - let escrow: EscrowWrapper - let federatedAttestations: FederatedAttestationsWrapper - let stableTokenContract: StableTokenWrapper - let identifier: string - - beforeAll(async () => { - escrow = await kit.contracts.getEscrow() - stableTokenContract = await kit.contracts.getStableToken() - federatedAttestations = await kit.contracts.getFederatedAttestations() - - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - - identifier = kit.web3.utils.soliditySha3({ - t: 'bytes32', - v: kit.web3.eth.accounts.create().address, - }) as string - }) - - it('transfer with trusted issuers should set TrustedIssuersPerPayment', async () => { - const testPaymentId = kit.web3.eth.accounts.create().address - await federatedAttestations - .registerAttestationAsIssuer(identifier, kit.defaultAccount as string, TIMESTAMP) - .sendAndWaitForReceipt() - - await stableTokenContract.approve(escrow.address, TEN_CUSD).sendAndWaitForReceipt() - - await escrow - .transferWithTrustedIssuers( - identifier, - stableTokenContract.address, - TEN_CUSD, - 1000, - testPaymentId, - 1, - accounts - ) - .sendAndWaitForReceipt() - - const trustedIssuersPerPayment = await escrow.getTrustedIssuersPerPayment(testPaymentId) - - expect(trustedIssuersPerPayment[0]).toEqual(kit.defaultAccount) - }) - it('withdraw should be successful after transferWithTrustedIssuers', async () => { - const sender: string = accounts[1] - const receiver: string = accounts[2] - const withdrawKeyAddress: string = accounts[3] - const oneDayInSecs: number = 86400 - const parsedSig = await getParsedSignatureOfAddressForTest(receiver, withdrawKeyAddress) - - await federatedAttestations - .registerAttestationAsIssuer(identifier, receiver, TIMESTAMP) - .sendAndWaitForReceipt() - - const senderBalanceBefore = await stableTokenContract.balanceOf(sender) - const receiverBalanceBefore = await stableTokenContract.balanceOf(receiver) - - await stableTokenContract - .approve(escrow.address, TEN_CUSD) - .sendAndWaitForReceipt({ from: sender }) - - await escrow - .transferWithTrustedIssuers( - identifier, - stableTokenContract.address, - TEN_CUSD, - oneDayInSecs, - withdrawKeyAddress, - 1, - accounts - ) - .sendAndWaitForReceipt({ from: sender }) - - await escrow - .withdraw(withdrawKeyAddress, parsedSig.v, parsedSig.r, parsedSig.s) - .sendAndWaitForReceipt({ from: receiver }) - - const senderBalanceAfter = await stableTokenContract.balanceOf(sender) - const receiverBalanceAfter = await stableTokenContract.balanceOf(receiver) - - expect(senderBalanceBefore.minus(+TEN_CUSD)).toEqual(senderBalanceAfter) - expect(receiverBalanceBefore.plus(+TEN_CUSD)).toEqual(receiverBalanceAfter) - }) - it('withdraw should revert if attestation is not registered', async () => { - const sender: string = accounts[1] - const receiver: string = accounts[2] - const withdrawKeyAddress: string = accounts[3] - const oneDayInSecs: number = 86400 - const parsedSig = await getParsedSignatureOfAddressForTest(receiver, withdrawKeyAddress) - - await stableTokenContract - .approve(escrow.address, TEN_CUSD) - .sendAndWaitForReceipt({ from: sender }) - - await escrow - .transferWithTrustedIssuers( - identifier, - stableTokenContract.address, - TEN_CUSD, - oneDayInSecs, - withdrawKeyAddress, - 1, - accounts - ) - .sendAndWaitForReceipt({ from: sender }) - - await expect( - escrow - .withdraw(withdrawKeyAddress, parsedSig.v, parsedSig.r, parsedSig.s) - .sendAndWaitForReceipt() - ).rejects.toThrow() - }) - it('withdraw should revert if attestation is registered by issuer not on the trusted issuers list', async () => { - const sender: string = accounts[1] - const receiver: string = accounts[2] - const withdrawKeyAddress: string = accounts[3] - const oneDayInSecs: number = 86400 - const parsedSig = await getParsedSignatureOfAddressForTest(receiver, withdrawKeyAddress) - - await federatedAttestations - .registerAttestationAsIssuer(identifier, receiver, TIMESTAMP) - .sendAndWaitForReceipt() - - await stableTokenContract - .approve(escrow.address, TEN_CUSD) - .sendAndWaitForReceipt({ from: sender }) - - await escrow - .transferWithTrustedIssuers( - identifier, - stableTokenContract.address, - TEN_CUSD, - oneDayInSecs, - withdrawKeyAddress, - 1, - [accounts[5]] - ) - .sendAndWaitForReceipt({ from: sender }) - - await expect( - escrow - .withdraw(withdrawKeyAddress, parsedSig.v, parsedSig.r, parsedSig.s) - .sendAndWaitForReceipt() - ).rejects.toThrow() - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/Escrow.ts b/packages/sdk/contractkit/src/wrappers/Escrow.ts deleted file mode 100644 index 142022303f9..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Escrow.ts +++ /dev/null @@ -1,135 +0,0 @@ -import { Escrow } from '@celo/abis/web3/Escrow' -import { Address, CeloTransactionObject } from '@celo/connect' -import { BaseWrapper, proxyCall, proxySend } from './BaseWrapper' - -/** - * Contract for handling reserve for stable currencies - */ -export class EscrowWrapper extends BaseWrapper { - /** - * @notice Gets the unique escrowed payment for a given payment ID - * @param paymentId The ID of the payment to get. - * @return An EscrowedPayment struct which holds information such - * as; recipient identifier, sender address, token address, value, etc. - */ - escrowedPayments = proxyCall(this.contract.methods.escrowedPayments) - - /** - * @notice Gets array of all Escrowed Payments received by identifier. - * @param identifier The hash of an identifier of the receiver of the escrowed payment. - * @return An array containing all the IDs of the Escrowed Payments that were received - * by the specified receiver. - */ - getReceivedPaymentIds = proxyCall(this.contract.methods.getReceivedPaymentIds) - - /** - * @notice Gets array of all Escrowed Payment IDs sent by sender. - * @param sender The address of the sender of the escrowed payments. - * @return An array containing all the IDs of the Escrowed Payments that were sent by the - * specified sender. - */ - getSentPaymentIds = proxyCall(this.contract.methods.getSentPaymentIds) - - /** - * @notice Gets trusted issuers set as default for payments by `transfer` function. - * @return An array of addresses of trusted issuers. - */ - getDefaultTrustedIssuers = proxyCall(this.contract.methods.getDefaultTrustedIssuers) - - /** - * @notice Gets array of all trusted issuers set per paymentId. - * @param paymentId The ID of the payment to get. - * @return An array of addresses of trusted issuers set for an escrowed payment. - */ - getTrustedIssuersPerPayment = proxyCall(this.contract.methods.getTrustedIssuersPerPayment) - - /** - * @notice Transfer tokens to a specific user. Supports both identity with privacy (an empty - * identifier and 0 minAttestations) and without (with identifier and minAttestations). - * Sets trustedIssuers to the issuers listed in `defaultTrustedIssuers`. - * (To override this and set custom trusted issuers, use `transferWithTrustedIssuers`.) - * @param identifier The hashed identifier of a user to transfer to. - * @param token The token to be transferred. - * @param value The amount to be transferred. - * @param expirySeconds The number of seconds before the sender can revoke the payment. - * @param paymentId The address of the temporary wallet associated with this payment. Users must - * prove ownership of the corresponding private key to withdraw from escrow. - * @param minAttestations The min number of attestations required to withdraw the payment. - * @return True if transfer succeeded. - * @dev Throws if 'token' or 'value' is 0. - * @dev Throws if identifier is null and minAttestations > 0. - * @dev If minAttestations is 0, trustedIssuers will be set to empty list. - * @dev msg.sender needs to have already approved this contract to transfer - */ - transfer: ( - identifier: string, - token: Address, - value: number | string, - expirySeconds: number, - paymentId: Address, - minAttestations: number - ) => CeloTransactionObject = proxySend(this.connection, this.contract.methods.transfer) - - /** - * @notice Withdraws tokens for a verified user. - * @param paymentId The ID for the EscrowedPayment struct that contains all relevant information. - * @param v The recovery id of the incoming ECDSA signature. - * @param r Output value r of the ECDSA signature. - * @param s Output value s of the ECDSA signature. - * @return True if withdraw succeeded. - * @dev Throws if 'token' or 'value' is 0. - * @dev Throws if msg.sender does not prove ownership of the withdraw key. - */ - withdraw: ( - paymentId: Address, - v: number | string, - r: string | number[], - s: string | number[] - ) => CeloTransactionObject = proxySend(this.connection, this.contract.methods.withdraw) - - /** - * @notice Revokes tokens for a sender who is redeeming a payment after it has expired. - * @param paymentId The ID for the EscrowedPayment struct that contains all relevant information. - * @dev Throws if 'token' or 'value' is 0. - * @dev Throws if msg.sender is not the sender of payment. - * @dev Throws if redeem time hasn't been reached yet. - */ - revoke: (paymentId: string) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.revoke - ) - - /** - * @notice Transfer tokens to a specific user. Supports both identity with privacy (an empty - * identifier and 0 minAttestations) and without (with identifier - * and attestations completed by trustedIssuers). - * @param identifier The hashed identifier of a user to transfer to. - * @param token The token to be transferred. - * @param value The amount to be transferred. - * @param expirySeconds The number of seconds before the sender can revoke the payment. - * @param paymentId The address of the temporary wallet associated with this payment. Users must - * prove ownership of the corresponding private key to withdraw from escrow. - * @param minAttestations The min number of attestations required to withdraw the payment. - * @param trustedIssuers Array of issuers whose attestations in FederatedAttestations.sol - * will be accepted to prove ownership over an identifier. - * @return True if transfer succeeded. - * @dev Throws if 'token' or 'value' is 0. - * @dev Throws if identifier is null and minAttestations > 0. - * @dev Throws if minAttestations == 0 but trustedIssuers are provided. - * @dev msg.sender needs to have already approved this contract to transfer. - */ - transferWithTrustedIssuers: ( - identifier: string, - token: Address, - value: number | string, - expirySeconds: number, - paymentId: Address, - minAttestations: number, - trustedIssuers: Address[] - ) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.transferWithTrustedIssuers - ) -} - -export type EscrowWrapperType = EscrowWrapper diff --git a/packages/sdk/contractkit/src/wrappers/Exchange.test.ts b/packages/sdk/contractkit/src/wrappers/Exchange.test.ts deleted file mode 100644 index a7782c4dbd5..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Exchange.test.ts +++ /dev/null @@ -1,181 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { StableToken } from '../celo-tokens' -import { ContractKit, newKitFromWeb3 } from '../kit' -import { ExchangeWrapper } from './Exchange' -import { StableTokenWrapper } from './StableTokenWrapper' - -/* -TEST NOTES: -- In migrations: The only account that has a stable balance is accounts[0] -*/ - -testWithGanache('Exchange Wrapper', (web3) => { - const kit = newKitFromWeb3(web3) - for (const stableToken of Object.values(StableToken)) { - describe(`${stableToken}`, () => { - testExchange(kit, stableToken) - }) - } -}) - -export function testExchange(kit: ContractKit, stableTokenName: StableToken) { - const web3 = kit.web3 - const ONE = web3.utils.toWei('1', 'ether') - - const LARGE_BUY_AMOUNT = web3.utils.toWei('1000', 'ether') - - let accounts: string[] = [] - let exchange: ExchangeWrapper - let stableToken: StableTokenWrapper - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - exchange = await kit.contracts.getExchange(stableTokenName) - stableToken = await kit.contracts.getStableToken(stableTokenName) - }) - - test('SBAT check buckets', async () => { - const [buyBucket, sellBucket] = await exchange.getBuyAndSellBuckets(true) - expect(buyBucket).toBeBigNumber() - expect(sellBucket).toBeBigNumber() - expect(buyBucket.toNumber()).toBeGreaterThan(0) - expect(sellBucket.toNumber()).toBeGreaterThan(0) - }) - - describe('#exchange', () => { - test('executes successfully', async () => { - const minBuyAmount = '100' - await stableToken.approve(exchange.address, ONE).sendAndWaitForReceipt({ from: accounts[0] }) - const result = await exchange - .exchange(ONE, minBuyAmount, false) - .sendAndWaitForReceipt({ from: accounts[0] }) - expect(result.events?.Exchanged).toBeDefined() - expect(result.events?.Exchanged.returnValues.sellAmount).toBe(ONE) - }) - }) - - describe('#sell', () => { - test('executes successfully', async () => { - const minBuyAmount = '100' - await stableToken.approve(exchange.address, ONE).sendAndWaitForReceipt({ from: accounts[0] }) - const result = await exchange - .sell(ONE, minBuyAmount, false) - .sendAndWaitForReceipt({ from: accounts[0] }) - expect(result.events?.Exchanged).toBeDefined() - expect(result.events?.Exchanged.returnValues.sellAmount).toBe(ONE) - }) - }) - - describe('#buy', () => { - test('executes successfully', async () => { - const stableAmount = (await exchange.quoteGoldBuy(ONE)).toString() - await stableToken - .approve(exchange.address, stableAmount) - .sendAndWaitForReceipt({ from: accounts[0] }) - const result = await exchange - .buy(ONE, stableAmount, true) - .sendAndWaitForReceipt({ from: accounts[0] }) - expect(result.events?.Exchanged).toBeDefined() - expect(result.events?.Exchanged.returnValues.buyAmount).toBe(ONE) - expect(result.events?.Exchanged.returnValues.soldGold).toBe(false) - }) - }) - - test('SBAT quoteStableSell', () => expect(exchange.quoteStableSell(ONE)).resolves.toBeBigNumber()) - test('SBAT quoteGoldSell', () => expect(exchange.quoteGoldSell(ONE)).resolves.toBeBigNumber()) - test('SBAT quoteStableBuy', () => expect(exchange.quoteStableBuy(ONE)).resolves.toBeBigNumber()) - test('SBAT quoteGoldBuy', () => expect(exchange.quoteGoldBuy(ONE)).resolves.toBeBigNumber()) - - test('SBAT sellStable', async () => { - const goldAmount = await exchange.quoteStableSell(ONE) - const approveTx = await stableToken.approve(exchange.address, ONE).send() - await approveTx.waitReceipt() - const sellTx = await exchange.sellStable(ONE, goldAmount).send() - const result = await sellTx.waitReceipt() - expect(result.events?.Exchanged).toBeDefined() - expect(result.events?.Exchanged.returnValues.sellAmount).toBe(ONE) - expect(result.events?.Exchanged.returnValues.soldGold).toBe(false) - }) - - test('SBAT sellGold', async () => { - const stableAmount = await exchange.quoteGoldSell(ONE) - const goldToken = await kit.contracts.getGoldToken() - const approveTx = await goldToken.approve(exchange.address, ONE).send() - await approveTx.waitReceipt() - const sellTx = await exchange.sellGold(ONE, stableAmount).send() - const result = await sellTx.waitReceipt() - expect(result.events?.Exchanged).toBeDefined() - expect(result.events?.Exchanged.returnValues.sellAmount).toBe(ONE) - expect(result.events?.Exchanged.returnValues.soldGold).toBe(true) - }) - - test('SBAT buyStable', async () => { - const goldAmount = await exchange.quoteStableBuy(ONE) - const goldToken = await kit.contracts.getGoldToken() - const approveTx = await goldToken.approve(exchange.address, goldAmount.toString()).send() - await approveTx.waitReceipt() - const buyTx = await exchange.buyStable(ONE, goldAmount).send() - const result = await buyTx.waitReceipt() - expect(result.events?.Exchanged).toBeDefined() - expect(result.events?.Exchanged.returnValues.buyAmount).toBe(ONE) - expect(result.events?.Exchanged.returnValues.soldGold).toBe(true) - }) - - test('SBAT buyGold', async () => { - const stableAmount = await exchange.quoteGoldBuy(ONE) - const approveTx = await stableToken.approve(exchange.address, stableAmount.toString()).send() - await approveTx.waitReceipt() - const buyTx = await exchange.buyGold(ONE, stableAmount).send() - const result = await buyTx.waitReceipt() - expect(result.events?.Exchanged).toBeDefined() - expect(result.events?.Exchanged.returnValues.buyAmount).toBe(ONE) - expect(result.events?.Exchanged.returnValues.soldGold).toBe(false) - }) - - test('SBAT getExchangeRate for selling gold', async () => { - const sellGoldRate = await exchange.getExchangeRate(LARGE_BUY_AMOUNT, true) - expect(sellGoldRate.toNumber()).toBeGreaterThan(0) - }) - - test('SBAT getExchangeRate for selling stables', async () => { - const sellGoldRate = await exchange.getStableExchangeRate(LARGE_BUY_AMOUNT) - expect(sellGoldRate.toNumber()).toBeGreaterThan(0) - }) - - /** Deprecated USD-specific functions kept as aliases for backward compatibility */ - - test('SBAT use quoteUsdSell as an alias for quoteStableSell', () => - expect(exchange.quoteUsdSell(ONE)).resolves.toBeBigNumber()) - - test('SBAT use quoteUsdBuy as an alias for quoteStableBuy', () => - expect(exchange.quoteUsdBuy(ONE)).resolves.toBeBigNumber()) - - test('SBAT use sellDollar as an alias for sellStable', async () => { - const goldAmount = await exchange.quoteUsdSell(ONE) - const approveTx = await stableToken.approve(exchange.address, ONE).send() - await approveTx.waitReceipt() - const sellTx = await exchange.sellDollar(ONE, goldAmount).send() - const result = await sellTx.waitReceipt() - expect(result.events?.Exchanged).toBeDefined() - expect(result.events?.Exchanged.returnValues.sellAmount).toBe(ONE) - expect(result.events?.Exchanged.returnValues.soldGold).toBe(false) - }) - - test('SBAT use buyDollar as an alias for buyStable', async () => { - const goldAmount = await exchange.quoteStableBuy(ONE) - const goldToken = await kit.contracts.getGoldToken() - const approveTx = await goldToken.approve(exchange.address, goldAmount.toString()).send() - await approveTx.waitReceipt() - const buyTx = await exchange.buyDollar(ONE, goldAmount).send() - const result = await buyTx.waitReceipt() - expect(result.events?.Exchanged).toBeDefined() - expect(result.events?.Exchanged.returnValues.buyAmount).toBe(ONE) - expect(result.events?.Exchanged.returnValues.soldGold).toBe(true) - }) - - test('SBAT use getUsdExchangeRate as an alias for getStableExchangeRate', async () => { - const sellGoldRate = await exchange.getUsdExchangeRate(LARGE_BUY_AMOUNT) - expect(sellGoldRate.toNumber()).toBeGreaterThan(0) - }) -} diff --git a/packages/sdk/contractkit/src/wrappers/Exchange.ts b/packages/sdk/contractkit/src/wrappers/Exchange.ts deleted file mode 100644 index 8ebb1482edb..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Exchange.ts +++ /dev/null @@ -1,346 +0,0 @@ -import { Exchange } from '@celo/abis/web3/mento/Exchange' -import { CeloTransactionObject } from '@celo/connect' -import BigNumber from 'bignumber.js' -import { - BaseWrapper, - fixidityValueToBigNumber, - identity, - proxyCall, - proxySend, - secondsToDurationString, - tupleParser, - unixSecondsTimestampToDateString, - valueToBigNumber, - valueToFrac, - valueToString, -} from './BaseWrapper' - -export interface ExchangeConfig { - spread: BigNumber - reserveFraction: BigNumber - updateFrequency: BigNumber - minimumReports: BigNumber - lastBucketUpdate: BigNumber -} - -/** - * Contract that allows to exchange StableToken for GoldToken and vice versa - * using a Constant Product Market Maker Model aka Mento - */ -export class ExchangeWrapper extends BaseWrapper { - /** - * Query spread parameter - * @returns Current spread charged on exchanges - */ - spread = proxyCall(this.contract.methods.spread, undefined, fixidityValueToBigNumber) - /** - * Query reserve fraction parameter - * @returns Current fraction to commit to the gold bucket - */ - reserveFraction = proxyCall( - this.contract.methods.reserveFraction, - undefined, - fixidityValueToBigNumber - ) - /** - * Query update frequency parameter - * @returns The time period that needs to elapse between bucket - * updates - */ - updateFrequency = proxyCall(this.contract.methods.updateFrequency, undefined, valueToBigNumber) - /** - * Query minimum reports parameter - * @returns The minimum number of fresh reports that need to be - * present in the oracle to update buckets - * commit to the gold bucket - */ - minimumReports = proxyCall(this.contract.methods.minimumReports, undefined, valueToBigNumber) - /** - * Query last bucket update - * @returns The timestamp of the last time exchange buckets were updated. - */ - lastBucketUpdate = proxyCall(this.contract.methods.lastBucketUpdate, undefined, valueToBigNumber) - - /** - * DEPRECATED: use function sell - * Exchanges sellAmount of sellToken in exchange for at least minBuyAmount of buyToken - * Requires the sellAmount to have been approved to the exchange - * @param sellAmount The amount of sellToken the user is selling to the exchange - * @param minBuyAmount The minimum amount of buyToken the user has to receive for this - * transaction to succeed - * @param sellGold `true` if gold is the sell token - * @return The amount of buyToken that was transfered - */ - exchange: ( - sellAmount: BigNumber.Value, - minBuyAmount: BigNumber.Value, - sellGold: boolean - ) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.exchange, - tupleParser(valueToString, valueToString, identity) - ) - - /** - * Sells sellAmount of sellToken in exchange for at least minBuyAmount of buyToken - * Requires the sellAmount to have been approved to the exchange - * @param sellAmount The amount of sellToken the user is selling to the exchange - * @param minBuyAmount The minimum amount of buyToken the user has to receive for this - * transaction to succeed - * @param sellGold `true` if gold is the sell token - * @return The amount of buyToken that was transfered - */ - sell: ( - sellAmount: BigNumber.Value, - minBuyAmount: BigNumber.Value, - sellGold: boolean - ) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.sell, - tupleParser(valueToString, valueToString, identity) - ) - - /** - * Sells sellAmount of sellToken in exchange for at least minBuyAmount of buyToken - * Requires the sellAmount to have been approved to the exchange - * @param buyAmount The amount of sellToken the user is selling to the exchange - * @param maxSellAmount The maximum amount of sellToken the user will sell for this - * transaction to succeed - * @param buyGold `true` if gold is the buy token - * @return The amount of buyToken that was transfered - */ - buy: ( - buyAmount: BigNumber.Value, - maxSellAmount: BigNumber.Value, - buyGold: boolean - ) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.buy, - tupleParser(valueToString, valueToString, identity) - ) - - /** - * @dev Returns the amount of buyToken a user would get for sellAmount of sellToken - * @param sellAmount The amount of sellToken the user is selling to the exchange - * @param sellGold `true` if gold is the sell token - * @return The corresponding buyToken amount. - */ - async getBuyTokenAmount(sellAmount: BigNumber.Value, sellGold: boolean): Promise { - const sell = valueToString(sellAmount) - if (new BigNumber(sell).eq(0)) { - return new BigNumber(0) - } - const res = await this.contract.methods.getBuyTokenAmount(sell, sellGold).call() - return valueToBigNumber(res) - } - - /** - * Returns the amount of sellToken a user would need to exchange to receive buyAmount of - * buyToken. - * @param buyAmount The amount of buyToken the user would like to purchase. - * @param sellGold `true` if gold is the sell token - * @return The corresponding sellToken amount. - */ - async getSellTokenAmount(buyAmount: BigNumber.Value, sellGold: boolean): Promise { - const buy = valueToString(buyAmount) - if (new BigNumber(buy).eq(0)) { - return new BigNumber(0) - } - const res = await this.contract.methods.getSellTokenAmount(buy, sellGold).call() - return valueToBigNumber(res) - } - - /** - * Returns the buy token and sell token bucket sizes, in order. The ratio of - * the two also represents the exchange rate between the two. - * @param sellGold `true` if gold is the sell token - * @return [buyTokenBucket, sellTokenBucket] - */ - getBuyAndSellBuckets: (sellGold: boolean) => Promise<[BigNumber, BigNumber]> = proxyCall( - this.contract.methods.getBuyAndSellBuckets, - undefined, - (callRes: { 0: string; 1: string }) => - [valueToBigNumber(callRes[0]), valueToBigNumber(callRes[1])] as [BigNumber, BigNumber] - ) - - /** - * Sell amount of CELO in exchange for at least minStableAmount of the stable token - * Requires the amount to have been approved to the exchange - * @param amount The amount of CELO the user is selling to the exchange - * @param minStableAmount The minimum amount of the stable token the user has to receive for this - * transaction to succeed - */ - sellGold = (amount: BigNumber.Value, minStableAmount: BigNumber.Value) => - this.sell(amount, minStableAmount, true) - - /** - * Sell amount of the stable token in exchange for at least minGoldAmount of CELO - * Requires the amount to have been approved to the exchange - * @param amount The amount of the stable token the user is selling to the exchange - * @param minGoldAmount The minimum amount of CELO the user has to receive for this - * transaction to succeed - */ - sellStable = (amount: BigNumber.Value, minGoldAmount: BigNumber.Value) => - this.sell(amount, minGoldAmount, false) - - /** - * Deprecated alias of sellStable. - * Sell amount of the stable token in exchange for at least minGoldAmount of CELO - * Requires the amount to have been approved to the exchange - * @deprecated use sellStable instead - * @param amount The amount of the stable token the user is selling to the exchange - * @param minGoldAmount The minimum amount of CELO the user has to receive for this - * transaction to succeed - */ - sellDollar = this.sellStable - - /** - * Buy amount of CELO in exchange for at most maxStableAmount of the stable token - * Requires the amount to have been approved to the exchange - * @param amount The amount of CELO the user is buying from the exchange - * @param maxStableAmount The maximum amount of the stable token the user will pay for this - * transaction to succeed - */ - buyGold = (amount: BigNumber.Value, maxStableAmount: BigNumber.Value) => - this.buy(amount, maxStableAmount, true) - - /** - * Buy amount of the stable token in exchange for at least minGoldAmount of CELO - * Requires the amount to have been approved to the exchange - * @param amount The amount of the stable token the user is selling to the exchange - * @param maxGoldAmount The maximum amount of CELO the user will pay for this - * transaction to succeed - */ - buyStable = (amount: BigNumber.Value, maxGoldAmount: BigNumber.Value) => - this.buy(amount, maxGoldAmount, false) - - /** - * Deprecated alias of buyStable. - * Buy amount of the stable token in exchange for at least minGoldAmount of CELO - * Requires the amount to have been approved to the exchange - * @deprecated use buyStable instead - * @param amount The amount of the stable token the user is selling to the exchange - * @param maxGoldAmount The maximum amount of CELO the user will pay for this - * transaction to succeed - */ - buyDollar = this.buyStable - - /** - * Returns the amount of CELO a user would get for sellAmount of the stable token - * @param sellAmount The amount of the stable token the user is selling to the exchange - * @return The corresponding CELO amount. - */ - quoteStableSell = (sellAmount: BigNumber.Value) => this.getBuyTokenAmount(sellAmount, false) - - /** - * Deprecated alias of quoteStableSell. - * Returns the amount of CELO a user would get for sellAmount of the stable token - * @deprecated Use quoteStableSell instead - * @param sellAmount The amount of the stable token the user is selling to the exchange - * @return The corresponding CELO amount. - */ - quoteUsdSell = this.quoteStableSell - - /** - * Returns the amount of the stable token a user would get for sellAmount of CELO - * @param sellAmount The amount of CELO the user is selling to the exchange - * @return The corresponding stable token amount. - */ - quoteGoldSell = (sellAmount: BigNumber.Value) => this.getBuyTokenAmount(sellAmount, true) - - /** - * Returns the amount of CELO a user would need to exchange to receive buyAmount of - * the stable token. - * @param buyAmount The amount of the stable token the user would like to purchase. - * @return The corresponding CELO amount. - */ - quoteStableBuy = (buyAmount: BigNumber.Value) => this.getSellTokenAmount(buyAmount, false) - - /** - * Deprecated alias of quoteStableBuy. - * Returns the amount of CELO a user would need to exchange to receive buyAmount of - * the stable token. - * @deprecated Use quoteStableBuy instead - * @param buyAmount The amount of the stable token the user would like to purchase. - * @return The corresponding CELO amount. - */ - quoteUsdBuy = this.quoteStableBuy - - /** - * Returns the amount of the stable token a user would need to exchange to receive buyAmount of - * CELO. - * @param buyAmount The amount of CELO the user would like to purchase. - * @return The corresponding stable token amount. - */ - quoteGoldBuy = (buyAmount: BigNumber.Value) => this.getSellTokenAmount(buyAmount, true) - - /** - * @dev Returns the current configuration of the exchange contract - * @return ExchangeConfig object - */ - async getConfig(): Promise { - const res = await Promise.all([ - this.spread(), - this.reserveFraction(), - this.updateFrequency(), - this.minimumReports(), - this.lastBucketUpdate(), - ]) - return { - spread: res[0], - reserveFraction: res[1], - updateFrequency: res[2], - minimumReports: res[3], - lastBucketUpdate: res[4], - } - } - - /** - * @dev Returns human readable configuration of the exchange contract - * @return ExchangeConfig object - */ - async getHumanReadableConfig() { - const config = await this.getConfig() - return { - ...config, - updateFrequency: secondsToDurationString(config.updateFrequency), - lastBucketUpdate: unixSecondsTimestampToDateString(config.lastBucketUpdate), - } - } - - /** - * Returns the exchange rate estimated at buyAmount. - * @param buyAmount The amount of buyToken in wei to estimate the exchange rate at - * @param sellGold `true` if gold is the sell token - * @return The exchange rate (number of sellTokens received for one buyToken). - */ - async getExchangeRate(buyAmount: BigNumber.Value, sellGold: boolean): Promise { - const takerAmount = await this.getBuyTokenAmount(buyAmount, sellGold) - return valueToFrac(buyAmount, takerAmount) // Number of sellTokens received for one buyToken - } - - /** - * Returns the exchange rate for the stable token estimated at the buyAmount - * @param buyAmount The amount of the stable token in wei to estimate the exchange rate at - * @return The exchange rate (number of CELO received for one stable token) - */ - getStableExchangeRate = (buyAmount: BigNumber.Value) => this.getExchangeRate(buyAmount, false) - - /** - * Deprecated alias of getStableExchangeRate. - * Returns the exchange rate for the stable token estimated at the buyAmount - * @deprecated Use getStableExchangeRate instead - * @param buyAmount The amount of the stable token in wei to estimate the exchange rate at - * @return The exchange rate (number of CELO received for one stable token) - */ - getUsdExchangeRate = this.getStableExchangeRate - - /** - * Returns the exchange rate for CELO estimated at the buyAmount - * @param buyAmount The amount of CELO in wei to estimate the exchange rate at - * @return The exchange rate (number of stable tokens received for one CELO) - */ - getGoldExchangeRate = (buyAmount: BigNumber.Value) => this.getExchangeRate(buyAmount, true) -} - -export type ExchangeWrapperType = ExchangeWrapper diff --git a/packages/sdk/contractkit/src/wrappers/FederatedAttestations.test.ts b/packages/sdk/contractkit/src/wrappers/FederatedAttestations.test.ts deleted file mode 100644 index f6d70799081..00000000000 --- a/packages/sdk/contractkit/src/wrappers/FederatedAttestations.test.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { newKitFromWeb3 } from '../kit' -import { FederatedAttestationsWrapper } from './FederatedAttestations' - -testWithGanache('FederatedAttestations Wrapper', (web3) => { - const kit = newKitFromWeb3(web3) - const TIME_STAMP = 1665080820 - let accounts: string[] = [] - let federatedAttestations: FederatedAttestationsWrapper - let testIdentifierBytes32: string - let plainTextIdentifier: string - let testAccountAddress: string - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - federatedAttestations = await kit.contracts.getFederatedAttestations() - testAccountAddress = kit.web3.eth.accounts.create().address - plainTextIdentifier = '221B Baker St., London' - testIdentifierBytes32 = kit.web3.utils.soliditySha3({ - t: 'bytes32', - v: plainTextIdentifier, - }) as string - }) - - it('no identifiers should exist if none were registered', async () => { - const identifiers = await federatedAttestations.lookupIdentifiers(testAccountAddress, [ - accounts[0], - ]) - expect(identifiers.countsPerIssuer).toEqual(['0']) - expect(identifiers.identifiers).toEqual([]) - }) - - it('no attestations should exist if none were registered', async () => { - const attestations = await federatedAttestations.lookupAttestations(testIdentifierBytes32, [ - accounts[0], - ]) - - expect(attestations.countsPerIssuer).toEqual(['0']) - expect(attestations.accounts).toEqual([]) - expect(attestations.signers).toEqual([]) - expect(attestations.issuedOns).toEqual([]) - expect(attestations.publishedOns).toEqual([]) - }) - - it('attestation and identifiers should exist after registerAttestation is called', async () => { - const issuer = accounts[1] - const account = accounts[3] - - const accountInstance = await kit.contracts.getAccounts() - await accountInstance.createAccount().sendAndWaitForReceipt({ from: issuer }) - - // Ganache returns 1 in chainId assembly code - // @ts-ignore - jest.spyOn(kit.connection, 'chainId').mockReturnValue(1) - - const celoTransactionObject = await federatedAttestations.registerAttestation( - testIdentifierBytes32, - issuer, - account, - issuer, - TIME_STAMP - ) - - await celoTransactionObject.sendAndWaitForReceipt() - - const attestationsAfterRegistration = await federatedAttestations.lookupAttestations( - testIdentifierBytes32, - [issuer] - ) - - const identifiersAfterRegistration = await federatedAttestations.lookupIdentifiers(account, [ - issuer, - ]) - - expect(attestationsAfterRegistration.countsPerIssuer).toEqual(['1']) - expect(attestationsAfterRegistration.accounts).toEqual([account]) - expect(attestationsAfterRegistration.signers).toEqual([issuer]) - expect(attestationsAfterRegistration.issuedOns).toEqual([`${TIME_STAMP}`]) - expect(attestationsAfterRegistration.publishedOns[0]).toBeDefined() - - expect(identifiersAfterRegistration.countsPerIssuer).toEqual(['1']) - expect(identifiersAfterRegistration.identifiers).toEqual([testIdentifierBytes32]) - }) - - it('attestation should exist when registered and not when revoked', async () => { - await federatedAttestations - .registerAttestationAsIssuer(testIdentifierBytes32, testAccountAddress, TIME_STAMP) - .sendAndWaitForReceipt() - - const attestationsAfterRegistration = await federatedAttestations.lookupAttestations( - testIdentifierBytes32, - [accounts[0]] - ) - - const identifiersAfterRegistration = await federatedAttestations.lookupIdentifiers( - testAccountAddress, - [accounts[0]] - ) - - expect(attestationsAfterRegistration.countsPerIssuer).toEqual(['1']) - expect(attestationsAfterRegistration.accounts).toEqual([testAccountAddress]) - expect(attestationsAfterRegistration.signers).toEqual([accounts[0]]) - expect(attestationsAfterRegistration.issuedOns).toEqual([`${TIME_STAMP}`]) - expect(attestationsAfterRegistration.publishedOns[0]).toBeDefined() - - expect(identifiersAfterRegistration.countsPerIssuer).toEqual(['1']) - expect(identifiersAfterRegistration.identifiers).toEqual([testIdentifierBytes32]) - - await federatedAttestations - .revokeAttestation(testIdentifierBytes32, accounts[0], testAccountAddress) - .sendAndWaitForReceipt() - - const attestationsAfterRevocation = await federatedAttestations.lookupAttestations( - testIdentifierBytes32, - [accounts[0]] - ) - - const identifiersAfterRevocation = await federatedAttestations.lookupIdentifiers( - testAccountAddress, - [accounts[0]] - ) - - expect(attestationsAfterRevocation.countsPerIssuer).toEqual(['0']) - expect(attestationsAfterRevocation.accounts).toEqual([]) - expect(attestationsAfterRevocation.signers).toEqual([]) - expect(attestationsAfterRevocation.issuedOns).toEqual([]) - expect(attestationsAfterRevocation.publishedOns).toEqual([]) - - expect(identifiersAfterRevocation.countsPerIssuer).toEqual(['0']) - expect(identifiersAfterRevocation.identifiers).toEqual([]) - }) - it('batch revoke attestations should remove all attestations specified ', async () => { - const secondIdentifierBytes32 = kit.web3.utils.soliditySha3({ - t: 'bytes32', - v: '1600 Pennsylvania Avenue, Washington, D.C., USA', - }) as string - - await federatedAttestations - .registerAttestationAsIssuer(testIdentifierBytes32, testAccountAddress, TIME_STAMP) - .sendAndWaitForReceipt() - - await federatedAttestations - .registerAttestationAsIssuer(secondIdentifierBytes32, testAccountAddress, TIME_STAMP) - .sendAndWaitForReceipt() - - const identifiersAfterRegistration = await federatedAttestations.lookupIdentifiers( - testAccountAddress, - [accounts[0]] - ) - - expect(identifiersAfterRegistration.countsPerIssuer).toEqual(['2']) - expect(identifiersAfterRegistration.identifiers).toEqual([ - testIdentifierBytes32, - secondIdentifierBytes32, - ]) - - await federatedAttestations - .batchRevokeAttestations( - accounts[0], - [testIdentifierBytes32, secondIdentifierBytes32], - [testAccountAddress, testAccountAddress] - ) - .sendAndWaitForReceipt() - - const identifiersAfterBatchRevocation = await federatedAttestations.lookupIdentifiers( - testAccountAddress, - [accounts[0]] - ) - - expect(identifiersAfterBatchRevocation.countsPerIssuer).toEqual(['0']) - expect(identifiersAfterBatchRevocation.identifiers).toEqual([]) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/FederatedAttestations.ts b/packages/sdk/contractkit/src/wrappers/FederatedAttestations.ts deleted file mode 100644 index 86e65e5c34e..00000000000 --- a/packages/sdk/contractkit/src/wrappers/FederatedAttestations.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { FederatedAttestations } from '@celo/abis/web3/FederatedAttestations' -import { Address, CeloTransactionObject, toTransactionObject } from '@celo/connect' -import { registerAttestation as buildRegisterAttestationTypedData } from '@celo/utils/lib/typed-data-constructors' -import { BaseWrapper, proxyCall, proxySend } from './BaseWrapper' - -export class FederatedAttestationsWrapper extends BaseWrapper { - /** - * @notice Returns identifiers mapped to `account` by signers of `trustedIssuers` - * @param account Address of the account - * @param trustedIssuers Array of n issuers whose identifier mappings will be used - * @return countsPerIssuer Array of number of identifiers returned per issuer - * @return identifiers Array (length == sum([0])) of identifiers - * @dev Adds identifier info to the arrays in order of provided trustedIssuers - * @dev Expectation that only one attestation exists per (identifier, issuer, account) - */ - lookupIdentifiers: ( - account: Address, - trustedIssuers: Address[] - ) => Promise<{ - countsPerIssuer: string[] - identifiers: string[] - }> = proxyCall(this.contract.methods.lookupIdentifiers) - - /** - * @notice Returns info about attestations for `identifier` produced by - * signers of `trustedIssuers` - * @param identifier Hash of the identifier - * @param trustedIssuers Array of n issuers whose attestations will be included - * @return countsPerIssuer Array of number of attestations returned per issuer - * For m (== sum([0])) found attestations: - * @return accounts Array of m accounts - * @return signers Array of m signers - * @return issuedOns Array of m issuedOns - * @return publishedOns Array of m publishedOns - * @dev Adds attestation info to the arrays in order of provided trustedIssuers - * @dev Expectation that only one attestation exists per (identifier, issuer, account) - */ - lookupAttestations: ( - identifier: string, - trustedIssuers: Address[] - ) => Promise<{ - countsPerIssuer: string[] - accounts: Address[] - signers: Address[] - issuedOns: string[] - publishedOns: string[] - }> = proxyCall(this.contract.methods.lookupAttestations) - - /** - * @notice Validates the given attestation and signature - * @param identifier Hash of the identifier to be attested - * @param issuer Address of the attestation issuer - * @param account Address of the account being mapped to the identifier - * @param issuedOn Time at which the issuer issued the attestation in Unix time - * @param signer Address of the signer of the attestation - * @param v The recovery id of the incoming ECDSA signature - * @param r Output value r of the ECDSA signature - * @param s Output value s of the ECDSA signature - * @dev Throws if attestation has been revoked - * @dev Throws if signer is not an authorized AttestationSigner of the issuer - */ - validateAttestationSig: ( - identifier: string, - issuer: Address, - account: Address, - signer: Address, - issuedOn: number, - v: number | string, - r: string | number[], - s: string | number[] - ) => Promise = proxyCall(this.contract.methods.validateAttestationSig) - - /** - * @return keccak 256 of abi encoded parameters - */ - getUniqueAttestationHash: ( - identifier: string, - issuer: Address, - account: Address, - signer: Address, - issuedOn: number - ) => Promise = proxyCall(this.contract.methods.getUniqueAttestationHash) - - /** - * @notice Registers an attestation directly from the issuer - * @param identifier Hash of the identifier to be attested - * @param account Address of the account being mapped to the identifier - * @param issuedOn Time at which the issuer issued the attestation in Unix time - * @dev Attestation signer and issuer in storage is set to msg.sender - * @dev Throws if an attestation with the same (identifier, issuer, account) already exists - */ - registerAttestationAsIssuer: ( - identifier: string, - account: Address, - issuedOn: number - ) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.registerAttestationAsIssuer - ) - - /** - * @notice Generates a valid signature and registers the attestation - * @param identifier Hash of the identifier to be attested - * @param issuer Address of the attestation issuer - * @param account Address of the account being mapped to the identifier - * @param issuedOn Time at which the issuer issued the attestation in Unix time - * @param signer Address of the signer of the attestation - * @dev Throws if an attestation with the same (identifier, issuer, account) already exists - */ - async registerAttestation( - identifier: string, - issuer: Address, - account: Address, - signer: Address, - issuedOn: number - ) { - const chainId = await this.connection.chainId() - const typedData = buildRegisterAttestationTypedData(chainId, this.address, { - identifier, - issuer, - account, - signer, - issuedOn, - }) - const sig = await this.connection.signTypedData(signer, typedData) - return toTransactionObject( - this.connection, - this.contract.methods.registerAttestation( - identifier, - issuer, - account, - signer, - issuedOn, - sig.v, - sig.r, - sig.s - ) - ) - } - - /** - * @notice Revokes an attestation - * @param identifier Hash of the identifier to be revoked - * @param issuer Address of the attestation issuer - * @param account Address of the account mapped to the identifier - * @dev Throws if sender is not the issuer, signer, or account - */ - revokeAttestation: ( - identifier: string, - issuer: Address, - account: Address - ) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.revokeAttestation - ) - - /** - * @notice Revokes attestations [identifiers <-> accounts] from issuer - * @param issuer Address of the issuer of all attestations to be revoked - * @param identifiers Hash of the identifiers - * @param accounts Addresses of the accounts mapped to the identifiers - * at the same indices - * @dev Throws if the number of identifiers and accounts is not the same - * @dev Throws if sender is not the issuer or currently registered signer of issuer - * @dev Throws if an attestation is not found for identifiers[i] <-> accounts[i] - */ - batchRevokeAttestations: ( - issuer: Address, - identifiers: string[], - accounts: Address[] - ) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.batchRevokeAttestations - ) -} diff --git a/packages/sdk/contractkit/src/wrappers/FeeHandler.ts b/packages/sdk/contractkit/src/wrappers/FeeHandler.ts deleted file mode 100644 index 1d90fad4272..00000000000 --- a/packages/sdk/contractkit/src/wrappers/FeeHandler.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { FeeHandler } from '@celo/abis/web3/FeeHandler' -import { Address } from '@celo/connect' -import BigNumber from 'bignumber.js' -import { StableTokenContract } from '../base' -import { BaseWrapper, proxyCall, proxySend } from './BaseWrapper' - -export enum ExchangeProposalState { - None, - Proposed, - Approved, - Executed, - Cancelled, -} - -export interface GrandaMentoConfig { - approver: string - spread: BigNumber - vetoPeriodSeconds: BigNumber - maxApprovalExchangeRateChange: BigNumber - exchangeLimits: AllStableConfig -} - -export interface StableTokenExchangeLimits { - minExchangeAmount: BigNumber - maxExchangeAmount: BigNumber -} - -export interface ExchangeProposal { - exchanger: string - stableToken: string - sellAmount: BigNumber - buyAmount: BigNumber - vetoPeriodSeconds: BigNumber - approvalTimestamp: BigNumber - state: ExchangeProposalState - sellCelo: boolean - id: string | number -} - -export interface ExchangeProposalReadable { - exchanger: string - stableToken: string - sellAmount: BigNumber - buyAmount: BigNumber - approvalTimestamp: BigNumber - state: string - sellCelo: boolean - id: string | number - implictPricePerCelo: BigNumber -} - -type AllStableConfig = Map - -export class FeeHandlerWrapper extends BaseWrapper { - owner = proxyCall(this.contract.methods.owner) - - handleAll = proxySend(this.connection, this.contract.methods.handleAll) - burnCelo = proxySend(this.connection, this.contract.methods.burnCelo) - - async handle(tokenAddress: Address) { - const createExchangeProposalInner = proxySend(this.connection, this.contract.methods.handle) - return createExchangeProposalInner(tokenAddress) - } - - async sell(tokenAddress: Address) { - const innerCall = proxySend(this.connection, this.contract.methods.sell) - return innerCall(tokenAddress) - } - - async distribute(tokenAddress: Address) { - const innerCall = proxySend(this.connection, this.contract.methods.distribute) - return innerCall(tokenAddress) - } -} - -export type FeeHandlerType = FeeHandlerWrapper diff --git a/packages/sdk/contractkit/src/wrappers/Freezer.ts b/packages/sdk/contractkit/src/wrappers/Freezer.ts deleted file mode 100644 index 26200c9020a..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Freezer.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Freezer } from '@celo/abis/web3/Freezer' -import { BaseWrapper, proxyCall, proxySend } from './BaseWrapper' - -export class FreezerWrapper extends BaseWrapper { - freeze = proxySend(this.connection, this.contract.methods.freeze) - unfreeze = proxySend(this.connection, this.contract.methods.unfreeze) - isFrozen = proxyCall(this.contract.methods.isFrozen) -} - -export type FreezerWrapperType = FreezerWrapper diff --git a/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts b/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts deleted file mode 100644 index 821820f35a7..00000000000 --- a/packages/sdk/contractkit/src/wrappers/GasPriceMinimum.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { GasPriceMinimum } from '@celo/abis/web3/0.8/GasPriceMinimum' -import BigNumber from 'bignumber.js' -import { BaseWrapper, fixidityValueToBigNumber, proxyCall, valueToBigNumber } from './BaseWrapper' - -export interface GasPriceMinimumConfig { - gasPriceMinimum: BigNumber - targetDensity: BigNumber - adjustmentSpeed: BigNumber -} - -/** - * Stores the gas price minimum - */ -export class GasPriceMinimumWrapper extends BaseWrapper { - /** - * Query current gas price minimum in CELO. - * @returns current gas price minimum in CELO - */ - gasPriceMinimum = proxyCall(this.contract.methods.gasPriceMinimum, undefined, valueToBigNumber) - - /** - * Query current gas price minimum. - * @returns current gas price minimum in the requested currency - */ - getGasPriceMinimum = proxyCall( - this.contract.methods.getGasPriceMinimum, - undefined, - valueToBigNumber - ) - - /** - * Query target density parameter. - * @returns the current block density targeted by the gas price minimum algorithm. - */ - targetDensity = proxyCall( - this.contract.methods.targetDensity, - undefined, - fixidityValueToBigNumber - ) - /** - * Query adjustment speed parameter - * @returns multiplier that impacts how quickly gas price minimum is adjusted. - */ - adjustmentSpeed = proxyCall( - this.contract.methods.adjustmentSpeed, - undefined, - fixidityValueToBigNumber - ) - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - const res = await Promise.all([ - this.gasPriceMinimum(), - this.targetDensity(), - this.adjustmentSpeed(), - ]) - return { - gasPriceMinimum: res[0], - targetDensity: res[1], - adjustmentSpeed: res[2], - } - } -} - -export type GasPriceMinimumWrapperType = GasPriceMinimumWrapper diff --git a/packages/sdk/contractkit/src/wrappers/GoldToken.test.ts b/packages/sdk/contractkit/src/wrappers/GoldToken.test.ts deleted file mode 100644 index 00a6b35e93f..00000000000 --- a/packages/sdk/contractkit/src/wrappers/GoldToken.test.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { newKitFromWeb3 } from '../kit' -import { GoldTokenWrapper } from './GoldTokenWrapper' - -testWithGanache('GoldToken Wrapper', (web3) => { - const ONE_GOLD = web3.utils.toWei('1', 'ether') - - const kit = newKitFromWeb3(web3) - let accounts: string[] = [] - let goldToken: GoldTokenWrapper - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - goldToken = await kit.contracts.getGoldToken() - }) - - test('SBAT check balance', () => - expect(goldToken.balanceOf(accounts[0])).resolves.toBeBigNumber()) - test('SBAT check decimals', () => expect(goldToken.decimals()).resolves.toBe(18)) - test('SBAT check name', () => expect(goldToken.name()).resolves.toBe('Celo native asset')) - test('SBAT check symbol', () => expect(goldToken.symbol()).resolves.toBe('CELO')) - test('SBAT check totalSupply', () => expect(goldToken.totalSupply()).resolves.toBeBigNumber()) - - test('SBAT transfer', async () => { - const before = await goldToken.balanceOf(accounts[1]) - const tx = await goldToken.transfer(accounts[1], ONE_GOLD).send() - await tx.waitReceipt() - - const after = await goldToken.balanceOf(accounts[1]) - expect(after.minus(before)).toEqBigNumber(ONE_GOLD) - }) - - test('SBAT approve spender', async () => { - const before = await goldToken.allowance(accounts[0], accounts[1]) - expect(before).toEqBigNumber(0) - - await goldToken.approve(accounts[1], ONE_GOLD).sendAndWaitForReceipt() - const after = await goldToken.allowance(accounts[0], accounts[1]) - expect(after).toEqBigNumber(ONE_GOLD) - }) - - test('SBAT tranfer from', async () => { - const before = await goldToken.balanceOf(accounts[3]) - // account1 approves account0 - await goldToken.approve(accounts[0], ONE_GOLD).sendAndWaitForReceipt({ from: accounts[1] }) - const tx = await goldToken.transferFrom(accounts[1], accounts[3], ONE_GOLD).send() - await tx.waitReceipt() - const after = await goldToken.balanceOf(accounts[3]) - expect(after.minus(before)).toEqBigNumber(ONE_GOLD) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts b/packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts deleted file mode 100644 index 3943441b8c8..00000000000 --- a/packages/sdk/contractkit/src/wrappers/GoldTokenWrapper.ts +++ /dev/null @@ -1,51 +0,0 @@ -// NOTE: removing this import results in `yarn build` failures in Dockerfiles -// after the move to node 10. This allows types to be inferred without -// referencing '@celo/utils/node_modules/bignumber.js' -import { GoldToken } from '@celo/abis/web3/GoldToken' -import { Address } from '@celo/base' -import 'bignumber.js' -import { - proxySend, - stringIdentity, - tupleParser, - valueToBigNumber, - valueToString, -} from './BaseWrapper' -import { CeloTokenWrapper } from './CeloTokenWrapper' - -/** - * ERC-20 contract for Celo native currency. - */ -export class GoldTokenWrapper extends CeloTokenWrapper { - /** - * Increases the allowance of another user. - * @param spender The address which is being approved to spend CELO. - * @param value The increment of the amount of CELO approved to the spender. - * @returns true if success. - */ - increaseAllowance = proxySend( - this.connection, - this.contract.methods.increaseAllowance, - tupleParser(stringIdentity, valueToString) - ) - /** - * Decreases the allowance of another user. - * @param spender The address which is being approved to spend CELO. - * @param value The decrement of the amount of CELO approved to the spender. - * @returns true if success. - */ - decreaseAllowance = proxySend(this.connection, this.contract.methods.decreaseAllowance) - - /** - * Gets the balance of the specified address. - * WARNING: The actual call to the Gold contract of the balanceOf: - * `balanceOf = proxyCall(this.contract.methods.balanceOf, undefined, valueToBigNumber)` - * has issues with web3. Keep the one calling getBalance - * @param owner The address to query the balance of. - * @return The balance of the specified address. - */ - balanceOf = (account: Address) => - this.connection.web3.eth.getBalance(account).then(valueToBigNumber) -} - -export type GoldTokenWrapperType = GoldTokenWrapper diff --git a/packages/sdk/contractkit/src/wrappers/Governance.test.ts b/packages/sdk/contractkit/src/wrappers/Governance.test.ts deleted file mode 100644 index fc45bcbd03f..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Governance.test.ts +++ /dev/null @@ -1,349 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import { concurrentMap } from '@celo/base/lib/async' -import { NetworkConfig, testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { CeloContract } from '..' -import { Registry } from '@celo/abis/web3/Registry' -import { newKitFromWeb3 } from '../kit' -import { AccountsWrapper } from './Accounts' -import { GovernanceWrapper, Proposal, ProposalTransaction, VoteValue } from './Governance' -import { LockedGoldWrapper } from './LockedGold' -import { MultiSigWrapper } from './MultiSig' - -const expConfig = NetworkConfig.governance - -testWithGanache('Governance Wrapper', (web3: Web3) => { - const ONE_SEC = 1000 - const kit = newKitFromWeb3(web3) - const minDeposit = web3.utils.toWei(expConfig.minDeposit.toString(), 'ether') - const ONE_CGLD = web3.utils.toWei('1', 'ether') - - let accounts: Address[] = [] - let governance: GovernanceWrapper - let governanceApproverMultiSig: MultiSigWrapper - let lockedGold: LockedGoldWrapper - let accountWrapper: AccountsWrapper - let registry: Registry - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - governance = await kit.contracts.getGovernance() - governanceApproverMultiSig = await kit.contracts.getMultiSig(await governance.getApprover()) - registry = await kit._web3Contracts.getRegistry() - lockedGold = await kit.contracts.getLockedGold() - accountWrapper = await kit.contracts.getAccounts() - - await concurrentMap(4, accounts.slice(0, 4), async (account) => { - await accountWrapper.createAccount().sendAndWaitForReceipt({ from: account }) - await lockedGold.lock().sendAndWaitForReceipt({ from: account, value: ONE_CGLD }) - }) - }, 5 * ONE_SEC) - - type Repoint = [CeloContract, Address] - - const registryRepointProposal = (repoints: Repoint[]) => { - const proposals: ProposalTransaction[] = repoints.map((repoint) => { - return { - value: '0', - to: (registry as any)._address, - input: registry.methods.setAddressFor(...repoint).encodeABI(), - } - }) - return proposals as Proposal - } - - // const verifyRepointResult = (repoints: Repoint[]) => - // concurrentMap(4, repoints, async (repoint) => { - // const newAddress = await registry.methods.getAddressForStringOrDie(repoint[0]).call() - // expect(newAddress).toBe(repoint[1]) - // }) - - it('#getConfig', async () => { - const config = await governance.getConfig() - expect(config.concurrentProposals).toEqBigNumber(expConfig.concurrentProposals) - expect(config.dequeueFrequency).toEqBigNumber(expConfig.dequeueFrequency) - expect(config.minDeposit).toEqBigNumber(minDeposit) - expect(config.queueExpiry).toEqBigNumber(expConfig.queueExpiry) - expect(config.stageDurations.Referendum).toEqBigNumber(expConfig.referendumStageDuration) - expect(config.stageDurations.Execution).toEqBigNumber(expConfig.executionStageDuration) - }) - - describe('Proposals', () => { - const repoints: Repoint[] = [ - [CeloContract.Random, '0x0000000000000000000000000000000000000001'], - [CeloContract.Escrow, '0x0000000000000000000000000000000000000002'], - ] - const proposalID = new BigNumber(1) - - let proposal: Proposal - beforeAll(() => (proposal = registryRepointProposal(repoints))) - - const proposeFn = async (proposer: Address, proposeTwice = false) => { - if (proposeTwice) { - await governance - .propose(proposal, 'URL') - .sendAndWaitForReceipt({ from: proposer, value: minDeposit }) - } - - await governance - .propose(proposal, 'URL') - .sendAndWaitForReceipt({ from: proposer, value: minDeposit }) - } - - const upvoteFn = async (upvoter: Address, shouldTimeTravel = true, proposalId?: BigNumber) => { - const tx = await governance.upvote(proposalId ?? proposalID, upvoter) - await tx.sendAndWaitForReceipt({ from: upvoter }) - if (shouldTimeTravel) { - await timeTravel(expConfig.dequeueFrequency, web3) - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - } - } - - // protocol/truffle-config defines approver address as accounts[0] - const approveFn = async () => { - const tx = await governance.approve(proposalID) - const multisigTx = await governanceApproverMultiSig.submitOrConfirmTransaction( - governance.address, - tx.txo - ) - await multisigTx.sendAndWaitForReceipt({ from: accounts[0] }) - } - - const voteFn = async (voter: Address) => { - const tx = await governance.vote(proposalID, 'Yes') - await tx.sendAndWaitForReceipt({ from: voter }) - await timeTravel(expConfig.referendumStageDuration, web3) - } - - it('#propose', async () => { - await proposeFn(accounts[0]) - - const proposalRecord = await governance.getProposalRecord(proposalID) - expect(proposalRecord.metadata.proposer).toBe(accounts[0]) - expect(proposalRecord.metadata.transactionCount).toBe(proposal.length) - expect(proposalRecord.proposal).toStrictEqual(proposal) - expect(proposalRecord.stage).toBe('Queued') - }) - - it('#upvote', async () => { - const proposalId = new BigNumber(2) - await proposeFn(accounts[0], true) - // shouldTimeTravel is false so getUpvotes isn't on dequeued proposal - await upvoteFn(accounts[1], false, proposalId) - - const voteWeight = await governance.getVoteWeight(accounts[1]) - const upvotes = await governance.getUpvotes(proposalId) - expect(upvotes).toEqBigNumber(voteWeight) - expect(upvotes).toEqBigNumber(ONE_CGLD) - - const upvoter = await governance.getVoter(accounts[1]) - const expectedUpvoteRecord = { proposalID: proposalId, upvotes: new BigNumber(ONE_CGLD) } - expect(upvoter.upvote).toEqual(expectedUpvoteRecord) - }) - - it('#revokeUpvote', async () => { - const proposalId = new BigNumber(2) - await proposeFn(accounts[0], true) - // shouldTimeTravel is false so revoke isn't on dequeued proposal - await upvoteFn(accounts[1], false, proposalId) - - const before = await governance.getUpvotes(proposalId) - const upvoteRecord = await governance.getUpvoteRecord(accounts[1]) - - const tx = await governance.revokeUpvote(accounts[1]) - await tx.sendAndWaitForReceipt({ from: accounts[1] }) - - const after = await governance.getUpvotes(proposalId) - expect(after).toEqBigNumber(before.minus(upvoteRecord.upvotes)) - }) - - it('#approve', async () => { - await proposeFn(accounts[0]) - await timeTravel(expConfig.dequeueFrequency, web3) - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - await approveFn() - - const approved = await governance.isApproved(proposalID) - expect(approved).toBeTruthy() - }) - - it('#vote', async () => { - await proposeFn(accounts[0]) - await timeTravel(expConfig.dequeueFrequency, web3) - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - await approveFn() - await voteFn(accounts[2]) - - const voteWeight = await governance.getVoteWeight(accounts[2]) - const yesVotes = (await governance.getVotes(proposalID))[VoteValue.Yes] - expect(yesVotes).toEqBigNumber(voteWeight) - }) - - it('#getVoteRecord', async () => { - const voter = accounts[2] - await proposeFn(accounts[0]) - await timeTravel(expConfig.dequeueFrequency, web3) - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - await approveFn() - await voteFn(voter) - - const voteWeight = await governance.getVoteWeight(voter) - const yesVotes = (await governance.getVotes(proposalID))[VoteValue.Yes] - expect(yesVotes).toEqBigNumber(voteWeight) - - const voteRecord = await governance.getVoteRecord(voter, proposalID) - expect(voteRecord?.yesVotes).toEqBigNumber(voteWeight) - expect(voteRecord?.noVotes).toEqBigNumber(0) - expect(voteRecord?.abstainVotes).toEqBigNumber(0) - }) - - it('#votePartially', async () => { - await proposeFn(accounts[0]) - await timeTravel(expConfig.dequeueFrequency, web3) - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - await approveFn() - - const yes = 10 - const no = 20 - const abstain = 0 - - const tx = await governance.votePartially(proposalID, yes, no, abstain) - await tx.sendAndWaitForReceipt({ from: accounts[2] }) - await timeTravel(expConfig.referendumStageDuration, web3) - - const votes = await governance.getVotes(proposalID) - const yesVotes = votes[VoteValue.Yes] - const noVotes = votes[VoteValue.No] - const abstainVotes = votes[VoteValue.Abstain] - expect(yesVotes).toEqBigNumber(yes) - expect(noVotes).toEqBigNumber(no) - expect(abstainVotes).toEqBigNumber(abstain) - }) - - it( - '#execute', - async () => { - await proposeFn(accounts[0]) - await timeTravel(expConfig.dequeueFrequency, web3) - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - await approveFn() - await voteFn(accounts[2]) - - const tx = await governance.execute(proposalID) - await tx.sendAndWaitForReceipt() - - const exists = await governance.proposalExists(proposalID) - expect(exists).toBeFalsy() - - // await verifyRepointResult(repoints) - }, - 10 * ONE_SEC - ) - - it('#getVoter', async () => { - await proposeFn(accounts[0]) - await timeTravel(expConfig.dequeueFrequency, web3) - await governance.dequeueProposalsIfReady().sendAndWaitForReceipt() - await approveFn() - await voteFn(accounts[2]) - - const proposer = await governance.getVoter(accounts[0]) - expect(proposer.refundedDeposits).toEqBigNumber(minDeposit) - - const voter = await governance.getVoter(accounts[2]) - const expectedVoteRecord = { - proposalID, - votes: new BigNumber(0), - value: VoteValue.None, - abstainVotes: new BigNumber(0), - noVotes: new BigNumber(0), - yesVotes: new BigNumber('1000000000000000000'), - } - expect(voter.votes[0]).toEqual(expectedVoteRecord) - }) - }) - - // Disabled until validator set precompile is available in ganache - // https://github.com/celo-org/celo-monorepo/issues/1737 - - // describe('Hotfixes', () => { - // const repoints: Repoint[] = [ - // [CeloContract.Random, '0x0000000000000000000000000000000000000003'], - // [CeloContract.Escrow, '0x0000000000000000000000000000000000000004'], - // ] - - // let hotfixProposal: Proposal - // let hotfixHash: Buffer - // beforeAll(async () => { - // hotfixProposal = await registryRepointProposal(repoints) - // hotfixHash = proposalToHash(kit, hotfixProposal) - // }) - - // const whitelistFn = async (whitelister: Address) => { - // const tx = governance.whitelistHotfix(proposalToHash(kit, hotfixProposal)) - // await tx.sendAndWaitForReceipt({ from: whitelister }) - // } - - // // validator keys correspond to accounts 6-9 - // const whitelistQuorumFn = () => concurrentMap(1, accounts.slice(6, 10), whitelistFn) - - // // protocol/truffle-config defines approver address as accounts[0] - // const approveFn = async () => { - // const tx = governance.approveHotfix(proposalToHash(kit, hotfixProposal)) - // await tx.sendAndWaitForReceipt({ from: accounts[0] }) - // } - - // const prepareFn = async () => { - // const tx = governance.prepareHotfix(hotfixHash) - // await tx.sendAndWaitForReceipt() - // } - - // it('#whitelistHotfix', async () => { - // await whitelistFn(accounts[9]) - - // const whitelisted = await governance.isHotfixWhitelistedBy(hotfixHash, accounts[9]) - // expect(whitelisted).toBeTruthy() - // }) - - // it('#approveHotfix', async () => { - // await approveFn() - - // const record = await governance.getHotfixRecord(hotfixHash) - // expect(record.approved).toBeTruthy() - // }) - - // it( - // '#prepareHotfix', - // async () => { - // await whitelistQuorumFn() - // await approveFn() - // await prepareFn() - - // const validators = await kit.contracts.getValidators() - // const record = await governance.getHotfixRecord(hotfixHash) - // expect(record.preparedEpoch).toBe(await validators.getEpochNumber()) - // }, - // 10 * ONE_SEC - // ) - - // it( - // '#executeHotfix', - // async () => { - // await whitelistQuorumFn() - // await approveFn() - // await prepareFn() - - // const tx = governance.executeHotfix(hotfixProposal) - // await tx.sendAndWaitForReceipt() - - // const record = await governance.getHotfixRecord(hotfixHash) - // expect(record.executed).toBeTruthy() - - // await verifyRepointResult(repoints) - // }, - // 10 * ONE_SEC - // ) - // }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/Governance.ts b/packages/sdk/contractkit/src/wrappers/Governance.ts deleted file mode 100644 index 21ca62316bd..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Governance.ts +++ /dev/null @@ -1,959 +0,0 @@ -import { Governance } from '@celo/abis/web3/Governance' -import { - bufferToHex, - ensureLeading0x, - hexToBuffer, - NULL_ADDRESS, - trimLeading0x, -} from '@celo/base/lib/address' -import { concurrentMap } from '@celo/base/lib/async' -import { zeroRange, zip } from '@celo/base/lib/collections' -import { Address, CeloTxPending, toTransactionObject } from '@celo/connect' -import { fromFixed } from '@celo/utils/lib/fixidity' -import BigNumber from 'bignumber.js' -import { - bufferToSolidityBytes, - identity, - proxyCall, - proxySend, - secondsToDurationString, - solidityBytesToString, - stringIdentity, - tupleParser, - unixSecondsTimestampToDateString, - valueToBigNumber, - valueToInt, - valueToString, -} from './BaseWrapper' -import { BaseWrapperForGoverning } from './BaseWrapperForGoverning' - -export enum ProposalStage { - None = 'None', - Queued = 'Queued', - Approval = 'Approval', - Referendum = 'Referendum', - Execution = 'Execution', - Expiration = 'Expiration', -} - -type StageDurations = { - [Stage in ProposalStage]: V -} - -type DequeuedStageDurations = Pick< - StageDurations, - ProposalStage.Referendum | ProposalStage.Execution -> - -export interface ParticipationParameters { - baseline: BigNumber - baselineFloor: BigNumber - baselineUpdateFactor: BigNumber - baselineQuorumFactor: BigNumber -} - -export interface GovernanceConfig { - concurrentProposals: BigNumber - dequeueFrequency: BigNumber // seconds - minDeposit: BigNumber - queueExpiry: BigNumber - stageDurations: DequeuedStageDurations - participationParameters: ParticipationParameters -} - -export interface ProposalMetadata { - proposer: Address - deposit: BigNumber - timestamp: BigNumber - transactionCount: number - descriptionURL: string -} - -export type ProposalParams = Parameters -export type ProposalTransaction = Pick -export type Proposal = ProposalTransaction[] - -export const proposalToParams = (proposal: Proposal, descriptionURL: string): ProposalParams => { - const data = proposal.map((tx) => hexToBuffer(tx.input)) - return [ - proposal.map((tx) => tx.value), - proposal.map((tx) => tx.to!), - bufferToSolidityBytes(Buffer.concat(data)), - data.map((inp) => inp.length), - descriptionURL, - ] -} - -interface ApprovalStatus { - completion: string - confirmations: string[] - approvers: string[] -} - -export interface ProposalRecord { - metadata: ProposalMetadata - proposal: Proposal - stage: ProposalStage - approved: boolean - passed: boolean - upvotes?: BigNumber - approvals?: ApprovalStatus - votes?: Votes -} - -export interface UpvoteRecord { - proposalID: BigNumber - upvotes: BigNumber -} - -export enum VoteValue { - None = 'None', - Abstain = 'Abstain', - No = 'No', - Yes = 'Yes', -} - -export interface Votes { - [VoteValue.Abstain]: BigNumber - [VoteValue.No]: BigNumber - [VoteValue.Yes]: BigNumber -} - -export type HotfixParams = Parameters -export const hotfixToParams = (proposal: Proposal, salt: Buffer): HotfixParams => { - const p = proposalToParams(proposal, '') // no description URL for hotfixes - return [p[0], p[1], p[2], p[3], bufferToHex(salt)] -} - -export interface HotfixRecord { - approved: boolean - executed: boolean - preparedEpoch: BigNumber -} - -export interface VoteRecord { - proposalID: BigNumber - votes: BigNumber - value: VoteValue - yesVotes: BigNumber - noVotes: BigNumber - abstainVotes: BigNumber -} - -export interface Voter { - upvote: UpvoteRecord - votes: VoteRecord[] - refundedDeposits: BigNumber -} - -const ZERO_BN = new BigNumber(0) - -/** - * Contract managing voting for governance proposals. - */ -export class GovernanceWrapper extends BaseWrapperForGoverning { - /** - * Querying number of possible concurrent proposals. - * @returns Current number of possible concurrent proposals. - */ - concurrentProposals = proxyCall( - this.contract.methods.concurrentProposals, - undefined, - valueToBigNumber - ) - /** - * Query time of last proposal dequeue - * @returns Time of last dequeue - */ - lastDequeue = proxyCall(this.contract.methods.lastDequeue, undefined, valueToBigNumber) - /** - * Query proposal dequeue frequency. - * @returns Current proposal dequeue frequency in seconds. - */ - dequeueFrequency = proxyCall(this.contract.methods.dequeueFrequency, undefined, valueToBigNumber) - /** - * Query minimum deposit required to make a proposal. - * @returns Current minimum deposit. - */ - minDeposit = proxyCall(this.contract.methods.minDeposit, undefined, valueToBigNumber) - /** - * Query queue expiry parameter. - * @return The number of seconds a proposal can stay in the queue before expiring. - */ - queueExpiry = proxyCall(this.contract.methods.queueExpiry, undefined, valueToBigNumber) - /** - * Query durations of different stages in proposal lifecycle. - * @returns Durations for approval, referendum and execution stages in seconds. - */ - async stageDurations(): Promise { - const res = await this.contract.methods.stageDurations().call() - return { - [ProposalStage.Referendum]: valueToBigNumber(res[1]), - [ProposalStage.Execution]: valueToBigNumber(res[2]), - } - } - - /** - * Returns the required ratio of yes:no votes needed to exceed in order to pass the proposal transaction. - * @param tx Transaction to determine the constitution for running. - */ - async getTransactionConstitution(tx: ProposalTransaction): Promise { - // Extract the leading four bytes of the call data, which specifies the function. - const callSignature = ensureLeading0x(trimLeading0x(tx.input).slice(0, 8)) - const value = await this.contract.methods - .getConstitution(tx.to ?? NULL_ADDRESS, callSignature) - .call() - return fromFixed(new BigNumber(value)) - } - - /** - * Returns the required ratio of yes:no votes needed to exceed in order to pass the proposal. - * @param proposal Proposal to determine the constitution for running. - */ - async getConstitution(proposal: Proposal): Promise { - // Default value that is harcoded on Governance contract - // it's 0.5 in Fixidity - // https://github.com/celo-org/celo-monorepo/blob/3fffa158d67ffd6366e81ba7243eadede1974b1b/packages/protocol/contracts/governance/Governance.sol#L39 - let constitution = fromFixed(new BigNumber('500000000000000000000000')) - for (const tx of proposal) { - constitution = BigNumber.max(await this.getTransactionConstitution(tx), constitution) - } - return constitution - } - - /** - * Returns the participation parameters. - * @returns The participation parameters. - */ - async getParticipationParameters(): Promise { - const res = await this.contract.methods.getParticipationParameters().call() - return { - baseline: fromFixed(new BigNumber(res[0])), - baselineFloor: fromFixed(new BigNumber(res[1])), - baselineUpdateFactor: fromFixed(new BigNumber(res[2])), - baselineQuorumFactor: fromFixed(new BigNumber(res[3])), - } - } - - // function get support doesn't consider constitution parameteres that has an influence - // in the total of yes votes required - async getSupportWithConstitutionThreshold(proposalID: BigNumber.Value, constitution: BigNumber) { - const support = await this.getSupport(proposalID) - support.required = support.required.times(constitution).integerValue() - return support - } - - // simulates proposal.getSupportWithQuorumPadding - async getSupport(proposalID: BigNumber.Value) { - const [participation, votes, lockedGold] = await Promise.all([ - this.getParticipationParameters(), - this.getVotes(proposalID), - this.contracts.getLockedGold(), - ]) - const quorum = participation.baseline.times(participation.baselineQuorumFactor) - const total = votes.Yes.plus(votes.No).plus(votes.Abstain) - // NOTE: this networkWeight is not as governance calculates it, - // but we don't have access to proposal.networkWeight - const networkWeight = await lockedGold.getTotalLockedGold() - const required = networkWeight.times(quorum) - const support = votes.Yes.div(votes.Yes.plus(votes.No)) - return { - support, - required, - total, - } - } - - /** - * Returns whether or not a particular account is voting on proposals. - * @param account The address of the account. - * @returns Whether or not the account is voting on proposals. - */ - isVoting: (account: string) => Promise = proxyCall(this.contract.methods.isVoting) - - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - const res = await Promise.all([ - this.concurrentProposals(), - this.dequeueFrequency(), - this.minDeposit(), - this.queueExpiry(), - this.stageDurations(), - this.getParticipationParameters(), - ]) - return { - concurrentProposals: res[0], - dequeueFrequency: res[1], - minDeposit: res[2], - queueExpiry: res[3], - stageDurations: res[4], - participationParameters: res[5], - } - } - - /** - * @dev Returns human readable configuration of the governance contract - * @return GovernanceConfig object - */ - async getHumanReadableConfig() { - const config = await this.getConfig() - const stageDurations = { - [ProposalStage.Referendum]: secondsToDurationString( - config.stageDurations[ProposalStage.Referendum] - ), - [ProposalStage.Execution]: secondsToDurationString( - config.stageDurations[ProposalStage.Execution] - ), - } - return { - ...config, - dequeueFrequency: secondsToDurationString(config.dequeueFrequency), - queueExpiry: secondsToDurationString(config.queueExpiry), - stageDurations, - } - } - - /** - * Returns the metadata associated with a given proposal. - * @param proposalID Governance proposal UUID - */ - getProposalMetadata: (proposalID: BigNumber.Value) => Promise = proxyCall( - this.contract.methods.getProposal, - tupleParser(valueToString), - (res) => ({ - proposer: res[0], - deposit: valueToBigNumber(res[1]), - timestamp: valueToBigNumber(res[2]), - transactionCount: valueToInt(res[3]), - descriptionURL: res[4], - }) - ) - - /** - * Returns the human readable metadata associated with a given proposal. - * @param proposalID Governance proposal UUID - */ - async getHumanReadableProposalMetadata(proposalID: BigNumber.Value) { - const meta = await this.getProposalMetadata(proposalID) - return { - ...meta, - timestamp: unixSecondsTimestampToDateString(meta.timestamp), - } - } - - /** - * Returns the transaction at the given index associated with a given proposal. - * @param proposalID Governance proposal UUID - * @param txIndex Transaction index - */ - getProposalTransaction: ( - proposalID: BigNumber.Value, - txIndex: number - ) => Promise = proxyCall( - this.contract.methods.getProposalTransaction, - tupleParser(valueToString, valueToString), - (res) => ({ - value: res[0], - to: res[1], - input: solidityBytesToString(res[2]), - }) - ) - - /** - * Returns whether a given proposal is approved. - * @param proposalID Governance proposal UUID - */ - isApproved: (proposalID: BigNumber.Value) => Promise = proxyCall( - this.contract.methods.isApproved, - tupleParser(valueToString) - ) - - /** - * Returns whether a dequeued proposal is expired. - * @param proposalID Governance proposal UUID - */ - isDequeuedProposalExpired: (proposalID: BigNumber.Value) => Promise = proxyCall( - this.contract.methods.isDequeuedProposalExpired, - tupleParser(valueToString) - ) - - /** - * Returns whether a dequeued proposal is expired. - * @param proposalID Governance proposal UUID - */ - isQueuedProposalExpired = proxyCall( - this.contract.methods.isQueuedProposalExpired, - tupleParser(valueToString) - ) - - /** - * Returns the approver address for proposals and hotfixes. - */ - getApprover = proxyCall(this.contract.methods.approver) - - /** - * Returns the approver multisig contract for proposals and hotfixes. - */ - getApproverMultisig = () => - this.getApprover().then((address) => this.contracts.getMultiSig(address)) - - getProposalStage = async (proposalID: BigNumber.Value): Promise => { - const queue = await this.getQueue() - const existsInQueue = queue.find((u) => u.proposalID === proposalID) !== undefined - if (existsInQueue) { - const expired = await this.isQueuedProposalExpired(proposalID) - return expired ? ProposalStage.Expiration : ProposalStage.Queued - } - - const res = await this.contract.methods.getProposalStage(valueToString(proposalID)).call() - return Object.keys(ProposalStage)[valueToInt(res)] as ProposalStage - } - - async proposalSchedule(proposalID: BigNumber.Value): Promise>> { - const meta = await this.getProposalMetadata(proposalID) - const stage = await this.getProposalStage(proposalID) - - if (stage === ProposalStage.Queued) { - const queueExpiry = await this.queueExpiry() - const queueExpiration = meta.timestamp.plus(queueExpiry) - return { - [ProposalStage.Queued]: meta.timestamp, - [ProposalStage.Expiration]: queueExpiration, - } - } - - const durations = await this.stageDurations() - const referendum = meta.timestamp - const execution = referendum.plus(durations.Referendum) - const expiration = execution.plus(durations.Execution) - - return { - [ProposalStage.Referendum]: referendum, - [ProposalStage.Execution]: execution, - [ProposalStage.Expiration]: expiration, - } - } - - async humanReadableProposalSchedule(proposalID: BigNumber.Value) { - const schedule = await this.proposalSchedule(proposalID) - - const dates: Partial> = {} - for (const stage of Object.keys(schedule) as Array>) { - dates[stage] = unixSecondsTimestampToDateString(schedule[stage]!) - } - return dates - } - - /** - * Returns the proposal associated with a given id. - * @param proposalID Governance proposal UUID - */ - async getProposal(proposalID: BigNumber.Value): Promise { - const metadata = await this.getProposalMetadata(proposalID) - const txIndices = zeroRange(metadata.transactionCount) - return concurrentMap(4, txIndices, (idx) => this.getProposalTransaction(proposalID, idx)) - } - - async getApprovalStatus(proposalID: BigNumber.Value): Promise { - const [multisig, approveTx] = await Promise.all([ - this.getApproverMultisig(), - this.approve(proposalID), - ]) - - const [multisigTxs, approvers] = await Promise.all([ - multisig.getTransactionDataByContent(this.address, approveTx.txo), - multisig.getOwners() as Promise, - ]) - - const confirmations = multisigTxs ? multisigTxs.confirmations : [] - - return { - completion: `${confirmations.length} / ${approvers.length}`, - confirmations, - approvers, - } - } - - /** - * Returns the stage, metadata, upvotes, votes, and transactions associated with a given proposal. - * @param proposalID Governance proposal UUID - */ - async getProposalRecord(proposalID: BigNumber.Value): Promise { - const [proposal, metadata, stage] = await Promise.all([ - this.getProposal(proposalID), - this.getProposalMetadata(proposalID), - this.getProposalStage(proposalID), - ]) - - const record: ProposalRecord = { - proposal, - metadata, - stage, - passed: false, - approved: false, - } - - if (stage === ProposalStage.Queued) { - record.upvotes = await this.getUpvotes(proposalID) - } else if (stage === ProposalStage.Referendum || stage === ProposalStage.Execution) { - const [passed, votes, approved, approvals] = await Promise.all([ - this.isProposalPassing(proposalID) as Promise, - this.getVotes(proposalID), - this.isApproved(proposalID), - this.getApprovalStatus(proposalID), - ]) - record.passed = passed as boolean - record.votes = votes - record.approved = approved - record.approvals = approvals - } - return record - } - - /** - * Returns whether a given proposal is passing relative to the constitution's threshold. - * @param proposalID Governance proposal UUID - */ - isProposalPassing = proxyCall(this.contract.methods.isProposalPassing, tupleParser(valueToString)) - - /** - * Withdraws refunded proposal deposits. - */ - withdraw = proxySend(this.connection, this.contract.methods.withdraw) - - /** - * Submits a new governance proposal. - * @param proposal Governance proposal - * @param descriptionURL A URL where further information about the proposal can be viewed - */ - propose = proxySend(this.connection, this.contract.methods.propose, proposalToParams) - - /** - * Returns whether a governance proposal exists with the given ID. - * @param proposalID Governance proposal UUID - */ - proposalExists: (proposalID: BigNumber.Value) => Promise = proxyCall( - this.contract.methods.proposalExists, - tupleParser(valueToString) - ) - - /** - * Returns the current upvoted governance proposal ID and applied vote weight (zeroes if none). - * @param upvoter Address of upvoter - */ - getUpvoteRecord: (upvoter: Address) => Promise = proxyCall( - this.contract.methods.getUpvoteRecord, - tupleParser(identity), - (o) => ({ - proposalID: valueToBigNumber(o[0]), - upvotes: valueToBigNumber(o[1]), - }) - ) - - async isUpvoting(upvoter: Address) { - const upvote = await this.getUpvoteRecord(upvoter) - return ( - !upvote.proposalID.isZero() && - (await this.isQueued(upvote.proposalID)) && - !(await this.isQueuedProposalExpired(upvote.proposalID)) - ) - } - - /** - * Returns the corresponding vote record - * @param voter Address of voter - * @param proposalID Governance proposal UUID - */ - async getVoteRecord(voter: Address, proposalID: BigNumber.Value): Promise { - try { - const proposalIndex = await this.getDequeueIndex(proposalID) - const res = await this.contract.methods.getVoteRecord(voter, proposalIndex).call() - return { - proposalID: valueToBigNumber(res[0]), - value: Object.keys(VoteValue)[valueToInt(res[1])] as VoteValue, - votes: valueToBigNumber(res[2]), - yesVotes: valueToBigNumber(res[3]), - noVotes: valueToBigNumber(res[4]), - abstainVotes: valueToBigNumber(res[5]), - } - } catch (_) { - // The proposal ID may not be present in the dequeued list, or the voter may not have a vote - // record for the proposal. - return null - } - } - - /** - * Returns whether a given proposal is queued. - * @param proposalID Governance proposal UUID - */ - isQueued = proxyCall(this.contract.methods.isQueued, tupleParser(valueToString)) - - /** - * Returns the value of proposal deposits that have been refunded. - * @param proposer Governance proposer address. - */ - getRefundedDeposits = proxyCall( - this.contract.methods.refundedDeposits, - tupleParser(stringIdentity), - valueToBigNumber - ) - - /* - * Returns the upvotes applied to a given proposal. - * @param proposalID Governance proposal UUID - */ - getUpvotes = proxyCall( - this.contract.methods.getUpvotes, - tupleParser(valueToString), - valueToBigNumber - ) - - /** - * Returns the yes, no, and abstain votes applied to a given proposal. - * @param proposalID Governance proposal UUID - */ - getVotes = proxyCall( - this.contract.methods.getVoteTotals, - tupleParser(valueToString), - (res): Votes => ({ - [VoteValue.Yes]: valueToBigNumber(res[0]), - [VoteValue.No]: valueToBigNumber(res[1]), - [VoteValue.Abstain]: valueToBigNumber(res[2]), - }) - ) - - /** - * Returns the proposal queue as list of upvote records. - */ - getQueue = proxyCall(this.contract.methods.getQueue, undefined, (arraysObject) => - zip( - (_id, _upvotes) => ({ - proposalID: valueToBigNumber(_id), - upvotes: valueToBigNumber(_upvotes), - }), - arraysObject[0], - arraysObject[1] - ) - ) - - /** - * Returns the (existing) proposal dequeue as list of proposal IDs. - */ - async getDequeue(filterZeroes = false) { - const dequeue = await this.contract.methods.getDequeue().call() - // filter non-zero as dequeued indices are reused and `deleteDequeuedProposal` zeroes - const dequeueIds = dequeue.map(valueToBigNumber) - return filterZeroes ? dequeueIds.filter((id) => !id.isZero()) : dequeueIds - } - - /* - * Returns the vote records for a given voter. - */ - async getVoteRecords(voter: Address): Promise { - const dequeue = await this.getDequeue() - const voteRecords = await Promise.all(dequeue.map((id) => this.getVoteRecord(voter, id))) - return voteRecords.filter((record) => record != null) as VoteRecord[] - } - - async isVotingReferendum(voter: Address) { - const records = await this.getVoteRecords(voter) - return records.length !== 0 - } - - /* - * Returns information pertaining to a voter in governance. - */ - async getVoter(account: Address): Promise { - const res = await Promise.all([ - this.getUpvoteRecord(account), - this.getVoteRecords(account), - this.getRefundedDeposits(account), - ]) - return { - upvote: res[0], - votes: res[1], - refundedDeposits: res[2], - } - } - - /** - * Dequeues any queued proposals if `dequeueFrequency` seconds have elapsed since the last dequeue - */ - dequeueProposalsIfReady = proxySend( - this.connection, - this.contract.methods.dequeueProposalsIfReady - ) - - /** - * Returns the number of votes that will be applied to a proposal for a given voter. - * @param voter Address of voter - */ - async getVoteWeight(voter: Address) { - const lockedGoldContract = await this.contracts.getLockedGold() - return lockedGoldContract.getAccountTotalLockedGold(voter) - } - - private getIndex(id: BigNumber.Value, array: BigNumber[]) { - const index = array.findIndex((bn) => bn.isEqualTo(id)) - if (index === -1) { - throw new Error(`ID ${id} not found in array ${array}`) - } - return index - } - - private async getDequeueIndex(proposalID: BigNumber.Value, dequeue?: BigNumber[]) { - if (!dequeue) { - dequeue = await this.getDequeue() - } - return this.getIndex(proposalID, dequeue) - } - - private async getQueueIndex(proposalID: BigNumber.Value, queue?: UpvoteRecord[]) { - if (!queue) { - queue = await this.getQueue() - } - return { - index: this.getIndex( - proposalID, - queue.map((record) => record.proposalID) - ), - queue, - } - } - - private async lesserAndGreater(proposalID: BigNumber.Value, _queue?: UpvoteRecord[]) { - const { index, queue } = await this.getQueueIndex(proposalID, _queue) - return { - lesserID: index === 0 ? ZERO_BN : queue[index - 1].proposalID, - greaterID: index === queue.length - 1 ? ZERO_BN : queue[index + 1].proposalID, - } - } - - sortedQueue(queue: UpvoteRecord[]) { - return queue.sort((a, b) => a.upvotes.comparedTo(b.upvotes)) - } - - private async withUpvoteRevoked(upvoter: Address, _queue?: UpvoteRecord[]) { - const upvoteRecord = await this.getUpvoteRecord(upvoter) - const { index, queue } = await this.getQueueIndex(upvoteRecord.proposalID, _queue) - queue[index].upvotes = queue[index].upvotes.minus(upvoteRecord.upvotes) - return { - queue: this.sortedQueue(queue), - upvoteRecord, - } - } - - private async withUpvoteApplied( - upvoter: Address, - proposalID: BigNumber.Value, - _queue?: UpvoteRecord[] - ) { - const { index, queue } = await this.getQueueIndex(proposalID, _queue) - const weight = await this.getVoteWeight(upvoter) - queue[index].upvotes = queue[index].upvotes.plus(weight) - return this.sortedQueue(queue) - } - - private async lesserAndGreaterAfterRevoke(upvoter: Address) { - const { queue, upvoteRecord } = await this.withUpvoteRevoked(upvoter) - return this.lesserAndGreater(upvoteRecord.proposalID, queue) - } - - private async lesserAndGreaterAfterUpvote(upvoter: Address, proposalID: BigNumber.Value) { - const upvoteRecord = await this.getUpvoteRecord(upvoter) - const recordQueued = await this.isQueued(upvoteRecord.proposalID) - // if existing upvote exists in queue, revoke it before applying new upvote - const queue = recordQueued - ? (await this.withUpvoteRevoked(upvoter)).queue - : await this.getQueue() - const upvoteQueue = await this.withUpvoteApplied(upvoter, proposalID, queue) - return this.lesserAndGreater(proposalID, upvoteQueue) - } - - /** - * Applies provided upvoter's upvote to given proposal. - * @param proposalID Governance proposal UUID - * @param upvoter Address of upvoter - */ - async upvote(proposalID: BigNumber.Value, upvoter: Address) { - const { lesserID, greaterID } = await this.lesserAndGreaterAfterUpvote(upvoter, proposalID) - return toTransactionObject( - this.connection, - this.contract.methods.upvote( - valueToString(proposalID), - valueToString(lesserID), - valueToString(greaterID) - ) - ) - } - - /** - * Revokes provided upvoter's upvote. - * @param upvoter Address of upvoter - */ - async revokeUpvote(upvoter: Address) { - const { lesserID, greaterID } = await this.lesserAndGreaterAfterRevoke(upvoter) - return toTransactionObject( - this.connection, - this.contract.methods.revokeUpvote(valueToString(lesserID), valueToString(greaterID)) - ) - } - - /** - * Approves given proposal, allowing it to later move to `referendum`. - * @param proposalID Governance proposal UUID - * @notice Only the `approver` address will succeed in sending this transaction - */ - async approve(proposalID: BigNumber.Value) { - const proposalIndex = await this.getDequeueIndex(proposalID) - return toTransactionObject( - this.connection, - this.contract.methods.approve(valueToString(proposalID), proposalIndex) - ) - } - - /** - * Applies `sender`'s vote choice to a given proposal. - * @param proposalID Governance proposal UUID - * @param vote Choice to apply (yes, no, abstain) - */ - async vote(proposalID: BigNumber.Value, vote: keyof typeof VoteValue) { - const proposalIndex = await this.getDequeueIndex(proposalID) - const voteNum = Object.keys(VoteValue).indexOf(vote) - return toTransactionObject( - this.connection, - this.contract.methods.vote(valueToString(proposalID), proposalIndex, voteNum) - ) - } - - /** - * Applies `sender`'s vote choice to a given proposal. - * @param proposalID Governance proposal UUID. - * @param yesVotes The yes votes. - * @param noVotes The no votes. - * @param abstainVotes The abstain votes. - */ - async votePartially( - proposalID: BigNumber.Value, - yesVotes: BigNumber.Value, - noVotes: BigNumber.Value, - abstainVotes: BigNumber.Value - ) { - const proposalIndex = await this.getDequeueIndex(proposalID) - return toTransactionObject( - this.connection, - this.contract.methods.votePartially( - valueToString(proposalID), - proposalIndex, - valueToString(yesVotes), - valueToString(noVotes), - valueToString(abstainVotes) - ) - ) - } - - revokeVotes = proxySend(this.connection, this.contract.methods.revokeVotes) - - /** - * Executes a given proposal's associated transactions. - * @param proposalID Governance proposal UUID - */ - async execute(proposalID: BigNumber.Value) { - const proposalIndex = await this.getDequeueIndex(proposalID) - return toTransactionObject( - this.connection, - this.contract.methods.execute(valueToString(proposalID), proposalIndex) - ) - } - - /** - * Returns approved, executed, and prepared status associated with a given hotfix. - * @param hash keccak256 hash of hotfix's associated abi encoded transactions - */ - async getHotfixRecord(hash: Buffer): Promise { - const res = await this.contract.methods.getHotfixRecord(bufferToHex(hash)).call() - return { - approved: res[0], - executed: res[1], - preparedEpoch: valueToBigNumber(res[2]), - } - } - - /** - * Returns whether a given hotfix has been whitelisted by a given address. - * @param hash keccak256 hash of hotfix's associated abi encoded transactions - * @param whitelister address of whitelister - */ - isHotfixWhitelistedBy = proxyCall( - this.contract.methods.isHotfixWhitelistedBy, - tupleParser(bufferToHex, (s: Address) => identity
(s)) - ) - - /** - * Returns whether a given hotfix can be passed. - * @param hash keccak256 hash of hotfix's associated abi encoded transactions - */ - isHotfixPassing = proxyCall(this.contract.methods.isHotfixPassing, tupleParser(bufferToHex)) - - /** - * Returns the number of validators required to reach a Byzantine quorum - */ - minQuorumSize = proxyCall( - this.contract.methods.minQuorumSizeInCurrentSet, - undefined, - valueToBigNumber - ) - - /** - * Returns the number of validators that whitelisted the hotfix - * @param hash keccak256 hash of hotfix's associated abi encoded transactions - */ - hotfixWhitelistValidatorTally = proxyCall( - this.contract.methods.hotfixWhitelistValidatorTally, - tupleParser(bufferToHex) - ) - - /** - * Marks the given hotfix whitelisted by `sender`. - * @param hash keccak256 hash of hotfix's associated abi encoded transactions - */ - whitelistHotfix = proxySend( - this.connection, - this.contract.methods.whitelistHotfix, - tupleParser(bufferToHex) - ) - - /** - * Marks the given hotfix approved by `sender`. - * @param hash keccak256 hash of hotfix's associated abi encoded transactions - * @notice Only the `approver` address will succeed in sending this transaction - */ - approveHotfix = proxySend( - this.connection, - this.contract.methods.approveHotfix, - tupleParser(bufferToHex) - ) - - /** - * Marks the given hotfix prepared for current epoch if quorum of validators have whitelisted it. - * @param hash keccak256 hash of hotfix's associated abi encoded transactions - */ - prepareHotfix = proxySend( - this.connection, - this.contract.methods.prepareHotfix, - tupleParser(bufferToHex) - ) - - /** - * Executes a given sequence of transactions if the corresponding hash is prepared and approved. - * @param hotfix Governance hotfix proposal - * @param salt Secret which guarantees uniqueness of hash - * @notice keccak256 hash of abi encoded transactions computed on-chain - */ - executeHotfix = proxySend(this.connection, this.contract.methods.executeHotfix, hotfixToParams) -} - -export type GovernanceWrapperType = GovernanceWrapper diff --git a/packages/sdk/contractkit/src/wrappers/GrandaMento.test.ts b/packages/sdk/contractkit/src/wrappers/GrandaMento.test.ts deleted file mode 100644 index 53eeac3cf51..00000000000 --- a/packages/sdk/contractkit/src/wrappers/GrandaMento.test.ts +++ /dev/null @@ -1,189 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import { NetworkConfig, testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import { toFixed } from '@celo/utils/src/fixidity' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { StableToken } from '../celo-tokens' -import { newKitFromWeb3 } from '../kit' -import { setGrandaMentoLimits } from '../test-utils/grandaMento' -import { assumeOwnership } from '../test-utils/transferownership' -import { GoldTokenWrapper } from './GoldTokenWrapper' -import { ExchangeProposalState, GrandaMentoWrapper } from './GrandaMento' -import { StableTokenWrapper } from './StableTokenWrapper' - -const expConfig = NetworkConfig.grandaMento - -testWithGanache('GrandaMento Wrapper', (web3: Web3) => { - const kit = newKitFromWeb3(web3) - let accounts: Address[] = [] - let grandaMento: GrandaMentoWrapper - let celoToken: GoldTokenWrapper - let stableToken: StableTokenWrapper - const newLimitMin = new BigNumber('1000') - const newLimitMax = new BigNumber('1000000000000') - let sellAmount: BigNumber - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - grandaMento = await kit.contracts.getGrandaMento() - - stableToken = await kit.contracts.getStableToken(StableToken.cUSD) - celoToken = await kit.contracts.getGoldToken() - // Reset limits - await assumeOwnership(web3, accounts[0]) - const zero = new BigNumber(0) - await setLimits('StableToken', zero, zero) - await setLimits('StableTokenEUR', zero, zero) - }) - - const setLimits = async ( - registryId: string = 'StableToken', - min: BigNumber = newLimitMin, - max: BigNumber = newLimitMax - ) => { - await setGrandaMentoLimits(grandaMento, min, max, registryId) - } - - describe('No limits sets', () => { - it('gets the proposals', async () => { - const activeProposals = await grandaMento.getActiveProposalIds() - expect(activeProposals).toEqual([]) - }) - - it('fetches empty limits', async () => { - const limits = await grandaMento.stableTokenExchangeLimits(StableToken.cUSD) - expect(limits.minExchangeAmount).toEqBigNumber(new BigNumber(0)) - expect(limits.maxExchangeAmount).toEqBigNumber(new BigNumber(0)) - }) - }) - - it("fetchs a proposal it doesn't exist", async () => { - await expect(grandaMento.getExchangeProposal(0)).rejects.toThrow("Proposal doesn't exist") - }) - - describe('When Granda Mento is enabled', () => { - beforeEach(async () => { - await setLimits() - }) - - it('updated the config', async () => { - const config = await grandaMento.getConfig() - expect( - config.exchangeLimits.get(kit.celoTokens.getContract(StableToken.cUSD))?.minExchangeAmount - ).toEqBigNumber(new BigNumber(newLimitMin)) - expect( - config.exchangeLimits.get(kit.celoTokens.getContract(StableToken.cUSD))?.maxExchangeAmount - ).toEqBigNumber(new BigNumber(newLimitMax)) - expect( - config.exchangeLimits.get(kit.celoTokens.getContract(StableToken.cEUR))?.minExchangeAmount - ).toEqBigNumber(new BigNumber(0)) - expect( - config.exchangeLimits.get(kit.celoTokens.getContract(StableToken.cEUR))?.maxExchangeAmount - ).toEqBigNumber(new BigNumber(0)) - }) - - it('has new limits', async () => { - const limits = await grandaMento.stableTokenExchangeLimits(StableToken.cUSD) - expect(limits.minExchangeAmount).toEqBigNumber(newLimitMin) - expect(limits.maxExchangeAmount).toEqBigNumber(newLimitMax) - }) - - describe('Has a proposal', () => { - beforeEach(async () => { - sellAmount = new BigNumber('100000000') - await celoToken.increaseAllowance(grandaMento.address, sellAmount).sendAndWaitForReceipt() - - await ( - await grandaMento.createExchangeProposal( - kit.celoTokens.getContract(StableToken.cUSD), - sellAmount, - true - ) - ).sendAndWaitForReceipt() - }) - - it('executes', async () => { - const activeProposals = await grandaMento.getActiveProposalIds() - expect(activeProposals).not.toEqual([]) - - let proposal = await grandaMento.getExchangeProposal(activeProposals[0]) - expect(proposal.exchanger).toEqual(accounts[0]) - expect(proposal.stableToken).toEqual(stableToken.address) - expect(proposal.sellAmount).toEqBigNumber(sellAmount) - expect(proposal.buyAmount).toEqBigNumber(new BigNumber('99000000')) - expect(proposal.approvalTimestamp).toEqual(new BigNumber(0)) - expect(proposal.state).toEqual(ExchangeProposalState.Proposed) - expect(proposal.sellCelo).toEqual(true) - - await grandaMento.approveExchangeProposal(activeProposals[0]).sendAndWaitForReceipt() - - proposal = await grandaMento.getExchangeProposal(activeProposals[0]) - - expect(proposal.state).toEqual(ExchangeProposalState.Approved) - await timeTravel(expConfig.vetoPeriodSeconds, web3) - await grandaMento.executeExchangeProposal(activeProposals[0]).sendAndWaitForReceipt() - - proposal = await grandaMento.getExchangeProposal(activeProposals[0]) - expect(proposal.state).toEqual(ExchangeProposalState.Executed) - }) - - it('displays human format correctly', async () => { - const activeProposals = await grandaMento.getActiveProposalIds() - - const proposal = await grandaMento.getHumanReadableExchangeProposal(activeProposals[0]) - expect(proposal.exchanger).toEqual(accounts[0]) - expect(proposal.stableToken).toEqual(`Celo Dollar (cUSD) at ${stableToken.address}`) - expect(proposal.sellAmount).toEqBigNumber(sellAmount) - expect(proposal.buyAmount).toEqBigNumber(new BigNumber('99000000')) - expect(proposal.approvalTimestamp).toEqual(new BigNumber(0)) - expect(proposal.state).toEqual('Proposed') - expect(proposal.sellCelo).toEqual(true) - expect(proposal.implictPricePerCelo).toEqBigNumber(new BigNumber('0.99')) - }) - - it('cancels proposal', async () => { - await grandaMento.cancelExchangeProposal(1).sendAndWaitForReceipt() - - const proposal = await grandaMento.getExchangeProposal('1') - expect(proposal.state).toEqual(ExchangeProposalState.Cancelled) - }) - }) - }) - - it('#getConfig', async () => { - const config = await grandaMento.getConfig() - expect(config.approver).toBe(expConfig.approver) - expect(config.spread).toEqBigNumber(expConfig.spread) - expect(config.maxApprovalExchangeRateChange).toEqBigNumber( - expConfig.maxApprovalExchangeRateChange - ) - expect(config.vetoPeriodSeconds).toEqBigNumber(expConfig.vetoPeriodSeconds) - expect( - config.exchangeLimits.get(kit.celoTokens.getContract(StableToken.cUSD))?.minExchangeAmount - ).toEqBigNumber(new BigNumber(0)) - expect( - config.exchangeLimits.get(kit.celoTokens.getContract(StableToken.cUSD))?.maxExchangeAmount - ).toEqBigNumber(new BigNumber(0)) - expect( - config.exchangeLimits.get(kit.celoTokens.getContract(StableToken.cEUR))?.minExchangeAmount - ).toEqBigNumber(new BigNumber(0)) - expect( - config.exchangeLimits.get(kit.celoTokens.getContract(StableToken.cEUR))?.maxExchangeAmount - ).toEqBigNumber(new BigNumber(0)) - }) - - describe('#getBuyAmount', () => { - it('gets the buy amount', async () => { - const oracleRate = 1 - const hypotheticalSellAmount = toFixed(1) - expect( - await grandaMento.getBuyAmount(toFixed(oracleRate), hypotheticalSellAmount, true) - ).toEqBigNumber( - hypotheticalSellAmount - .times(oracleRate) - .times(new BigNumber(1).minus(await grandaMento.spread())) - ) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/GrandaMento.ts b/packages/sdk/contractkit/src/wrappers/GrandaMento.ts deleted file mode 100644 index 591ef31ae7a..00000000000 --- a/packages/sdk/contractkit/src/wrappers/GrandaMento.ts +++ /dev/null @@ -1,233 +0,0 @@ -import { GrandaMento } from '@celo/abis/web3/mento/GrandaMento' -import { newStableToken } from '@celo/abis/web3/mento/StableToken' -import BigNumber from 'bignumber.js' -import { StableTokenContract } from '../base' -import { StableToken as StableTokenEnum, stableTokenInfos } from '../celo-tokens' -import { - BaseWrapper, - fixidityValueToBigNumber, - proxyCall, - proxySend, - valueToBigNumber, -} from './BaseWrapper' -import { StableTokenWrapper } from './StableTokenWrapper' - -export enum ExchangeProposalState { - None, - Proposed, - Approved, - Executed, - Cancelled, -} - -export interface GrandaMentoConfig { - approver: string - spread: BigNumber - vetoPeriodSeconds: BigNumber - maxApprovalExchangeRateChange: BigNumber - exchangeLimits: AllStableConfig -} - -export interface StableTokenExchangeLimits { - minExchangeAmount: BigNumber - maxExchangeAmount: BigNumber -} - -export interface ExchangeProposal { - exchanger: string - stableToken: string - sellAmount: BigNumber - buyAmount: BigNumber - vetoPeriodSeconds: BigNumber - approvalTimestamp: BigNumber - state: ExchangeProposalState - sellCelo: boolean - id: string | number -} - -export interface ExchangeProposalReadable { - exchanger: string - stableToken: string - sellAmount: BigNumber - buyAmount: BigNumber - approvalTimestamp: BigNumber - state: string - sellCelo: boolean - id: string | number - implictPricePerCelo: BigNumber -} - -type AllStableConfig = Map - -export class GrandaMentoWrapper extends BaseWrapper { - owner = proxyCall(this.contract.methods.owner) - - approver = proxyCall(this.contract.methods.approver) - setApprover = proxySend(this.connection, this.contract.methods.setApprover) - - maxApprovalExchangeRateChange = proxyCall( - this.contract.methods.maxApprovalExchangeRateChange, - undefined, - fixidityValueToBigNumber - ) - setMaxApprovalExchangeRateChange = proxySend( - this.connection, - this.contract.methods.setMaxApprovalExchangeRateChange - ) - - spread = proxyCall(this.contract.methods.spread, undefined, fixidityValueToBigNumber) - setSpread = proxySend(this.connection, this.contract.methods.setSpread) - - vetoPeriodSeconds = proxyCall( - this.contract.methods.vetoPeriodSeconds, - undefined, - valueToBigNumber - ) - setVetoPeriodSeconds = proxySend(this.connection, this.contract.methods.setVetoPeriodSeconds) - - exchangeProposalCount = proxyCall( - this.contract.methods.exchangeProposalCount, - undefined, - valueToBigNumber - ) - - async getActiveProposalIds() { - const unfilteredIds = await this.contract.methods.getActiveProposalIds().call() - // '0' is given to signify an ID that is no longer active, so we filter them out. - return unfilteredIds.filter((id) => id !== '0') - } - - setStableTokenExchangeLimits = proxySend( - this.connection, - this.contract.methods.setStableTokenExchangeLimits - ) - - approveExchangeProposal = proxySend( - this.connection, - this.contract.methods.approveExchangeProposal - ) - - executeExchangeProposal = proxySend( - this.connection, - this.contract.methods.executeExchangeProposal - ) - cancelExchangeProposal = proxySend(this.connection, this.contract.methods.cancelExchangeProposal) - - async createExchangeProposal( - stableTokenRegistryId: StableTokenContract, - sellAmount: BigNumber, - sellCelo: boolean - ) { - const createExchangeProposalInner = proxySend( - this.connection, - this.contract.methods.createExchangeProposal - ) - return createExchangeProposalInner(stableTokenRegistryId, sellAmount.toFixed(), sellCelo) - } - - async exchangeProposalExists(exchangeProposalID: string | number) { - const result = await this.contract.methods.exchangeProposals(exchangeProposalID).call() - const state = parseInt(result.state, 10) - return !(state === ExchangeProposalState.None) - } - - async getExchangeProposal(exchangeProposalID: string | number): Promise { - const result = await this.contract.methods.exchangeProposals(exchangeProposalID).call() - const state = parseInt(result.state, 10) - - if (state === ExchangeProposalState.None) { - throw new Error("Proposal doesn't exist") - } - - return { - exchanger: result.exchanger, - stableToken: result.stableToken, - sellAmount: new BigNumber(result.sellAmount), - buyAmount: new BigNumber(result.buyAmount), - vetoPeriodSeconds: new BigNumber(result.vetoPeriodSeconds), - approvalTimestamp: new BigNumber(result.approvalTimestamp), - sellCelo: result.sellCelo, - state, - id: exchangeProposalID, - } - } - - async getHumanReadableExchangeProposal( - exchangeProposalID: string | number - ): Promise { - const proposal = await this.getExchangeProposal(exchangeProposalID) - - const stableTokenContract = new StableTokenWrapper( - this.connection, - newStableToken(this.connection.web3, proposal.stableToken) - ) - - return { - ...proposal, - stableToken: `${await stableTokenContract.name()} (${await stableTokenContract.symbol()}) at ${ - proposal.stableToken - }`, - implictPricePerCelo: proposal.sellCelo - ? proposal.buyAmount.div(proposal.sellAmount) - : proposal.sellAmount.div(proposal.buyAmount), - state: ExchangeProposalState[proposal.state], - } - } - - async stableTokenExchangeLimits( - stableTokenSymbol: StableTokenEnum - ): Promise { - const stableTokenRegistryId = stableTokenInfos[stableTokenSymbol].contract - const result = await this.contract.methods - .stableTokenExchangeLimits(stableTokenRegistryId.toString()) - .call() - return { - minExchangeAmount: new BigNumber(result.minExchangeAmount), - maxExchangeAmount: new BigNumber(result.maxExchangeAmount), - } - } - - async getAllStableTokenLimits(): Promise { - const out: AllStableConfig = new Map() - - const res = await Promise.all( - Object.values(StableTokenEnum).map((key) => this.stableTokenExchangeLimits(key)) - ) - - Object.values(StableTokenEnum).map((key, index) => - out.set(stableTokenInfos[key].contract, res[index]) - ) - - return out - } - - async getBuyAmount( - celoStableTokenOracleRate: BigNumber, // Note this is intended to be a fixed point number - sellAmount: BigNumber, - sellCelo: boolean - ): Promise { - const result = await this.contract.methods - .getBuyAmount(celoStableTokenOracleRate.toFixed(), sellAmount.toFixed(), sellCelo) - .call() - return new BigNumber(result) - } - - async getConfig(): Promise { - const res = await Promise.all([ - this.approver(), - this.spread(), - this.vetoPeriodSeconds(), - this.maxApprovalExchangeRateChange(), - this.getAllStableTokenLimits(), - ]) - return { - approver: res[0], - spread: res[1], - vetoPeriodSeconds: res[2], - maxApprovalExchangeRateChange: res[3], - exchangeLimits: res[4], - } - } -} - -export type GrandaMentoWrapperType = GrandaMentoWrapper diff --git a/packages/sdk/contractkit/src/wrappers/LockedGold.test.ts b/packages/sdk/contractkit/src/wrappers/LockedGold.test.ts deleted file mode 100644 index fc2daf41ed2..00000000000 --- a/packages/sdk/contractkit/src/wrappers/LockedGold.test.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { newKitFromWeb3 } from '../kit' -import { AccountsWrapper } from './Accounts' -import { LockedGoldWrapper } from './LockedGold' - -testWithGanache('LockedGold Wrapper', (web3) => { - const kit = newKitFromWeb3(web3) - let accounts: AccountsWrapper - let lockedGold: LockedGoldWrapper - - // Arbitrary value. - const value = 120938732980 - let account: string - beforeAll(async () => { - account = (await web3.eth.getAccounts())[0] - kit.defaultAccount = account - lockedGold = await kit.contracts.getLockedGold() - accounts = await kit.contracts.getAccounts() - if (!(await accounts.isAccount(account))) { - await accounts.createAccount().sendAndWaitForReceipt({ from: account }) - } - }) - - test('SBAT lock gold', async () => { - await lockedGold.lock().sendAndWaitForReceipt({ value }) - }) - - test('SBAT unlock gold', async () => { - await lockedGold.lock().sendAndWaitForReceipt({ value }) - await lockedGold.unlock(value).sendAndWaitForReceipt() - }) - - test('SBAT relock gold', async () => { - // Make 5 pending withdrawals. - await lockedGold.lock().sendAndWaitForReceipt({ value: value * 5 }) - await lockedGold.unlock(value).sendAndWaitForReceipt() - await lockedGold.unlock(value).sendAndWaitForReceipt() - await lockedGold.unlock(value).sendAndWaitForReceipt() - await lockedGold.unlock(value).sendAndWaitForReceipt() - await lockedGold.unlock(value).sendAndWaitForReceipt() - // Re-lock 2.5 of them - const txos = await lockedGold.relock(account, value * 2.5) - await Promise.all(txos.map((txo) => txo.sendAndWaitForReceipt())) - // - }) - // when this fails the 2 tests below should pass. - test('getTotalPendingWithdrawalsCount throws when version is below minimum', async () => { - expect(lockedGold.getTotalPendingWithdrawalsCount(account)).rejects.toThrowError( - 'getTotalPendingWithdrawalsCount not implemented for LockedGold version (1.1.3.0) deployed to this chain' - ) - }) - test.failing('should return the count of pending withdrawals', async () => { - await lockedGold.lock().sendAndWaitForReceipt({ value: value * 2 }) - await lockedGold.unlock(value).sendAndWaitForReceipt() - await lockedGold.unlock(value).sendAndWaitForReceipt() - - const count = await lockedGold.getTotalPendingWithdrawalsCount(account) - expect(count).toEqBigNumber(2) - }) - - test.failing('should return zero when there are no pending withdrawals', async () => { - const count = await lockedGold.getTotalPendingWithdrawalsCount(account) - expect(count).toEqBigNumber(0) - }) - - test('should return the pending withdrawal at a given index', async () => { - await lockedGold.lock().sendAndWaitForReceipt({ value: value * 2 }) - await lockedGold.unlock(value).sendAndWaitForReceipt() - const pendingWithdrawal = await lockedGold.getPendingWithdrawal(account, 0) - - expect(pendingWithdrawal.value).toEqBigNumber(value) - }) - - test('should throw an error for an invalid index', async () => { - await expect(lockedGold.getPendingWithdrawal(account, 999)).rejects.toThrow( - 'Bad pending withdrawal index' - ) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/LockedGold.ts b/packages/sdk/contractkit/src/wrappers/LockedGold.ts deleted file mode 100644 index fcc305d9556..00000000000 --- a/packages/sdk/contractkit/src/wrappers/LockedGold.ts +++ /dev/null @@ -1,427 +0,0 @@ -import { LockedGold } from '@celo/abis/web3/LockedGold' -import { - AddressListItem as ALI, - Comparator, - linkedListChanges as baseLinkedListChanges, - zip, -} from '@celo/base/lib/collections' -import { Address, CeloTransactionObject, EventLog } from '@celo/connect' -import BigNumber from 'bignumber.js' -import { ContractVersion } from '../versions' -import { - proxyCall, - proxySend, - secondsToDurationString, - tupleParser, - valueToBigNumber, - valueToString, -} from '../wrappers/BaseWrapper' -import { BaseWrapperForGoverning } from './BaseWrapperForGoverning' - -type AddressListItem = ALI -const bigNumberComparator: Comparator = (a: BigNumber, b: BigNumber) => a.lt(b) -function linkedListChanges( - groups: AddressListItem[], - changed: AddressListItem[] -): { lessers: string[]; greaters: string[]; list: AddressListItem[] } { - return baseLinkedListChanges(groups, changed, bigNumberComparator) -} - -export interface VotingDetails { - accountAddress: Address - voterAddress: Address - /** vote's weight */ - weight: BigNumber -} - -export interface DelegateInfo { - totalPercentDelegated: string - delegatees: string[] - totalVotesDelegatedToThisAccount: BigNumber -} - -interface AccountSummary { - lockedGold: { - total: BigNumber - nonvoting: BigNumber - requirement: BigNumber - } - totalGovernaneVotingPower: BigNumber - pendingWithdrawals: PendingWithdrawal[] -} - -export interface AccountSlashed { - slashed: Address - penalty: BigNumber - reporter: Address - reward: BigNumber - epochNumber: number -} - -export interface PendingWithdrawal { - time: BigNumber - value: BigNumber -} - -export interface LockedGoldConfig { - unlockingPeriod: BigNumber - totalLockedGold: BigNumber -} - -/** - * Contract for handling deposits needed for voting. - */ - -export class LockedGoldWrapper extends BaseWrapperForGoverning { - /** - * Withdraws a gold that has been unlocked after the unlocking period has passed. - * @param index The index of the pending withdrawal to withdraw. - */ - withdraw: (index: number) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.withdraw - ) - - /** - * Locks gold to be used for voting. - * The gold to be locked, must be specified as the `tx.value` - */ - lock = proxySend(this.connection, this.contract.methods.lock) - - /** - * Delegates locked gold. - */ - delegate = proxySend(this.connection, this.contract.methods.delegateGovernanceVotes) - - /** - * Updates the amount of delegated locked gold. There might be discrepancy between the amount of locked gold - * and the amount of delegated locked gold because of received rewards. - */ - updateDelegatedAmount = proxySend(this.connection, this.contract.methods.updateDelegatedAmount) - - /** - * Revokes delegated locked gold. - */ - revokeDelegated = proxySend(this.connection, this.contract.methods.revokeDelegatedGovernanceVotes) - - getMaxDelegateesCount = async () => { - const maxDelegateesCountHex = await this.connection.web3.eth.getStorageAt( - // tslint:disable-next-line:no-string-literal - this.contract['_address'], - 10 - ) - return new BigNumber(maxDelegateesCountHex, 16) - } - - getDelegateInfo = async (account: string): Promise => { - const totalDelegatedFractionPromise = this.contract.methods - .getAccountTotalDelegatedFraction(account) - .call() - const totalDelegatedCeloPromise = this.contract.methods.totalDelegatedCelo(account).call() - const delegateesPromise = this.contract.methods.getDelegateesOfDelegator(account).call() - - const fixidity = new BigNumber('1000000000000000000000000') - - return { - totalPercentDelegated: - new BigNumber(await totalDelegatedFractionPromise) - .multipliedBy(100) - .div(fixidity) - .toFixed() + '%', - delegatees: await delegateesPromise, - totalVotesDelegatedToThisAccount: new BigNumber(await totalDelegatedCeloPromise), - } - } - - /** - * Unlocks gold that becomes withdrawable after the unlocking period. - * @param value The amount of gold to unlock. - */ - unlock: (value: BigNumber.Value) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.unlock, - tupleParser(valueToString) - ) - - async getPendingWithdrawalsTotalValue(account: Address) { - const pendingWithdrawals = await this.getPendingWithdrawals(account) - // Ensure there are enough pending withdrawals to relock. - const values = pendingWithdrawals.map((pw: PendingWithdrawal) => pw.value) - const reducer = (total: BigNumber, pw: BigNumber) => pw.plus(total) - return values.reduce(reducer, new BigNumber(0)) - } - - /** - * Relocks gold that has been unlocked but not withdrawn. - * @param value The value to relock from pending withdrawals. - */ - async relock( - account: Address, - value: BigNumber.Value - ): Promise>> { - const pendingWithdrawals = await this.getPendingWithdrawals(account) - // Ensure there are enough pending withdrawals to relock. - const totalValue = await this.getPendingWithdrawalsTotalValue(account) - if (totalValue.isLessThan(value)) { - throw new Error(`Not enough pending withdrawals to relock ${value}`) - } - // Assert pending withdrawals are sorted by time (increasing), so that we can re-lock starting - // with those furthest away from being available (at the end). - const throwIfNotSorted = (pw: PendingWithdrawal, i: number) => { - if (i > 0 && !pw.time.isGreaterThanOrEqualTo(pendingWithdrawals[i - 1].time)) { - throw new Error('Pending withdrawals not sorted by timestamp') - } - } - pendingWithdrawals.forEach(throwIfNotSorted) - - let remainingToRelock = new BigNumber(value) - const relockPw = ( - acc: Array>, - pw: PendingWithdrawal, - i: number - ) => { - const valueToRelock = BigNumber.minimum(pw.value, remainingToRelock) - if (!valueToRelock.isZero()) { - remainingToRelock = remainingToRelock.minus(valueToRelock) - acc.push(this._relock(i, valueToRelock)) - } - return acc - } - return pendingWithdrawals.reduceRight(relockPw, []) as Array> - } - - /** - * Relocks gold that has been unlocked but not withdrawn. - * @param index The index of the pending withdrawal to relock from. - * @param value The value to relock from the specified pending withdrawal. - */ - _relock: (index: number, value: BigNumber.Value) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.relock, - tupleParser(valueToString, valueToString) - ) - - /** - * Returns the total amount of locked gold for an account. - * @param account The account. - * @return The total amount of locked gold for an account. - */ - getAccountTotalLockedGold = proxyCall( - this.contract.methods.getAccountTotalLockedGold, - undefined, - valueToBigNumber - ) - - /** - * Returns the total amount of locked gold in the system. Note that this does not include - * gold that has been unlocked but not yet withdrawn. - * @returns The total amount of locked gold in the system. - */ - getTotalLockedGold = proxyCall( - this.contract.methods.getTotalLockedGold, - undefined, - valueToBigNumber - ) - - /** - * Returns the total amount of non-voting locked gold for an account. - * @param account The account. - * @return The total amount of non-voting locked gold for an account. - */ - getAccountNonvotingLockedGold = proxyCall( - this.contract.methods.getAccountNonvotingLockedGold, - undefined, - valueToBigNumber - ) - - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - return { - unlockingPeriod: valueToBigNumber(await this.contract.methods.unlockingPeriod().call()), - totalLockedGold: await this.getTotalLockedGold(), - } - } - - /** - * @dev Returns human readable configuration of the lockedgold contract - * @return LockedGoldConfig object - */ - async getHumanReadableConfig() { - const config = await this.getConfig() - return { - ...config, - unlockingPeriod: secondsToDurationString(config.unlockingPeriod), - } - } - - async getAccountSummary(account: string): Promise { - const validators = await this.contracts.getValidators() - const nonvotingPromise = this.getAccountNonvotingLockedGold(account) - const totalPromise = this.getAccountTotalLockedGold(account) - const requirementPromise = validators.getAccountLockedGoldRequirement(account) - const pendingWithdrawalsPromise = this.getPendingWithdrawals(account) - const accountTotalGovernanceVotingPowerPromise = - this.getAccountTotalGovernanceVotingPower(account) - return { - lockedGold: { - total: await totalPromise, - nonvoting: await nonvotingPromise, - requirement: await requirementPromise, - }, - totalGovernaneVotingPower: await accountTotalGovernanceVotingPowerPromise, - pendingWithdrawals: await pendingWithdrawalsPromise, - } - } - - /** - * Returns the total amount of governance voting power for an account. - * @param account The address of the account. - * @return The total amount of governance voting power for an account. - */ - async getAccountTotalGovernanceVotingPower(account: string) { - const totalGovernanceVotingPower = await this.contract.methods - .getAccountTotalGovernanceVotingPower(account) - .call() - return new BigNumber(totalGovernanceVotingPower) - } - - /** - * Returns the pending withdrawals from unlocked gold for an account. - * @param account The address of the account. - * @return The value and timestamp for each pending withdrawal. - */ - async getPendingWithdrawals(account: string) { - const withdrawals = await this.contract.methods.getPendingWithdrawals(account).call() - return zip( - (time, value): PendingWithdrawal => ({ - time: valueToBigNumber(time), - value: valueToBigNumber(value), - }), - withdrawals[1], - withdrawals[0] - ) - } - - /** - * Returns the pending withdrawal at a given index for a given account. - * @param account The address of the account. - * @param index The index of the pending withdrawal. - * @return The value of the pending withdrawal. - * @return The timestamp of the pending withdrawal. - */ - async getPendingWithdrawal(account: string, index: number) { - const response = await this.contract.methods.getPendingWithdrawal(account, index).call() - return { - value: valueToBigNumber(response[0]), - time: valueToBigNumber(response[1]), - } - } - - /** - * Retrieves AccountSlashed for epochNumber. - * @param epochNumber The epoch to retrieve AccountSlashed at. - */ - async getAccountsSlashed(epochNumber: number): Promise { - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - const events = await this.getPastEvents('AccountSlashed', { - fromBlock: await blockchainParamsWrapper.getFirstBlockNumberForEpoch(epochNumber), - toBlock: await blockchainParamsWrapper.getLastBlockNumberForEpoch(epochNumber), - }) - return events.map( - (e: EventLog): AccountSlashed => ({ - epochNumber, - slashed: e.returnValues.slashed, - penalty: valueToBigNumber(e.returnValues.penalty), - reporter: e.returnValues.reporter, - reward: valueToBigNumber(e.returnValues.reward), - }) - ) - } - - /** - * Computes parameters for slashing `penalty` from `account`. - * @param account The account to slash. - * @param penalty The amount to slash as penalty. - * @return List of (group, voting gold) to decrement from `account`. - */ - async computeInitialParametersForSlashing(account: string, penalty: BigNumber) { - const election = await this.contracts.getElection() - const eligible = await election.getEligibleValidatorGroupsVotes() - const groups: AddressListItem[] = eligible.map((x) => ({ address: x.address, value: x.votes })) - return this.computeParametersForSlashing(account, penalty, groups) - } - - async computeParametersForSlashing( - account: string, - penalty: BigNumber, - groups: AddressListItem[] - ) { - const changed = await this.computeDecrementsForSlashing(account, penalty, groups) - const changes = linkedListChanges(groups, changed) - return { ...changes, indices: changed.map((a) => a.index) } - } - - // Returns how much voting gold will be decremented from the groups voted by an account - // Implementation follows protocol/test/common/integration slashingOfGroups() - private async computeDecrementsForSlashing( - account: Address, - penalty: BigNumber, - allGroups: AddressListItem[] - ) { - // first check how much voting gold has to be slashed - const nonVoting = await this.getAccountNonvotingLockedGold(account) - if (penalty.isLessThan(nonVoting)) { - return [] - } - let difference = penalty.minus(nonVoting) - // find voted groups - const election = await this.contracts.getElection() - const groups = await election.getGroupsVotedForByAccount(account) - const res = [] - // - for (let i = groups.length - 1; i >= 0; i--) { - const group = groups[i] - const totalVotes = allGroups.find((a) => a.address === group)?.value - if (!totalVotes) { - throw new Error(`Cannot find group ${group}`) - } - const votes = await election.getTotalVotesForGroupByAccount(group, account) - const slashedVotes = votes.lt(difference) ? votes : difference - res.push({ address: group, value: totalVotes.minus(slashedVotes), index: i }) - difference = difference.minus(slashedVotes) - if (difference.eq(new BigNumber(0))) { - break - } - } - return res - } - - /** - * Returns the number of pending withdrawals for the specified account. - * @param account The account. - * @notice This method is only available in version 1.1.4 or higher of the LockedGold contract. - * @returns The count of pending withdrawals. - */ - async getTotalPendingWithdrawalsCount(account: string) { - const minVersion = new ContractVersion(1, 1, 4, 0) - const version = await this.version() - if (version.isAtLeast(minVersion)) { - return this._getTotalPendingWithdrawalsCount(account) - } else { - throw new Error( - `getTotalPendingWithdrawalsCount not implemented for LockedGold version (${version.toString()}) deployed to this chain` - ) - } - } - - _getTotalPendingWithdrawalsCount = proxyCall( - // @ts-expect-error - this.contract.methods.getTotalPendingWithdrawalsCount, - undefined, - valueToBigNumber - ) -} - -export type LockedGoldWrapperType = LockedGoldWrapper diff --git a/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.test.ts b/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.test.ts deleted file mode 100644 index a231d601e79..00000000000 --- a/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.test.ts +++ /dev/null @@ -1,266 +0,0 @@ -import { Address } from '@celo/base/lib/address' -import { Signature } from '@celo/base/lib/signatureUtils' -import MTWContractArtifacts from '@celo/celo-devchain/contracts/contracts-0.5/MetaTransactionWallet.json' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { generateTypedDataHash } from '@celo/utils/lib/sign-typed-data-utils' -import { bufferToHex } from '@ethereumjs/util' -import BigNumber from 'bignumber.js' -import { newKitFromWeb3 } from '../kit' -import { GoldTokenWrapper } from './GoldTokenWrapper' -import { - buildMetaTxTypedData, - MetaTransactionWalletWrapper, - RawTransaction, - toRawTransaction, -} from './MetaTransactionWallet' - -const contract = require('@truffle/contract') -const MetaTransactionWallet = contract(MTWContractArtifacts) - -testWithGanache('MetaTransactionWallet Wrapper', (web3) => { - MetaTransactionWallet.setProvider(web3.currentProvider) - - const deployWallet = async (deployer: Address, signer: Address): Promise
=> { - const instance = await MetaTransactionWallet.new(true, { from: deployer }) - await instance.initialize(signer, { from: deployer }) - return instance.address - } - - // Ganache returns 1 in chainId assembly code - const chainId = 1 - const kit = newKitFromWeb3(web3) - let accounts: Address[] - let walletDeployer: Address - let walletSigner: Address - let wallet: MetaTransactionWalletWrapper - let gold: GoldTokenWrapper - let emptyAccounts: Address[] - let rando: Address - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - walletDeployer = accounts[0] - walletSigner = accounts[1] - kit.defaultAccount = walletSigner - rando = accounts[2] - gold = await kit.contracts.getGoldToken() - }) - - beforeEach(async () => { - const walletAddress = await deployWallet(walletDeployer, walletSigner) - wallet = await kit.contracts.getMetaTransactionWallet(walletAddress) - // Ganache returns 1 in chainId assembly code - // @ts-ignore - wallet.chainId = () => Promise.resolve(chainId) - - // Give the wallet some funds - await gold.transfer(wallet.address, new BigNumber(20e18).toFixed()).sendAndWaitForReceipt() - emptyAccounts = [0, 0, 0, 0, 0].map(() => web3.utils.randomHex(20)) - }) - - describe('#executeTransaction', () => { - describe('as a rando', () => { - it('reverts', async () => { - expect.assertions(1) - await expect( - wallet - .executeTransaction(gold.transfer(emptyAccounts[0], 10000).txo) - .sendAndWaitForReceipt({ from: rando }) - ).rejects.toThrow(/Invalid transaction sender/) - }) - }) - - describe('as the signer', () => { - it('can call contracts', async () => { - const value = new BigNumber(1e18) - const result = await wallet - .executeTransaction(gold.transfer(emptyAccounts[0], value.toFixed()).txo) - .sendAndWaitForReceipt() - expect(result.status).toBe(true) - expect(await gold.balanceOf(emptyAccounts[0])).toEqual(value) - }) - }) - }) - - describe('#executeTransactions', () => { - describe('as a rando', () => { - it('reverts', async () => { - expect.assertions(1) - await expect( - wallet - .executeTransactions([ - gold.transfer(emptyAccounts[0], 1000).txo, - gold.transfer(emptyAccounts[1], 1000).txo, - ]) - .sendAndWaitForReceipt({ from: rando }) - ).rejects.toThrow(/Invalid transaction sender/) - }) - }) - - describe('as the signer', () => { - it('can execute transactions', async () => { - const walletBalanceBefore = await gold.balanceOf(wallet.address) - const value = new BigNumber(1e18) - const result = await wallet - .executeTransactions([ - gold.transfer(emptyAccounts[0], value.toFixed()).txo, - gold.transfer(emptyAccounts[1], value.toFixed()).txo, - ]) - .sendAndWaitForReceipt() - expect(result.status).toBe(true) - - expect(await gold.balanceOf(wallet.address)).toEqual( - walletBalanceBefore.minus(value.times(2)) - ) - expect(await gold.balanceOf(emptyAccounts[0])).toEqual(value) - expect(await gold.balanceOf(emptyAccounts[1])).toEqual(value) - }) - }) - }) - - describe('#getMetaTransactionDigest', () => { - it('should match the digest created off-chain', async () => { - const metaTransfer = gold.transfer(emptyAccounts[0], 1000).txo - const onChainDigest = await wallet.getMetaTransactionDigest(metaTransfer, 0) - const typedData = buildMetaTxTypedData( - wallet.address, - toRawTransaction(metaTransfer), - 0, - chainId - ) - const offChainDigest = bufferToHex(generateTypedDataHash(typedData)) - - expect(onChainDigest).toEqual(offChainDigest) - }) - }) - - describe('#getMetaTransactionSigner', () => { - it('should match what is signed off-chain', async () => { - const metaTransfer = gold.transfer(emptyAccounts[0], 1000000).txo - const signature = await wallet.signMetaTransaction(metaTransfer, 0) - const signer = await wallet.getMetaTransactionSigner(metaTransfer, 0, signature) - expect(signer).toEqual(walletSigner) - }) - }) - - describe('#signMetaTransaction', () => { - describe('with an unlocked account', () => { - it('returns a signature', async () => { - const signature = await wallet.signMetaTransaction( - gold.transfer(emptyAccounts[0], 1000).txo - ) - expect(signature).toBeDefined() - }) - }) - }) - - describe('#executeMetaTransaction', () => { - describe('as a rando', () => { - it('can execute transactions', async () => { - const walletBalanceBefore = await gold.balanceOf(wallet.address) - const value = new BigNumber(1e18) - - const metaTransfer = gold.transfer(emptyAccounts[0], value.toFixed()).txo - const signature = await wallet.signMetaTransaction(metaTransfer) - - const result = await wallet - .executeMetaTransaction(metaTransfer, signature) - .sendAndWaitForReceipt({ from: rando }) - expect(result.status).toBe(true) - - expect(await gold.balanceOf(emptyAccounts[0])).toEqual(value) - expect(await gold.balanceOf(wallet.address)).toEqual(walletBalanceBefore.minus(value)) - }) - - it('can batch transactions as a call to self', async () => { - const walletBalanceBefore = await gold.balanceOf(wallet.address) - const value = new BigNumber(1e18) - const metaBatch = wallet.executeTransactions([ - gold.transfer(emptyAccounts[0], value.toFixed()).txo, - gold.transfer(emptyAccounts[1], value.toFixed()).txo, - gold.transfer(emptyAccounts[2], value.toFixed()).txo, - ]).txo - - const signature = await wallet.signMetaTransaction(metaBatch, 0) - const result = await wallet - .executeMetaTransaction(metaBatch, signature) - .sendAndWaitForReceipt({ from: rando }) - expect(result.status).toBe(true) - - expect(await gold.balanceOf(wallet.address)).toEqual( - walletBalanceBefore.minus(value.times(3)) - ) - for (let i = 0; i < 3; i++) { - expect(await gold.balanceOf(emptyAccounts[i])).toEqual(value) - } - }) - }) - - describe('when passed over the wire', () => { - it('can hydrate and execute directly', async () => { - const walletBalanceBefore = await gold.balanceOf(wallet.address) - const value = new BigNumber(1e18) - const metaTx = wallet.executeTransactions([ - gold.transfer(emptyAccounts[0], value.toFixed()).txo, - gold.transfer(emptyAccounts[1], value.toFixed()).txo, - gold.transfer(emptyAccounts[2], value.toFixed()).txo, - ]).txo - const signature = await wallet.signMetaTransaction(metaTx, 0) - const rawTx = toRawTransaction(metaTx) - const payload = JSON.stringify({ rawTx, signature }) - // Now we're somewhere else: - const resp: { rawTx: RawTransaction; signature: Signature } = JSON.parse(payload) - const result = await wallet - .executeMetaTransaction(resp.rawTx, resp.signature) - .sendAndWaitForReceipt({ from: rando }) - expect(result.status).toBe(true) - - expect(await gold.balanceOf(wallet.address)).toEqual( - walletBalanceBefore.minus(value.times(3)) - ) - for (let i = 0; i < 3; i++) { - expect(await gold.balanceOf(emptyAccounts[i])).toEqual(value) - } - }) - }) - }) - - describe('#signAndExecuteMetaTransaction', () => { - describe('as a rando', () => { - it('can execute transactions', async () => { - const walletBalanceBefore = await gold.balanceOf(wallet.address) - const value = new BigNumber(1e18) - - const metaTransfer = gold.transfer(emptyAccounts[0], value.toFixed()).txo - const tx = await wallet.signAndExecuteMetaTransaction(metaTransfer) - const result = await tx.sendAndWaitForReceipt({ from: rando }) - expect(result.status).toBe(true) - - expect(await gold.balanceOf(emptyAccounts[0])).toEqual(value) - expect(await gold.balanceOf(wallet.address)).toEqual(walletBalanceBefore.minus(value)) - }) - - it('can batch transactions as a call to self', async () => { - const walletBalanceBefore = await gold.balanceOf(wallet.address) - const value = new BigNumber(1e18) - - const tx = await wallet.signAndExecuteMetaTransaction( - wallet.executeTransactions([ - gold.transfer(emptyAccounts[0], value.toFixed()).txo, - gold.transfer(emptyAccounts[1], value.toFixed()).txo, - gold.transfer(emptyAccounts[2], value.toFixed()).txo, - ]).txo - ) - const result = await tx.sendAndWaitForReceipt({ from: rando }) - expect(result.status).toBe(true) - - expect(await gold.balanceOf(wallet.address)).toEqual( - walletBalanceBefore.minus(value.times(3)) - ) - for (let i = 0; i < 3; i++) { - expect(await gold.balanceOf(emptyAccounts[i])).toEqual(value) - } - }) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts b/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts deleted file mode 100644 index fa38d5d229c..00000000000 --- a/packages/sdk/contractkit/src/wrappers/MetaTransactionWallet.ts +++ /dev/null @@ -1,313 +0,0 @@ -import { MetaTransactionWallet } from '@celo/abis/web3/MetaTransactionWallet' -import { Address, ensureLeading0x, trimLeading0x } from '@celo/base/lib/address' -import { Signature } from '@celo/base/lib/signatureUtils' -import { CeloTransactionObject, CeloTxObject, toTransactionObject } from '@celo/connect' -import { EIP712TypedData } from '@celo/utils/lib/sign-typed-data-utils' -import BigNumber from 'bignumber.js' -import { - BaseWrapper, - proxyCall, - proxySend, - stringIdentity, - valueToInt, - valueToString, -} from './BaseWrapper' - -export interface TransactionObjectWithValue { - txo: CeloTxObject - value: BigNumber.Value -} - -export interface RawTransaction { - destination: string - value: string - data: string -} - -export type TransactionInput = CeloTxObject | TransactionObjectWithValue | RawTransaction - -/** - * Class that wraps the MetaTransactionWallet - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ -export class MetaTransactionWalletWrapper extends BaseWrapper { - /** - * Execute a transaction originating from the MTW - * Reverts if the caller is not a signer - * @param tx a TransactionInput - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - public executeTransaction(tx: TransactionInput): CeloTransactionObject { - const rawTx = toRawTransaction(tx) - return toTransactionObject( - this.connection, - this.contract.methods.executeTransaction(rawTx.destination, rawTx.value, rawTx.data) - ) - } - - /** - * Execute a batch of transactions originating from the MTW - * Reverts if the caller is not a signer - * @param txs An array of TransactionInput - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - public executeTransactions( - txs: Array> - ): CeloTransactionObject<{ 0: string; 1: string[] }> { - const { destinations, values, callData, callDataLengths } = toTransactionBatch(txs) - - return toTransactionObject( - this.connection, - this.contract.methods.executeTransactions(destinations, values, callData, callDataLengths) - ) - } - - /** - * Execute a signed meta transaction - * Reverts if meta-tx signer is not a signer for the wallet - * @param tx a TransactionInput - * @param signature a Signature - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - public executeMetaTransaction( - tx: TransactionInput, - signature: Signature - ): CeloTransactionObject { - const rawTx = toRawTransaction(tx) - - return toTransactionObject( - this.connection, - this.contract.methods.executeMetaTransaction( - rawTx.destination, - rawTx.value, - rawTx.data, - signature.v, - signature.r, - signature.s - ) - ) - } - - /** - * Signs a meta transaction as EIP712 typed data - * @param tx a TransactionWrapper - * @param nonce Optional -- will query contract state if not passed - * @returns signature a Signature - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - public async signMetaTransaction(tx: TransactionInput, nonce?: number): Promise { - if (nonce === undefined) { - nonce = await this.nonce() - } - const typedData = buildMetaTxTypedData( - this.address, - toRawTransaction(tx), - nonce, - await this.chainId() - ) - const signer = await this.signer() - return this.connection.signTypedData(signer, typedData) - } - - /** - * Execute a signed meta transaction - * Reverts if meta-tx signer is not a signer for the wallet - * @param tx a TransactionInput - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - public async signAndExecuteMetaTransaction( - tx: TransactionInput - ): Promise> { - const signature = await this.signMetaTransaction(tx) - return this.executeMetaTransaction(tx, signature) - } - - private getMetaTransactionDigestParams = ( - tx: TransactionInput, - nonce: number - ): [string, string, string, number] => { - const rawTx = toRawTransaction(tx) - return [rawTx.destination, rawTx.value, rawTx.data, nonce] - } - /* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - getMetaTransactionDigest = proxyCall( - this.contract.methods.getMetaTransactionDigest, - this.getMetaTransactionDigestParams, - stringIdentity - ) - - private getMetaTransactionSignerParams = ( - tx: TransactionInput, - nonce: number, - signature: Signature - ): [string, string, string, number, number, string, string] => { - const rawTx = toRawTransaction(tx) - return [ - rawTx.destination, - rawTx.value, - rawTx.data, - nonce, - signature.v, - signature.r, - signature.s, - ] - } - /* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - getMetaTransactionSigner = proxyCall( - this.contract.methods.getMetaTransactionSigner, - this.getMetaTransactionSignerParams, - stringIdentity - ) - /* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - eip712DomainSeparator = proxyCall(this.contract.methods.eip712DomainSeparator) - /* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - isOwner = proxyCall(this.contract.methods.isOwner) - /* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - nonce = proxyCall(this.contract.methods.nonce, undefined, valueToInt) - private getSigner = proxyCall(this.contract.methods.signer, undefined, stringIdentity) - - /* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - transferOwnership: (newOwner: Address) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.transferOwnership - ) - /* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - setSigner: (newSigner: Address) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.setSigner - ) - /* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - setEip712DomainSeparator: () => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.setEip712DomainSeparator - ) - - /** - * Get and cache the chain ID -- assume it's static for a kit instance - * @returns chainId - */ - _chainId?: number - private async chainId(): Promise { - this._chainId = this._chainId ?? (await this.connection.chainId()) - if (this._chainId === undefined) { - this._chainId = await this.connection.chainId() - } - return this._chainId! - } - - /** - * Get an cache the signer - it should be static for a Wallet instance - * @returns signer - */ - _signer?: Address - public async signer() { - if (this._signer === undefined) { - this._signer = await this.getSigner() - } - return this._signer - } -} - -export type MetaTransactionWalletWrapperType = MetaTransactionWalletWrapper - -/** - * Turns any possible way to pass in a transaction into the raw values - * that are actually required. This is used both internally to normalize - * ways in which transactions are passed in but also public in order - * for one instance of ContractKit to serialize a meta transaction to - * send over the wire and be consumed somewhere else. - * @param tx TransactionInput union of all the ways we expect transactions - * @returns a RawTransactions that's serializable - */ -export const toRawTransaction = (tx: TransactionInput): RawTransaction => { - if ('destination' in tx) { - return tx - } else if ('value' in tx) { - return { - destination: tx.txo._parent.options.address, - data: tx.txo.encodeABI(), - value: valueToString(tx.value), - } - } else { - return { - destination: tx._parent.options.address, - data: tx.encodeABI(), - value: '0', - } - } -} - -/** - * Turns an array of transaction inputs into the argument that - * need to be passed to the executeTransactions call. - * Main transformation is that all the `data` parts of each - * transaction in the batch are concatenated and an array - * of lengths is constructed. - * This is a gas optimisation on the contract. - * @param txs Array> array of txs - * @returns Params for the executeTransactions method call - */ -export const toTransactionBatch = ( - txs: Array> -): { - destinations: string[] - values: string[] - callData: string - callDataLengths: number[] -} => { - const rawTxs: RawTransaction[] = txs.map(toRawTransaction) - return { - destinations: rawTxs.map((rtx) => rtx.destination), - values: rawTxs.map((rtx) => rtx.value), - callData: ensureLeading0x(rawTxs.map((rtx) => trimLeading0x(rtx.data)).join('')), - callDataLengths: rawTxs.map((rtx) => trimLeading0x(rtx.data).length / 2), - } -} - -export const buildMetaTxTypedData = ( - walletAddress: Address, - tx: RawTransaction, - nonce: number, - chainId: number -): EIP712TypedData => { - return { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - ExecuteMetaTransaction: [ - { name: 'destination', type: 'address' }, - { name: 'value', type: 'uint256' }, - { name: 'data', type: 'bytes' }, - { name: 'nonce', type: 'uint256' }, - ], - }, - primaryType: 'ExecuteMetaTransaction', - domain: { - name: 'MetaTransactionWallet', - version: '1.1', - chainId, - verifyingContract: walletAddress, - }, - message: tx ? { ...tx, nonce } : {}, - } -} diff --git a/packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.test.ts b/packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.test.ts deleted file mode 100644 index e23271ea481..00000000000 --- a/packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.test.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { Address, normalizeAddress } from '@celo/base' -import MTWContractArtifacts from '@celo/celo-devchain/contracts/contracts-0.5/MetaTransactionWallet.json' -import MTWDeployerContractArtifacts from '@celo/celo-devchain/contracts/contracts-0.5/MetaTransactionWalletDeployer.json' -import { CeloTxReceipt, EventLog } from '@celo/connect' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { - MetaTransactionWallet, - newMetaTransactionWallet, -} from '@celo/abis/web3/MetaTransactionWallet' -import { newProxy } from '@celo/abis/web3/Proxy' -import { newKitFromWeb3 } from '../kit' -import { MetaTransactionWalletDeployerWrapper } from './MetaTransactionWalletDeployer' - -const contract = require('@truffle/contract') -const MetaTransactionWalletDeployer = contract(MTWDeployerContractArtifacts) -const MetaTransactionWallet = contract(MTWContractArtifacts) - -testWithGanache('MetaTransactionWallet Wrapper', (web3) => { - MetaTransactionWalletDeployer.setProvider(web3.currentProvider) - MetaTransactionWallet.setProvider(web3.currentProvider) - - const deployImplementation = async (from: Address) => { - const impl = await MetaTransactionWallet.new(true, { from }) - return impl.address - } - - const deployWalletDeployer = async (from: Address): Promise
=> { - const instance = await MetaTransactionWalletDeployer.new({ from }) - return instance.address - } - - const kit = newKitFromWeb3(web3) - let accounts: Address[] - let walletDeployerOwner: Address - let walletDeployer: MetaTransactionWalletDeployerWrapper - let implementation: MetaTransactionWallet - let rando: Address - let beneficiary: Address - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - walletDeployerOwner = accounts[0] - rando = accounts[1] - kit.defaultAccount = walletDeployerOwner - beneficiary = web3.utils.randomHex(20) - implementation = newMetaTransactionWallet(web3, await deployImplementation(accounts[0])) - }) - - beforeEach(async () => { - const walletDeployerAddress = await deployWalletDeployer(walletDeployerOwner) - walletDeployer = await kit.contracts.getMetaTransactionWalletDeployer(walletDeployerAddress) - }) - - describe('#deploy', () => { - let result: CeloTxReceipt - let walletDeployedEvent: EventLog | undefined - - beforeEach(async () => { - result = await walletDeployer - .deploy( - beneficiary, - implementation.options.address, - implementation.methods.initialize(beneficiary).encodeABI() - ) - .sendAndWaitForReceipt({ - from: rando, - }) - - walletDeployedEvent = result.events?.WalletDeployed - }) - - it('deploys a new contract', async () => { - expect(walletDeployedEvent).toBeDefined() - const values: { owner: string; implementation: string } = walletDeployedEvent?.returnValues - expect(values.owner.toLocaleLowerCase()).toEqual(beneficiary) - expect(values.implementation).toEqual(implementation.options.address) - }) - - it('sets the beneficiary as the signer to the wallet', async () => { - const wallet = newMetaTransactionWallet(web3, walletDeployedEvent?.returnValues.wallet) - const signer = await wallet.methods.signer().call() - expect(signer.toLocaleLowerCase()).toEqual(beneficiary) - }) - - it('sets the right implementation', async () => { - const proxy = newProxy(web3, walletDeployedEvent?.returnValues.wallet) - const impl = await proxy.methods._getImplementation().call() - expect(normalizeAddress(impl)).toEqual(normalizeAddress(implementation.options.address)) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.ts b/packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.ts deleted file mode 100644 index 4cbc46da035..00000000000 --- a/packages/sdk/contractkit/src/wrappers/MetaTransactionWalletDeployer.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { MetaTransactionWalletDeployer } from '@celo/abis/web3/MetaTransactionWalletDeployer' -import { BaseWrapper, proxySend } from './BaseWrapper' - -/* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ -export class MetaTransactionWalletDeployerWrapper extends BaseWrapper { - /* - * @deprecated https://github.com/celo-org/celo-monorepo/issues/10766 - */ - deploy = proxySend(this.connection, this.contract.methods.deploy) -} - -export type MetaTransactionWalletDeployerWrapperType = MetaTransactionWalletDeployerWrapper diff --git a/packages/sdk/contractkit/src/wrappers/MultiSig.ts b/packages/sdk/contractkit/src/wrappers/MultiSig.ts deleted file mode 100644 index d009a91bb19..00000000000 --- a/packages/sdk/contractkit/src/wrappers/MultiSig.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { MultiSig } from '@celo/abis/web3/MultiSig' -import { Address, CeloTransactionObject, CeloTxObject, toTransactionObject } from '@celo/connect' -import BigNumber from 'bignumber.js' -import { - BaseWrapper, - proxyCall, - proxySend, - stringIdentity, - stringToSolidityBytes, - tupleParser, - valueToBigNumber, - valueToInt, -} from './BaseWrapper' - -export interface TransactionData { - destination: string - value: BigNumber - data: string - executed: boolean - confirmations: string[] -} -export interface TransactionDataWithOutConfirmations { - destination: string - value: BigNumber - data: string - executed: boolean -} - -/** - * Contract for handling multisig actions - */ -export class MultiSigWrapper extends BaseWrapper { - /** - * Allows an owner to submit and confirm a transaction. - * If an unexecuted transaction matching `txObject` exists on the multisig, adds a confirmation to that tx ID. - * Otherwise, submits the `txObject` to the multisig and add confirmation. - * @param index The index of the pending withdrawal to withdraw. - */ - async submitOrConfirmTransaction(destination: string, txObject: CeloTxObject, value = '0') { - const data = stringToSolidityBytes(txObject.encodeABI()) - const transactionCount = await this.contract.methods.getTransactionCount(true, true).call() - let transactionId - for (transactionId = Number(transactionCount) - 1; transactionId >= 0; transactionId--) { - const transaction = await this.contract.methods.transactions(transactionId).call() - if ( - transaction.data === data && - transaction.destination === destination && - transaction.value === value && - !transaction.executed - ) { - return toTransactionObject( - this.connection, - this.contract.methods.confirmTransaction(transactionId) - ) - } - } - return toTransactionObject( - this.connection, - this.contract.methods.submitTransaction(destination, value, data) - ) - } - - async confirmTransaction(transactionId: number) { - return toTransactionObject( - this.connection, - this.contract.methods.confirmTransaction(transactionId) - ) - } - - isowner: (owner: Address) => Promise = proxyCall(this.contract.methods.isOwner) - getOwners = proxyCall(this.contract.methods.getOwners) - getRequired = proxyCall(this.contract.methods.required, undefined, valueToBigNumber) - getInternalRequired = proxyCall( - this.contract.methods.internalRequired, - undefined, - valueToBigNumber - ) - totalTransactionCount = proxyCall(this.contract.methods.transactionCount, undefined, valueToInt) - getTransactionCount = proxyCall(this.contract.methods.getTransactionCount, undefined, valueToInt) - replaceOwner: (owner: Address, newOwner: Address) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.replaceOwner, - tupleParser(stringIdentity, stringIdentity) - ) - - async getTransactionDataByContent( - destination: string, - txo: CeloTxObject, - value: BigNumber.Value = 0 - ) { - const data = stringToSolidityBytes(txo.encodeABI()) - const transactionCount = await this.getTransactionCount(true, true) - const transactionsOrEmpties = await Promise.all( - Array(transactionCount) - .fill(0) - .map(async (_, index) => { - const tx = await this.getTransaction(index, false) - if (tx.data === data && tx.destination === destination && tx.value.isEqualTo(value)) { - return { index, ...tx } - } - return null - }) - ) - const wantedTransaction = transactionsOrEmpties.find((tx) => tx !== null) - if (!wantedTransaction) { - return - } - const confirmations = await this.getConfirmations(wantedTransaction.index) - return { - ...wantedTransaction, - confirmations, - } - } - async getTransaction(i: number): Promise - async getTransaction( - i: number, - includeConfirmations: false - ): Promise - async getTransaction(i: number, includeConfirmations = true) { - const { destination, value, data, executed } = await this.contract.methods - .transactions(i) - .call() - if (!includeConfirmations) { - return { - destination, - data, - executed, - value: new BigNumber(value), - } - } - - const confirmations = await this.getConfirmations(i) - return { - confirmations, - destination, - data, - executed, - value: new BigNumber(value), - } - } - - /* - * Returns array of signer addresses which have confirmed a transaction - * when given the index of that transaction. - */ - async getConfirmations(txId: number) { - const owners = await this.getOwners() - const confirmationsOrEmpties = await Promise.all( - owners.map(async (owner) => { - const confirmation = await this.contract.methods.confirmations(txId, owner).call() - if (confirmation) { - return owner - } else { - return null - } - }) - ) - const confirmations = confirmationsOrEmpties.filter((c) => c !== null) as string[] - return confirmations - } - - async getTransactions(): Promise { - const txcount = await this.totalTransactionCount() - const res: TransactionData[] = [] - for (let i = 0; i < txcount; i++) { - res.push(await this.getTransaction(i)) - } - return res - } -} - -export type MultiSigWrapperType = MultiSigWrapper diff --git a/packages/sdk/contractkit/src/wrappers/OdisPayments.test.ts b/packages/sdk/contractkit/src/wrappers/OdisPayments.test.ts deleted file mode 100644 index efe7f85c9dd..00000000000 --- a/packages/sdk/contractkit/src/wrappers/OdisPayments.test.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { StableToken } from '@celo/base' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { newKitFromWeb3 } from '../kit' -import { OdisPaymentsWrapper } from './OdisPayments' -import { StableTokenWrapper } from './StableTokenWrapper' - -testWithGanache('OdisPayments Wrapper', (web3) => { - const kit = newKitFromWeb3(web3) - let accounts: string[] = [] - let odisPayments: OdisPaymentsWrapper - let stableToken: StableTokenWrapper - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - odisPayments = await kit.contracts.getOdisPayments() - stableToken = await kit.contracts.getStableToken(StableToken.cUSD) - }) - - describe('#payInCUSD', () => { - const testValue = 10000 - - const payAndCheckState = async (sender: string, receiver: string, transferValue: number) => { - // Approve cUSD that OdisPayments contract may transfer from sender - await stableToken - .approve(odisPayments.address, transferValue) - .sendAndWaitForReceipt({ from: sender }) - - const senderBalanceBefore = await stableToken.balanceOf(sender) - await odisPayments.payInCUSD(receiver, transferValue).sendAndWaitForReceipt({ from: sender }) - const balanceAfter = await stableToken.balanceOf(sender) - expect(senderBalanceBefore.minus(balanceAfter)).toEqBigNumber(transferValue) - expect(await stableToken.balanceOf(odisPayments.address)).toEqBigNumber(transferValue) - expect(await odisPayments.totalPaidCUSD(receiver)).toEqBigNumber(transferValue) - } - - it('should allow sender to make a payment on their behalf', async () => { - await payAndCheckState(accounts[0], accounts[0], testValue) - }) - - it('should allow sender to make a payment for another account', async () => { - await payAndCheckState(accounts[0], accounts[1], testValue) - }) - - it('should revert if transfer fails', async () => { - await stableToken.approve(odisPayments.address, testValue).sendAndWaitForReceipt() - expect.assertions(2) - await expect( - odisPayments.payInCUSD(accounts[0], testValue + 1).sendAndWaitForReceipt() - ).rejects.toThrow() - expect(await odisPayments.totalPaidCUSD(accounts[0])).toEqBigNumber(0) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/OdisPayments.ts b/packages/sdk/contractkit/src/wrappers/OdisPayments.ts deleted file mode 100644 index 5777c5e670b..00000000000 --- a/packages/sdk/contractkit/src/wrappers/OdisPayments.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { OdisPayments } from '@celo/abis/web3/OdisPayments' -import { Address, CeloTransactionObject } from '@celo/connect' -import { BigNumber } from 'bignumber.js' -import { BaseWrapper, proxyCall, proxySend, valueToBigNumber } from './BaseWrapper' - -export class OdisPaymentsWrapper extends BaseWrapper { - /** - * @notice Fetches total amount sent (all-time) for given account to odisPayments - * @param account The account to fetch total amount of funds sent - */ - totalPaidCUSD: (account: Address) => Promise = proxyCall( - this.contract.methods.totalPaidCUSD, - undefined, - valueToBigNumber - ) - - /** - * @notice Sends cUSD to this contract to pay for ODIS quota (for queries). - * @param account The account whose balance to increment. - * @param value The amount in cUSD to pay. - * @dev Throws if cUSD transfer fails. - */ - payInCUSD: (account: Address, value: number | string) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.payInCUSD - ) -} - -export type OdisPaymentsWrapperType = OdisPaymentsWrapper diff --git a/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts b/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts deleted file mode 100644 index 186e0c728ac..00000000000 --- a/packages/sdk/contractkit/src/wrappers/ReleaseGold.ts +++ /dev/null @@ -1,732 +0,0 @@ -import { ReleaseGold } from '@celo/abis/web3/ReleaseGold' -import { concurrentMap } from '@celo/base' -import { findAddressIndex } from '@celo/base/lib/address' -import { Signature } from '@celo/base/lib/signatureUtils' -import { Address, CeloTransactionObject, toTransactionObject } from '@celo/connect' -import { hashMessageWithPrefix, signedMessageToPublicKey } from '@celo/utils/lib/signatureUtils' -import BigNumber from 'bignumber.js' -import { flatten } from 'fp-ts/lib/Array' -import { - proxyCall, - proxySend, - secondsToDurationString, - stringIdentity, - stringToSolidityBytes, - tupleParser, - unixSecondsTimestampToDateString, - valueToBigNumber, - valueToInt, - valueToString, -} from './BaseWrapper' -import { BaseWrapperForGoverning } from './BaseWrapperForGoverning' -import { PendingWithdrawal } from './LockedGold' - -export interface BalanceState { - totalWithdrawn: string - maxDistribution: string - totalBalance: string - remainingTotalBalance: string - remainingUnlockedBalance: string - remainingLockedBalance: string - currentReleasedTotalAmount: string -} - -export interface ReleaseGoldInfo { - releaseGoldWrapperAddress: string - beneficiary: string - releaseOwner: string - owner: string - refundAddress: string - liquidityProvisionMet: boolean - canValidate: boolean - canVote: boolean - releaseSchedule: ReleaseSchedule - isRevoked: boolean - revokedStateData: RevocationInfo - balanceStateData: BalanceState -} - -interface ReleaseSchedule { - releaseStartTime: number - releaseCliff: number - numReleasePeriods: number - releasePeriod: number - amountReleasedPerPeriod: BigNumber -} - -interface RevocationInfo { - revocable: boolean - canExpire: boolean - releasedBalanceAtRevoke: BigNumber - revokeTime: number -} - -/** - * Contract for handling an instance of a ReleaseGold contract. - */ -export class ReleaseGoldWrapper extends BaseWrapperForGoverning { - /** - * Returns the underlying Release schedule of the ReleaseGold contract - * @return A ReleaseSchedule. - */ - async getReleaseSchedule(): Promise { - const releaseSchedule = await this.contract.methods.releaseSchedule().call() - - return { - releaseStartTime: valueToInt(releaseSchedule.releaseStartTime), - releaseCliff: valueToInt(releaseSchedule.releaseCliff), - numReleasePeriods: valueToInt(releaseSchedule.numReleasePeriods), - releasePeriod: valueToInt(releaseSchedule.releasePeriod), - amountReleasedPerPeriod: valueToBigNumber(releaseSchedule.amountReleasedPerPeriod), - } - } - - /** - * Returns the underlying Release schedule of the ReleaseGold contract - * @return A ReleaseSchedule. - */ - async getHumanReadableReleaseSchedule() { - const releaseSchedule = await this.getReleaseSchedule() - - return { - ...releaseSchedule, - releaseCliff: unixSecondsTimestampToDateString(releaseSchedule.releaseCliff), - releaseStartTime: unixSecondsTimestampToDateString(releaseSchedule.releaseStartTime), - releasePeriod: secondsToDurationString(releaseSchedule.releasePeriod), - } - } - - /** - * Returns the beneficiary of the ReleaseGold contract - * @return The address of the beneficiary. - */ - getBeneficiary: () => Promise
= proxyCall(this.contract.methods.beneficiary) - - /** - * Returns the releaseOwner address of the ReleaseGold contract - * @return The address of the releaseOwner. - */ - getReleaseOwner: () => Promise
= proxyCall(this.contract.methods.releaseOwner) - - /** - * Returns the refund address of the ReleaseGold contract - * @return The refundAddress. - */ - getRefundAddress: () => Promise
= proxyCall(this.contract.methods.refundAddress) - - /** - * Returns the owner's address of the ReleaseGold contract - * @return The owner's address. - */ - getOwner: () => Promise
= proxyCall(this.contract.methods.owner) - - /** - * Returns true if the liquidity provision has been met for this contract - * @return If the liquidity provision is met. - */ - getLiquidityProvisionMet: () => Promise = proxyCall( - this.contract.methods.liquidityProvisionMet - ) - - /** - * Returns true if the contract can validate - * @return If the contract can validate - */ - getCanValidate: () => Promise = proxyCall(this.contract.methods.canValidate) - - /** - * Returns true if the contract can vote - * @return If the contract can vote - */ - getCanVote: () => Promise = proxyCall(this.contract.methods.canVote) - - /** - * Returns the total withdrawn amount from the ReleaseGold contract - * @return The total withdrawn amount from the ReleaseGold contract - */ - getTotalWithdrawn: () => Promise = proxyCall( - this.contract.methods.totalWithdrawn, - undefined, - valueToBigNumber - ) - - /** - * Returns the maximum amount of gold (regardless of release schedule) - * currently allowed for release. - * @return The max amount of gold currently withdrawable. - */ - getMaxDistribution: () => Promise = proxyCall( - this.contract.methods.maxDistribution, - undefined, - valueToBigNumber - ) - - /** - * Returns the underlying Revocation Info of the ReleaseGold contract - * @return A RevocationInfo struct. - */ - async getRevocationInfo(): Promise { - try { - const revocationInfo = await this.contract.methods.revocationInfo().call() - return { - revocable: revocationInfo.revocable, - canExpire: revocationInfo.canExpire, - releasedBalanceAtRevoke: valueToBigNumber(revocationInfo.releasedBalanceAtRevoke), - revokeTime: valueToInt(revocationInfo.revokeTime), - } - } catch (_) { - // This error is caused by a mismatch between the deployed contract and the locally compiled version. - // Specifically, networks like baklava and rc0 were deployed before adding `canExpire`. - console.info('Some info could not be fetched, returning default for revocation info.') - return { - revocable: false, - canExpire: false, - releasedBalanceAtRevoke: new BigNumber(0), - revokeTime: 0, - } - } - } - - /** - * Indicates if the release grant is revocable or not - * @return A boolean indicating revocable releasing (true) or non-revocable(false). - */ - async isRevocable(): Promise { - const revocationInfo = await this.getRevocationInfo() - return revocationInfo.revocable - } - - /** - * Indicates if the release grant is revoked or not - * @return A boolean indicating revoked releasing (true) or non-revoked(false). - */ - isRevoked: () => Promise = proxyCall(this.contract.methods.isRevoked) - - /** - * Returns the time at which the release schedule was revoked - * @return The timestamp of the release schedule revocation - */ - async getRevokeTime(): Promise { - const revocationInfo = await this.getRevocationInfo() - return revocationInfo.revokeTime - } - - /** - * Returns the balance of released gold when the grant was revoked - * @return The balance at revocation time. 0 can also indicate not revoked. - */ - async getReleasedBalanceAtRevoke(): Promise { - const revocationInfo = await this.getRevocationInfo() - return revocationInfo.releasedBalanceAtRevoke.toString() - } - - /** - * Returns the total balance of the ReleaseGold instance - * @return The total ReleaseGold instance balance - */ - getTotalBalance: () => Promise = proxyCall( - this.contract.methods.getTotalBalance, - undefined, - valueToBigNumber - ) - - /** - * Returns the the sum of locked and unlocked gold in the ReleaseGold instance - * @return The remaining total ReleaseGold instance balance - */ - getRemainingTotalBalance: () => Promise = proxyCall( - this.contract.methods.getRemainingTotalBalance, - undefined, - valueToBigNumber - ) - - /** - * Returns the remaining unlocked gold balance in the ReleaseGold instance - * @return The available unlocked ReleaseGold instance gold balance - */ - getRemainingUnlockedBalance: () => Promise = proxyCall( - this.contract.methods.getRemainingUnlockedBalance, - undefined, - valueToBigNumber - ) - - /** - * Returns the remaining locked gold balance in the ReleaseGold instance - * @return The remaining locked ReleaseGold instance gold balance - */ - getRemainingLockedBalance: () => Promise = proxyCall( - this.contract.methods.getRemainingLockedBalance, - undefined, - valueToBigNumber - ) - - /** - * Returns the total amount that has already released up to now - * @return The already released gold amount up to the point of call - */ - getCurrentReleasedTotalAmount: () => Promise = proxyCall( - this.contract.methods.getCurrentReleasedTotalAmount, - undefined, - valueToBigNumber - ) - - /** - * Returns currently withdrawable amount - * @return The amount that can be yet withdrawn - */ - getWithdrawableAmount: () => Promise = proxyCall( - this.contract.methods.getWithdrawableAmount, - undefined, - valueToBigNumber - ) - - /** - * Revoke a Release schedule - * @return A CeloTransactionObject - */ - revokeReleasing: () => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.revoke - ) - - /** - * Revoke a vesting CELO schedule from the contract's beneficiary. - * @return A CeloTransactionObject - */ - revokeBeneficiary = this.revokeReleasing - - /** - * Refund `refundAddress` and `beneficiary` after the ReleaseGold schedule has been revoked. - * @return A CeloTransactionObject - */ - refundAndFinalize: () => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.refundAndFinalize - ) - - /** - * Locks gold to be used for voting. - * @param value The amount of gold to lock - */ - lockGold: (value: BigNumber.Value) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.lockGold, - tupleParser(valueToString) - ) - - transfer: (to: Address, value: BigNumber.Value) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.transfer, - tupleParser(stringIdentity, valueToString) - ) - - /** - * Unlocks gold that becomes withdrawable after the unlocking period. - * @param value The amount of gold to unlock - */ - unlockGold: (value: BigNumber.Value) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.unlockGold, - tupleParser(valueToString) - ) - - async unlockAllGold() { - const lockedGold = await this.contracts.getLockedGold() - const amount = await lockedGold.getAccountTotalLockedGold(this.address) - return this.unlockGold(amount) - } - - /** - * Relocks gold in the ReleaseGold instance that has been unlocked but not withdrawn. - * @param index The index of the pending withdrawal to relock from. - * @param value The value to relock from the specified pending withdrawal. - */ - async relockGold(value: BigNumber.Value): Promise>> { - const lockedGold = await this.contracts.getLockedGold() - const pendingWithdrawals = await lockedGold.getPendingWithdrawals(this.address) - // Ensure there are enough pending withdrawals to relock. - const totalValue = await lockedGold.getPendingWithdrawalsTotalValue(this.address) - if (totalValue.isLessThan(value)) { - throw new Error(`Not enough pending withdrawals to relock ${value}`) - } - // Assert pending withdrawals are sorted by time (increasing), so that we can re-lock starting - // with those furthest away from being available (at the end). - const throwIfNotSorted = (pw: PendingWithdrawal, i: number) => { - if (i > 0 && !pw.time.isGreaterThanOrEqualTo(pendingWithdrawals[i - 1].time)) { - throw new Error('Pending withdrawals not sorted by timestamp') - } - } - pendingWithdrawals.forEach(throwIfNotSorted) - - let remainingToRelock = new BigNumber(value) - const relockPw = ( - acc: Array>, - pw: PendingWithdrawal, - i: number - ) => { - const valueToRelock = BigNumber.minimum(pw.value, remainingToRelock) - if (!valueToRelock.isZero()) { - remainingToRelock = remainingToRelock.minus(valueToRelock) - acc.push(this._relockGold(i, valueToRelock)) - } - return acc - } - return pendingWithdrawals.reduceRight(relockPw, []) as Array> - } - - /** - * Relocks gold that has been unlocked but not withdrawn. - * @param index The index of the pending withdrawal to relock from. - * @param value The value to relock from the specified pending withdrawal. - */ - _relockGold: (index: number, value: BigNumber.Value) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.relockGold, - tupleParser(valueToString, valueToString) - ) - - /** - * Withdraw gold in the ReleaseGold instance that has been unlocked but not withdrawn. - * @param index The index of the pending locked gold withdrawal - */ - withdrawLockedGold: (index: BigNumber.Value) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.withdrawLockedGold, - tupleParser(valueToString) - ) - - /** - * Transfer released gold from the ReleaseGold instance back to beneficiary. - * @param value The requested gold amount - */ - withdraw: (value: BigNumber.Value) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.withdraw, - tupleParser(valueToString) - ) - - /** - * Beneficiary creates an account on behalf of the ReleaseGold contract. - */ - createAccount = proxySend(this.connection, this.contract.methods.createAccount) - - /** - * Beneficiary creates an account on behalf of the ReleaseGold contract. - * @param name The name to set - * @param dataEncryptionKey The key to set - * @param walletAddress The address to set - */ - setAccount = proxySend(this.connection, this.contract.methods.setAccount) - - /** - * Sets the name for the account - * @param name The name to set - */ - setAccountName = proxySend(this.connection, this.contract.methods.setAccountName) - - /** - * Sets the metadataURL for the account - * @param metadataURL The url to set - */ - setAccountMetadataURL = proxySend(this.connection, this.contract.methods.setAccountMetadataURL) - - /** - * Sets the wallet address for the account - * @param walletAddress The address to set - */ - setAccountWalletAddress = proxySend( - this.connection, - this.contract.methods.setAccountWalletAddress - ) - - /** - * Sets the data encryption of the account - * @param dataEncryptionKey The key to set - */ - setAccountDataEncryptionKey = proxySend( - this.connection, - this.contract.methods.setAccountDataEncryptionKey - ) - - /** - * Sets the contract's liquidity provision to true - */ - setLiquidityProvision = proxySend(this.connection, this.contract.methods.setLiquidityProvision) - - /** - * Sets the contract's `canExpire` field to `_canExpire` - * @param _canExpire If the contract can expire `EXPIRATION_TIME` after the release schedule finishes. - */ - setCanExpire = proxySend(this.connection, this.contract.methods.setCanExpire) - - /** - * Sets the contract's max distribution - */ - setMaxDistribution = proxySend(this.connection, this.contract.methods.setMaxDistribution) - - /** - * Sets the contract's beneficiary - */ - setBeneficiary = proxySend(this.connection, this.contract.methods.setBeneficiary) - - /** - * Authorizes an address to sign votes on behalf of the account. - * @param signer The address of the vote signing key to authorize. - * @param proofOfSigningKeyPossession The account address signed by the signer address. - * @return A CeloTransactionObject - */ - async authorizeVoteSigner( - signer: Address, - proofOfSigningKeyPossession: Signature - ): Promise> { - return toTransactionObject( - this.connection, - this.contract.methods.authorizeVoteSigner( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - ) - } - - /** - * Authorizes an address to sign validation messages on behalf of the account. - * @param signer The address of the validator signing key to authorize. - * @param proofOfSigningKeyPossession The account address signed by the signer address. - * @return A CeloTransactionObject - */ - async authorizeValidatorSigner( - signer: Address, - proofOfSigningKeyPossession: Signature - ): Promise> { - const validators = await this.contracts.getValidators() - const account = this.address - if (await validators.isValidator(account)) { - const message = this.connection.web3.utils.soliditySha3({ - type: 'address', - value: account, - })! - const prefixedMsg = hashMessageWithPrefix(message) - const pubKey = signedMessageToPublicKey( - prefixedMsg!, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - return toTransactionObject( - this.connection, - this.contract.methods.authorizeValidatorSignerWithPublicKey( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s, - stringToSolidityBytes(pubKey) - ) - ) - } else { - return toTransactionObject( - this.connection, - this.contract.methods.authorizeValidatorSigner( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - ) - } - } - - /** - * Authorizes an address to sign consensus messages on behalf of the contract's account. Also switch BLS key at the same time. - * @param signer The address of the signing key to authorize. - * @param proofOfSigningKeyPossession The contract's account address signed by the signer address. - * @param blsPublicKey The BLS public key that the validator is using for consensus, should pass proof - * of possession. 48 bytes. - * @param blsPop The BLS public key proof-of-possession, which consists of a signature on the - * account address. 96 bytes. - * @return A CeloTransactionObject - */ - async authorizeValidatorSignerAndBls( - signer: Address, - proofOfSigningKeyPossession: Signature, - blsPublicKey: string, - blsPop: string - ): Promise> { - const account = this.address - const message = this.connection.web3.utils.soliditySha3({ - type: 'address', - value: account, - })! - const prefixedMsg = hashMessageWithPrefix(message) - const pubKey = signedMessageToPublicKey( - prefixedMsg!, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - return toTransactionObject( - this.connection, - this.contract.methods.authorizeValidatorSignerWithKeys( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s, - stringToSolidityBytes(pubKey), - stringToSolidityBytes(blsPublicKey), - stringToSolidityBytes(blsPop) - ) - ) - } - - /** - * Authorizes an address to sign attestation messages on behalf of the account. - * @param signer The address of the attestation signing key to authorize. - * @param proofOfSigningKeyPossession The account address signed by the signer address. - * @return A CeloTransactionObject - */ - async authorizeAttestationSigner( - signer: Address, - proofOfSigningKeyPossession: Signature - ): Promise> { - return toTransactionObject( - this.connection, - this.contract.methods.authorizeAttestationSigner( - signer, - proofOfSigningKeyPossession.v, - proofOfSigningKeyPossession.r, - proofOfSigningKeyPossession.s - ) - ) - } - - /** - * Revokes pending votes - * @deprecated prefer revokePendingVotes - * @param account The account to revoke from. - * @param validatorGroup The group to revoke the vote for. - * @param value The amount of gold to revoke. - */ - async revokePending( - account: Address, - group: Address, - value: BigNumber - ): Promise> { - const electionContract = await this.contracts.getElection() - const groups = await electionContract.getGroupsVotedForByAccount(account) - const index = findAddressIndex(group, groups) - const { lesser, greater } = await electionContract.findLesserAndGreaterAfterVote( - group, - value.times(-1) - ) - - return toTransactionObject( - this.connection, - this.contract.methods.revokePending(group, value.toFixed(), lesser, greater, index) - ) - } - - /** - * Revokes pending votes - * @param validatorGroup The group to revoke the vote for. - * @param value The amount of gold to revoke. - */ - revokePendingVotes = (group: Address, value: BigNumber) => - this.revokePending(this.address, group, value) - - /** - * Revokes active votes - * @deprecated Prefer revokeActiveVotes - * @param account The account to revoke from. - * @param group The group to revoke the vote for. - * @param value The amount of gold to revoke. - */ - async revokeActive( - account: Address, - group: Address, - value: BigNumber - ): Promise> { - const electionContract = await this.contracts.getElection() - const groups = await electionContract.getGroupsVotedForByAccount(account) - const index = findAddressIndex(group, groups) - const { lesser, greater } = await electionContract.findLesserAndGreaterAfterVote( - group, - value.times(-1) - ) - - return toTransactionObject( - this.connection, - this.contract.methods.revokeActive(group, value.toFixed(), lesser, greater, index) - ) - } - - /** - * Revokes active votes - * @param group The group to revoke the vote for. - * @param value The amount of gold to revoke. - */ - revokeActiveVotes = (group: Address, value: BigNumber) => - this.revokeActive(this.address, group, value) - - /** - * Revokes value from pending/active aggregate - * @deprecated prefer revokeValueFromVotes - * @param account The account to revoke from. - * @param group The group to revoke the vote for. - * @param value The amount of gold to revoke. - */ - async revoke( - account: Address, - group: Address, - value: BigNumber - ): Promise>> { - const electionContract = await this.contracts.getElection() - const vote = await electionContract.getVotesForGroupByAccount(account, group) - if (value.gt(vote.pending.plus(vote.active))) { - throw new Error(`can't revoke more votes for ${group} than have been made by ${account}`) - } - const txos = [] - const pendingValue = BigNumber.minimum(vote.pending, value) - if (!pendingValue.isZero()) { - txos.push(await this.revokePending(account, group, pendingValue)) - } - if (pendingValue.lt(value)) { - const activeValue = value.minus(pendingValue) - txos.push(await this.revokeActive(account, group, activeValue)) - } - return txos - } - - /** - * Revokes value from pending/active aggregate - * @param group The group to revoke the vote for. - * @param value The amount of gold to revoke. - */ - revokeValueFromVotes = (group: Address, value: BigNumber) => - this.revoke(this.address, group, value) - - revokeAllVotesForGroup = async (group: Address) => { - const txos = [] - const electionContract = await this.contracts.getElection() - const { pending, active } = await electionContract.getVotesForGroupByAccount( - this.address, - group - ) - if (pending.isGreaterThan(0)) { - const revokePendingTx = await this.revokePendingVotes(group, pending) - txos.push(revokePendingTx) - } - if (active.isGreaterThan(0)) { - const revokeActiveTx = await this.revokeActiveVotes(group, active) - txos.push(revokeActiveTx) - } - return txos - } - - revokeAllVotesForAllGroups = async () => { - const electionContract = await this.contracts.getElection() - const groups = await electionContract.getGroupsVotedForByAccount(this.address) - const txoMatrix = await concurrentMap(4, groups, (group) => this.revokeAllVotesForGroup(group)) - return flatten(txoMatrix) - } -} diff --git a/packages/sdk/contractkit/src/wrappers/Reserve.test.ts b/packages/sdk/contractkit/src/wrappers/Reserve.test.ts deleted file mode 100644 index aad8eba6922..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Reserve.test.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import BigNumber from 'bignumber.js' -import { newKitFromWeb3 } from '../kit' -import { MultiSigWrapper } from './MultiSig' -import { ReserveWrapper } from './Reserve' - -testWithGanache('Reserve Wrapper', (web3) => { - const kit = newKitFromWeb3(web3) - let accounts: string[] = [] - let reserve: ReserveWrapper - let reserveSpenderMultiSig: MultiSigWrapper - let otherReserveAddress: string - let otherSpender: string - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - otherReserveAddress = accounts[9] - otherSpender = accounts[7] - reserve = await kit.contracts.getReserve() - const spenders = await reserve.getSpenders() - // assumes that the multisig is the most recent spender in the spenders array - const multiSigAddress = spenders.length > 0 ? spenders[spenders.length - 1] : '' - reserveSpenderMultiSig = await kit.contracts.getMultiSig(multiSigAddress) - }) - - test('can get asset target weights which sum to 100%', async () => { - const targets = await reserve.getAssetAllocationWeights() - expect(targets.reduce((total, current) => total.plus(current), new BigNumber(0))).toEqual( - new BigNumber(100 * 10_000_000_000_000_000_000_000) - ) - }) - - test('can get asset target symbols ', async () => { - const targets = await reserve.getAssetAllocationSymbols() - - const expectation = ['cGLD', 'BTC', 'ETH', 'DAI'] - - targets.forEach((sym, i) => { - expect(sym).toEqual(expect.stringMatching(expectation[i])) - }) - }) - - test('can get reserve unfrozen balance ', async () => { - const balance = await reserve.getUnfrozenBalance() - expect(balance).toEqBigNumber('1e+26') - }) - - test('can get sum of reserve unfrozen balance + other reserve address balances', async () => { - const balanceWithOtherAddresses = await reserve.getUnfrozenReserveCeloBalance() - expect(balanceWithOtherAddresses).toEqBigNumber('3e+26') - }) - - test('test is spender', async () => { - const tx = await reserve.isSpender(reserveSpenderMultiSig.address) - expect(tx).toBeTruthy() - }) - - test('two spenders required to confirm transfers gold', async () => { - const tx = await reserve.transferGold(otherReserveAddress, 10) - const multisigTx = await reserveSpenderMultiSig.submitOrConfirmTransaction( - reserve.address, - tx.txo - ) - const events = await (await multisigTx.sendAndWaitForReceipt()).events - expect(events && events.Submission && events.Confirmation && !events.Execution) - - const tx2 = await reserve.transferGold(otherReserveAddress, 10) - const multisigTx2 = await reserveSpenderMultiSig.submitOrConfirmTransaction( - reserve.address, - tx2.txo - ) - const events2 = await (await multisigTx2.sendAndWaitForReceipt({ from: otherSpender })).events - expect(events2 && !events2.Submission && events2.Confirmation && events2.Execution) - }) - - test('test does not transfer gold if not spender', async () => { - const tx = await reserve.transferGold(otherReserveAddress, 10) - const multisigTx = await reserveSpenderMultiSig.submitOrConfirmTransaction( - reserve.address, - tx.txo - ) - await expect(multisigTx.sendAndWaitForReceipt({ from: accounts[2] })).rejects.toThrowError() - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/Reserve.ts b/packages/sdk/contractkit/src/wrappers/Reserve.ts deleted file mode 100644 index 05b7f3a8e99..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Reserve.ts +++ /dev/null @@ -1,149 +0,0 @@ -import { Reserve } from '@celo/abis/web3/mento/Reserve' -import { Address, EventLog } from '@celo/connect' -import BigNumber from 'bignumber.js' -import { - BaseWrapper, - fixidityValueToBigNumber, - proxyCall, - proxySend, - valueToBigNumber, -} from './BaseWrapper' - -export interface ReserveConfig { - tobinTaxStalenessThreshold: BigNumber - frozenReserveGoldStartBalance: BigNumber - frozenReserveGoldStartDay: BigNumber - frozenReserveGoldDays: BigNumber - otherReserveAddresses: string[] -} - -/** - * Contract for handling reserve for stable currencies - */ -export class ReserveWrapper extends BaseWrapper { - /** - * Query Tobin tax staleness threshold parameter. - * @returns Current Tobin tax staleness threshold. - */ - tobinTaxStalenessThreshold = proxyCall( - this.contract.methods.tobinTaxStalenessThreshold, - undefined, - valueToBigNumber - ) - dailySpendingRatio = proxyCall( - this.contract.methods.getDailySpendingRatio, - undefined, - fixidityValueToBigNumber - ) - isSpender: (account: string) => Promise = proxyCall(this.contract.methods.isSpender) - transferGold = proxySend(this.connection, this.contract.methods.transferGold) - getOrComputeTobinTax = proxySend(this.connection, this.contract.methods.getOrComputeTobinTax) - frozenReserveGoldStartBalance = proxyCall( - this.contract.methods.frozenReserveGoldStartBalance, - undefined, - valueToBigNumber - ) - frozenReserveGoldStartDay = proxyCall( - this.contract.methods.frozenReserveGoldStartDay, - undefined, - valueToBigNumber - ) - frozenReserveGoldDays = proxyCall( - this.contract.methods.frozenReserveGoldDays, - undefined, - valueToBigNumber - ) - - /** - * @notice Returns a list of weights used for the allocation of reserve assets. - * @return An array of a list of weights used for the allocation of reserve assets. - */ - getAssetAllocationWeights = proxyCall( - this.contract.methods.getAssetAllocationWeights, - undefined, - (weights) => weights.map(valueToBigNumber) - ) - - /** - * @notice Returns a list of token symbols that have been allocated. - * @return An array of token symbols that have been allocated. - */ - getAssetAllocationSymbols = proxyCall( - this.contract.methods.getAssetAllocationSymbols, - undefined, - (symbols) => symbols.map((symbol) => this.connection.hexToAscii(symbol)) - ) - - /** - * @alias {getReserveCeloBalance} - */ - getReserveGoldBalance = proxyCall( - this.contract.methods.getReserveGoldBalance, - undefined, - valueToBigNumber - ) - - /** - * @notice Returns the amount of CELO included in the reserve - * @return {BigNumber} The CELO amount included in the reserve. - */ - getReserveCeloBalance = this.getReserveGoldBalance - - /** - * @notice Returns the amount of unfrozen CELO in the Reserve contract. - * @see {getUnfrozenReserveCeloBalance} - * @return {BigNumber} amount in wei - */ - getUnfrozenBalance = proxyCall( - this.contract.methods.getUnfrozenBalance, - undefined, - valueToBigNumber - ) - - /** - * @notice Returns the amount of unfrozen CELO included in the reserve - * contract and in other reserve addresses. - * @see {getUnfrozenBalance} - * @return {BigNumber} amount in wei - */ - getUnfrozenReserveCeloBalance = proxyCall( - this.contract.methods.getUnfrozenReserveGoldBalance, - undefined, - valueToBigNumber - ) - - getOtherReserveAddresses = proxyCall(this.contract.methods.getOtherReserveAddresses) - - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - return { - tobinTaxStalenessThreshold: await this.tobinTaxStalenessThreshold(), - frozenReserveGoldStartBalance: await this.frozenReserveGoldStartBalance(), - frozenReserveGoldStartDay: await this.frozenReserveGoldStartDay(), - frozenReserveGoldDays: await this.frozenReserveGoldDays(), - otherReserveAddresses: await this.getOtherReserveAddresses(), - } - } - - isOtherReserveAddress = proxyCall(this.contract.methods.isOtherReserveAddress) - - async getSpenders(): Promise { - const spendersAdded = ( - await this.getPastEvents('SpenderAdded', { - fromBlock: 0, - toBlock: 'latest', - }) - ).map((eventlog: EventLog) => eventlog.returnValues.spender) - const spendersRemoved = ( - await this.getPastEvents('SpenderRemoved', { - fromBlock: 0, - toBlock: 'latest', - }) - ).map((eventlog: EventLog) => eventlog.returnValues.spender) - return spendersAdded.filter((spender) => !spendersRemoved.includes(spender)) - } -} - -export type ReserveWrapperType = ReserveWrapper diff --git a/packages/sdk/contractkit/src/wrappers/SortedOracles.test.ts b/packages/sdk/contractkit/src/wrappers/SortedOracles.test.ts deleted file mode 100644 index 4e4ce689d76..00000000000 --- a/packages/sdk/contractkit/src/wrappers/SortedOracles.test.ts +++ /dev/null @@ -1,402 +0,0 @@ -import SortedOraclesArtifacts from '@celo/celo-devchain/contracts/contracts-0.5/SortedOracles.json' -import { Address } from '@celo/connect' -import { describeEach } from '@celo/dev-utils/lib/describeEach' -import { NetworkConfig, testWithGanache, timeTravel } from '@celo/dev-utils/lib/ganache-test' -import { CeloContract } from '../base' -import { StableToken } from '../celo-tokens' -import { newKitFromWeb3 } from '../kit' -import { OracleRate, ReportTarget, SortedOraclesWrapper } from './SortedOracles' - -const truffleContract = require('@truffle/contract') - -// set timeout to 10 seconds -jest.setTimeout(10 * 1000) - -/* -TEST NOTES: -- In migrations: The only account that has cUSD is accounts[0] -*/ - -testWithGanache('SortedOracles Wrapper', (web3) => { - const kit = newKitFromWeb3(web3) - const SortedOracles = truffleContract(SortedOraclesArtifacts) - SortedOracles.setProvider(web3.currentProvider) - - async function reportAsOracles( - sortedOracles: SortedOraclesWrapper, - target: ReportTarget, - oracles: Address[], - rates: number[] = [] - ): Promise { - // Create some arbitrary values to report if none were passed in - if (rates.length === 0) { - for (const _oracle of oracles) { - rates.push(Math.random() * 2) - } - } - - for (let i = 0; i < rates.length; i++) { - const tx = await sortedOracles.report(target, rates[i], oracles[i]) - await tx.sendAndWaitForReceipt() - } - } - - // Quick setup for conditions when some oracle reports are expired and the rest are not. - // This assumes that the rates reported can be arbitrary and not a critical piece of the test. - async function setupExpiredAndNotExpiredReports( - sortedOracles: SortedOraclesWrapper, - target: ReportTarget, - expiredOracles: Address[], - allOracles: Address[] - ): Promise { - const expirySeconds = (await sortedOracles.reportExpirySeconds()).toNumber() - await reportAsOracles(sortedOracles, target, expiredOracles) - await timeTravel(expirySeconds + 5, web3) - const freshOracles = allOracles.filter((o) => !expiredOracles.includes(o)) - await reportAsOracles(sortedOracles, target, freshOracles) - } - - // TODO (soloseng): this function causes test to hang after completion. - // used --forceExit flag to exit test. - /** - * When testing with a custom token pair we can't use the - * already deployed SortedOracles because that's managed - * by Governance and we can't execute changes on the contract. - * To make it easier we'll deploy an new version for use in - * the tests - */ - async function newSortedOracles(owner: Address): Promise { - const instance = await SortedOracles.new(true, { from: owner }) - await instance.initialize(NetworkConfig.oracles.reportExpiry, { from: owner }) - return new SortedOraclesWrapper(kit.connection, instance.contract, kit.registry) - } - - async function addOracleForTarget( - sortedOraclesInstance: SortedOraclesWrapper, - target: ReportTarget, - oracle: Address, - owner: Address - ): Promise { - // @ts-ignore - const identifier = await sortedOraclesInstance.toCurrencyPairIdentifier(target) - // @ts-ignore - const sortedOraclesContract = sortedOraclesInstance.contract - // We're @ts-ignoring the above because there's no wrapper method - // defined in SortedOracles for the `addOracle` method, which is fine - // because this operation should only be executed via governance so - // there's not much use in exposing it, but we need it to setup tests. - await sortedOraclesContract.methods.addOracle(identifier, oracle).send({ - from: owner, - }) - } - - // NOTE: These values are set in packages/dev-utils/src/migration-override.json, - // and are derived from the MNEMONIC. - // If the MNEMONIC has changed, these will need to be reset. - // To do that, look at the output of web3.eth.getAccounts(), and pick a few - // addresses from that set to be oracles - const stableTokenOracles: Address[] = NetworkConfig.stableToken.oracles - // Use same oracle addresses for CELO/BTC as well - const celoBtcOracles: Address[] = NetworkConfig.stableToken.oracles - const oracleAddress = stableTokenOracles[stableTokenOracles.length - 1] - - let stableTokenSortedOracles: SortedOraclesWrapper - let btcSortedOracles: SortedOraclesWrapper - - let allAccounts: Address[] - let stableTokenAddress: Address - let nonOracleAddress: Address - let btcOracleOwner: Address - const CELOBTCIdentifier: Address = web3.utils.toChecksumAddress( - web3.utils.keccak256('CELOBTC').slice(26) - ) - - beforeAll(async () => { - allAccounts = await web3.eth.getAccounts() - - btcOracleOwner = allAccounts[0] - - btcSortedOracles = await newSortedOracles(btcOracleOwner) - stableTokenSortedOracles = await kit.contracts.getSortedOracles() - stableTokenAddress = await kit.registry.addressFor(CeloContract.StableToken) - - nonOracleAddress = allAccounts.find((addr) => { - return !stableTokenOracles.includes(addr) - })! - - // For StableToken the oracles are setup in migrations, for our - // custom CELO/BTC oracle we need to add them manually - for (const oracle of celoBtcOracles) { - await addOracleForTarget(btcSortedOracles, CELOBTCIdentifier, oracle, btcOracleOwner) - } - // And also report an initial price as happens in 09_stabletoken.ts - // So that we can share tests between the two oracles. - await ( - await btcSortedOracles.report( - CELOBTCIdentifier, - NetworkConfig.stableToken.goldPrice, - oracleAddress - ) - ).sendAndWaitForReceipt() - }) - - const testCases: Array<{ label: string; reportTarget: ReportTarget }> = [ - { - label: 'StableToken (CELO/USD)', - reportTarget: CeloContract.StableToken, - }, - { - label: 'CELO/BTC', - reportTarget: CELOBTCIdentifier, - }, - ] - - describeEach(testCases, ({ reportTarget }) => { - let sortedOracles: SortedOraclesWrapper - beforeEach(() => { - if (reportTarget === CELOBTCIdentifier) { - sortedOracles = btcSortedOracles - } else if (reportTarget === CeloContract.StableToken) { - sortedOracles = stableTokenSortedOracles - } else { - throw new Error(`Unexpected report target: ${reportTarget}`) - } - }) - - describe('#report', () => { - const value = 16 - - describe('when reporting from a whitelisted Oracle', () => { - it('should be able to report a rate', async () => { - const initialRates: OracleRate[] = await sortedOracles.getRates(reportTarget) - - const tx = await sortedOracles.report(reportTarget, value, oracleAddress) - await tx.sendAndWaitForReceipt() - - const resultingRates: OracleRate[] = await sortedOracles.getRates(reportTarget) - expect(resultingRates).not.toMatchObject(initialRates) - }) - - describe('when inserting into the middle of the existing rates', () => { - beforeEach(async () => { - const rates = [15, 20, 17] - await reportAsOracles(sortedOracles, reportTarget, stableTokenOracles, rates) - }) - - const expectedLesserKey = stableTokenOracles[0] - const expectedGreaterKey = stableTokenOracles[2] - - const expectedOracleOrder = [ - stableTokenOracles[1], - stableTokenOracles[2], - oracleAddress, - stableTokenOracles[0], - ] - - it('passes the correct lesserKey and greaterKey as args', async () => { - const tx = await sortedOracles.report(reportTarget, value, oracleAddress) - const actualArgs = tx.txo.arguments - expect(actualArgs[2]).toEqual(expectedLesserKey) - expect(actualArgs[3]).toEqual(expectedGreaterKey) - - await tx.sendAndWaitForReceipt() - }) - - it('inserts the new record in the right place', async () => { - const tx = await sortedOracles.report(reportTarget, value, oracleAddress) - await tx.sendAndWaitForReceipt() - - const resultingRates: OracleRate[] = await sortedOracles.getRates(reportTarget) - - expect(resultingRates.map((r) => r.address)).toEqual(expectedOracleOrder) - }) - }) - }) - - describe('when reporting from a non-oracle address', () => { - it('should raise an error', async () => { - const tx = await sortedOracles.report(reportTarget, value, nonOracleAddress) - await expect(tx.sendAndWaitForReceipt()).rejects.toThrow('sender was not an oracle') - }) - - it('should not change the list of rates', async () => { - const initialRates = await sortedOracles.getRates(reportTarget) - try { - const tx = await sortedOracles.report(reportTarget, value, nonOracleAddress) - await tx.sendAndWaitForReceipt() - } catch (err) { - // We don't need to do anything with this error other than catch it so - // it doesn't fail this test. - } finally { - const resultingRates = await sortedOracles.getRates(reportTarget) - expect(resultingRates).toMatchObject(initialRates) - } - }) - }) - }) - - describe('#removeExpiredReports', () => { - describe('when expired reports exist', () => { - const expiredOracles = stableTokenOracles.slice(0, 2) - let initialReportCount: number - - beforeEach(async () => { - await setupExpiredAndNotExpiredReports( - sortedOracles, - reportTarget, - expiredOracles, - stableTokenOracles - ) - initialReportCount = await sortedOracles.numRates(reportTarget) - }) - - it('should successfully remove a report', async () => { - const tx = await sortedOracles.removeExpiredReports(reportTarget, 1) - await tx.sendAndWaitForReceipt({ from: oracleAddress }) - - expect(await sortedOracles.numRates(reportTarget)).toEqual(initialReportCount - 1) - }) - - it('removes only the expired reports, even if the number to remove is higher', async () => { - const toRemove = expiredOracles.length + 1 - const tx = await sortedOracles.removeExpiredReports(reportTarget, toRemove) - await tx.sendAndWaitForReceipt({ from: oracleAddress }) - - expect(await sortedOracles.numRates(reportTarget)).toEqual( - initialReportCount - expiredOracles.length - ) - }) - }) - - it('should not remove any reports when reports exist but are not expired', async () => { - await reportAsOracles(sortedOracles, reportTarget, stableTokenOracles) - - const initialReportCount = await sortedOracles.numRates(reportTarget) - - const tx = await sortedOracles.removeExpiredReports(reportTarget, 1) - await tx.sendAndWaitForReceipt({ from: oracleAddress }) - - expect(await sortedOracles.numRates(reportTarget)).toEqual(initialReportCount) - }) - }) - - describe('#isOldestReportExpired', () => { - describe('when at least one expired report exists', () => { - it('returns with true and the address of the last reporting oracle', async () => { - await setupExpiredAndNotExpiredReports( - sortedOracles, - reportTarget, - [oracleAddress], - stableTokenOracles - ) - const [isExpired, address] = await sortedOracles.isOldestReportExpired(reportTarget) - expect(isExpired).toEqual(true) - expect(address).toEqual(oracleAddress) - }) - }) - describe('when the oldest is not expired', () => { - it('returns with false and the address of the last reporting oracle', async () => { - await reportAsOracles(sortedOracles, reportTarget, stableTokenOracles) - const [isExpired, address] = await sortedOracles.isOldestReportExpired(reportTarget) - expect(isExpired).toEqual(false) - expect(address).toEqual(stableTokenOracles[0]) - }) - }) - }) - - /** - * Proxy Calls to view methods - * - * The purpose of these tests is to verify that these wrapper functions exist, - * are calling the contract methods correctly, and get some value back. The - * values checked here are often dependent on setup occuring in the protocol - * migrations run in `yarn test:reset`. If these tests are failing, the first - * thing to check is if there have been changes to the migrations - */ - describe('#getRates', () => { - const expectedRates = [2, 1.5, 1, 0.5] - beforeEach(async () => { - await reportAsOracles(sortedOracles, reportTarget, stableTokenOracles, expectedRates) - }) - it('SBAT getRates', async () => { - const actualRates = await sortedOracles.getRates(reportTarget) - expect(actualRates.length).toBeGreaterThan(0) - for (const rate of actualRates) { - expect(rate).toHaveProperty('address') - expect(rate).toHaveProperty('rate') - expect(rate).toHaveProperty('medianRelation') - } - }) - - it('returns the correct rate', async () => { - const response = await sortedOracles.getRates(reportTarget) - const actualRates = response.map((r) => r.rate.toNumber()) - expect(actualRates).toEqual(expectedRates) - }) - }) - - describe('#isOracle', () => { - it('returns true when this address is a whitelisted oracle for this token', async () => { - expect(await sortedOracles.isOracle(reportTarget, oracleAddress)).toEqual(true) - }) - it('returns false when this address is not an oracle', async () => { - expect(await sortedOracles.isOracle(reportTarget, nonOracleAddress)).toEqual(false) - }) - }) - - describe('#numRates', () => { - it('returns a count of rates reported for the specified token', async () => { - // Why 1? In packages/protocol/09_stabletoken, a single rate is reported - expect(await sortedOracles.numRates(reportTarget)).toEqBigNumber(1) - }) - }) - - describe('#medianRate', () => { - it('returns the key for the median', async () => { - const returnedMedian = await sortedOracles.medianRate(reportTarget) - expect(returnedMedian.rate).toEqBigNumber(NetworkConfig.stableToken.goldPrice) - }) - }) - - describe('#reportExpirySeconds', () => { - it('returns the number of seconds after which a report expires', async () => { - const result = await sortedOracles.reportExpirySeconds() - expect(result).toEqBigNumber(NetworkConfig.oracles.reportExpiry) - }) - }) - }) - - /** - * Helper Functions - * - * These are functions in the wrapper that call other functions, passing in - * some regularly used arguments. The purpose of these tests is to verify that - * those arguments are being set correctly. - */ - describe('#reportStableToken', () => { - it('calls report with the address for StableToken (cUSD) by default', async () => { - const tx = await stableTokenSortedOracles.reportStableToken(14, oracleAddress) - await tx.sendAndWaitForReceipt() - expect(tx.txo.arguments[0]).toEqual(stableTokenAddress) - }) - - describe('calls report with the address for the provided StableToken', () => { - for (const token of Object.values(StableToken)) { - it(`calls report with token ${token}`, async () => { - console.log(`hola ${token}, ${oracleAddress}`) - const tx = await stableTokenSortedOracles.reportStableToken(14, oracleAddress, token) - await tx.sendAndWaitForReceipt() - expect(tx.txo.arguments[0]).toEqual(await kit.celoTokens.getAddress(token)) - }) - } - }) - }) - - describe('#getStableTokenRates', () => { - it('gets rates for Stable Token', async () => { - const usdRatesResult = await stableTokenSortedOracles.getStableTokenRates() - const getRatesResult = await stableTokenSortedOracles.getRates(CeloContract.StableToken) - expect(usdRatesResult).toEqual(getRatesResult) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/SortedOracles.ts b/packages/sdk/contractkit/src/wrappers/SortedOracles.ts deleted file mode 100644 index af14060b301..00000000000 --- a/packages/sdk/contractkit/src/wrappers/SortedOracles.ts +++ /dev/null @@ -1,318 +0,0 @@ -import { SortedOracles } from '@celo/abis/web3/SortedOracles' -import { eqAddress, NULL_ADDRESS } from '@celo/base/lib/address' -import { Address, CeloTransactionObject, Connection, toTransactionObject } from '@celo/connect' -import { isValidAddress } from '@celo/utils/lib/address' -import { fromFixed, toFixed } from '@celo/utils/lib/fixidity' -import BigNumber from 'bignumber.js' -import { AddressRegistry } from '../address-registry' -import { CeloContract, StableTokenContract } from '../base' -import { isStableTokenContract, StableToken, stableTokenInfos } from '../celo-tokens' -import { - BaseWrapper, - proxyCall, - secondsToDurationString, - valueToBigNumber, - valueToFrac, - valueToInt, -} from './BaseWrapper' - -export enum MedianRelation { - Undefined, - Lesser, - Greater, - Equal, -} - -export interface SortedOraclesConfig { - reportExpirySeconds: BigNumber -} - -export interface OracleRate { - address: Address - rate: BigNumber - medianRelation: MedianRelation -} - -export interface OracleTimestamp { - address: Address - timestamp: BigNumber - medianRelation: MedianRelation -} - -export interface OracleReport { - address: Address - rate: BigNumber - timestamp: BigNumber -} - -export interface MedianRate { - rate: BigNumber -} - -export type ReportTarget = StableTokenContract | Address - -/** - * Currency price oracle contract. - */ -export class SortedOraclesWrapper extends BaseWrapper { - constructor( - protected readonly connection: Connection, - protected readonly contract: SortedOracles, - protected readonly registry: AddressRegistry - ) { - super(connection, contract) - } - /** - * Gets the number of rates that have been reported for the given target - * @param target The ReportTarget, either CeloToken or currency pair - * @return The number of reported oracle rates for `token`. - */ - async numRates(target: ReportTarget): Promise { - const identifier = await this.toCurrencyPairIdentifier(target) - const response = await this.contract.methods.numRates(identifier).call() - return valueToInt(response) - } - - /** - * Returns the median rate for the given target - * @param target The ReportTarget, either CeloToken or currency pair - * @return The median exchange rate for `token`, expressed as: - * amount of that token / equivalent amount in CELO - */ - async medianRate(target: ReportTarget): Promise { - const identifier = await this.toCurrencyPairIdentifier(target) - const response = await this.contract.methods.medianRate(identifier).call() - return { - rate: valueToFrac(response[0], response[1]), - } - } - - /** - * Checks if the given address is whitelisted as an oracle for the target - * @param target The ReportTarget, either CeloToken or currency pair - * @param oracle The address that we're checking the oracle status of - * @returns boolean describing whether this account is an oracle - */ - async isOracle(target: ReportTarget, oracle: Address): Promise { - const identifier = await this.toCurrencyPairIdentifier(target) - return this.contract.methods.isOracle(identifier, oracle).call() - } - - /** - * Returns the list of whitelisted oracles for a given target - * @param target The ReportTarget, either CeloToken or currency pair - * @returns The list of whitelisted oracles for a given token. - */ - async getOracles(target: ReportTarget): Promise { - const identifier = await this.toCurrencyPairIdentifier(target) - return this.contract.methods.getOracles(identifier).call() - } - - /** - * Returns the report expiry parameter. - * @returns Current report expiry. - */ - reportExpirySeconds = proxyCall( - this.contract.methods.reportExpirySeconds, - undefined, - valueToBigNumber - ) - - /** - * Returns the expiry for the target if exists, if not the default. - * @param target The ReportTarget, either CeloToken or currency pair - * @return The report expiry in seconds. - */ - async getTokenReportExpirySeconds(target: ReportTarget): Promise { - const identifier = await this.toCurrencyPairIdentifier(target) - const response = await this.contract.methods.getTokenReportExpirySeconds(identifier).call() - return valueToBigNumber(response) - } - - /** - * Checks if the oldest report for a given target is expired - * @param target The ReportTarget, either CeloToken or currency pair - */ - async isOldestReportExpired(target: ReportTarget): Promise<[boolean, Address]> { - const identifier = await this.toCurrencyPairIdentifier(target) - const response = await this.contract.methods.isOldestReportExpired(identifier).call() - // response is NOT an array, but a js object with two keys 0 and 1 - return [response[0], response[1]] - } - - /** - * Removes expired reports, if any exist - * @param target The ReportTarget, either CeloToken or currency pair - * @param numReports The upper-limit of reports to remove. For example, if there - * are 2 expired reports, and this param is 5, it will only remove the 2 that - * are expired. - */ - async removeExpiredReports( - target: ReportTarget, - numReports?: number - ): Promise> { - const identifier = await this.toCurrencyPairIdentifier(target) - if (!numReports) { - numReports = (await this.getReports(target)).length - 1 - } - return toTransactionObject( - this.connection, - this.contract.methods.removeExpiredReports(identifier, numReports) - ) - } - - /** - * Updates an oracle value and the median. - * @param target The ReportTarget, either CeloToken or currency pair - * @param value The amount of `token` equal to one CELO. - */ - async report( - target: ReportTarget, - value: BigNumber.Value, - oracleAddress: Address - ): Promise> { - const identifier = await this.toCurrencyPairIdentifier(target) - const fixedValue = toFixed(valueToBigNumber(value)) - - const { lesserKey, greaterKey } = await this.findLesserAndGreaterKeys( - target, - valueToBigNumber(value), - oracleAddress - ) - - return toTransactionObject( - this.connection, - this.contract.methods.report(identifier, fixedValue.toFixed(), lesserKey, greaterKey), - { from: oracleAddress } - ) - } - - /** - * Updates an oracle value and the median. - * @param value The amount of US Dollars equal to one CELO. - * @param oracleAddress The address to report as - * @param token The token to report for - */ - async reportStableToken( - value: BigNumber.Value, - oracleAddress: Address, - token: StableToken = StableToken.cUSD - ): Promise> { - return this.report(stableTokenInfos[token].contract, value, oracleAddress) - } - - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - return { - reportExpirySeconds: await this.reportExpirySeconds(), - } - } - - /** - * @dev Returns human readable configuration of the sortedoracles contract - * @return SortedOraclesConfig object - */ - async getHumanReadableConfig() { - const config = await this.getConfig() - return { - reportExpiry: secondsToDurationString(config.reportExpirySeconds), - } - } - - /** - * Helper function to get the rates for StableToken, by passing the address - * of StableToken to `getRates`. - */ - getStableTokenRates = async (): Promise => this.getRates(CeloContract.StableToken) - - /** - * Gets all elements from the doubly linked list. - * @param target The ReportTarget, either CeloToken or currency pair in question - * @return An unpacked list of elements from largest to smallest. - */ - async getRates(target: ReportTarget): Promise { - const identifier = await this.toCurrencyPairIdentifier(target) - const response = await this.contract.methods.getRates(identifier).call() - const rates: OracleRate[] = [] - for (let i = 0; i < response[0].length; i++) { - const medRelIndex = parseInt(response[2][i], 10) - rates.push({ - address: response[0][i], - rate: fromFixed(valueToBigNumber(response[1][i])), - medianRelation: medRelIndex, - }) - } - return rates - } - - /** - * Gets all elements from the doubly linked list. - * @param target The ReportTarget, either CeloToken or currency pair in question - * @return An unpacked list of elements from largest to smallest. - */ - async getTimestamps(target: ReportTarget): Promise { - const identifier = await this.toCurrencyPairIdentifier(target) - const response = await this.contract.methods.getTimestamps(identifier).call() - const timestamps: OracleTimestamp[] = [] - for (let i = 0; i < response[0].length; i++) { - const medRelIndex = parseInt(response[2][i], 10) - timestamps.push({ - address: response[0][i], - timestamp: valueToBigNumber(response[1][i]), - medianRelation: medRelIndex, - }) - } - return timestamps - } - - async getReports(target: ReportTarget): Promise { - const [rates, timestamps] = await Promise.all([ - this.getRates(target), - this.getTimestamps(target), - ]) - const reports: OracleReport[] = [] - for (const rate of rates) { - const match = timestamps.filter((t: OracleTimestamp) => eqAddress(t.address, rate.address)) - reports.push({ address: rate.address, rate: rate.rate, timestamp: match[0].timestamp }) - } - return reports - } - - private async findLesserAndGreaterKeys( - target: ReportTarget, - value: BigNumber.Value, - oracleAddress: Address - ): Promise<{ lesserKey: Address; greaterKey: Address }> { - const currentRates: OracleRate[] = await this.getRates(target) - let greaterKey = NULL_ADDRESS - let lesserKey = NULL_ADDRESS - - // This leverages the fact that the currentRates are already sorted from - // greatest to lowest value - for (const rate of currentRates) { - if (!eqAddress(rate.address, oracleAddress)) { - if (rate.rate.isLessThanOrEqualTo(value)) { - lesserKey = rate.address - break - } - greaterKey = rate.address - } - } - - return { lesserKey, greaterKey } - } - - private async toCurrencyPairIdentifier(target: ReportTarget): Promise
{ - if (isStableTokenContract(target as CeloContract)) { - return this.registry.addressFor(target as StableTokenContract) - } else if (isValidAddress(target)) { - return target - } else { - throw new Error(`${target} is not StableTokenContract deployed or a valid Address`) - } - } -} - -export type SortedOraclesWrapperType = SortedOraclesWrapper diff --git a/packages/sdk/contractkit/src/wrappers/StableToken.test.ts b/packages/sdk/contractkit/src/wrappers/StableToken.test.ts deleted file mode 100644 index 6393503af46..00000000000 --- a/packages/sdk/contractkit/src/wrappers/StableToken.test.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { StableToken } from '../celo-tokens' -import { ContractKit, newKitFromWeb3 } from '../kit' -import { StableTokenWrapper } from './StableTokenWrapper' - -// TEST NOTES: balances defined in test-utils/migration-override - -testWithGanache('StableToken Wrapper', async (web3) => { - const kit = newKitFromWeb3(web3) - - const stableTokenInfos: { - [key in StableToken]: { - stableToken: StableToken - name: string - symbol: string - } - } = { - [StableToken.cUSD]: { - stableToken: StableToken.cUSD, - name: 'Celo Dollar', - symbol: 'cUSD', - }, - [StableToken.cEUR]: { - stableToken: StableToken.cEUR, - name: 'Celo Euro', - symbol: 'cEUR', - }, - [StableToken.cREAL]: { - stableToken: StableToken.cREAL, - name: 'Celo Brazilian Real', - symbol: 'cREAL', - }, - } - - for (const stableTokenInfo of Object.values(stableTokenInfos)) { - describe(stableTokenInfo.symbol, () => { - testStableToken( - kit, - stableTokenInfo.stableToken, - stableTokenInfo.name, - stableTokenInfo.symbol - ) - }) - } -}) - -export function testStableToken( - kit: ContractKit, - stableTokenName: StableToken, - expectedName: string, - expectedSymbol: string -) { - const web3 = kit.web3 - const ONE_STABLE = web3.utils.toWei('1', 'ether') - - let accounts: string[] = [] - let stableToken: StableTokenWrapper - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - kit.defaultAccount = accounts[0] - stableToken = await kit.contracts.getStableToken(stableTokenName) - }) - - test('SBAT check balance', () => - expect(stableToken.balanceOf(accounts[0])).resolves.toBeBigNumber()) - test('SBAT check decimals', () => expect(stableToken.decimals()).resolves.toBe(18)) - test('SBAT check name', () => expect(stableToken.name()).resolves.toBe(expectedName)) - test('SBAT check symbol', () => expect(stableToken.symbol()).resolves.toBe(expectedSymbol)) - test('SBAT check totalSupply', () => expect(stableToken.totalSupply()).resolves.toBeBigNumber()) - - test('SBAT transfer', async () => { - const before = await stableToken.balanceOf(accounts[1]) - const tx = await stableToken.transfer(accounts[1], ONE_STABLE).send() - await tx.waitReceipt() - - const after = await stableToken.balanceOf(accounts[1]) - expect(after.minus(before)).toEqBigNumber(ONE_STABLE) - }) - - test('SBAT approve spender', async () => { - const before = await stableToken.allowance(accounts[0], accounts[1]) - expect(before).toEqBigNumber(0) - - await stableToken.approve(accounts[1], ONE_STABLE).sendAndWaitForReceipt() - const after = await stableToken.allowance(accounts[0], accounts[1]) - expect(after).toEqBigNumber(ONE_STABLE) - }) - - test('SBAT tranfer from', async () => { - const before = await stableToken.balanceOf(accounts[3]) - // account1 approves account0 - await stableToken.approve(accounts[1], ONE_STABLE).sendAndWaitForReceipt({ from: accounts[0] }) - - const tx = await stableToken - .transferFrom(accounts[0], accounts[3], ONE_STABLE) - .send({ from: accounts[1] }) - await tx.waitReceipt() - const after = await stableToken.balanceOf(accounts[3]) - expect(after.minus(before)).toEqBigNumber(ONE_STABLE) - }) -} diff --git a/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts b/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts deleted file mode 100644 index bb0a0f76d01..00000000000 --- a/packages/sdk/contractkit/src/wrappers/StableTokenWrapper.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { StableToken } from '@celo/abis/web3/mento/StableToken' -import { fromFixed } from '@celo/utils/lib/fixidity' -import BigNumber from 'bignumber.js' -import { - proxyCall, - proxySend, - secondsToDurationString, - stringIdentity, - tupleParser, - unixSecondsTimestampToDateString, - valueToBigNumber, - valueToString, -} from './BaseWrapper' -import { CeloTokenWrapper } from './CeloTokenWrapper' - -export interface InflationParameters { - rate: BigNumber - factor: BigNumber - updatePeriod: BigNumber - factorLastUpdated: BigNumber -} - -export interface StableTokenConfig { - decimals: number - name: string - symbol: string - inflationParameters: InflationParameters -} - -/** - * Stable token with variable supply - */ -export class StableTokenWrapper extends CeloTokenWrapper { - /** - * Returns the address of the owner of the contract. - * @return the address of the owner of the contract. - */ - owner = proxyCall(this.contract.methods.owner) - - /** - * Returns the units for a given value given the current inflation factor. - * @param value The value to convert to units. - * @return The units corresponding to `value` given the current inflation factor. - * @dev We don't compute the updated inflationFactor here because - * we assume any function calling this will have updated the inflation factor. - */ - valueToUnits: (value: BigNumber.Value) => Promise = proxyCall( - this.contract.methods.valueToUnits, - tupleParser(valueToString), - valueToBigNumber - ) - - /** - * Returns the value of a given number of units given the current inflation factor. - * @param units The units to convert to value. - * @return The value corresponding to `units` given the current inflation factor. - */ - unitsToValue: (units: BigNumber.Value) => Promise = proxyCall( - this.contract.methods.unitsToValue, - tupleParser(valueToString), - valueToBigNumber - ) - - /** - * Increases the allowance of another user. - * @param spender The address which is being approved to spend StableToken. - * @param value The increment of the amount of StableToken approved to the spender. - * @returns true if success. - */ - increaseAllowance = proxySend( - this.connection, - this.contract.methods.increaseAllowance, - tupleParser(stringIdentity, valueToString) - ) - /** - * Decreases the allowance of another user. - * @param spender The address which is being approved to spend StableToken. - * @param value The decrement of the amount of StableToken approved to the spender. - * @returns true if success. - */ - decreaseAllowance = proxySend(this.connection, this.contract.methods.decreaseAllowance) - mint = proxySend(this.connection, this.contract.methods.mint) - burn = proxySend(this.connection, this.contract.methods.burn) - - setInflationParameters = proxySend(this.connection, this.contract.methods.setInflationParameters) - - /** - * Querying the inflation parameters. - * @returns Inflation rate, inflation factor, inflation update period and the last time factor was updated. - */ - async getInflationParameters(): Promise { - const res = await this.contract.methods.getInflationParameters().call() - return { - rate: fromFixed(valueToBigNumber(res[0])), - factor: fromFixed(valueToBigNumber(res[1])), - updatePeriod: valueToBigNumber(res[2]), - factorLastUpdated: valueToBigNumber(res[3]), - } - } - - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - const res = await Promise.all([ - this.name(), - this.symbol(), - this.decimals(), - this.getInflationParameters(), - ]) - return { - name: res[0], - symbol: res[1], - decimals: res[2], - inflationParameters: res[3], - } - } - - /** - * @dev Returns human readable configuration of the stabletoken contract - * @return StableTokenConfig object - */ - async getHumanReadableConfig() { - const config = await this.getConfig() - const inflationParameters = { - ...config.inflationParameters, - updatePeriod: secondsToDurationString(config.inflationParameters.updatePeriod), - factorLastUpdated: unixSecondsTimestampToDateString( - config.inflationParameters.factorLastUpdated - ), - } - return { - ...config, - inflationParameters, - } - } -} - -export type StableTokenWrapperType = StableTokenWrapper diff --git a/packages/sdk/contractkit/src/wrappers/Validators.test.ts b/packages/sdk/contractkit/src/wrappers/Validators.test.ts deleted file mode 100644 index ec4f025a36f..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Validators.test.ts +++ /dev/null @@ -1,200 +0,0 @@ -import { mineBlocks, testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { addressToPublicKey } from '@celo/utils/lib/signatureUtils' -import BigNumber from 'bignumber.js' -import Web3 from 'web3' -import { newKitFromWeb3 } from '../kit' -import { AccountsWrapper } from './Accounts' -import { LockedGoldWrapper } from './LockedGold' -import { ValidatorsWrapper } from './Validators' - -/* -TEST NOTES: -- In migrations: The only account that has cUSD is accounts[0] -*/ - -const minLockedGoldValue = Web3.utils.toWei('10000', 'ether') // 10k gold - -const blsPublicKey = - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00' -const blsPoP = - '0xcdb77255037eb68897cd487fdd85388cbda448f617f874449d4b11588b0b7ad8ddc20d9bb450b513bb35664ea3923900' - -testWithGanache('Validators Wrapper', (web3) => { - const kit = newKitFromWeb3(web3) - let accounts: string[] = [] - let accountsInstance: AccountsWrapper - let validators: ValidatorsWrapper - let lockedGold: LockedGoldWrapper - - const registerAccountWithLockedGold = async ( - account: string, - value: string = minLockedGoldValue - ) => { - if (!(await accountsInstance.isAccount(account))) { - await accountsInstance.createAccount().sendAndWaitForReceipt({ from: account }) - } - await lockedGold.lock().sendAndWaitForReceipt({ from: account, value }) - } - - beforeAll(async () => { - accounts = await web3.eth.getAccounts() - validators = await kit.contracts.getValidators() - lockedGold = await kit.contracts.getLockedGold() - accountsInstance = await kit.contracts.getAccounts() - }) - - const setupGroup = async (groupAccount: string, members: number = 1) => { - await registerAccountWithLockedGold( - groupAccount, - new BigNumber(minLockedGoldValue).times(members).toFixed() - ) - await ( - await validators.registerValidatorGroup(new BigNumber(0.1)) - ).sendAndWaitForReceipt({ - from: groupAccount, - }) - } - - const setupValidator = async (validatorAccount: string) => { - await registerAccountWithLockedGold(validatorAccount) - const ecdsaPublicKey = await addressToPublicKey(validatorAccount, kit.connection.sign) - await validators - // @ts-ignore - .registerValidator(ecdsaPublicKey, blsPublicKey, blsPoP) - .sendAndWaitForReceipt({ - from: validatorAccount, - }) - } - - test('SBAT registerValidatorGroup', async () => { - const groupAccount = accounts[0] - await setupGroup(groupAccount) - await expect(validators.isValidatorGroup(groupAccount)).resolves.toBe(true) - }) - - test('SBAT registerValidator', async () => { - const validatorAccount = accounts[1] - await setupValidator(validatorAccount) - await expect(validators.isValidator(validatorAccount)).resolves.toBe(true) - }) - - test('SBAT addMember', async () => { - const groupAccount = accounts[0] - const validatorAccount = accounts[1] - await setupGroup(groupAccount) - await setupValidator(validatorAccount) - await validators.affiliate(groupAccount).sendAndWaitForReceipt({ from: validatorAccount }) - await ( - await validators.addMember(groupAccount, validatorAccount) - ).sendAndWaitForReceipt({ - from: groupAccount, - }) - - const members = await validators.getValidatorGroup(groupAccount).then((group) => group.members) - expect(members).toContain(validatorAccount) - }) - - test('SBAT setNextCommissionUpdate', async () => { - const groupAccount = accounts[0] - await setupGroup(groupAccount) - await validators.setNextCommissionUpdate('0.2').sendAndWaitForReceipt({ - from: groupAccount, - }) - const commission = (await validators.getValidatorGroup(groupAccount)).nextCommission - expect(commission).toEqBigNumber('0.2') - }) - - test('SBAT updateCommission', async () => { - const groupAccount = accounts[0] - await setupGroup(groupAccount) - const txOpts = { from: groupAccount } - await validators.setNextCommissionUpdate('0.2').sendAndWaitForReceipt(txOpts) - await mineBlocks(3, web3) - await validators.updateCommission().sendAndWaitForReceipt(txOpts) - - const commission = (await validators.getValidatorGroup(groupAccount)).commission - expect(commission).toEqBigNumber('0.2') - }) - - test('SBAT get group affiliates', async () => { - const groupAccount = accounts[0] - const validatorAccount = accounts[1] - await setupGroup(groupAccount) - await setupValidator(validatorAccount) - await validators.affiliate(groupAccount).sendAndWaitForReceipt({ from: validatorAccount }) - const group = await validators.getValidatorGroup(groupAccount) - expect(group.affiliates).toContain(validatorAccount) - }) - - describe('SBAT reorderMember', () => { - jest.setTimeout(30 * 1000) - let groupAccount: string, validator1: string, validator2: string - - beforeEach(async () => { - jest.setTimeout(30 * 1000) - - groupAccount = accounts[0] - await setupGroup(groupAccount, 2) - - validator1 = accounts[1] - validator2 = accounts[2] - - for (const validator of [validator1, validator2]) { - await setupValidator(validator) - await validators.affiliate(groupAccount).sendAndWaitForReceipt({ from: validator }) - await ( - await validators.addMember(groupAccount, validator) - ).sendAndWaitForReceipt({ - from: groupAccount, - }) - } - - const members = await validators - .getValidatorGroup(groupAccount) - .then((group) => group.members) - expect(members).toEqual([validator1, validator2]) - }) - - test('move last to first', async () => { - jest.setTimeout(30 * 1000) - - await validators - .reorderMember(groupAccount, validator2, 0) - .then((x) => x.sendAndWaitForReceipt({ from: groupAccount })) - - const membersAfter = await validators - .getValidatorGroup(groupAccount) - .then((group) => group.members) - - expect(membersAfter).toEqual([validator2, validator1]) - }) - - test('move first to last', async () => { - jest.setTimeout(30 * 1000) - - await validators - .reorderMember(groupAccount, validator1, 1) - .then((x) => x.sendAndWaitForReceipt({ from: groupAccount })) - - const membersAfter = await validators - .getValidatorGroup(groupAccount) - .then((group) => group.members) - - expect(membersAfter).toEqual([validator2, validator1]) - }) - - test('test address normalization', async () => { - jest.setTimeout(30 * 1000) - - await validators - .reorderMember(groupAccount, validator2.toLowerCase(), 0) - .then((x) => x.sendAndWaitForReceipt({ from: groupAccount })) - - const membersAfter = await validators - .getValidatorGroup(groupAccount) - .then((group) => group.members) - - expect(membersAfter).toEqual([validator2, validator1]) - }) - }) -}) diff --git a/packages/sdk/contractkit/src/wrappers/Validators.ts b/packages/sdk/contractkit/src/wrappers/Validators.ts deleted file mode 100644 index 255d06b5bc7..00000000000 --- a/packages/sdk/contractkit/src/wrappers/Validators.ts +++ /dev/null @@ -1,685 +0,0 @@ -import { Validators } from '@celo/abis/web3/Validators' -import { eqAddress, findAddressIndex, NULL_ADDRESS } from '@celo/base/lib/address' -import { concurrentMap } from '@celo/base/lib/async' -import { zeroRange, zip } from '@celo/base/lib/collections' -import { Address, CeloTransactionObject, EventLog, toTransactionObject } from '@celo/connect' -import { fromFixed, toFixed } from '@celo/utils/lib/fixidity' -import BigNumber from 'bignumber.js' -import { - blocksToDurationString, - proxyCall, - proxySend, - secondsToDurationString, - stringToSolidityBytes, - tupleParser, - valueToBigNumber, - valueToFixidityString, - valueToInt, -} from './BaseWrapper' -import { BaseWrapperForGoverning } from './BaseWrapperForGoverning' - -export interface Validator { - name: string - address: Address - ecdsaPublicKey: string - blsPublicKey: string - affiliation: string | null - score: BigNumber - signer: Address -} - -export interface ValidatorGroup { - name: string - address: Address - members: Address[] - membersUpdated: number - affiliates: Address[] - commission: BigNumber - nextCommission: BigNumber - nextCommissionBlock: BigNumber - lastSlashed: BigNumber - slashingMultiplier: BigNumber -} - -export interface ValidatorReward { - validator: Validator - validatorPayment: BigNumber - group: ValidatorGroup - groupPayment: BigNumber - epochNumber: number -} - -export interface LockedGoldRequirements { - value: BigNumber - duration: BigNumber -} - -export interface ValidatorsConfig { - groupLockedGoldRequirements: LockedGoldRequirements - validatorLockedGoldRequirements: LockedGoldRequirements - maxGroupSize: BigNumber - membershipHistoryLength: BigNumber - slashingMultiplierResetPeriod: BigNumber - commissionUpdateDelay: BigNumber - downtimeGracePeriod: BigNumber -} - -export interface GroupMembership { - epoch: number - group: Address -} - -export interface MembershipHistoryExtraData { - lastRemovedFromGroupTimestamp: number - tail: number -} - -/** - * Contract for voting for validators and managing validator groups. - */ -// TODO(asa): Support validator signers -export class ValidatorsWrapper extends BaseWrapperForGoverning { - /** - * Queues an update to a validator group's commission. - * @param commission Fixidity representation of the commission this group receives on epoch - * payments made to its members. Must be in the range [0, 1.0]. - */ - setNextCommissionUpdate: (commission: BigNumber.Value) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.setNextCommissionUpdate, - tupleParser(valueToFixidityString) - ) - - /** - * Updates a validator group's commission based on the previously queued update - */ - updateCommission: () => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.updateCommission - ) - - /** - * Returns the Locked Gold requirements for validators. - * @returns The Locked Gold requirements for validators. - */ - async getValidatorLockedGoldRequirements(): Promise { - const res = await this.contract.methods.getValidatorLockedGoldRequirements().call() - return { - value: valueToBigNumber(res[0]), - duration: valueToBigNumber(res[1]), - } - } - - /** - * Returns the Locked Gold requirements for validator groups. - * @returns The Locked Gold requirements for validator groups. - */ - async getGroupLockedGoldRequirements(): Promise { - const res = await this.contract.methods.getGroupLockedGoldRequirements().call() - return { - value: valueToBigNumber(res[0]), - duration: valueToBigNumber(res[1]), - } - } - - /** - * Returns the Locked Gold requirements for specific account. - * @returns The Locked Gold requirements for a specific account. - */ - getAccountLockedGoldRequirement = proxyCall( - this.contract.methods.getAccountLockedGoldRequirement, - undefined, - valueToBigNumber - ) - - /** - * Returns the reset period, in seconds, for slashing multiplier. - */ - getSlashingMultiplierResetPeriod = proxyCall( - this.contract.methods.slashingMultiplierResetPeriod, - undefined, - valueToBigNumber - ) - - /** - * Returns the update delay, in blocks, for the group commission. - */ - getCommissionUpdateDelay = proxyCall( - this.contract.methods.commissionUpdateDelay, - undefined, - valueToBigNumber - ) - - /** - * Returns the validator downtime grace period - */ - getDowntimeGracePeriod = proxyCall( - this.contract.methods.downtimeGracePeriod, - undefined, - valueToBigNumber - ) - - /** - * Returns current configuration parameters. - */ - async getConfig(): Promise { - const res = await Promise.all([ - this.getValidatorLockedGoldRequirements(), - this.getGroupLockedGoldRequirements(), - this.contract.methods.maxGroupSize().call(), - this.contract.methods.membershipHistoryLength().call(), - this.getSlashingMultiplierResetPeriod(), - this.getCommissionUpdateDelay(), - this.getDowntimeGracePeriod(), - ]) - return { - validatorLockedGoldRequirements: res[0], - groupLockedGoldRequirements: res[1], - maxGroupSize: valueToBigNumber(res[2]), - membershipHistoryLength: valueToBigNumber(res[3]), - slashingMultiplierResetPeriod: res[4], - commissionUpdateDelay: res[5], - downtimeGracePeriod: res[6], - } - } - - /** - * @dev Returns human readable configuration of the validators contract - * @return ValidatorsConfig object - */ - async getHumanReadableConfig() { - const config = await this.getConfig() - const validatorLockedGoldRequirements = { - ...config.validatorLockedGoldRequirements, - duration: secondsToDurationString(config.validatorLockedGoldRequirements.duration), - } - const groupLockedGoldRequirements = { - ...config.groupLockedGoldRequirements, - duration: secondsToDurationString(config.groupLockedGoldRequirements.duration), - } - return { - ...config, - slashingMultiplierResetPeriod: secondsToDurationString(config.slashingMultiplierResetPeriod), - commissionUpdateDelay: blocksToDurationString(config.commissionUpdateDelay), - validatorLockedGoldRequirements, - groupLockedGoldRequirements, - } - } - - /** - * Returns the account associated with `signer`. - * @param signer The address of an account or currently authorized validator signer. - * @dev Fails if the `signer` is not an account or currently authorized validator. - * @return The associated account. - */ - async validatorSignerToAccount(signerAddress: Address) { - const accounts = await this.contracts.getAccounts() - return accounts.validatorSignerToAccount(signerAddress) - } - - /** - * Returns the account associated with `signer`. - * @param signer The address of the account or previously authorized signer. - * @dev Fails if the `signer` is not an account or previously authorized signer. - * @return The associated account. - */ - async signerToAccount(signerAddress: Address) { - const accounts = await this.contracts.getAccounts() - return accounts.signerToAccount(signerAddress) - } - - /** - * Updates a validator's BLS key. - * @param blsPublicKey The BLS public key that the validator is using for consensus, should pass proof - * of possession. 48 bytes. - * @param blsPop The BLS public key proof-of-possession, which consists of a signature on the - * account address. 96 bytes. - * @return True upon success. - */ - updateBlsPublicKey: (blsPublicKey: string, blsPop: string) => CeloTransactionObject = - proxySend( - this.connection, - this.contract.methods.updateBlsPublicKey, - tupleParser(stringToSolidityBytes, stringToSolidityBytes) - ) - - /** - * Returns whether a particular account has a registered validator. - * @param account The account. - * @return Whether a particular address is a registered validator. - */ - isValidator = proxyCall(this.contract.methods.isValidator) - - /** - * Returns whether a particular account has a registered validator group. - * @param account The account. - * @return Whether a particular address is a registered validator group. - */ - isValidatorGroup = proxyCall(this.contract.methods.isValidatorGroup) - - /** - * Returns whether an account meets the requirements to register a validator. - * @param account The account. - * @return Whether an account meets the requirements to register a validator. - */ - meetsValidatorBalanceRequirements = async (address: Address) => { - const lockedGold = await this.contracts.getLockedGold() - const total = await lockedGold.getAccountTotalLockedGold(address) - const reqs = await this.getValidatorLockedGoldRequirements() - return reqs.value.lte(total) - } - - /** - * Returns whether an account meets the requirements to register a group. - * @param account The account. - * @return Whether an account meets the requirements to register a group. - */ - - meetsValidatorGroupBalanceRequirements = async (address: Address) => { - const lockedGold = await this.contracts.getLockedGold() - const total = await lockedGold.getAccountTotalLockedGold(address) - const reqs = await this.getGroupLockedGoldRequirements() - return reqs.value.lte(total) - } - - /** Get Validator information */ - async getValidator(address: Address, blockNumber?: number): Promise { - // @ts-ignore: Expected 0-1 arguments, but got 2 - const res = await this.contract.methods.getValidator(address).call({}, blockNumber) - const accounts = await this.contracts.getAccounts() - const name = (await accounts.getName(address, blockNumber)) || '' - - return { - name, - address, - ecdsaPublicKey: res.ecdsaPublicKey as unknown as string, - blsPublicKey: res.blsPublicKey as unknown as string, - affiliation: res.affiliation, - score: fromFixed(new BigNumber(res.score)), - signer: res.signer, - } - } - - async getValidatorFromSigner(address: Address, blockNumber?: number): Promise { - const account = await this.signerToAccount(address) - if (eqAddress(account, NULL_ADDRESS) || !(await this.isValidator(account))) { - return { - name: 'Unregistered validator', - address, - ecdsaPublicKey: '', - blsPublicKey: '', - affiliation: '', - score: new BigNumber(0), - signer: address, - } - } else { - return this.getValidator(account, blockNumber) - } - } - - /** Get ValidatorGroup information */ - async getValidatorGroup( - address: Address, - getAffiliates: boolean = true, - blockNumber?: number - ): Promise { - // @ts-ignore: Expected 0-1 arguments, but got 2 - const res = await this.contract.methods.getValidatorGroup(address).call({}, blockNumber) - const accounts = await this.contracts.getAccounts() - const name = (await accounts.getName(address, blockNumber)) || '' - let affiliates: Validator[] = [] - if (getAffiliates) { - const validators = await this.getRegisteredValidators(blockNumber) - affiliates = validators - .filter((v) => v.affiliation && eqAddress(v.affiliation, address)) - .filter((v) => !res[0].includes(v.address)) - } - return { - name, - address, - members: Array.from(res[0]), - commission: fromFixed(new BigNumber(res[1])), - nextCommission: fromFixed(new BigNumber(res[2])), - nextCommissionBlock: new BigNumber(res[3]), - membersUpdated: res[4].reduce( - (a: number, b: BigNumber.Value) => Math.max(a, new BigNumber(b).toNumber()), - 0 - ), - affiliates: affiliates.map((v) => v.address), - slashingMultiplier: fromFixed(new BigNumber(res[5])), - lastSlashed: valueToBigNumber(res[6]), - } - } - - /** - * Returns the Validator's group membership history - * @param validator The validator whose membership history to return. - * @return The group membership history of a validator. - */ - getValidatorMembershipHistory: (validator: Address) => Promise = proxyCall( - this.contract.methods.getMembershipHistory, - undefined, - (res) => - zip((epoch, group): GroupMembership => ({ epoch: valueToInt(epoch), group }), res[0], res[1]) - ) - - /** - * Returns extra data from the Validator's group membership history - * @param validator The validator whose membership history to return. - * @return The group membership history of a validator. - */ - getValidatorMembershipHistoryExtraData: ( - validator: Address - ) => Promise = proxyCall( - this.contract.methods.getMembershipHistory, - undefined, - (res) => ({ lastRemovedFromGroupTimestamp: valueToInt(res[2]), tail: valueToInt(res[3]) }) - ) - - /** Get the size (amount of members) of a ValidatorGroup */ - getValidatorGroupSize: (group: Address) => Promise = proxyCall( - this.contract.methods.getGroupNumMembers, - undefined, - valueToInt - ) - - /** Get list of registered validator addresses */ - async getRegisteredValidatorsAddresses(blockNumber?: number): Promise { - // @ts-ignore: Expected 0-1 arguments, but got 2 - return this.contract.methods.getRegisteredValidators().call({}, blockNumber) - } - - /** Get list of registered validator group addresses */ - getRegisteredValidatorGroupsAddresses: () => Promise = proxyCall( - this.contract.methods.getRegisteredValidatorGroups - ) - - /** Get list of registered validators */ - async getRegisteredValidators(blockNumber?: number): Promise { - const vgAddresses = await this.getRegisteredValidatorsAddresses(blockNumber) - return concurrentMap(10, vgAddresses, (addr) => this.getValidator(addr, blockNumber)) - } - - /** Get list of registered validator groups */ - async getRegisteredValidatorGroups(): Promise { - const vgAddresses = await this.getRegisteredValidatorGroupsAddresses() - return concurrentMap(10, vgAddresses, (addr) => this.getValidatorGroup(addr, false)) - } - - /** - * Registers a validator unaffiliated with any validator group. - * - * Fails if the account is already a validator or validator group. - * - * @param validatorAddress The address that the validator is using for consensus, should match - * the validator signer. - * @param ecdsaPublicKey The ECDSA public key that the validator is using for consensus. 64 bytes. - * @param blsPublicKey The BLS public key that the validator is using for consensus, should pass proof - * of possession. 48 bytes. - * @param blsPop The BLS public key proof-of-possession, which consists of a signature on the - * account address. 96 bytes. - */ - registerValidator: ( - ecdsaPublicKey: string, - blsPublicKey: string, - blsPop: string - ) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.registerValidator, - tupleParser(stringToSolidityBytes, stringToSolidityBytes, stringToSolidityBytes) - ) - - getEpochNumber = proxyCall(this.contract.methods.getEpochNumber, undefined, valueToBigNumber) - - getEpochSize = proxyCall(this.contract.methods.getEpochSize, undefined, valueToBigNumber) - - /** - * De-registers a validator, removing it from the group for which it is a member. - * @param validatorAddress Address of the validator to deregister - */ - async deregisterValidator(validatorAddress: Address) { - const allValidators = await this.getRegisteredValidatorsAddresses() - const idx = findAddressIndex(validatorAddress, allValidators) - - if (idx < 0) { - throw new Error(`${validatorAddress} is not a registered validator`) - } - return toTransactionObject(this.connection, this.contract.methods.deregisterValidator(idx)) - } - - /** - * Registers a validator group with no member validators. - * Fails if the account is already a validator or validator group. - * Fails if the account does not have sufficient weight. - * - * @param commission the commission this group receives on epoch payments made to its members. - */ - async registerValidatorGroup(commission: BigNumber): Promise> { - return toTransactionObject( - this.connection, - this.contract.methods.registerValidatorGroup(toFixed(commission).toFixed()) - ) - } - - /** - * De-registers a validator Group - * @param validatorGroupAddress Address of the validator group to deregister - */ - async deregisterValidatorGroup(validatorGroupAddress: Address) { - const allGroups = await this.getRegisteredValidatorGroupsAddresses() - const idx = findAddressIndex(validatorGroupAddress, allGroups) - - if (idx < 0) { - throw new Error(`${validatorGroupAddress} is not a registered validator`) - } - return toTransactionObject(this.connection, this.contract.methods.deregisterValidatorGroup(idx)) - } - - /** - * Affiliates a validator with a group, allowing it to be added as a member. - * De-affiliates with the previously affiliated group if present. - * @param group The validator group with which to affiliate. - */ - affiliate: (group: Address) => CeloTransactionObject = proxySend( - this.connection, - this.contract.methods.affiliate - ) - - /** - * De-affiliates a validator, removing it from the group for which it is a member. - * Fails if the account is not a validator with non-zero affiliation. - */ - - deaffiliate = proxySend(this.connection, this.contract.methods.deaffiliate) - - /** - * Removes a validator from the group for which it is a member. - * @param validatorAccount The validator to deaffiliate from their affiliated validator group. - */ - forceDeaffiliateIfValidator = proxySend( - this.connection, - this.contract.methods.forceDeaffiliateIfValidator - ) - - /** - * Resets a group's slashing multiplier if it has been >= the reset period since - * the last time the group was slashed. - */ - resetSlashingMultiplier = proxySend( - this.connection, - this.contract.methods.resetSlashingMultiplier - ) - - /** - * Adds a member to the end of a validator group's list of members. - * Fails if `validator` has not set their affiliation to this account. - * @param validator The validator to add to the group - */ - async addMember(group: Address, validator: Address): Promise> { - const numMembers = await this.getValidatorGroupSize(group) - if (numMembers === 0) { - const election = await this.contracts.getElection() - const voteWeight = await election.getTotalVotesForGroup(group) - const { lesser, greater } = await election.findLesserAndGreaterAfterVote(group, voteWeight) - - return toTransactionObject( - this.connection, - this.contract.methods.addFirstMember(validator, lesser, greater) - ) - } else { - return toTransactionObject(this.connection, this.contract.methods.addMember(validator)) - } - } - - /** - * Removes a member from a ValidatorGroup - * The ValidatorGroup is specified by the `from` of the tx. - * - * @param validator The Validator to remove from the group - */ - removeMember = proxySend(this.connection, this.contract.methods.removeMember) - - /** - * Reorders a member within a validator group. - * Fails if `validator` is not a member of the account's validator group. - * @param groupAddr The validator group - * @param validator The validator to reorder. - * @param newIndex New position for the validator - */ - async reorderMember(groupAddr: Address, validator: Address, newIndex: number) { - const group = await this.getValidatorGroup(groupAddr) - - if (newIndex < 0 || newIndex >= group.members.length) { - throw new Error(`Invalid index ${newIndex}; max index is ${group.members.length - 1}`) - } - - const currentIdx = findAddressIndex(validator, group.members) - if (currentIdx < 0) { - throw new Error(`ValidatorGroup ${groupAddr} does not include ${validator}`) - } else if (currentIdx === newIndex) { - throw new Error(`Validator is already in position ${newIndex}`) - } - - // remove the element - group.members.splice(currentIdx, 1) - // add it on new position - group.members.splice(newIndex, 0, validator) - - const nextMember = - newIndex === group.members.length - 1 ? NULL_ADDRESS : group.members[newIndex + 1] - const prevMember = newIndex === 0 ? NULL_ADDRESS : group.members[newIndex - 1] - - return toTransactionObject( - this.connection, - this.contract.methods.reorderMember(validator, nextMember, prevMember) - ) - } - - async getEpochSizeNumber(): Promise { - const epochSize = await this.getEpochSize() - - return epochSize.toNumber() - } - - async getLastBlockNumberForEpoch(epochNumber: number): Promise { - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - - return blockchainParamsWrapper.getLastBlockNumberForEpoch(epochNumber) - } - - async getEpochNumberOfBlock(blockNumber: number): Promise { - const blockchainParamsWrapper = await this.contracts.getBlockchainParameters() - - return blockchainParamsWrapper.getEpochNumberOfBlock(blockNumber) - } - - /** - * Retrieves ValidatorRewards for epochNumber. - * @param epochNumber The epoch to retrieve ValidatorRewards at. - */ - async getValidatorRewards( - epochNumber: number, - useBlockNumber?: boolean - ): Promise { - const blockNumber = await this.getLastBlockNumberForEpoch(epochNumber) - const events = await this.getPastEvents('ValidatorEpochPaymentDistributed', { - fromBlock: blockNumber, - toBlock: blockNumber, - }) - const validator: Validator[] = await concurrentMap(10, events, (e: EventLog) => { - return this.getValidator(e.returnValues.validator, useBlockNumber ? blockNumber : undefined) - }) - const validatorGroup: ValidatorGroup[] = await concurrentMap(10, events, (e: EventLog) => { - return this.getValidatorGroup( - e.returnValues.group, - false, - useBlockNumber ? blockNumber : undefined - ) - }) - return events.map( - (e: EventLog, index: number): ValidatorReward => ({ - epochNumber, - validator: validator[index], - validatorPayment: valueToBigNumber(e.returnValues.validatorPayment), - group: validatorGroup[index], - groupPayment: valueToBigNumber(e.returnValues.groupPayment), - }) - ) - } - - /** - * Returns the current set of validator signer addresses - */ - async currentSignerSet(): Promise { - const n = valueToInt(await this.contract.methods.numberValidatorsInCurrentSet().call()) - return concurrentMap(5, zeroRange(n), (idx) => - this.contract.methods.validatorSignerAddressFromCurrentSet(idx).call() - ) - } - - /** - * Returns the current set of validator signer and account addresses - */ - async currentValidatorAccountsSet() { - const signerAddresses = await this.currentSignerSet() - const accountAddresses = await concurrentMap(5, signerAddresses, (signer) => - this.validatorSignerToAccount(signer) - ) - return zip((signer, account) => ({ signer, account }), signerAddresses, accountAddresses) - } - - /** - * Returns the group membership for validator account. - * @param account Address of validator account to retrieve group membership for. - * @param blockNumber Block number to retrieve group membership at. - * @return Group and membership history index for `validator`. - */ - async getValidatorMembershipHistoryIndex( - account: Address, - blockNumber?: number - ): Promise<{ group: Address; historyIndex: number }> { - const blockEpoch = await this.getEpochNumberOfBlock( - blockNumber || (await this.connection.getBlockNumber()) - ) - const membershipHistory = await this.getValidatorMembershipHistory(account) - const historyIndex = this.findValidatorMembershipHistoryIndex(blockEpoch, membershipHistory) - const group = membershipHistory[historyIndex].group - return { group, historyIndex } - } - - /** - * Returns the index into `history` for `epoch`. - * @param epoch The needle. - * @param history The haystack. - * @return Index for epoch or -1. - */ - findValidatorMembershipHistoryIndex(epoch: number, history: GroupMembership[]): number { - const revIndex = history - .slice() - .reverse() - .findIndex((x) => x.epoch <= epoch) - return revIndex < 0 ? -1 : history.length - revIndex - 1 - } -} - -export type ValidatorsWrapperType = ValidatorsWrapper diff --git a/packages/sdk/contractkit/tsconfig.json b/packages/sdk/contractkit/tsconfig.json deleted file mode 100644 index 984b87c7e44..00000000000 --- a/packages/sdk/contractkit/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "moduleResolution": "node16", - "rootDir": "src", - "outDir": "lib", - "resolveJsonModule": true - }, - "include": ["src/**/*", "types/**/*"], - "references": [{ "path": "../utils" }], - "exclude": ["**/*.test.ts"] -} diff --git a/packages/sdk/contractkit/tslint.json b/packages/sdk/contractkit/tslint.json deleted file mode 100644 index 036f000683b..00000000000 --- a/packages/sdk/contractkit/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "no-console": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/contractkit/typedoc.json b/packages/sdk/contractkit/typedoc.json deleted file mode 100644 index d47b699bff6..00000000000 --- a/packages/sdk/contractkit/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/contractkit", - "gitRevision": "master", - "readme": "README.md" -} \ No newline at end of file diff --git a/packages/sdk/cryptographic-utils/.gitignore b/packages/sdk/cryptographic-utils/.gitignore deleted file mode 100644 index 592a8d4a357..00000000000 --- a/packages/sdk/cryptographic-utils/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.js -!jest.config.js -lib \ No newline at end of file diff --git a/packages/sdk/cryptographic-utils/.npmignore b/packages/sdk/cryptographic-utils/.npmignore deleted file mode 100644 index 6bc36640606..00000000000 --- a/packages/sdk/cryptographic-utils/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -/node_modules -/coverage -/tslint.json -/tsconfig.json -/test -/src - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/cryptographic-utils/CHANGELOG.md b/packages/sdk/cryptographic-utils/CHANGELOG.md deleted file mode 100644 index a8fe13b01d1..00000000000 --- a/packages/sdk/cryptographic-utils/CHANGELOG.md +++ /dev/null @@ -1,35 +0,0 @@ -# @celo/cryptographic-utils - -## 5.0.6 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0 - - @celo/utils@5.0.6 - -## 5.0.6-beta.0 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - - @celo/utils@5.0.6-beta.0 - -## 5.0.5 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.0.5-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/cryptographic-utils/README.md b/packages/sdk/cryptographic-utils/README.md deleted file mode 100644 index 4919adfa283..00000000000 --- a/packages/sdk/cryptographic-utils/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# @celo/cryptographic-utils - -Here you can find cryptographic functions for - -* Celo mnemonics -* BLS -* encrypting/decrypting messages sent in transfers like Valora does diff --git a/packages/sdk/cryptographic-utils/jest.config.js b/packages/sdk/cryptographic-utils/jest.config.js deleted file mode 100644 index 8d5ec6e8ff7..00000000000 --- a/packages/sdk/cryptographic-utils/jest.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts'], -} diff --git a/packages/sdk/cryptographic-utils/package.json b/packages/sdk/cryptographic-utils/package.json deleted file mode 100644 index 3b235d7cd4b..00000000000 --- a/packages/sdk/cryptographic-utils/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "@celo/cryptographic-utils", - "version": "5.0.6", - "description": "Some Celo utils for comment/data encryption, bls, and mnemonics", - "author": "Celo", - "license": "Apache-2.0", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "sideEffects": false, - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/cryptographic-utils", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/cryptographic-utils", - "scripts": { - "prepublishOnly": "yarn build", - "build": "tsc -b .", - "docs": "typedoc", - "clean": "tsc -b . --clean", - "test": "jest --runInBand --ci", - "test:verbose": "jest --verbose", - "lint": "tslint -c tslint.json --project ." - }, - "files": [ - "lib/**/*" - ], - "dependencies": { - "@celo/utils": "^5.0.6", - "@celo/bls12377js": "0.1.1", - "@celo/base": "^6.0.0", - "@ethereumjs/util": "8.0.5", - "@types/bn.js": "^5.1.0", - "@types/elliptic": "^6.4.9", - "@types/node": "^18.7.16", - "@types/randombytes": "^2.0.0", - "bigi": "^1.4.2", - "bip32": "^3.1.0", - "bip39": "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2", - "buffer-reverse": "^1.0.1", - "elliptic": "^6.5.4", - "ethereum-cryptography": "1.2.0", - "randombytes": "^2.0.1", - "tiny-secp256k1": "2.2.1" - }, - "devDependencies": { - "@celo/typescript": "0.0.1" - } -} diff --git a/packages/sdk/cryptographic-utils/src/account.test.ts b/packages/sdk/cryptographic-utils/src/account.test.ts deleted file mode 100644 index bf4aefb723b..00000000000 --- a/packages/sdk/cryptographic-utils/src/account.test.ts +++ /dev/null @@ -1,390 +0,0 @@ -import { MnemonicLanguages } from '@celo/base/lib/account' -import * as bip39 from 'bip39' -import { - generateKeys, - generateMnemonic, - getAllLanguages, - invalidMnemonicWords, - MnemonicStrength, - normalizeMnemonic, - suggestMnemonicCorrections, - validateMnemonic, -} from './account' - -describe('AccountUtils', () => { - describe('.generateMnemonic()', () => { - it('should generate 24 word mnemonic', async () => { - const mnemonic: string = await generateMnemonic() - expect(mnemonic.split(/\s+/g).length).toEqual(24) - }) - - it('should generate 12 word mnemonic', async () => { - const mnemonic: string = await generateMnemonic(MnemonicStrength.s128_12words) - expect(mnemonic.split(/\s+/g).length).toEqual(12) - }) - - for (const language of getAllLanguages()) { - const languageName = MnemonicLanguages[language] - - it(`should generate a valid mnemonic in ${languageName}}`, async () => { - const mnemonic = await generateMnemonic(undefined, language) - expect(mnemonic.split(/\s+/g).length).toEqual(24) - // This validates against all languages - expect(validateMnemonic(mnemonic)).toBeTruthy() - // This validates using a specific wordlist - expect(bip39.validateMnemonic(mnemonic, bip39.wordlists[languageName])).toBeTruthy() - }) - } - }) - - describe('.validateMnemonic()', () => { - const testMnemonics = { - [MnemonicLanguages.chinese_simplified]: - '唐 即 驶 橡 钙 六 码 卸 擦 批 培 拒 磨 励 累 栏 砍 霞 弃 卫 中 空 罩 尘', - [MnemonicLanguages.chinese_traditional]: - '微 款 輩 除 雕 將 鑽 蕭 奇 波 掃 齒 弱 誣 氫 兩 證 漸 堡 亦 攝 了 坯 材', - [MnemonicLanguages.english]: - 'grid dove lift rib rose grit comfort delay moon crumble sell adapt rule food pull loan puppy okay palace predict grass hint repair napkin', - [MnemonicLanguages.french]: - 'texte succès lexique frégate sévir oiseau lanceur souvenir mythique onirique pélican opérer foulure enfouir maintien vexer relief aérer citerne ligoter arbitre gomme sénateur dénouer', - [MnemonicLanguages.italian]: - 'leone sinistro nicchia mole tromba celebre parcella pillola golf voga ostacolo relazione peso unificato tristezza brezza merenda trasloco pinolo persuaso querela pomice onere premere', - [MnemonicLanguages.japanese]: - 'へきが けねん したうけ せんさい けいさつ めんきょ せりふ ひびく せあぶら たいむ そこう うさぎ つながる はんろん むいか せはば すべる りりく はいれつ たいる りかい さたん はっかく ひしょ', - [MnemonicLanguages.korean]: - '보장 검사 장기간 문득 먼저 현지 쇼핑 재정 예금 녹화 연세 도덕 정말 불빛 사생활 재능 활동 불빛 경험 소형 고등학생 철저히 공원 증세', - [MnemonicLanguages.spanish]: - 'cordón soplar santo teoría arpa ducha secreto margen brisa anciano maldad colgar atún catre votar órgano bebida ecuador rabia maduro tubo faja avaro vivero', - [MnemonicLanguages.portuguese]: - 'cheiro lealdade duplo oposto vereador acessar lanche regra prefeito apego ratazana piedade alarme marmita subsolo brochura honrado viajar magnata canoa sarjeta terno cimento prezar', - } - - for (const language of getAllLanguages()) { - const languageName = MnemonicLanguages[language] - - it(`should validate a mnemonic in ${languageName}`, () => { - const mnemonic = testMnemonics[language] - expect(mnemonic).toBeDefined() - - // This validates against all languages - expect(validateMnemonic(mnemonic)).toBeTruthy() - // This validates using a specific wordlist - expect(bip39.validateMnemonic(mnemonic, bip39.wordlists[languageName])).toBeTruthy() - }) - } - }) - - describe('.generateKeys()', () => { - it('should generate an expected private key for a mnemonic', async () => { - // 3 random mnemonic - const mnemonics = [ - 'language quiz proud sample canoe trend topic upper coil rack choice engage noodle panda mutual grab shallow thrive forget trophy pull pool mask height', - 'law canoe elegant tuna core tired flag scissors shy expand drum often output result exotic busy smooth dumb world obtain nominee easily conduct increase', - 'second inside foot legend direct bridge human diesel exotic regular silent trigger multiply prosper involve bulb swarm oppose police forest tooth ankle hungry diesel', - ] - const expectedPrivateKeys = [ - { - derivation0: { - address: '0xe13E391f19193DB38AeA975a30193E50fBff381f', - privateKey: '9b20170cd294190efb2eb1d406a51e6705461cb540e777784565c1d8342016d7', - publicKey: '0257780786b4ba7bf47b3be6082f65069f552012735a17c2080648de67cfb440c1', - }, - derivation1: { - address: '0x9a85EBC698647895a1e12544E9B1751Aed57f9F4', - privateKey: '29c025cda952cb59d8504cca390bcdbc2cc3706ca5bfb65a5b6f5dd5dc5176dd', - publicKey: '029c90f394bea3d46c46896b0bd1b36119b031a6da498b49a32aad77f10ce1f672', - }, - password: { - address: '0x1546D345F7A5Cf533290fd54833de1Ce0552A2d7', - privateKey: '92956ef74d530224029380385ca556240be042b7e5592ffece5945286f1562c3', - publicKey: '0331003f16d42ea996da1bc91188ff170ea451570a9bed4779682dd27da1892303', - }, - }, - { - derivation0: { - address: '0xCA388713E3741d9Bf938D6370a94F80766A22530', - privateKey: 'eb0fea0b0aab13e4115939e2af62a5f136cdeefa1f0480c5550b93550339857d', - publicKey: '0279548f9e2b8fbbeb91865068257de240fa307d479c94926a32e33f8707c70497', - }, - derivation1: { - address: '0x5bA0350E8a681b0fe3D939633B5514A9A6152f81', - privateKey: 'cd2aa97d2bf6ddac4f00513eb08de8d40dcff4106508d18ea995ffbff8166420', - publicKey: '03e4784248f6c4b3bacf8090f67d002e58f4da448bb9b993432fe226abdcd5c83f', - }, - password: { - address: '0x9A78acd4C77c796C3d657f17F3D05cd46eFCC5bE', - privateKey: '62c928058f72e5a04abcf5e46035d5f0933f996285ec25b3bc9d2b9fc907dc56', - publicKey: '0240d5adc5c0ce46f3488401e3ea78a261de1cd8a8e6a1d9e55386c6c4881b70ec', - }, - }, - { - derivation0: { - address: '0x64265716715822ff47025B0c06478C0FADaf9c6E', - privateKey: 'bfc514b7a895cade755f65196b4807a0635381ee16195b33e22b919ecaedf553', - publicKey: '034ca1fb554b952b6794da020c8d101527a2a91884dbab671211ce77b2ec3f1a3e', - }, - derivation1: { - address: '0xff1ef005f5A11426343D3492d73e94bad169d900', - privateKey: '074e6edfc31f8ccfd93427d204da5ada15124a25fde119b7f65b54ff283b6207', - publicKey: '03606b5f63932b2a896c3fb3aa7f60f0f5aa9cd7ce8310199cae2c06514159f799', - }, - password: { - address: '0xb73C6AaDb67238323d811469A95E8e2B92cC0B4A', - privateKey: '743594169177ae8ab3dd08a6e22842a2ac43dbe886a73eebc33cd21e73175661', - publicKey: '03aa657da15ceb192b73a3aa3a36512a765d9c9751763dd7801585fba8d10f7467', - }, - }, - ] - expect(mnemonics.length).toEqual(expectedPrivateKeys.length) - for (let i = 0; i < mnemonics.length; ++i) { - expect(validateMnemonic(mnemonics[i])).toBe(true) - const derivation0 = await generateKeys(mnemonics[i]) - const derivation1 = await generateKeys(mnemonics[i], undefined, 0, 1) - const password = await generateKeys(mnemonics[i], 'password') - expect({ derivation0, derivation1, password }).toEqual(expectedPrivateKeys[i]) - } - }) - }) - - describe('.normalizeMnemonic()', () => { - it('should normalize phrases with and without accents', () => { - const spanishMnemonics = [ - 'yerno obvio niñez pierna bebé pomelo retorno flujo sacar odio oxígeno rabo', // Correctly accented. - 'yerno obvio niñez pierna bebé pomelo retorno flujo sacar odio oxigeno rabo', // Missing 1 accent. - 'yerno obvio niñez pierna bebe pomelo retorno flujo sacar odio oxígeno rabo', // Missing 1 accent. - 'yerno obvio ninez pierna bebe pomelo retorno flujo sacar odio oxígeno rabo', // Missing 2 accents. - 'yerno obvio ninez pierna bebe pomelo retorno flujo sacar odio oxigeno rabo', // Missing all 3 accents. - 'yérno obvio ninez pierña bebe pomelo retorno flujo sacar odio oxigéno rabo', // Incorrect accents. - ] - const expectedMnemonic = spanishMnemonics[0] - - for (const mnemonic of spanishMnemonics) { - expect(normalizeMnemonic(mnemonic)).toEqual(expectedMnemonic) - } - }) - - it('should not normalize accents when the word is from a different language', () => { - // Cases include French mnemonic, missing one accent, and a single Spanish word mixed in, without proper accent. - const cases = [ - { - mnemonic: - 'declarer effrayer estime carbone bebe danger déphaser junior buisson ériger morceau cintrer', - language: undefined, - expected: - 'déclarer effrayer estime carbone bebe danger déphaser junior buisson ériger morceau cintrer', - }, - { - mnemonic: - 'declarer effrayer estime carbone bebe danger déphaser junior buisson ériger morceau cintrer', - language: MnemonicLanguages.french, - expected: - 'déclarer effrayer estime carbone bebe danger déphaser junior buisson ériger morceau cintrer', - }, - // Expect that it will not try to normalize accents for words not in the given language. - { - mnemonic: - 'declarer effrayer estime carbone bebe danger déphaser junior buisson ériger morceau cintrer', - language: MnemonicLanguages.spanish, - expected: - 'declarer effrayer estime carbone bebé danger déphaser junior buisson ériger morceau cintrer', - }, - ] - - for (const { mnemonic, language, expected } of cases) { - expect(normalizeMnemonic(mnemonic, language)).toEqual(expected) - } - }) - - it('should normalize capitalized words to lowercase', () => { - const mnemonic = - 'female cousin RAPID exotic ribbon level equiP LeGal fuN RIVER hotel duTy TRIP youth rebel' - const expected = - 'female cousin rapid exotic ribbon level equip legal fun river hotel duty trip youth rebel' - expect(normalizeMnemonic(mnemonic)).toEqual(expected) - }) - - it('should normalize extra and non-standard whitespace', () => { - const mnemonic = - ' \tfemale cousin rapid exotic\nribbon level\u3000equip legal fun river hotel duty trip youth rebel' - const expected = - 'female cousin rapid exotic ribbon level equip legal fun river hotel duty trip youth rebel' - expect(normalizeMnemonic(mnemonic)).toEqual(expected) - }) - - it('should normalize extra and non-standard whitespace', () => { - const mnemonic = - ' \tfemale cousin rapid exotic\nribbon level\u3000equip legal fun river hotel duty trip youth rebel' - const expected = - 'female cousin rapid exotic ribbon level equip legal fun river hotel duty trip youth rebel' - expect(normalizeMnemonic(mnemonic)).toEqual(expected) - }) - - it('should normalize whitespace of Japanese mnemonics using ideographic spaces', () => { - const mnemonic = - ' せけん まなぶ せんえい ねっしん はくしゅ うなずく いがく ひこく\nにちようび いがく なふだ ばかり どんぶり\tせきらんうん きかく ' - const expected = - 'せけん まなぶ せんえい ねっしん はくしゅ うなずく いがく ひこく にちようび いがく なふだ ばかり どんぶり せきらんうん きかく' - expect(normalizeMnemonic(mnemonic)).toEqual(expected) - }) - - for (const language of getAllLanguages()) { - it(`should pass through newly generated mnemonics in ${MnemonicLanguages[language]}`, async () => { - const mnemonic = await generateMnemonic(MnemonicStrength.s256_24words, language) - expect(normalizeMnemonic(mnemonic)).toEqual(mnemonic) - }) - } - }) - - describe('.invalidMnemonicWords()', () => { - it('should return list of invalid words in a phrase with errors', () => { - const mnemonic = - 'salute roayl possible rare dufbuty wabnt ynfikd oik cabbage labor approbe winner claw conduct spider velvet buyer level second adult payment blish inject draw' - const invalidWords = ['roayl', 'dufbuty', 'wabnt', 'ynfikd', 'oik', 'approbe', 'blish'] - expect(invalidMnemonicWords(mnemonic)).toEqual(invalidWords) - }) - - it('should return an empty list when given a correct phrase', () => { - const mnemonic = - 'salute royal possible rare dignity want unfold oil cabbage labor approve winner claw conduct spider velvet buyer level second adult payment blush inject draw' - expect(invalidMnemonicWords(mnemonic)).toEqual([]) - }) - - it('should return undefined when the language is undetermined', () => { - // A specially crafted phrase with equal numbers of english and spanish words, one of each being invalid. - const mnemonic = - 'oil sponsor unlock diet aprove trim usual ethics tip prepare twist hunt neto sanidad tregua cuneta cazar tirón trueno enredo tauro pan torpedo húmedo' - expect(invalidMnemonicWords(mnemonic)).not.toBeDefined() - }) - }) - - describe('.suggestMnemonicCorrections()', () => { - it('should correct a single simple typo on the first suggestion', () => { - const cases = [ - { - mnemonic: 'crush hollow differ mean easy ostrihc almost cherry route hurt inner bless', - corrected: 'crush hollow differ mean easy ostrich almost cherry route hurt inner bless', - }, - { - mnemonic: 'monster note endless discover tilt glide girl wing spstial imitate mad ridge', - corrected: 'monster note endless discover tilt glide girl wing spatial imitate mad ridge', - }, - { - mnemonic: 'mimo musgo efecto danza tariot gente gavilán visor sala imán madre potencia', - corrected: 'mimo musgo efecto danza tarot gente gavilán visor sala imán madre potencia', - }, - { - mnemonic: - 'linéaire marron dosage déborder spiral farine faibvlir virtuose risible géomètre ivresse pinceau', - corrected: - 'linéaire marron dosage déborder spiral farine faiblir virtuose risible géomètre ivresse pinceau', - }, - { - mnemonic: - 'leme malandro depurar coperoi sovado extrato explanar vilarejo resolver garrafa inverno pergunta', - corrected: - 'leme malandro depurar copeiro sovado extrato explanar vilarejo resolver garrafa inverno pergunta', - }, - ] - - for (const { mnemonic, corrected } of cases) { - expect(suggestMnemonicCorrections(mnemonic).next().value).toEqual(corrected) - } - }) - - it('should quickly offer the corect suggestion for a phrase with a few typos', () => { - // First 5 phrases were quickly copied on a keyboard to produce typos. - const cases = [ - { - mnemonic: - 'whear poitdoor cup shoulder diret broccoli fragile donate legend slogan crew between secrety recall asset', - corrected: - 'wheat outdoor cup shoulder dirt broccoli fragile donate legend slogan crew between secret recall asset', - }, - { - mnemonic: - 'inner lottery artist cintage climb corn theroty cronze tot segement squirrel south ordinatu assume congress', - corrected: - 'inner lottery artist vintage climb corn theory bronze toy segment squirrel south ordinary assume congress', - }, - { - mnemonic: - 'note evidence bubble dog style master region prosper input amazing moviuew adain awrite drisagree glasre', - corrected: - 'note evidence bubble dog style master region prosper input amazing movie again write disagree glare', - }, - { - // Note: "rent" (typo) and "tent" are both in the BIP-39 English word list. - mnemonic: - 'cruise arom apology bracket demimnar another vorrow csninn finish walnut rural rent pledge fasgion alarm', - corrected: - 'cruise atom apology bracket seminar another borrow cabin finish walnut rural tent pledge fashion alarm', - }, - { - mnemonic: - 'wisgh animal bracket stand enroll purchase wave quantuim film polar rare fury time great time', - corrected: - 'wish animal bracket stand enroll purchase wave quantum film polar rare fury time great time', - }, - { - mnemonic: - 'debat connect bid lend opkay decreaser library balcony claw become squeeze usage reseccue jazzz segment dinosaur cushion sing markvle iundo depth bag object trash', - corrected: - 'debate connect bid lend okay decrease library balcony claw become squeeze usage rescue jazz segment dinosaur cushion sing marble undo depth bag object trash', - }, - { - mnemonic: - 'salute roayl possible rare dufbuty wabnt ynfikd oik cabbage labor approbe winner claw conduct spider velvet buyer level second adult payment blish inject draw', - corrected: - 'salute royal possible rare dignity want unfold oil cabbage labor approve winner claw conduct spider velvet buyer level second adult payment blush inject draw', - }, - { - mnemonic: - 'frame mmarkety oak dissmiss bried theme avocade wgaon rabbit latin angry kind pitch wild trune chornic lamp cault into prioisty gues review parent add', - corrected: - 'frame market oak dismiss brief theme avocado wagon rabbit latin angry kind pitch wild tube chronic lamp vault into priority guess review parent add', - }, - ] - - for (const { mnemonic, corrected } of cases) { - let attempts = 0 - for (const suggestion of suggestMnemonicCorrections(mnemonic)) { - attempts++ - if (suggestion === corrected) { - // Enable the following log statement to see how many attempts each phrase takes. - // console.log(`Phrase '${mnemonic}' corrected in ${attempts} attempt(s)`) - break - } - if (attempts >= 25) { - throw new Error(`Phrase '${mnemonic}' was not corrected within 100 attempts`) - } - } - } - }) - - it('should never return an invalid mnemonic', () => { - const mnemonic = - 'frame mmarkety oak dissmiss bried theme avocade wgaon rabbit latin angry kind pitch wild trune' - let trials = 0 - for (const suggestion of suggestMnemonicCorrections(mnemonic)) { - trials++ - expect(validateMnemonic(suggestion)).toBe(true) - if (trials >= 100) { - break - } - } - }) - - it('should never return the same suggestion twice', () => { - const mnemonic = - 'frame mmarkety oak dissmiss bried theme avocade wgaon rabbit latin angry kind pitch wild trune' - const seen = new Set() - for (const suggestion of suggestMnemonicCorrections(mnemonic)) { - expect(seen.has(suggestion)).toBe(false) - seen.add(suggestion) - if (seen.size >= 100) { - break - } - } - }) - }) -}) diff --git a/packages/sdk/cryptographic-utils/src/account.ts b/packages/sdk/cryptographic-utils/src/account.ts deleted file mode 100644 index eae2973f3f4..00000000000 --- a/packages/sdk/cryptographic-utils/src/account.ts +++ /dev/null @@ -1,475 +0,0 @@ -import { - Bip39, - CELO_DERIVATION_PATH_BASE, - MnemonicLanguages, - MnemonicStrength, - RandomNumberGenerator, -} from '@celo/base/lib/account' -import { normalizeAccents } from '@celo/base/lib/string' -import { privateKeyToAddress } from '@celo/utils/lib/address' -import { levenshteinDistance } from '@celo/utils/lib/levenshtein' -import BIP32Factory from 'bip32' -import * as bip39 from 'bip39' -import { keccak256 } from 'ethereum-cryptography/keccak' -import { utf8ToBytes } from 'ethereum-cryptography/utils' -import randomBytes from 'randombytes' -import * as ecc from 'tiny-secp256k1' -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { - Bip39, - CELO_DERIVATION_PATH_BASE, - MnemonicLanguages, - MnemonicStrength, - RandomNumberGenerator, -} from '@celo/base/lib/account' -const bip32 = BIP32Factory(ecc) - -function defaultGenerateMnemonic( - strength?: number, - rng?: RandomNumberGenerator, - wordlist?: string[] -): Promise { - return new Promise((resolve, reject) => { - strength = strength || 128 - rng = rng || randomBytes - - rng(strength / 8, (error, randomBytesBuffer) => { - if (error) { - reject(error) - } else { - resolve(bip39.entropyToMnemonic(randomBytesBuffer.toString('hex'), wordlist)) - } - }) - }) -} - -const bip39Wrapper: Bip39 = { - mnemonicToSeedSync: bip39.mnemonicToSeedSync, - mnemonicToSeed: bip39.mnemonicToSeed, - generateMnemonic: defaultGenerateMnemonic, - validateMnemonic: bip39.validateMnemonic, -} - -export async function generateMnemonic( - strength: MnemonicStrength = MnemonicStrength.s256_24words, - language?: MnemonicLanguages, - bip39ToUse: Bip39 = bip39Wrapper -): Promise { - return bip39ToUse.generateMnemonic(strength, undefined, getWordList(language)) -} - -export function validateMnemonic( - mnemonic: string, - bip39ToUse: Bip39 = bip39Wrapper, - language?: MnemonicLanguages -) { - if (language !== undefined) { - return bip39ToUse.validateMnemonic(mnemonic, getWordList(language)) - } - - const languages = getAllLanguages() - for (const guessedLanguage of languages) { - if (bip39ToUse.validateMnemonic(mnemonic, getWordList(guessedLanguage))) { - return true - } - } - - return false -} - -/** - * Return a list of the words in the mnemonic that are not in the list of valid BIP-39 words for the - * specified or detected language. - * - * @remarks Will return undefined if the language cannot be detected (e.g. all the words are - * invalid, or half of the valid words are from one language and the other half from another.) - */ -export function invalidMnemonicWords( - mnemonic: string, - language?: MnemonicLanguages -): string[] | undefined { - const words = splitMnemonic(mnemonic) - const detectedLanguage = language ?? detectMnemonicLanguage(words) - if (detectedLanguage === undefined) { - return undefined - } - - const wordSet = new Set(getWordList(detectedLanguage)) - return words.filter((word) => !wordSet.has(word)) -} - -/** - * Normalize the mnemonic phrase to eliminate a number of inconsistencies with standard BIP-39 - * phrases that are likely to arise when a user manually enters a phrase. - * - * @remarks Note that this does not guarantee that the output is a valid mnemonic phrase, or even - * that all the words in the phrase are contained in a valid wordlist. - */ -export function normalizeMnemonic(mnemonic: string, language?: MnemonicLanguages): string { - const words = splitMnemonic(mnemonic) - const lowered = words.map((word) => word.toLowerCase()) - const detectedLanguage = language ?? detectMnemonicLanguage(lowered) - - // If the language is unknown, do not run further normalizations. - if (detectedLanguage === undefined) { - return joinMnemonic(lowered, detectedLanguage) - } - - return joinMnemonic(formatNonAccentedWords(lowered, detectedLanguage), detectedLanguage) -} - -/** - * Scans the provided phrase and adds accents to words where the are not provided, or provided - * inconsistently with the BIP-39 standard. Ensures that phrases differing only by accents will - * validate after being cast into the normalized form. - * - * @remarks Words should be converted to lower case before being given to this function. - */ -function formatNonAccentedWords(words: string[], language: MnemonicLanguages): string[] { - if (isLatinBasedLanguage(language)) { - const wordList = getWordList(language) - const normalizedWordMap = new Map(wordList.map((word) => [normalizeAccents(word), word])) - return words.map((word) => normalizedWordMap.get(normalizeAccents(word)) ?? word) - } - - return words -} - -function isLatinBasedLanguage(language: MnemonicLanguages): boolean { - // Use exhaustive switch to ensure that every language is accounted for. - switch (language) { - case MnemonicLanguages.english: - case MnemonicLanguages.french: - case MnemonicLanguages.italian: - case MnemonicLanguages.spanish: - case MnemonicLanguages.portuguese: - return true - case MnemonicLanguages.chinese_simplified: - case MnemonicLanguages.chinese_traditional: - case MnemonicLanguages.japanese: - case MnemonicLanguages.korean: - return false - } -} - -/** - * @deprecated now an alias for normalizeMnemonic. - */ -export function formatNonAccentedCharacters(mnemonic: string) { - return normalizeMnemonic(mnemonic) -} - -// Unify the bip39.wordlists (otherwise depends on the instance of the bip39) -function getWordList(language?: MnemonicLanguages): string[] { - // Use exhaustive switch to ensure that every language is accounted for. - switch (language ?? MnemonicLanguages.english) { - case MnemonicLanguages.chinese_simplified: - return bip39.wordlists.chinese_simplified - case MnemonicLanguages.chinese_traditional: - return bip39.wordlists.chinese_traditional - case MnemonicLanguages.english: - return bip39.wordlists.english - case MnemonicLanguages.french: - return bip39.wordlists.french - case MnemonicLanguages.italian: - return bip39.wordlists.italian - case MnemonicLanguages.japanese: - return bip39.wordlists.japanese - case MnemonicLanguages.korean: - return bip39.wordlists.korean - case MnemonicLanguages.spanish: - return bip39.wordlists.spanish - case MnemonicLanguages.portuguese: - return bip39.wordlists.portuguese - } -} - -export function getAllLanguages(): MnemonicLanguages[] { - return [ - MnemonicLanguages.chinese_simplified, - MnemonicLanguages.chinese_traditional, - MnemonicLanguages.english, - MnemonicLanguages.french, - MnemonicLanguages.italian, - MnemonicLanguages.japanese, - MnemonicLanguages.korean, - MnemonicLanguages.spanish, - MnemonicLanguages.portuguese, - ] -} - -export function mnemonicLengthFromStrength(strength: MnemonicStrength): number { - switch (strength) { - case MnemonicStrength.s128_12words: - return 12 - case MnemonicStrength.s256_24words: - return 24 - } -} - -/** - * Splits a mnemonic phrase into words, handling extra whitespace anywhere in the phrase. - */ -function splitMnemonic(mnemonic: string): string[] { - return [...mnemonic.trim().split(/\s+/)] -} - -/** - * Joins a list of words into a mnemonic phrase. Inverse of splitMnemonic. - */ -function joinMnemonic(words: string[], language: MnemonicLanguages | undefined): string { - return words.join(language === MnemonicLanguages.japanese ? '\u3000' : ' ') -} - -/** - * Detects the language of tokenized mnemonic phrase by applying a heuristic. - * - * @remarks Uses a heuristic of returning the language with the most matching words. In practice, we - * expect all words to come from a single language, also some may be misspelled or otherwise - * malformed. It may occasionally occur that a typo results in word from another language (e.g. bag - * -> bagr) but this should occur at most once or twice per phrase. - */ -export function detectMnemonicLanguage( - words: string[], - candidates?: MnemonicLanguages[] -): MnemonicLanguages | undefined { - // Assign a match score to each language by how many words of the phrase are in each language. - const scores: Array<[MnemonicLanguages, number]> = (candidates ?? getAllLanguages()).map( - (candidate) => { - const wordSet = new Set(getWordList(candidate)) - const score = words.reduce((count, word) => (wordSet.has(word) ? count + 1 : count), 0) - return [candidate, score] - } - ) - - // Reduce to the highest scoring candidate(s). Note that it is possible for multiple candidates to - // have the same score, but it likely to occur only for specially constructed phrases. - const [winners, highscore] = scores.reduce( - ([leaders, leadingScore], [candidate, score]) => { - if (score > leadingScore) { - return [[candidate], score] - } else if (score === leadingScore) { - return [[...leaders, candidate], leadingScore] - } - return [leaders, leadingScore] - }, - [[], 0] as [MnemonicLanguages[], number] - ) - - if (winners.length !== 1 || highscore < 1) { - return undefined - } - return winners[0] -} - -/** - * Generates a list of suggested corrections to the mnemonic phrase based on a set of heuristics. - * - * @remarks - * Each yielded suggestion represents an attempt to correct the seed phrase by replacing any invalid - * words with the most likely valid words. Returned suggestions phrases are ordered by probability - * based on a noisy channel model, described in detail in CIP-39. - * - * The generated list of suggestions is exponential in size, and effectively infinite. One should - * not attempt to generate the entire list. - * - * All yielded suggestions will have a valid checksum, but are not guaranteed to correspond to any - * given wallet. If the phrase is being used to recover a wallet with non-zero balance, it is - * suggested that the caller check the balance of the derived wallet address. If the balance is - * non-zero, they can be sure that the phrase is correct. If it is zero, then they should continue - * and try the next suggestion. - * - * It is recommended to normalize the mnemonic phrase before inputting to this function. - * - * @privateRemarks - * TODO(victor): Include a heuristic rule for phrase-level corrections, such as word ordering swaps. - */ -export function* suggestMnemonicCorrections( - mnemonic: string, - language?: MnemonicLanguages, - strength?: MnemonicStrength -): Generator { - const words = splitMnemonic(mnemonic) - - // Function does not currently attempt to correct phrases with an incorrect number of words. - const expectedLength = strength && mnemonicLengthFromStrength(strength) - if ((expectedLength && words.length !== expectedLength) || words.length % 3 !== 0) { - return - } - - // If the language is not provided or detected, no suggestions can be given. - const lang = language ?? detectMnemonicLanguage(words) - if (lang === undefined) { - return - } - - // Iterate over the generator of corrections, and return those that have a valid checksum. - for (const suggestion of suggestUnvalidatedCorrections(words, lang)) { - const phrase = joinMnemonic(suggestion, lang) - if (validateMnemonic(phrase, undefined, lang)) { - yield phrase - } - } -} - -// Suggestions for a particular word in a phrase keyed by distance. Values are unordered suggested -// word lists at the edit distance indicated by the key. -type SuggestionsByDistance = Map - -/// Generates a list of suggested phases based on an edit distance correction heuristic. -function* suggestUnvalidatedCorrections( - words: string[], - language: MnemonicLanguages -): Generator { - // Create a list of suggestions for each word in the phrase. - // Note that for valid words, the input word will be in the suggestions lists at edit distance 0. - // Valid words are not considered separately because it's possible for an error to yield a valid - // word, (e.g. "tent" mistyped as "rent", both of which are valid words) - const spotSuggestions: SuggestionsByDistance[] = words.map((word) => - wordSuggestions(word, language) - ) - - // Combine the given suggestions lists to produce all combinations with weight, defined as the sum - // edit distances for all chosen words, equal to the given weight value. - // The set of suggestions yielded with a given weight is disjoint from the set of suggestions - // yielded with any other given weight. - function* combineSuggestions( - suggestionsLists: SuggestionsByDistance[], - weight: number - ): Generator { - if (suggestionsLists.length < 1 || weight < 0) { - throw Error('programming error: suggestions map must have at least one entry') - } - const suggestions = suggestionsLists[0] - - // Base case: When there is only one entry, "consume" the rest of the weight by yielding all - // words in the suggestions list at edit distance `weight` as singleton lists (i.e. 1 word - // phrases). - if (suggestionsLists.length === 1) { - yield* suggestions.get(weight)?.map((suggestion): string[] => [suggestion]) ?? [] - return - } - - // Recursion case: When more than one entry exists, consume iteratively 0 to weight units and - // combine it with all arrays of the remaining weight, generated from removing one entry. - const remaining = [...suggestionsLists.slice(1)] - for (const distance of [...suggestions.keys()].sort()) { - if (distance > weight) { - break - } - for (const list of combineSuggestions(remaining, weight - distance)) { - for (const suggestion of suggestions.get(distance) ?? []) { - yield [suggestion, ...list] - } - } - } - } - - // Increase the weight counter incrementally. At each weight, all returned suggestions are - // considered equally probably. All suggestions of a higher weight are disjoint from and - // considered less probably than all suggestions of a lower weight. - // Note that the stopping condition is chosen arbitrarily to be weight of 1000. In practice, the - // number of strings with weight less than 1000 is exponentially large and impossible to generate. - // The stopping condition is included to eventually break when handle malformed phrases. - // - // TODO(victor) In the current formulation, only integral weights can be handled, and it is - // inefficeint to loop over weights that cannot be constructed. Ideally this should be corrected - // to allow for non-integral weights. - for (let weight = 0; weight < 1000; weight++) { - for (const suggestedWords of combineSuggestions(spotSuggestions, weight)) { - yield suggestedWords - } - } -} - -// Given a word and lnaguage, returns a map of all words in the BIP-39 word list for the given -// language by edit distance. This is used as word replacement suggestions. -function wordSuggestions(typo: string, language: MnemonicLanguages): SuggestionsByDistance { - return getWordList(language) - .map((word) => ({ distance: levenshteinDistance(typo, word), word })) - .reduce((map, { distance, word }) => { - // Reduction uses mutation, instead of spread, as an optimization. - const list = map.get(distance) - if (list !== undefined) { - list.push(word) - } else { - map.set(distance, [word]) - } - return map - }, new Map()) -} - -export async function generateKeys( - mnemonic: string, - password?: string, - changeIndex: number = 0, - addressIndex: number = 0, - bip39ToUse: Bip39 = bip39Wrapper, - derivationPath: string = CELO_DERIVATION_PATH_BASE -): Promise<{ privateKey: string; publicKey: string; address: string }> { - const seed: Buffer = await generateSeed(mnemonic, password, bip39ToUse) - return generateKeysFromSeed(seed, changeIndex, addressIndex, derivationPath) -} - -// XXX: (@soloseng) no test for this function? -export function generateDeterministicInviteCode( - recipientPhoneHash: string, - recipientPepper: string, - addressIndex: number = 0, - changeIndex: number = 0, - derivationPath: string = CELO_DERIVATION_PATH_BASE -): { privateKey: string; publicKey: string } { - const seed = keccak256(utf8ToBytes(recipientPhoneHash + recipientPepper)) as Buffer - return generateKeysFromSeed(seed, changeIndex, addressIndex, derivationPath) -} - -// keyByteLength truncates the seed. *Avoid its use* -// It was added only because a backwards compatibility bug -export async function generateSeed( - mnemonic: string, - password?: string, - bip39ToUse: Bip39 = bip39Wrapper, - keyByteLength: number = 64 -): Promise { - let seed: Buffer = await bip39ToUse.mnemonicToSeed(mnemonic, password) - if (keyByteLength > 0 && seed.byteLength > keyByteLength) { - const bufAux = Buffer.allocUnsafe(keyByteLength) - seed.copy(bufAux, 0, 0, keyByteLength) - seed = bufAux - } - return seed -} - -export function generateKeysFromSeed( - seed: Buffer, - changeIndex: number = 0, - addressIndex: number = 0, - derivationPath: string = CELO_DERIVATION_PATH_BASE -): { privateKey: string; publicKey: string; address: string } { - const node = bip32.fromSeed(seed) - const newNode = node.derivePath( - `${derivationPath ? `${derivationPath}/` : ''}${changeIndex}/${addressIndex}` - ) - if (!newNode.privateKey) { - // As we are generating the node from a seed, the node will always have a private key and this would never happened - throw new Error('utils-accounts@generateKeys: invalid node to derivate') - } - return { - privateKey: newNode.privateKey.toString('hex'), - publicKey: newNode.publicKey.toString('hex'), - address: privateKeyToAddress(newNode.privateKey.toString('hex')), - } -} - -export const AccountUtils = { - detectMnemonicLanguage, - generateMnemonic, - normalizeMnemonic, - validateMnemonic, - invalidMnemonicWords, - suggestMnemonicCorrections, - generateKeys, - generateSeed, - generateKeysFromSeed, -} diff --git a/packages/sdk/cryptographic-utils/src/bls.ts b/packages/sdk/cryptographic-utils/src/bls.ts deleted file mode 100644 index 06cde2a0ffb..00000000000 --- a/packages/sdk/cryptographic-utils/src/bls.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { BLS } from '@celo/bls12377js' -// this is an implementation of a subset of BLS12-377 -import { isValidAddress } from '@celo/utils/lib/address' -import { keccak256 } from 'ethereum-cryptography/keccak' -const BigInteger = require('bigi') -const reverse = require('buffer-reverse') - -const n = BigInteger.fromHex('12ab655e9a2ca55660b44d1e5c37b00159aa76fed00000010a11800000000001', 16) - -const MODULUSMASK = 31 -export const BLS_PUBLIC_KEY_SIZE = 96 -export const BLS_POP_SIZE = 48 - -export const blsPrivateKeyToProcessedPrivateKey = (privateKeyHex: string) => { - for (let i = 0; i < 256; i++) { - const originalPrivateKeyBytes = Buffer.from(privateKeyHex, 'hex') - - const iBuffer = Buffer.alloc(1) - iBuffer[0] = i - const keyBytes = Buffer.concat([ - Buffer.from('ecdsatobls', 'utf8'), - iBuffer, - originalPrivateKeyBytes, - ]) - const privateKeyBLSBytes = keccak256(keyBytes) - - // tslint:disable-next-line:no-bitwise - privateKeyBLSBytes[0] &= MODULUSMASK - - const privateKeyNum = BigInteger.fromBuffer(privateKeyBLSBytes) - if (privateKeyNum.compareTo(n) >= 0) { - continue - } - - const privateKeyBytes = reverse(privateKeyNum.toBuffer()) - - return privateKeyBytes - } - - throw new Error("couldn't derive BLS key from ECDSA key") -} - -const getBlsPrivateKey = (privateKeyHex: string) => { - const blsPrivateKeyBytes = blsPrivateKeyToProcessedPrivateKey(privateKeyHex.slice(2)) - return blsPrivateKeyBytes -} - -export const getBlsPublicKey = (privateKeyHex: string) => { - const blsPrivateKeyBytes = getBlsPrivateKey(privateKeyHex) - return '0x' + BLS.privateToPublicBytes(blsPrivateKeyBytes).toString('hex') -} - -export const getBlsPoP = (address: string, privateKeyHex: string) => { - if (!isValidAddress(address)) { - throw new Error('Invalid checksum address for generating BLS proof-of-possession') - } - const blsPrivateKeyBytes = getBlsPrivateKey(privateKeyHex) - return ( - '0x' + BLS.signPoP(blsPrivateKeyBytes, Buffer.from(address.slice(2), 'hex')).toString('hex') - ) -} diff --git a/packages/sdk/cryptographic-utils/src/commentEncryption.test.ts b/packages/sdk/cryptographic-utils/src/commentEncryption.test.ts deleted file mode 100644 index c51e64396ca..00000000000 --- a/packages/sdk/cryptographic-utils/src/commentEncryption.test.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { randomBytes } from 'crypto' -import { decryptComment, encryptComment } from './commentEncryption' - -describe('Comment Encryption', () => { - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - const self = ec.keyFromPrivate(randomBytes(32)) - const selfPublic = Buffer.from(self.getPublic('hex'), 'hex') - const selfPriv = Buffer.from(self.getPrivate('hex'), 'hex') - const recip = ec.keyFromPrivate(randomBytes(32)) - const recipPublic = Buffer.from(recip.getPublic('hex'), 'hex') - const recipPriv = Buffer.from(recip.getPrivate('hex'), 'hex') - const comment = 'text' - const emojis = '👮‍♂️👸👱‍♀️👷‍♂️🧟‍♀️🙅‍♀️🙅‍♂️☝️👉💪🌁⛺🏭🌅🚋🦄🐇🐧🐻🐐🐓🐊🐠🐬🦅🐠🦕🐙🏵🌺🌳🍀🌻🐝🍃' - - describe('Encrypt', () => { - it('should encrypt message without error', () => { - const { comment: ciphertext, success } = encryptComment(comment, recipPublic, selfPublic) - expect(ciphertext.length).toBeGreaterThan(226 + 32) - expect(success).toBeTruthy() - }) - }) - describe('roundtrip', () => { - it('should return the same plaintext as sender', () => { - const { comment: encryptedData } = encryptComment(comment, recipPublic, selfPublic) - const { comment: plaintext, success } = decryptComment(encryptedData, selfPriv, true) - expect(plaintext).toEqual(comment) - expect(success).toBeTruthy() - }) - it('should return the same plaintext as recipient', () => { - const { comment: encryptedData } = encryptComment(comment, recipPublic, selfPublic) - const { comment: plaintext, success } = decryptComment(encryptedData, recipPriv, false) - expect(plaintext).toEqual(comment) - expect(success).toBeTruthy() - }) - it('should return the same plaintext as sender with emojis', () => { - const { comment: encryptedData } = encryptComment(emojis, recipPublic, selfPublic) - const { comment: plaintext, success } = decryptComment(encryptedData, selfPriv, true) - expect(plaintext).toEqual(emojis) - expect(success).toBeTruthy() - }) - it('should return the same plaintext as recipient with emojis', () => { - const { comment: encryptedData } = encryptComment(emojis, recipPublic, selfPublic) - const { comment: plaintext, success } = decryptComment(encryptedData, recipPriv, false) - expect(plaintext).toEqual(emojis) - expect(success).toBeTruthy() - }) - }) - describe('decrypt', () => { - it('should return comment if comment is not encrypted', () => { - const { comment: decrypted, success } = decryptComment(comment, selfPriv, true) - expect(decrypted).toEqual(comment) - expect(success).toBeFalsy() - }) - it('should return comment if comment is not encrypted with emojis', () => { - const { comment: decrypted, success } = decryptComment(emojis, selfPriv, true) - expect(decrypted).toEqual(emojis) - expect(success).toBeFalsy() - }) - it('should return comment with incorrect key', () => { - const data = - 'Ai+ACvRi7NFODDerbZzBh4i1ajm3AIUK+vRgDJQ7PRM30HyNB7OlTyZq2ZL4CpvrRk+dVS8YjiZv3lJ3qjRF64X' + - 'MeDbWtfFxbth6TidzdgosF1YiHHBhIo/IfJ8msEybA6rgY3a/S3mk/VjcvMI5T/IDG9Y+fcu3cFg3qQVGsar1sh' + - 'STap9aRwHTbRNHG6RKwKxyCFpH+rZAXhK4dZjoRIjbCNPZorcXgTO3yH2ypyOWojvOObpiJX+OuyAy/TibZcSBJ' + - 'QUCb9vxqGpV6l1ggZwgTDOnV96Q22BnSrqFr4wK63RE0jwUZqzzyAgohzk9FfyaR/0c0lwnVtl6+qIlcMlq8VPE' + - 'jT16hiaUo5lI6k851zlHIaMTe6Zr0drCJZPJRKaCjG6qpLPYCGMJRsmnbhCLIUDDBfaKbeys3dwo+05fktfoUed' + - 'vLXT+rLOvhqJR82nSOVxZSYexe4lAp6/xuFcIiDifWuJ1xiF7gti6TZ1WjXlpIswHrAQiBe5WscFhojsa56WXJ6' + - 'f1gDpxX/8hx9QhIYm2uqgbKt7d/vIFwJvo1nrrqbVRygKPHeT9Yv8GzSpYCTO8xJmlRuP+kjvrX8mXeakN2XDLT' + - 'f698dmzabQ3E2baANHIfyzzyy+onqmy05oRsGo3eFj9Xi0Fu/YME3PENyRPOYMyKT7bXEUy9nms/L9q6iuodjTJ' + - 'kn31jvRQG8s/Znw2+8a3ywkk9o5oBiK7CLitFwhrc68SaGRFwB9SmYqu+8omM+sKYxyD120iD1cUTFkQYNsPEH0' + - 'Pw9/M97SOo3Hn6QWqftiYgIksBKDhH5LMIRJbvMX6hZQjkvhbAquivjlf3Skhixsp6WC45acF+gkFZGG6w380+x' + - 'XZHcFj+EMJEW2VXtTgKe2IYOPKEb/+oYAA0+qcXmmkKRJsaHqRYVs90HCsNco=' - const { comment: decrypted, success } = decryptComment(data, selfPriv, true) - expect(decrypted).toEqual(data) - expect(success).toBeFalsy() - }) - }) - describe('regression test', () => { - const newRecipPriv = Buffer.from( - 'd2a515a64d37407f0e0e4a6a6a69a95eeb5ef8c2524ef01a6ffc6e3b39e0661b', - 'hex' - ) - const senderPriv = Buffer.from( - '81cb7e2e21c10862dbb3c5782fff0fe315edbd51bd9b7ffc7f1dcf4212d70537', - 'hex' - ) - const encrypted = - 'BGacSsVDzOXrVdXBkM2yBC4F1KD94rjfClQGi7r2TPkFu+hLQIRJ73H3z5wgWVgq8vcziPR5ugWPI/6pFduezNVMAJGB9pSLfA00wvb8twy5/uBIzaAQqkfKUJ4/n10N5+F313PDq0BU1LXsPN1Oq+5SWPQc4Z4MWKs+7zkcNz//BNNZkm8lgJ4frVHExBrED62rsth87vwxpsfyxxk36zdvAHN7xfYss3bqgYVA2+E45mRZOaJxnyRHfUYKU5tA5neTertXlzpZO93l4e9SrDTUVbI/dr8QuSc2Pot7C83cCQHjeIl9eB2W5DTfTwlThg/CeWW0afaElTjuEw1XXy9eC3H9nxTXOj44SM2WUB3uDH2K2wmPJsd+RW66CDI6fD2VHMst2CA2B01hX2h+6Ml84Ria53bI6iedOpb1ejsw98a1/z2QKAlh/KfMHmseY/dQMh9kBhIuOQwavf3t4PvyMJ2QbRGwi1cuItkkyg/8eiCa8Zdjn3OozoWSQnfR' - - const newComment = 'regression test on encryption method 👍' - // How comment was encrypted. - // Uses elliptic package (see note above) - // console.info( - // encryptComment( - // comment, - // ec.keyFromPrivate(recipPriv, 'hex').getPublic(), - // ec.keyFromPrivate(senderPriv, 'hex').getPublic() - // ) - // ) - it('should not regress for sender', () => { - const { comment: decrypted, success: didDecrypt } = decryptComment( - encrypted, - senderPriv, - true - ) - expect(decrypted).toEqual(newComment) - expect(didDecrypt).toBeTruthy() - }) - it('should not regress for recipeient', () => { - const { comment: decrypted, success: didDecrypt } = decryptComment( - encrypted, - newRecipPriv, - false - ) - expect(decrypted).toEqual(newComment) - expect(didDecrypt).toBeTruthy() - }) - }) -}) diff --git a/packages/sdk/cryptographic-utils/src/commentEncryption.ts b/packages/sdk/cryptographic-utils/src/commentEncryption.ts deleted file mode 100644 index d6c2ffb9bca..00000000000 --- a/packages/sdk/cryptographic-utils/src/commentEncryption.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { - AES128DecryptAndHMAC, - AES128EncryptAndHMAC, - Decrypt as ECIESDecrypt, - Encrypt as ECIESEncrypt, -} from '@celo/utils/lib/ecies' -import { randomBytes } from 'crypto' -import { decompressPublicKey } from './dataEncryptionKey' - -const ECIES_SESSION_KEY_LEN = 129 -const MIN_COMMENT_KEY_LENGTH = 33 -const TAG = 'CommentEncryption' - -export interface EncryptionStatus { - success: boolean - comment: string -} - -/** - * Encrypts a buffer to two recipients. Throws on error. - * - * @param {Buffer} data Data to encrypt - * @param {Buffer} pubKeyRecipient Public key of the recipient. Uncompressed without leading 0x04. - * @param {Buffer} pubKeySelf Public key of the sender. Uncompressed without leading 0x04. - * @returns {Buffer} Encrypted data to sender and recipient. - */ -export function encryptData(data: Buffer, pubKeyRecipient: Buffer, pubKeySelf: Buffer): Buffer { - const sessionKey: Buffer = randomBytes(16) - const sessionKeyToSelf: Buffer = ECIESEncrypt(pubKeySelf, sessionKey) - const sessionKeyToOther: Buffer = ECIESEncrypt(pubKeyRecipient, sessionKey) - const ciphertext = AES128EncryptAndHMAC(sessionKey, sessionKey, data) - - return Buffer.concat([sessionKeyToOther, sessionKeyToSelf, ciphertext]) -} - -/** - * Decrypts raw data that was encrypted by encryptData. Throws on error. - * - * @param {Buffer} data Data to decrypt. - * @param {Buffer} key Private key to decrypt the message with. - * @param {boolean} sender If the decryptor is the sender of the message. - * @returns {Buffer} Decrypted data. - */ - -export function decryptData(data: Buffer, key: Buffer, sender: boolean): Buffer { - // Deal with presumably enencrypted comments - if (data.length < ECIES_SESSION_KEY_LEN * 2 + 48) { - throw new Error('Buffer length too short') - } - const sessionKeyEncrypted = sender - ? data.slice(ECIES_SESSION_KEY_LEN, ECIES_SESSION_KEY_LEN * 2) - : data.slice(0, ECIES_SESSION_KEY_LEN) - const sessionKey = ECIESDecrypt(key, sessionKeyEncrypted) - - const encryptedMessage = data.slice(ECIES_SESSION_KEY_LEN * 2) - return AES128DecryptAndHMAC(sessionKey, sessionKey, encryptedMessage) -} - -/** - * Encrypts a comment. If it can encrypt, it returns a base64 string with the following: - * ECIES(session key to other) + ECIES(session key to self) + AES(comment) - * If it fails to encrypt, it returns the comment without any changes. - * - * @param {string} comment Comment to encrypt. - * @param {Buffer} pubKeyRecipient Public key of the recipient. May be compressed. - * @param {Buffer} pubKeySelf Public key of the sender. May be compressed. - * @returns {string} base64 string of encrypted comment if can encrypt, otherwise comment. - */ -export function encryptComment( - comment: string, - pubKeyRecipient: Buffer, - pubKeySelf: Buffer -): EncryptionStatus { - try { - if ( - pubKeyRecipient.length < MIN_COMMENT_KEY_LENGTH || - pubKeySelf.length < MIN_COMMENT_KEY_LENGTH - ) { - throw new Error('Comment key too short') - } - // Uncompress public keys & strip out the leading 0x04 - const pubRecip = decompressPublicKey(pubKeyRecipient) - const pubSelf = decompressPublicKey(pubKeySelf) - const data = encryptData(Buffer.from(comment, 'ucs2'), pubRecip, pubSelf).toString('base64') - return { - success: true, - comment: data, - } - } catch (e) { - console.info(`${TAG}/Error encrypting comment: ${e}`) - return { success: false, comment } - } -} - -/** - * Decrypts a comments encrypted by encryptComment. If it cannot decrypt the comment (i.e. comment was - * never encrypted in the first place), it returns the comments without any changes. - * - * @param {string} comment Comment to decrypt. If encrypted, base64 encoded. May be plaintext. - * @param {Buffer} key Private key to decrypt the message with. - * @param {boolean} sender If the decryptor is the sender of the message. - * @returns {string} Decrypted comment if can decrypt, otherwise comment. - */ -export function decryptComment(comment: string, key: Buffer, sender: boolean): EncryptionStatus { - try { - const buf = Buffer.from(comment, 'base64') - const data = decryptData(buf, key, sender).toString('ucs2') - return { success: true, comment: data } - } catch (error: any) { - console.info(`${TAG}/Could not decrypt: ${error.message}`) - return { success: false, comment } - } -} - -export const CommentEncryptionUtils = { - encryptComment, - decryptComment, -} diff --git a/packages/sdk/cryptographic-utils/src/dataEncryptionKey.test.ts b/packages/sdk/cryptographic-utils/src/dataEncryptionKey.test.ts deleted file mode 100644 index 9a850a266d7..00000000000 --- a/packages/sdk/cryptographic-utils/src/dataEncryptionKey.test.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { randomBytes } from 'crypto' -import { decompressPublicKey, deriveDek } from './dataEncryptionKey' - -describe('deriveDek', () => { - it('should produce a the expected keys', async () => { - const mnemonic = - 'language quiz proud sample canoe trend topic upper coil rack choice engage noodle panda mutual grab shallow thrive forget trophy pull pool mask height' - const { publicKey, privateKey } = await deriveDek(mnemonic) - expect(publicKey).toBe('032e4027fc0a763a6651551f66ea50084b436cd7399564f9a05e916d2c37322a60') - expect(privateKey).toBe('d8428ba6a3a55e46d9b53cad26aca4a2be4c288e48a769f81c96a3ef1b391972') - }) -}) - -describe('decompressPublicKey', () => { - it('should work with compressed input', () => { - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - const privateKey = ec.keyFromPrivate(randomBytes(32)) - const publicKeyFull = Buffer.from(privateKey.getPublic(false, 'hex'), 'hex') - const publicKeyCompressed = Buffer.from(privateKey.getPublic(true, 'hex'), 'hex') - const decompressed = decompressPublicKey(publicKeyCompressed) - expect(Buffer.concat([Buffer.from('04', 'hex'), decompressed])).toEqual(publicKeyFull) - expect(decompressed).toHaveLength(64) - }) - it('should work with long form input', () => { - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - const privateKey = ec.keyFromPrivate(randomBytes(32)) - const publicKeyFull = Buffer.from(privateKey.getPublic(false, 'hex'), 'hex') - const decompressed = decompressPublicKey(publicKeyFull) - expect(Buffer.concat([Buffer.from('04', 'hex'), decompressed])).toEqual(publicKeyFull) - expect(decompressed).toHaveLength(64) - }) -}) diff --git a/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts b/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts deleted file mode 100644 index b7d0ad5fc23..00000000000 --- a/packages/sdk/cryptographic-utils/src/dataEncryptionKey.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { ensureLeading0x } from '@celo/utils/lib/address' -import { Bip39, generateKeys } from './account' - -/** - * Turns a private key to a compressed public key (hex string with hex leader). - * - * @param {Buffer} privateKey Private key. - * @returns {string} Corresponding compessed public key in hex encoding with '0x' leader. - */ -export function compressedPubKey(privateKey: Buffer): string { - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - const key = ec.keyFromPrivate(privateKey) - return ensureLeading0x(key.getPublic(true, 'hex')) -} - -/** - * Decompresses a public key and strips out the '0x04' leading constant. This makes - * any public key suitable to be used with this ECIES implementation. - * - * @param publicKey Public key in standard form (with 0x02, 0x03, or 0x04 prefix) - * @returns Decompresssed public key without prefix. - */ -export function decompressPublicKey(publicKey: Buffer): Buffer { - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - return Buffer.from(ec.keyFromPublic(publicKey).getPublic(false, 'hex'), 'hex').slice(1) -} - -/** - * Derives a data encryption key from the mnemonic - * - * @param {string} privateKey Hex encoded private account key. - * @returns {Buffer} Comment Encryption Private key. - */ -export function deriveDek(mnemonic: string, bip39ToUse?: Bip39) { - if (!mnemonic) { - throw new Error('Invalid mnemonic') - } - - return generateKeys( - mnemonic, - undefined, - 1, // The DEK is derived from change index 1, not 0 like the wallet's transaction keys - 0, - bip39ToUse - ) -} - -export const DataEncryptionKeyUtils = { - compressedPubKey, - decompressPublicKey, - deriveDek, -} diff --git a/packages/sdk/cryptographic-utils/src/index.ts b/packages/sdk/cryptographic-utils/src/index.ts deleted file mode 100644 index a3796a6b7e4..00000000000 --- a/packages/sdk/cryptographic-utils/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './account' -export * from './bls' -export * from './commentEncryption' -export * from './dataEncryptionKey' diff --git a/packages/sdk/cryptographic-utils/src/types.d.ts b/packages/sdk/cryptographic-utils/src/types.d.ts deleted file mode 100644 index e54094850fc..00000000000 --- a/packages/sdk/cryptographic-utils/src/types.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module 'bip39' diff --git a/packages/sdk/cryptographic-utils/tsconfig.json b/packages/sdk/cryptographic-utils/tsconfig.json deleted file mode 100644 index 3f2864bc6aa..00000000000 --- a/packages/sdk/cryptographic-utils/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "downlevelIteration": true, - "resolveJsonModule": true - }, - "include": ["src/**/*.ts", "src/**/*.json"], - "exclude": ["**/*.test.ts"] -} diff --git a/packages/sdk/cryptographic-utils/tslint.json b/packages/sdk/cryptographic-utils/tslint.json deleted file mode 100644 index e27d83f1e3d..00000000000 --- a/packages/sdk/cryptographic-utils/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "no-console": false, - "no-floating-promises": true, - "import-blacklist": [true, { "elliptic": ["ec"]}] - } -} diff --git a/packages/sdk/cryptographic-utils/typedoc.json b/packages/sdk/cryptographic-utils/typedoc.json deleted file mode 100644 index de1f422b395..00000000000 --- a/packages/sdk/cryptographic-utils/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/cryptographic-utils", - "gitRevision": "master", - "readme": "README.md" -} diff --git a/packages/sdk/explorer/.gitignore b/packages/sdk/explorer/.gitignore deleted file mode 100644 index 7fabe89f619..00000000000 --- a/packages/sdk/explorer/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -lib/ -tmp/ -.tmp/ -.env \ No newline at end of file diff --git a/packages/sdk/explorer/.npmignore b/packages/sdk/explorer/.npmignore deleted file mode 100644 index 45e506bacd1..00000000000 --- a/packages/sdk/explorer/.npmignore +++ /dev/null @@ -1,17 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils \ No newline at end of file diff --git a/packages/sdk/explorer/CHANGELOG.md b/packages/sdk/explorer/CHANGELOG.md deleted file mode 100644 index 273b8b8acfb..00000000000 --- a/packages/sdk/explorer/CHANGELOG.md +++ /dev/null @@ -1,77 +0,0 @@ -# @celo/explorer - -## 5.0.7-beta.0 - -### Patch Changes - -- Updated dependencies [1c9c844cf] - - @celo/contractkit@6.0.0-beta.0 -## 5.0.7 - -### Patch Changes - -- Updated dependencies [9ab9d00eb] -- Updated dependencies [1c9c844cf] -- Updated dependencies [9ab9d00eb] - - @celo/contractkit@6.0.0 - -## 5.0.6 - -### Patch Changes - -- Updated dependencies -- Updated dependencies [679ef0c60] -- Updated dependencies [32face3d8] -- Updated dependencies [97d5ccf43] -- Updated dependencies [87647b46b] - - @celo/contractkit@5.2.0 - - @celo/connect@5.1.1 - - @celo/base@6.0.0 - - @celo/utils@5.0.6 - -## 5.0.6-beta.0 - -### Patch Changes - -- Updated dependencies -- Updated dependencies [32face3d8] -- Updated dependencies [97d5ccf43] -- Updated dependencies [87647b46b] - - @celo/contractkit@5.2.0-beta.0 - - @celo/base@6.0.0-beta.0 - - @celo/connect@5.1.1-beta.0 - - @celo/utils@5.0.6-beta.0 - -## 5.0.5 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- d48c68afc: Calls to getContractMappingFromSourcify() are now memoized in the same structure (this.addressMapping) as getContractMappingFromCore, getContractMappingWithSelector now runs in parallel -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] - - @celo/contractkit@5.1.0 - - @celo/connect@5.1.0 - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.0.5-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- d48c68afc: Calls to getContractMappingFromSourcify() are now memoized in the same structure (this.addressMapping) as getContractMappingFromCore, getContractMappingWithSelector now runs in parallel -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] - - @celo/contractkit@5.1.0-beta.0 - - @celo/connect@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/explorer/README.md b/packages/sdk/explorer/README.md deleted file mode 100644 index 2ed6784f2b7..00000000000 --- a/packages/sdk/explorer/README.md +++ /dev/null @@ -1,5 +0,0 @@ - - -# @celo/explorer - -Explorer depends on contractkit and connect. It provides some utility functions that make it easy to listen for new block and log information. diff --git a/packages/sdk/explorer/fixtures/contract.metadata.json b/packages/sdk/explorer/fixtures/contract.metadata.json deleted file mode 100644 index e6e522a3234..00000000000 --- a/packages/sdk/explorer/fixtures/contract.metadata.json +++ /dev/null @@ -1,2895 +0,0 @@ -{ - "compiler": { - "version": "0.5.13+commit.5b0b510c" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "bool", - "name": "test", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AccountCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "dataEncryptionKey", - "type": "bytes" - } - ], - "name": "AccountDataEncryptionKeySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "metadataURL", - "type": "string" - } - ], - "name": "AccountMetadataURLSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "name", - "type": "string" - } - ], - "name": "AccountNameSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "name": "AccountWalletAddressSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "AttestationSignerAuthorized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldSigner", - "type": "address" - } - ], - "name": "AttestationSignerRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldSigner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "DefaultSignerRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "DefaultSignerSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldSigner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "IndexedSignerRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "IndexedSignerSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldSigner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "LegacySignerRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "LegacySignerSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "url", - "type": "bytes" - } - ], - "name": "OffchainStorageRootAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "url", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "OffchainStorageRootRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fraction", - "type": "uint256" - } - ], - "name": "PaymentDelegationSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "RegistrySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "SignerAuthorizationCompleted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "SignerAuthorizationStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "SignerAuthorized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldSigner", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "SignerRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "ValidatorSignerAuthorized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldSigner", - "type": "address" - } - ], - "name": "ValidatorSignerRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "VoteSignerAuthorized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "oldSigner", - "type": "address" - } - ], - "name": "VoteSignerRemoved", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "EIP712_AUTHORIZE_SIGNER_TYPEHASH", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes", - "name": "url", - "type": "bytes" - } - ], - "name": "addStorageRoot", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "attestationSignerToAccount", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "authorizeAttestationSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "authorizeSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "authorizeSignerWithSignature", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "authorizeValidatorSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "ecdsaPublicKey", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "blsPublicKey", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "blsPop", - "type": "bytes" - } - ], - "name": "authorizeValidatorSignerWithKeys", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "ecdsaPublicKey", - "type": "bytes" - } - ], - "name": "authorizeValidatorSignerWithPublicKey", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "authorizeVoteSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "authorizedBy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address[]", - "name": "accountsToQuery", - "type": "address[]" - } - ], - "name": "batchGetMetadataURL", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "completeSignerAuthorization", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "createAccount", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "deletePaymentDelegation", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "eip712DomainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getAttestationSigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getDataEncryptionKey", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getDefaultSigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getIndexedSigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getLegacySigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getMetadataURL", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getName", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getOffchainStorageRoots", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getPaymentDelegation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "getRoleAuthorizationSigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getValidatorSigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getVersionNumber", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getVoteSigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getWalletAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasAuthorizedAttestationSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "string", - "name": "role", - "type": "string" - } - ], - "name": "hasAuthorizedSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasAuthorizedValidatorSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasAuthorizedVoteSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "hasDefaultSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "hasIndexedSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "hasLegacySigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "initialized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "isAccount", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "isAuthorizedSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "isDefaultSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "isIndexedSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "isLegacyRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "otherRole", - "type": "bytes32" - } - ], - "name": "isLegacyRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "isLegacySigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "isSigner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "offchainStorageRoots", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "registry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "removeAttestationSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "removeDefaultSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "removeIndexedSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "removeSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "removeStorageRoot", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "removeValidatorSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "removeVoteSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "bytes", - "name": "dataEncryptionKey", - "type": "bytes" - }, - { - "internalType": "address", - "name": "walletAddress", - "type": "address" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "setAccount", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes", - "name": "dataEncryptionKey", - "type": "bytes" - } - ], - "name": "setAccountDataEncryptionKey", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "setEip712DomainSeparator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "setIndexedSigner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "string", - "name": "metadataURL", - "type": "string" - } - ], - "name": "setMetadataURL", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "string", - "name": "name", - "type": "string" - } - ], - "name": "setName", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "uint256", - "name": "fraction", - "type": "uint256" - } - ], - "name": "setPaymentDelegation", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "setRegistry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "walletAddress", - "type": "address" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "setWalletAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "signerToAccount", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "validatorSignerToAccount", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "voteSignerToAccount", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "devdoc": { - "methods": { - "addStorageRoot(bytes)": { - "params": { - "url": "The URL pointing to the offchain storage root." - } - }, - "attestationSignerToAccount(address)": { - "details": "Fails if the `signer` is not an account or currently authorized attestation signer.", - "params": { - "signer": "The address of the account or currently authorized attestation signer." - }, - "return": "The associated account." - }, - "authorizeAttestationSigner(address,uint8,bytes32,bytes32)": { - "details": "v, r, s constitute `signer`'s signature on `msg.sender`.", - "params": { - "r": "Output value r of the ECDSA signature.", - "s": "Output value s of the ECDSA signature.", - "signer": "The address of the signing key to authorize.", - "v": "The recovery id of the incoming ECDSA signature." - } - }, - "authorizeSigner(address,bytes32)": { - "params": { - "role": "The role to authorize signing for.", - "signer": "The address of the signing key to authorize." - } - }, - "authorizeSignerWithSignature(address,bytes32,uint8,bytes32,bytes32)": { - "details": "v, r, s constitute `signer`'s EIP712 signature over `role`, `msg.sender` and `signer`.", - "params": { - "r": "Output value r of the ECDSA signature.", - "role": "The role to authorize signing for.", - "s": "Output value s of the ECDSA signature.", - "signer": "The address of the signing key to authorize.", - "v": "The recovery id of the incoming ECDSA signature." - } - }, - "authorizeValidatorSigner(address,uint8,bytes32,bytes32)": { - "details": "v, r, s constitute `signer`'s signature on `msg.sender`.", - "params": { - "r": "Output value r of the ECDSA signature.", - "s": "Output value s of the ECDSA signature.", - "signer": "The address of the signing key to authorize.", - "v": "The recovery id of the incoming ECDSA signature." - } - }, - "authorizeValidatorSignerWithKeys(address,uint8,bytes32,bytes32,bytes,bytes,bytes)": { - "details": "v, r, s constitute `signer`'s signature on `msg.sender`.", - "params": { - "blsPop": "The BLS public key proof-of-possession, which consists of a signature on the account address. 48 bytes.", - "blsPublicKey": "The BLS public key that the validator is using for consensus, should pass proof of possession. 96 bytes.", - "ecdsaPublicKey": "The ECDSA public key corresponding to `signer`.", - "r": "Output value r of the ECDSA signature.", - "s": "Output value s of the ECDSA signature.", - "signer": "The address of the signing key to authorize.", - "v": "The recovery id of the incoming ECDSA signature." - } - }, - "authorizeValidatorSignerWithPublicKey(address,uint8,bytes32,bytes32,bytes)": { - "details": "v, r, s constitute `signer`'s signature on `msg.sender`.", - "params": { - "ecdsaPublicKey": "The ECDSA public key corresponding to `signer`.", - "r": "Output value r of the ECDSA signature.", - "s": "Output value s of the ECDSA signature.", - "signer": "The address of the signing key to authorize.", - "v": "The recovery id of the incoming ECDSA signature." - } - }, - "authorizeVoteSigner(address,uint8,bytes32,bytes32)": { - "details": "v, r, s constitute `signer`'s signature on `msg.sender`.", - "params": { - "r": "Output value r of the ECDSA signature.", - "s": "Output value s of the ECDSA signature.", - "signer": "The address of the signing key to authorize.", - "v": "The recovery id of the incoming ECDSA signature." - } - }, - "batchGetMetadataURL(address[])": { - "params": { - "accountsToQuery": "The addresses of the accounts to get the metadata for." - }, - "return": "The length of each string in bytes.All strings concatenated." - }, - "completeSignerAuthorization(address,bytes32)": { - "params": { - "account": "The address of account that authorized signing.", - "role": "The role to finish authorizing for." - } - }, - "constructor": { - "params": { - "test": "Set to true to skip implementation initialization" - } - }, - "createAccount()": { - "return": "True if account creation succeeded." - }, - "getAttestationSigner(address)": { - "params": { - "account": "The address of the account." - }, - "return": "The address with which the account can sign attestations." - }, - "getDataEncryptionKey(address)": { - "params": { - "account": "The address of the account to get the key for" - }, - "return": "dataEncryptionKey secp256k1 public key for data encryption. Preferably compressed." - }, - "getDefaultSigner(address,bytes32)": { - "params": { - "account": "The address of the account.", - "role": "The role of the signer." - } - }, - "getIndexedSigner(address,bytes32)": { - "params": { - "account": "The address of the account.", - "role": "The role of the signer." - } - }, - "getLegacySigner(address,bytes32)": { - "params": { - "_account": "The address of the account.", - "role": "The role of the signer." - } - }, - "getMetadataURL(address)": { - "params": { - "account": "The address of the account to get the metadata for." - }, - "return": "metadataURL The URL to access the metadata." - }, - "getName(address)": { - "params": { - "account": "The address of the account to get the name for." - }, - "return": "name The name of the account." - }, - "getOffchainStorageRoots(address)": { - "params": { - "account": "The account whose storage roots to return." - }, - "return": "Concatenated storage root URLs.Lengths of storage root URLs." - }, - "getPaymentDelegation(address)": { - "params": { - "account": "Account of the validator." - }, - "return": "Beneficiary address of payment delegated.Fraction of payment delegated." - }, - "getRoleAuthorizationSigner(address,address,bytes32,uint8,bytes32,bytes32)": { - "params": { - "account": "The `account` property signed over in the EIP712 signature", - "r": "Output value r of the ECDSA signature.", - "role": "The `role` property signed over in the EIP712 signature", - "s": "Output value s of the ECDSA signature.", - "signer": "The `signer` property signed over in the EIP712 signature", - "v": "The recovery id of the incoming ECDSA signature." - }, - "return": "The address that signed the provided role authorization." - }, - "getValidatorSigner(address)": { - "params": { - "account": "The address of the account." - }, - "return": "The address with which the account can register a validator or group." - }, - "getVersionNumber()": { - "return": "Storage version of the contract.Major version of the contract.Minor version of the contract.Patch version of the contract." - }, - "getVoteSigner(address)": { - "params": { - "account": "The address of the account." - }, - "return": "The address with which the account can sign votes." - }, - "getWalletAddress(address)": { - "params": { - "account": "The address of the account to get the wallet address for" - }, - "return": "Wallet address" - }, - "hasAuthorizedAttestationSigner(address)": { - "params": { - "account": "The address of the account." - }, - "return": "Whether the account has specified a dedicated attestation signer." - }, - "hasAuthorizedSigner(address,string)": { - "details": "See `hasIndexedSigner` for more gas efficient call." - }, - "hasAuthorizedValidatorSigner(address)": { - "params": { - "account": "The address of the account." - }, - "return": "Whether the account has specified a dedicated validator signer." - }, - "hasAuthorizedVoteSigner(address)": { - "params": { - "account": "The address of the account." - }, - "return": "Whether the account has specified a dedicated vote signer." - }, - "initialize(address)": { - "params": { - "registryAddress": "The address of the registry core smart contract." - } - }, - "isAccount(address)": { - "params": { - "account": "The address of the account" - }, - "return": "Returns `true` if account exists. Returns `false` otherwise." - }, - "isAuthorizedSigner(address)": { - "params": { - "signer": "The possibly authorized address." - }, - "return": "Returns `true` if authorized. Returns `false` otherwise." - }, - "isDefaultSigner(address,address,bytes32)": { - "params": { - "account": "The address of account that authorized signing.", - "role": "The role that has been authorized.", - "signer": "The address of the signer." - } - }, - "isIndexedSigner(address,address,bytes32)": { - "params": { - "account": "The address of account that authorized signing.", - "role": "The role that has been authorized.", - "signer": "The address of the signer." - } - }, - "isLegacyRole(bytes32)": { - "params": { - "role": "The role to check" - } - }, - "isLegacySigner(address,address,bytes32)": { - "params": { - "_account": "The address of account that authorized signing.", - "role": "The role that has been authorized.", - "signer": "The address of the signer." - } - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "isSigner(address,address,bytes32)": { - "params": { - "account": "The address of account that authorized signing.", - "role": "The role that has been authorized.", - "signer": "The address of the signer." - } - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "removeDefaultSigner(bytes32)": { - "params": { - "role": "The role that has been authorized." - } - }, - "removeIndexedSigner(bytes32)": { - "params": { - "role": "The role of the signer." - } - }, - "removeSigner(address,bytes32)": { - "params": { - "role": "The role that has been authorized.", - "signer": "The address of the signer." - } - }, - "removeStorageRoot(uint256)": { - "details": "The order of storage roots may change after this operation (the last storage root will be moved to `index`), be aware of this if removing multiple storage roots at a time.", - "params": { - "index": "The index of the storage root to be removed in the account's list of storage roots." - } - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "setAccount(string,bytes,address,uint8,bytes32,bytes32)": { - "details": "v, r, s constitute `signer`'s signature on `msg.sender` (unless the wallet address is 0x0 or msg.sender).", - "params": { - "dataEncryptionKey": "secp256k1 public key for data encryption. Preferably compressed.", - "name": "A string to set as the name of the account", - "r": "Output value r of the ECDSA signature.", - "s": "Output value s of the ECDSA signature.", - "v": "The recovery id of the incoming ECDSA signature.", - "walletAddress": "The wallet address to set for the account" - } - }, - "setAccountDataEncryptionKey(bytes)": { - "params": { - "dataEncryptionKey": "secp256k1 public key for data encryption. Preferably compressed." - } - }, - "setIndexedSigner(address,bytes32)": { - "params": { - "role": "the role to register a default signer for", - "signer": "the address to set as default" - } - }, - "setMetadataURL(string)": { - "params": { - "metadataURL": "The URL to access the metadata." - } - }, - "setName(string)": { - "params": { - "name": "The name to set." - } - }, - "setPaymentDelegation(address,uint256)": { - "details": "Use `deletePaymentDelegation` to unset the payment delegation.", - "params": { - "beneficiary": "The address that should receive a portion of validator payments.", - "fraction": "The fraction of the validator's payment that should be diverted to `beneficiary` every epoch, given as FixidityLib value. Must not be greater than 1." - } - }, - "setRegistry(address)": { - "params": { - "registryAddress": "The address of a registry contract for routing to other contracts." - } - }, - "setWalletAddress(address,uint8,bytes32,bytes32)": { - "details": "Wallet address can be zero. This means that the owner of the wallet does not want to be paid directly without interaction, and instead wants users to contact them, using the data encryption key, and arrange a payment.v, r, s constitute `signer`'s signature on `msg.sender` (unless the wallet address is 0x0 or msg.sender).", - "params": { - "r": "Output value r of the ECDSA signature.", - "s": "Output value s of the ECDSA signature.", - "v": "The recovery id of the incoming ECDSA signature.", - "walletAddress": "The wallet address to set for the account" - } - }, - "signerToAccount(address)": { - "details": "Fails if the `signer` is not an account or previously authorized signer.", - "params": { - "signer": "The address of the account or previously authorized signer." - }, - "return": "The associated account." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "validatorSignerToAccount(address)": { - "details": "Fails if the `signer` is not an account or currently authorized validator.", - "params": { - "signer": "The address of an account or currently authorized validator signer." - }, - "return": "The associated account." - }, - "voteSignerToAccount(address)": { - "details": "Fails if the `signer` is not an account or currently authorized vote signer.", - "params": { - "signer": "The address of the account or currently authorized vote signer." - }, - "return": "The associated account." - } - } - }, - "userdoc": { - "methods": { - "addStorageRoot(bytes)": { - "notice": "Adds a new CIP8 storage root." - }, - "attestationSignerToAccount(address)": { - "notice": "Returns the account associated with `signer`." - }, - "authorizeAttestationSigner(address,uint8,bytes32,bytes32)": { - "notice": "Authorizes an address to sign attestations on behalf of the account." - }, - "authorizeSigner(address,bytes32)": { - "notice": "Begin the process of authorizing an address to sign on behalf of the account" - }, - "authorizeSignerWithSignature(address,bytes32,uint8,bytes32,bytes32)": { - "notice": "Authorizes an address to act as a signer, for `role`, on behalf of the account." - }, - "authorizeValidatorSigner(address,uint8,bytes32,bytes32)": { - "notice": "Authorizes an address to sign consensus messages on behalf of the account." - }, - "authorizeValidatorSignerWithKeys(address,uint8,bytes32,bytes32,bytes,bytes,bytes)": { - "notice": "Authorizes an address to sign consensus messages on behalf of the account." - }, - "authorizeValidatorSignerWithPublicKey(address,uint8,bytes32,bytes32,bytes)": { - "notice": "Authorizes an address to sign consensus messages on behalf of the account." - }, - "authorizeVoteSigner(address,uint8,bytes32,bytes32)": { - "notice": "Authorizes an address to sign votes on behalf of the account." - }, - "batchGetMetadataURL(address[])": { - "notice": "Getter for the metadata of multiple accounts." - }, - "completeSignerAuthorization(address,bytes32)": { - "notice": "Finish the process of authorizing an address to sign on behalf of the account. " - }, - "constructor": "Sets initialized == true on implementation contracts", - "createAccount()": { - "notice": "Creates an account." - }, - "deletePaymentDelegation()": { - "notice": "Removes a validator's payment delegation by setting benficiary and fraction to 0." - }, - "getAttestationSigner(address)": { - "notice": "Returns the attestation signer for the specified account." - }, - "getDataEncryptionKey(address)": { - "notice": "Getter for the data encryption key and version." - }, - "getDefaultSigner(address,bytes32)": { - "notice": "Returns the default signer for the specified account and role. If no signer has been specified it will return the account itself." - }, - "getIndexedSigner(address,bytes32)": { - "notice": "Returns the indexed signer for the specified account and role. If no signer has been specified it will return the account itself." - }, - "getLegacySigner(address,bytes32)": { - "notice": "Returns the legacy signer for the specified account and role. If no signer has been specified it will return the account itself." - }, - "getMetadataURL(address)": { - "notice": "Getter for the metadata of an account." - }, - "getName(address)": { - "notice": "Getter for the name of an account." - }, - "getOffchainStorageRoots(address)": { - "notice": "Returns the full list of offchain storage roots for an account." - }, - "getPaymentDelegation(address)": { - "notice": "Gets validator payment delegation settings." - }, - "getRoleAuthorizationSigner(address,address,bytes32,uint8,bytes32,bytes32)": { - "notice": "Returns the address that signed the provided role authorization." - }, - "getValidatorSigner(address)": { - "notice": "Returns the validator signer for the specified account." - }, - "getVersionNumber()": { - "notice": "Returns the storage, major, minor, and patch version of the contract." - }, - "getVoteSigner(address)": { - "notice": "Returns the vote signer for the specified account." - }, - "getWalletAddress(address)": { - "notice": "Getter for the wallet address for an account" - }, - "hasAuthorizedAttestationSigner(address)": { - "notice": "Returns if account has specified a dedicated attestation signer." - }, - "hasAuthorizedSigner(address,string)": { - "notice": "Checks whether or not the account has a signer registered for the plaintext role." - }, - "hasAuthorizedValidatorSigner(address)": { - "notice": "Returns if account has specified a dedicated validator signer." - }, - "hasAuthorizedVoteSigner(address)": { - "notice": "Returns if account has specified a dedicated vote signer." - }, - "hasDefaultSigner(address,bytes32)": { - "notice": "Checks whether or not the account has an indexed signer registered for a role" - }, - "hasIndexedSigner(address,bytes32)": { - "notice": "Checks whether or not the account has an indexed signer registered for the role" - }, - "hasLegacySigner(address,bytes32)": { - "notice": "Checks whether or not the account has an indexed signer registered for one of the legacy roles" - }, - "initialize(address)": { - "notice": "Used in place of the constructor to allow the contract to be upgradable via proxy." - }, - "isAccount(address)": { - "notice": "Check if an account already exists." - }, - "isAuthorizedSigner(address)": { - "notice": "Check if an address has been an authorized signer for an account." - }, - "isDefaultSigner(address,address,bytes32)": { - "notice": "Whether or not the signer has been registered as the default signer for role" - }, - "isIndexedSigner(address,address,bytes32)": { - "notice": "Whether or not the signer has been registered as an indexed signer for role" - }, - "isLegacyRole(bytes32)": { - "notice": "Checks whether the role is one of Vote, Validator or Attestation" - }, - "isLegacySigner(address,address,bytes32)": { - "notice": "Whether or not the signer has been registered as the legacy signer for role" - }, - "isSigner(address,address,bytes32)": { - "notice": "Whether or not the signer has been registered as a signer for role" - }, - "removeAttestationSigner()": { - "notice": "Removes the currently authorized attestation signer for the account Note that the signers cannot be reauthorized after they have been removed." - }, - "removeDefaultSigner(bytes32)": { - "notice": "Removes the signer for a default role." - }, - "removeIndexedSigner(bytes32)": { - "notice": "Removes the currently authorized and indexed signer for a specific role" - }, - "removeSigner(address,bytes32)": { - "notice": "Removes the currently authorized signer for a specific role and if the signer is indexed, remove that as well." - }, - "removeStorageRoot(uint256)": { - "notice": "Removes a CIP8 storage root." - }, - "removeValidatorSigner()": { - "notice": "Removes the currently authorized validator signer for the account Note that the signers cannot be reauthorized after they have been removed." - }, - "removeVoteSigner()": { - "notice": "Removes the currently authorized vote signer for the account. Note that the signers cannot be reauthorized after they have been removed." - }, - "setAccount(string,bytes,address,uint8,bytes32,bytes32)": { - "notice": "Convenience Setter for the dataEncryptionKey and wallet address for an account" - }, - "setAccountDataEncryptionKey(bytes)": { - "notice": "Setter for the data encryption key and version." - }, - "setEip712DomainSeparator()": { - "notice": "Sets the EIP712 domain separator for the Celo Accounts abstraction." - }, - "setIndexedSigner(address,bytes32)": { - "notice": "Set the indexed signer for a specific role" - }, - "setMetadataURL(string)": { - "notice": "Setter for the metadata of an account." - }, - "setName(string)": { - "notice": "Setter for the name of an account." - }, - "setPaymentDelegation(address,uint256)": { - "notice": "Sets validator payment delegation settings." - }, - "setRegistry(address)": { - "notice": "Updates the address pointing to a Registry contract." - }, - "setWalletAddress(address,uint8,bytes32,bytes32)": { - "notice": "Setter for the wallet address for an account" - }, - "signerToAccount(address)": { - "notice": "Returns the account associated with `signer`." - }, - "validatorSignerToAccount(address)": { - "notice": "Returns the account associated with `signer`." - }, - "voteSignerToAccount(address)": { - "notice": "Returns the account associated with `signer`." - } - } - } - }, - "settings": { - "compilationTarget": { - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/Accounts.sol": "Accounts" - }, - "evmVersion": "istanbul", - "libraries": {}, - "optimizer": { - "enabled": false, - "runs": 200 - }, - "remappings": [] - }, - "sources": { - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/Accounts.sol": { - "keccak256": "0x173da8996b5f86b96e2ee965d8d94d18b5ed6f1b10f1b86683ffdc4da8b874fb", - "urls": [ - "bzz-raw://d9a08dd2d4f855263df926ecc5143aea5de043768c802534c82ed1178bdf5629", - "dweb:/ipfs/QmZQPMB92xaHhqHKbBrJCDsEr7yxXFYxxP5vzYC2oeLACA" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/FixidityLib.sol": { - "keccak256": "0x2f98fa3b3454621817917bae2830806858a96c9457be2c5b6e0bed5b35aaaba3", - "urls": [ - "bzz-raw://b6bf5cf79debe02093777cc9ddef4616dedd041ccc2618c43ea91c90afd97df6", - "dweb:/ipfs/QmXonY3FkVy2jnQvLkgDi4LcaniS5DVZ1zpRZecWKWy9Ro" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/Initializable.sol": { - "keccak256": "0xad98825b5d3181f4ce2d2dbe84adeb0cd7960fd80fafb0813539d6d96ba42ab8", - "urls": [ - "bzz-raw://f76468328c78b80eeaaaadb7b186e41da4a34134446fe11bb707106322b8e32f", - "dweb:/ipfs/QmNyjyVjPX1GKFibDcJBJyZQ57nhusG3DhPjAGnY7iaU39" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/Signatures.sol": { - "keccak256": "0xb11ccc01ac5d81c5496828a92536cfc07378e87c0517fe6f8b429a96c41cb21e", - "urls": [ - "bzz-raw://8c8b5c705c55e4141bf7fa4a6dd5941ebbf81969033476f737db357224075057", - "dweb:/ipfs/QmcUySMBWov2uVEzVmwECzFLxiimqzLEip29w9bNvUvRBK" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/UsingRegistry.sol": { - "keccak256": "0xfdd9e70bd58259b491ec54779715d7469ab4f804836bf5f63ff86921d0cae056", - "urls": [ - "bzz-raw://e55f23f464e49c42b1f31782dcb88cbd2ca64e050d5f110ccdc2ffd50cd582ff", - "dweb:/ipfs/QmfBiet9GbT9S9rn9SG9CkyXQGAMQRuk4EBmChY1m4kv47" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/interfaces/IAccounts.sol": { - "keccak256": "0x1ec92ced98458b625f5cc7742e7487c6e9c0042ae86bbd4b5cec293363c543ee", - "urls": [ - "bzz-raw://bf85ce1ac9c145877666436ce0c9c998ab205a7fe8ec39a90332ac01fecad9f2", - "dweb:/ipfs/QmYQTztErbUUYf52rAL3xVjFqED91n6Es7RidjDTkuKeM6" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/interfaces/ICeloVersionedContract.sol": { - "keccak256": "0x7bf4411df057bec6f7fcc1c25c1f46cd9a8f75118958012b56ecef8a986abd62", - "urls": [ - "bzz-raw://b08c5c589b31ab774f6d1eb73bf67e111e04a0f1b99cd8e2528f021cf4983100", - "dweb:/ipfs/Qmao3mnAW1mUixfwtZXvJUCBzK65hzfmvHGgZqHPpXEt3C" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/interfaces/IFeeCurrencyWhitelist.sol": { - "keccak256": "0xd4711baf3e38a0abeb3ef48eaab21aeb917f5e0a185cf463fddeb4bf20277b68", - "urls": [ - "bzz-raw://8f350863943ab54dcf4d5ea525c16748f59263bf36c1d85251c1164d0e592032", - "dweb:/ipfs/QmXAG6fvVQKM86rVsk6R3ndEoHtS9fcAAVxBApJ5j3LWeK" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/interfaces/IFreezer.sol": { - "keccak256": "0x12508a9d528d1b63dc06644e9d97e864acc94f8a763cf8555e90bcdf1b2f8b21", - "urls": [ - "bzz-raw://32df109167a13e684c9b296a0e13dda1899e418788eb59bf59aedd7a3ce65466", - "dweb:/ipfs/QmR6BJCRFMSQpBpnSH2vzLE959FhXnmreDocWWc7fUYnnu" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/interfaces/IRegistry.sol": { - "keccak256": "0x78ba82722d28e815c117f33d4659404f0707dab1c9b51f1bce5d4c15d6c94537", - "urls": [ - "bzz-raw://0cea84b948896aece11c64b97c22b0f08f86cb45e166a004db4a88a98952cbfa", - "dweb:/ipfs/QmR4uSGcs4nmph6duroscchstSwMzWSV8CDvD2SSnWuHbs" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/libraries/ReentrancyGuard.sol": { - "keccak256": "0xa2584554532d7004ca3d2d168cd9dfb7694605f1a32431af4d1b7d834fa6b08d", - "urls": [ - "bzz-raw://fb012e7a76145a86b8746b0b10768845d17a5c5ab9cbdcd863fde42028b5632c", - "dweb:/ipfs/QmdJi5va3broTVwJJ5uCBSg4T2rwTaAvzSBtnZzETvverK" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/governance/interfaces/IElection.sol": { - "keccak256": "0xebcd0d7dbbb2df503967ad63c9ddd437cef89a94ba2cc2f9ce274f41a4c901ee", - "urls": [ - "bzz-raw://84dcf3a9952f1ce9a9110abb1783dfead290fd17c28216c5acb22de9d090921d", - "dweb:/ipfs/QmeNoLz8WcHX9GLcBfQChXFHsFDRaVRRXnPXXvB2qVTaSZ" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/governance/interfaces/IGovernance.sol": { - "keccak256": "0x1416ade12c83b723dcd0d42c59d5bd7fbe3ad51b83b613c5f76eb524b84530ce", - "urls": [ - "bzz-raw://c189b55fc7a6f5769a3171f84ea4b78828da4ce130e0fc20158aa9403c03ac4d", - "dweb:/ipfs/QmREMga9rQTs1uBeGRRiNdNdYQQaSm5dY9LufnMVphtdMw" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/governance/interfaces/ILockedGold.sol": { - "keccak256": "0x577d01d8a1fbf47980fb5ffd36de2084ec255889b15671adfecd3a285df4f253", - "urls": [ - "bzz-raw://6b955b6829748cd136fa92c3a434f5419e4eb024d535a854900ad48bd4151b67", - "dweb:/ipfs/QmXM5uL5dsKecYyedAzsrZXAp81NtWQErbbVEFccJ6ZqiY" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/governance/interfaces/IValidators.sol": { - "keccak256": "0x524a9e48689537421f97296ffd57fa0f2887117f9af9e71dd5ed17e66ba92d2a", - "urls": [ - "bzz-raw://cf5d0c2f6ee9b2c8e270162455177e9c3bac79ac07d4f37c86f7f2ee5978a756", - "dweb:/ipfs/QmZTKmytn1Wi3QfU3bHuSaSeYQzRrFKehyngrg37rHD3vV" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/identity/interfaces/IAttestations.sol": { - "keccak256": "0x979aaac636fe6a64f97034bf0bf062b5f0efd6e6f9f3fe84e81180f82eeb7a3e", - "urls": [ - "bzz-raw://c1255d08278188247ef81fb09edd2d1d4a019fb0fe80fd3d9850415c5eb5caaf", - "dweb:/ipfs/QmcJvqSM35nAR8p8LwVczhnaY6VwTRThNjfCzkzeiAkz45" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/identity/interfaces/IRandom.sol": { - "keccak256": "0xd65fd529d133cbde94628b39b0d2f0f4b6d0af2e8f97c0e6b4b2cd476479ed1d", - "urls": [ - "bzz-raw://f2c6fe351990bfdeb55484bd3622d44c8f58579a7212d5cce71a82df846497f5", - "dweb:/ipfs/QmRDDTXUqbA6dHfJe4ZS1442JDAfwoHq2eH9LHnQyzsh44" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/stability/interfaces/IExchange.sol": { - "keccak256": "0xbfcf77e30fc62218decbb73297d5161b9c490f7e44f75158f1c79674e4b8b83c", - "urls": [ - "bzz-raw://ad0caaddcb552a2c040e827e9336cdec7dfaf629cca9f30e5f5bc12645abde43", - "dweb:/ipfs/QmTjnGbfoSkZhNWhrbcYdLjF1LLqAJcviJ2ZKSMH9KWz95" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/stability/interfaces/IReserve.sol": { - "keccak256": "0x8da4d702b47a7e60981ca416f2d0f24a3c1dea9ab44f04b695c0fde02c84a38e", - "urls": [ - "bzz-raw://198fb3cd945e374926e3d6bcb2469b7f5c635e78b40417a4b3a1eacabeca234b", - "dweb:/ipfs/Qma8RRSqksFCzL5gWTXmGtJvC4Mw1bgquvN33nKhrRwUrD" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/stability/interfaces/ISortedOracles.sol": { - "keccak256": "0x8f80e430800fff2f04f3981c4b73a2a374b2c2150543a2de51fcf7ba4fb08789", - "urls": [ - "bzz-raw://f1a472385d5fa1b1cc4ab6ff948cd11f86c55328841d89f39f02b64449d3ac1a", - "dweb:/ipfs/QmSYfwR8RJ2nyzt9VJtLKqaUHwAPfz579vhcQP7LRLaqTe" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/stability/interfaces/IStableToken.sol": { - "keccak256": "0x091e577acecdf050fe4c41133b11fe330d07050c5fe78b65bfce32ccc29e51c6", - "urls": [ - "bzz-raw://94f7d7578274be8212b8c9a3f0759d884969b05a7f0c64c7c9352102f4e51ab4", - "dweb:/ipfs/Qmd3bERcFLrrvpURuzKUg6YCSFisNQ36YpRLWkxEcS1Tkj" - ] - }, - "openzeppelin-solidity/contracts/GSN/Context.sol": { - "keccak256": "0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061", - "urls": [ - "bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436", - "dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG" - ] - }, - "openzeppelin-solidity/contracts/cryptography/ECDSA.sol": { - "keccak256": "0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de", - "urls": [ - "bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1", - "dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD" - ] - }, - "openzeppelin-solidity/contracts/math/SafeMath.sol": { - "keccak256": "0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076", - "urls": [ - "bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f", - "dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq" - ] - }, - "openzeppelin-solidity/contracts/ownership/Ownable.sol": { - "keccak256": "0x6fb9d7889769d7cc161225f9ef7a90e468ba9788b253816f8d8b6894d3472c24", - "urls": [ - "bzz-raw://cf4c00fc3c37cc5acf0c82ec6fd97bab67d72c2567fdc0ebf023d9c09b30a08e", - "dweb:/ipfs/Qmb7TChG6DsEDX7LooJ4vmxot19f7VXX8S1zUGPeJTWbwZ" - ] - }, - "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9", - "urls": [ - "bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91", - "dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc" - ] - } - }, - "version": 1 -} \ No newline at end of file diff --git a/packages/sdk/explorer/fixtures/proxy.metadata.json b/packages/sdk/explorer/fixtures/proxy.metadata.json deleted file mode 100644 index 40296fa2dae..00000000000 --- a/packages/sdk/explorer/fixtures/proxy.metadata.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "compiler": { - "version": "0.5.13+commit.5b0b510c" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "ImplementationSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnerSet", - "type": "event" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "constant": true, - "inputs": [], - "name": "_getImplementation", - "outputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "_getOwner", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "callbackData", - "type": "bytes" - } - ], - "name": "_setAndInitializeImplementation", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "_setImplementation", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "_transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "devdoc": { - "methods": { - "_setAndInitializeImplementation(address,bytes)": { - "details": "Throws if the initialization callback fails.If the target contract does not need initialization, use setImplementation instead.", - "params": { - "callbackData": "The abi-encoded function call to perform in the implementation contract.", - "implementation": "Address of the new target contract." - } - }, - "_setImplementation(address)": { - "details": "If the target contract needs to be initialized, call setAndInitializeImplementation instead.", - "params": { - "implementation": "Address of the new target contract." - } - }, - "_transferOwnership(address)": { - "params": { - "newOwner": "Address of the new owner account." - } - } - } - }, - "userdoc": { - "methods": { - "_getImplementation()": { - "notice": "Returns the implementation address." - }, - "_getOwner()": { - "notice": "Returns the Proxy owner's address." - }, - "_setAndInitializeImplementation(address,bytes)": { - "notice": "Sets the address of the implementation contract and calls into it." - }, - "_setImplementation(address)": { - "notice": "Sets the address of the implementation contract." - }, - "_transferOwnership(address)": { - "notice": "Transfers ownership of Proxy to a new owner." - } - } - } - }, - "settings": { - "compilationTarget": { - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/proxies/AccountsProxy.sol": "AccountsProxy" - }, - "evmVersion": "istanbul", - "libraries": {}, - "optimizer": { - "enabled": false, - "runs": 200 - }, - "remappings": [] - }, - "sources": { - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/Proxy.sol": { - "keccak256": "0x650f2a079da45a71970749c9039dece5986835225035b29eca4df1c1dab0d6ac", - "urls": [ - "bzz-raw://cb6c36af368fa26a6fb5f033941536e73ebd1aafad5162f073f318a30f4ee349", - "dweb:/ipfs/QmaWNhRtpPU4iGDnWjBYRZobUvJYwGQJvtaPZMtbzjjZB3" - ] - }, - "/home/bowd/Workspace/job/celo/celo-monorepo/packages/protocol/contracts/common/proxies/AccountsProxy.sol": { - "keccak256": "0x42531c7bfc12cf2e3e33a1b1f7614d82b25e8a2beff194d793446b7639a55d05", - "urls": [ - "bzz-raw://49c99e47f7ed5ad077ac98fd30bee47674959cbb5ce5ac5d21d12bd121ad9711", - "dweb:/ipfs/QmNRDQrNYKMqdNgduv4euvrmFxSDqJJ267RzPJY5p6fNte" - ] - }, - "openzeppelin-solidity/contracts/utils/Address.sol": { - "keccak256": "0x1a8e5072509c5ea7365eb1d48030b9be865140c8fb779968da0a459a0e174a11", - "urls": [ - "bzz-raw://03335b7b07c7c8c8d613cfdd8ec39a0b5ec133ee510bf2fe6cc5a496767bef4b", - "dweb:/ipfs/Qmebp4nzPja645c9yXSdJkGq96oU3am3LUnG2K3R7XxyKf" - ] - } - }, - "version": 1 -} \ No newline at end of file diff --git a/packages/sdk/explorer/jest.config.js b/packages/sdk/explorer/jest.config.js deleted file mode 100644 index 31e6b5e7485..00000000000 --- a/packages/sdk/explorer/jest.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], - setupFilesAfterEnv: ['@celo/dev-utils/lib/matchers', '/jestSetup.ts'], - verbose: true, -} diff --git a/packages/sdk/explorer/jestSetup.ts b/packages/sdk/explorer/jestSetup.ts deleted file mode 100644 index a3708cfed4e..00000000000 --- a/packages/sdk/explorer/jestSetup.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { FetchMockSandbox } from 'fetch-mock' - -const fetchMockSandbox = require('fetch-mock').sandbox() -jest.mock('cross-fetch', () => fetchMockSandbox) - -// @ts-ignore -global.fetchMock = fetchMockSandbox as FetchMockSandbox diff --git a/packages/sdk/explorer/package.json b/packages/sdk/explorer/package.json deleted file mode 100644 index 96138d8b442..00000000000 --- a/packages/sdk/explorer/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "@celo/explorer", - "version": "5.0.7", - "description": "Celo's block explorer consumer", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "author": "Celo", - "license": "Apache-2.0", - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/explorer", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/explorer", - "keywords": [ - "celo", - "blockchain", - "contractkit" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand --passWithNoTests", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@celo/base": "^6.0.0", - "@celo/connect": "^5.1.1", - "@celo/contractkit": "^6.0.0", - "@celo/utils": "^5.0.6", - "@types/debug": "^4.1.5", - "cross-fetch": "3.0.6", - "bignumber.js": "9.0.0", - "debug": "^4.1.1" - }, - "devDependencies": { - "@types/fetch-mock": "^7.3.5", - "fetch-mock": "^9.11.0", - "web3": "1.10.0" - }, - "engines": { - "node": ">=8.13.0" - } -} \ No newline at end of file diff --git a/packages/sdk/explorer/scripts/driver.ts b/packages/sdk/explorer/scripts/driver.ts deleted file mode 100644 index 9187deb9e9d..00000000000 --- a/packages/sdk/explorer/scripts/driver.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { newKitFromWeb3 } from '@celo/contractkit' -import Web3 from 'web3' -import { newBlockExplorer } from '../src/block-explorer' - -const kit = newKitFromWeb3(new Web3('ws://localhost:8545')) - -export function listenFor(subscription: any, seconds: number) { - console.log(subscription) - - return new Promise((resolve, reject) => { - const accumulator: any[] = [] - - subscription.on('data', (data: any) => { - accumulator.push(data) - }) - setTimeout(() => { - subscription.unsubscribe() - resolve(accumulator) - }, seconds * 1000) - - subscription.on('error', (err: any) => { - reject(err) - }) - }) -} - -const printJSON = (x: any) => console.log(JSON.stringify(x, null, 2)) - -async function main() { - const blockExplorer = await newBlockExplorer(kit) - - const blocks = await blockExplorer.fetchBlockRange(15, 50) - - blocks.forEach((block) => { - console.log('Block', block.number) - printJSON(blockExplorer.parseBlock(block)) - }) - // const pastStableEvents = await stableToken.getPastEvents('allevents', { fromBlock: 0 }) - - // const pastGenericEvents = await kit.web3.eth.getPastLogs({ - // address: '0x371b13d97f4bf77d724e78c16b7dc74099f40e84', - // fromBlock: '0x0', - // }) - - // printJSON(pastStableEvents) - // console.log('------------------------------------------------------') - // printJSON(pastGenericEvents) - - // const tokenEvents = await listenFor(stableToken.events.allEvents({ fromBlock: 0 }), 3) - - // console.log(JSON.stringify(tokenEvents[0], null, 2)) - - // const genEvents = await listenFor( - // kit.web3.eth.subscribe('logs', { - // address: '0x371b13d97f4bf77d724e78c16b7dc74099f40e84', - // fromBlock: 0, - // topics: [], - // }), - // 3 - // ) - - // console.log(JSON.stringify(genEvents, null, 2)) - kit.connection.stop() -} - -main().catch((err) => { - console.error(err) -}) diff --git a/packages/sdk/explorer/src/base.ts b/packages/sdk/explorer/src/base.ts deleted file mode 100644 index 76e6026960b..00000000000 --- a/packages/sdk/explorer/src/base.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { concurrentMap } from '@celo/base/lib/async' -import { ABIDefinition, AbiItem, Address } from '@celo/connect' -import { CeloContract, ContractKit } from '@celo/contractkit' - -export interface ContractDetails { - name: string - address: Address - jsonInterface: AbiItem[] - isCore: boolean -} - -export interface ContractMapping { - details: ContractDetails - fnMapping: Map -} - -export const getContractDetailsFromContract: any = async ( - kit: ContractKit, - celoContract: CeloContract, - address?: string -) => { - const contract = await kit._web3Contracts.getContract(celoContract, address) - return { - name: celoContract, - address: address ?? contract.options.address, - jsonInterface: contract.options.jsonInterface, - isCore: true, - } -} - -export async function obtainKitContractDetails(kit: ContractKit): Promise { - const registry = await kit.registry.addressMapping() - return concurrentMap(5, Array.from(registry.entries()), ([celoContract, address]) => - getContractDetailsFromContract(kit, celoContract, address) - ) -} - -export function mapFromPairs(pairs: Array<[A, B]>): Map { - const map = new Map() - pairs.forEach(([k, v]) => { - map.set(k, v) - }) - return map -} diff --git a/packages/sdk/explorer/src/block-explorer.ts b/packages/sdk/explorer/src/block-explorer.ts deleted file mode 100644 index a7b84489087..00000000000 --- a/packages/sdk/explorer/src/block-explorer.ts +++ /dev/null @@ -1,390 +0,0 @@ -import { - ABIDefinition, - Address, - Block, - CeloTxPending, - parseDecodedParams, - signatureToAbiDefinition, -} from '@celo/connect' -import { CeloContract, ContractKit } from '@celo/contractkit' -import { PROXY_ABI } from '@celo/contractkit/lib/proxy' -import { fromFixed } from '@celo/utils/lib/fixidity' -import BigNumber from 'bignumber.js' -import debugFactory from 'debug' -import { - ContractDetails, - ContractMapping, - getContractDetailsFromContract, - mapFromPairs, - obtainKitContractDetails, -} from './base' -import { fetchMetadata, tryGetProxyImplementation } from './sourcify' - -const debug = debugFactory('kit:explorer:block') -export interface ContractNameAndMethodAbi { - abi: ABIDefinition - contract: string - contractName?: string -} - -export interface CallDetails { - contract: string - contractAddress: Address - isCoreContract: boolean - function: string - paramMap: Record - argList: any[] -} - -export interface ParsedTx { - callDetails: CallDetails - tx: CeloTxPending -} - -export interface ParsedBlock { - block: Block - parsedTx: ParsedTx[] -} - -export async function newBlockExplorer(kit: ContractKit) { - return new BlockExplorer(kit, await obtainKitContractDetails(kit)) -} - -const getContractMappingFromDetails = (cd: ContractDetails) => ({ - details: cd, - fnMapping: mapFromPairs( - (cd.jsonInterface.concat(PROXY_ABI) as ABIDefinition[]) - .filter((ad) => ad.type === 'function') - .map((ad) => [ad.signature, ad]) - ), -}) - -const isCoreContract = (contract: string): contract is CeloContract => contract in CeloContract - -export class BlockExplorer { - private addressMapping: Map - private proxyImplementationOverride: Map = new Map() - - constructor(private kit: ContractKit, readonly contractDetails: ContractDetails[]) { - this.addressMapping = mapFromPairs( - contractDetails - .filter((cd) => /Proxy$/.exec(cd.name) == null) - .map((cd) => [cd.address, getContractMappingFromDetails(cd)]) - ) - } - - async updateContractDetailsMapping(name: CeloContract, address: string) { - if (isCoreContract(name)) { - const contractDetails = await getContractDetailsFromContract(this.kit, name, address) - this.addressMapping.set( - contractDetails.address, - getContractMappingFromDetails(contractDetails) - ) - } - } - - async setProxyOverride(proxyAddress: Address, implementationAddress: Address) { - debug('Setting proxy override for %s to %s', proxyAddress, implementationAddress) - this.proxyImplementationOverride.set(proxyAddress, implementationAddress) - } - - async fetchBlockByHash(blockHash: string): Promise { - return this.kit.connection.getBlock(blockHash) - } - async fetchBlock(blockNumber: number): Promise { - return this.kit.connection.getBlock(blockNumber) - } - - async fetchBlockRange(from: number, to: number): Promise { - const results: Block[] = [] - for (let i = from; i < to; i++) { - results.push(await this.fetchBlock(i)) - } - return results - } - - async parseBlock(block: Block): Promise { - const parsedTx: ParsedTx[] = [] - for (const tx of block.transactions) { - if (typeof tx !== 'string') { - const maybeKnownCall = await this.tryParseTx(tx) - if (maybeKnownCall != null) { - parsedTx.push(maybeKnownCall) - } - } - } - - return { - block, - parsedTx, - } - } - - async tryParseTx(tx: CeloTxPending): Promise { - const callDetails = await this.tryParseTxInput(tx.to!, tx.input) - if (!callDetails) { - return null - } - - return { - tx, - callDetails, - } - } - - async tryParseTxInput(address: string, input: string): Promise { - const selector = input.slice(0, 10) - const contractMapping = await this.getContractMappingWithSelector(address, selector) - - if (contractMapping) { - const methodAbi = contractMapping.fnMapping.get(selector)! - return this.buildCallDetails(contractMapping.details, methodAbi, input) - } - return null - } - - private getContractMethodAbiFromMapping = ( - contractMapping: ContractMapping, - selector: string - ): ContractNameAndMethodAbi | null => { - if (contractMapping === undefined) { - return null - } - - const methodAbi = contractMapping.fnMapping.get(selector) - if (methodAbi === undefined) { - return null - } - - return { - contract: contractMapping.details.address, - contractName: contractMapping.details.name, - abi: methodAbi, - } - } - - /** - * @deprecated use getContractMappingWithSelector instead - * Returns the contract name and ABI of the method by looking up - * the contract address either in all possible contract mappings. - * @param address - * @param selector - * @param onlyCoreContracts - * @returns The contract name and ABI of the method or null if not found - */ - getContractMethodAbi = async ( - address: string, - selector: string, - onlyCoreContracts = false - ): Promise => { - if (onlyCoreContracts) { - return this.getContractMethodAbiFromCore(address, selector) - } - - const contractMapping = await this.getContractMappingWithSelector(address, selector) - if (contractMapping === undefined) { - return null - } - - return this.getContractMethodAbiFromMapping(contractMapping, selector) - } - - /** - * Returns the contract name and ABI of the method by looking up - * the contract address but only in core contracts - * @param address - * @param selector - * @returns The contract name and ABI of the method or null if not found - */ - getContractMethodAbiFromCore = async ( - address: string, - selector: string - ): Promise => { - const contractMapping = await this.getContractMappingWithSelector(address, selector, [ - this.getContractMappingFromCore, - ]) - - if (contractMapping === undefined) { - return null - } - - return this.getContractMethodAbiFromMapping(contractMapping, selector) - } - - /** - * @deprecated use getContractMappingWithSelector instead - * Returns the contract name and ABI of the method by looking up - * the contract address in Sourcify. - * @param address - * @param selector - * @returns The contract name and ABI of the method or null if not found - */ - getContractMethodAbiFromSourcify = async ( - address: string, - selector: string - ): Promise => { - const contractMapping = await this.getContractMappingWithSelector(address, selector, [ - this.getContractMappingFromSourcify, - this.getContractMappingFromSourcifyAsProxy, - ]) - - if (contractMapping === undefined) { - return null - } - - return this.getContractMethodAbiFromMapping(contractMapping, selector) - } - - /** - * @deprecated use getContractMappingWithSelector instead - * Returns the contract name and ABI of the method by looking up - * the selector in a list of known functions. - * @param address - * @param selector - * @param onlyCoreContracts - * @returns The contract name and ABI of the method or null if not found - */ - getContractMethodAbiFallback = ( - address: string, - selector: string - ): ContractNameAndMethodAbi | null => { - // TODO(bogdan): This could be replaced with a call to 4byte.directory - // or a local database of common functions. - const knownFunctions: { [k: string]: string } = { - '0x095ea7b3': 'approve(address to, uint256 value)', - '0x4d49e87d': 'addLiquidity(uint256[] amounts, uint256 minLPToMint, uint256 deadline)', - } - const signature = knownFunctions[selector] - if (signature) { - return { - abi: signatureToAbiDefinition(signature), - contract: `Unknown(${address})`, - } - } - return null - } - - buildCallDetails(contract: ContractDetails, abi: ABIDefinition, input: string): CallDetails { - const encodedParameters = input.slice(10) - const { args, params } = parseDecodedParams( - this.kit.connection.getAbiCoder().decodeParameters(abi.inputs!, encodedParameters) - ) - - // transform numbers to big numbers in params - abi.inputs!.forEach((abiInput, idx) => { - if (abiInput.type === 'uint256') { - debug('transforming number param') - params[abiInput.name] = new BigNumber(args[idx]) - } - }) - - // transform fixidity values to fractions in params - Object.keys(params) - .filter((key) => key.includes('fraction')) // TODO: come up with better enumeration - .forEach((fractionKey) => { - debug('transforming fixed number param') - params[fractionKey] = fromFixed(params[fractionKey]) - }) - - return { - contract: contract.name, - contractAddress: contract.address, - isCoreContract: contract.isCore, - function: abi.name!, - paramMap: params, - argList: args, - } - } - - /** - * Returns the ContractMapping for the contract at that address, or undefined - * by looking up the contract address in the core mappings. - * @param address - * @returns The ContractMapping for the contract at that address, or undefined - */ - getContractMappingFromCore = async (address: string): Promise => { - return this.addressMapping.get(address) - } - - /** - * Returns the ContractMapping for the contract at that address, or undefined - * by looking up the contract address in Sourcify. - * @param address - * @returns The ContractMapping for the contract at that address, or undefined - */ - getContractMappingFromSourcify = async ( - address: string - ): Promise => { - const cached = this.addressMapping.get(address) - if (cached) { - return cached - } - const metadata = await fetchMetadata(this.kit.connection, address) - const mapping = metadata?.toContractMapping() - if (mapping) { - this.addressMapping.set(address, mapping) - } - return mapping - } - - /** - * Returns the ContractMapping for the contract at that address, or undefined - * by looking up the contract address in Sourcify but using heuristis to treat - * it as a proxy. - * - * This function is also included by the proxyImplementationOverrides map, - * which can be used to override the implementation address for a given proxy. - * This is exceptionally useful for parsing governence proposals that either - * initialize a proxy or upgrade it, and then calls methods on the new implementation. - * @param address - * @returns The ContractMapping for the contract at that address, or undefined - */ - getContractMappingFromSourcifyAsProxy = async ( - address: string - ): Promise => { - let implAddress = await tryGetProxyImplementation(this.kit.connection, address) - if (this.proxyImplementationOverride.has(address)) { - implAddress = this.proxyImplementationOverride.get(address) - } - if (implAddress) { - const contractMapping = await this.getContractMappingFromSourcify(implAddress) - if (contractMapping) { - return { - ...contractMapping, - details: { - ...contractMapping.details, - address, // Show the proxy address - }, - } - } - } - } - - /** - * Uses all of the strategies available to find a contract mapping that contains - * the given method selector. - * @param address - * @param selector - * @param strategies - * @returns The ContractMapping for the contract which has the function selector, or undefined - */ - async getContractMappingWithSelector( - address: string, - selector: string, - strategies = [ - this.getContractMappingFromCore, - this.getContractMappingFromSourcify, - this.getContractMappingFromSourcifyAsProxy, - ] - ): Promise { - const mappings = await Promise.all( - strategies.map(async (strategy) => { - const contractMapping = await strategy(address) - if (contractMapping && contractMapping.fnMapping.get(selector)) { - return contractMapping - } - }) - ) - return mappings.find((mapping) => mapping !== undefined) - } -} diff --git a/packages/sdk/explorer/src/globals.d.ts b/packages/sdk/explorer/src/globals.d.ts deleted file mode 100644 index 7dd76e4c8a1..00000000000 --- a/packages/sdk/explorer/src/globals.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { FetchMockSandbox } from 'fetch-mock' - -declare global { - const fetchMock: FetchMockSandbox -} diff --git a/packages/sdk/explorer/src/index.ts b/packages/sdk/explorer/src/index.ts deleted file mode 100644 index 3991afda121..00000000000 --- a/packages/sdk/explorer/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './base' -export * from './block-explorer' -export * from './log-explorer' diff --git a/packages/sdk/explorer/src/log-explorer.ts b/packages/sdk/explorer/src/log-explorer.ts deleted file mode 100644 index 3fd8d11f6db..00000000000 --- a/packages/sdk/explorer/src/log-explorer.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { ABIDefinition, Address, CeloTxReceipt, EventLog, Log } from '@celo/connect' -import { ContractKit } from '@celo/contractkit' -import { ContractDetails, mapFromPairs, obtainKitContractDetails } from './base' - -interface ContractMapping { - details: ContractDetails - logMapping: Map -} - -export async function newLogExplorer(kit: ContractKit) { - return new LogExplorer(kit, await obtainKitContractDetails(kit)) -} - -export class LogExplorer { - private readonly addressMapping: Map - - constructor(private kit: ContractKit, readonly contractDetails: ContractDetails[]) { - this.addressMapping = mapFromPairs( - contractDetails.map((cd) => [ - cd.address, - { - details: cd, - logMapping: mapFromPairs( - (cd.jsonInterface as ABIDefinition[]) - .filter((ad) => ad.type === 'event') - .map((ad) => [ad.signature, ad]) - ), - }, - ]) - ) - - for (const cd of contractDetails) { - const fnMapping: Map = new Map() - for (const abiDef of cd.jsonInterface as ABIDefinition[]) { - if (abiDef.type === 'event') { - fnMapping.set(abiDef.signature, abiDef) - } - } - - this.addressMapping.set(cd.address, { - details: cd, - logMapping: fnMapping, - }) - } - } - - async fetchTxReceipt(txhash: string): Promise { - return this.kit.connection.getTransactionReceipt(txhash) - } - - getKnownLogs(tx: CeloTxReceipt): EventLog[] { - const res: EventLog[] = [] - for (const log of tx.logs || []) { - const event = this.tryParseLog(log) - if (event != null) { - res.push(event) - } - } - return res - } - - tryParseLog(log: Log): null | EventLog { - if (log.topics.length === 0) { - return null - } - - const contractMapping = this.addressMapping.get(log.address) - if (contractMapping == null) { - return null - } - const logSignature = log.topics[0] - const matchedAbi = contractMapping.logMapping.get(logSignature) - if (matchedAbi == null) { - return null - } - - const returnValues = this.kit.connection - .getAbiCoder() - .decodeLog(matchedAbi.inputs || [], log.data || '', log.topics.slice(1)) - delete (returnValues as any).__length__ - Object.keys(returnValues).forEach((key) => { - if (Number.parseInt(key, 10) >= 0) { - delete (returnValues as any)[key] - } - }) - - const logEvent: EventLog & { signature: string } = { - address: log.address, - blockHash: log.blockHash, - blockNumber: log.blockNumber, - logIndex: log.logIndex, - transactionIndex: log.transactionIndex, - transactionHash: log.transactionHash, - returnValues, - event: matchedAbi.name!, - signature: logSignature, - raw: { - data: log.data || '', - topics: log.topics || [], - }, - } - - return logEvent - } -} diff --git a/packages/sdk/explorer/src/sourcify.test.ts b/packages/sdk/explorer/src/sourcify.test.ts deleted file mode 100644 index 8ae32ca8c0c..00000000000 --- a/packages/sdk/explorer/src/sourcify.test.ts +++ /dev/null @@ -1,254 +0,0 @@ -import { - Address, - Callback, - Connection, - JsonRpcPayload, - JsonRpcResponse, - Provider, -} from '@celo/connect' -import Web3 from 'web3' -// tslint:disable-next-line: ordered-imports -import { Metadata, fetchMetadata, tryGetProxyImplementation } from './sourcify' - -// This is taken from protocol/contracts/build/Account.json -const CONTRACT_METADATA = require('../fixtures/contract.metadata.json') - -describe('sourcify helpers', () => { - let connection: Connection - const web3: Web3 = new Web3() - const address: Address = web3.utils.randomHex(20) - const proxyAddress: Address = web3.utils.randomHex(20) - const implAddress: Address = web3.utils.randomHex(20) - const chainId: number = 42220 - - const mockProvider: Provider = { - send: (payload: JsonRpcPayload, callback: Callback): void => { - if (payload.params[0].to === proxyAddress) { - callback(null, { - jsonrpc: payload.jsonrpc, - id: Number(payload.id), - result: `0x000000000000000000000000${implAddress}`, - }) - } else { - callback(new Error('revert')) - } - }, - } - - beforeEach(() => { - fetchMock.reset() - web3.setProvider(mockProvider as any) - connection = new Connection(web3) - connection.chainId = jest.fn().mockImplementation(async () => { - return chainId - }) - }) - - describe('fetchMetadata()', () => { - describe('when a full match exists', () => { - it('returns the metadata from the full match', async () => { - fetchMock.get( - `https://repo.sourcify.dev/contracts/full_match/42220/${address}/metadata.json`, - {} - ) - const metadata = await fetchMetadata(connection, address) - expect(metadata).toBeInstanceOf(Metadata) - }) - }) - - describe('when a full match does not exist', () => { - describe('but a partial match exists', () => { - it('returns the metadata from the partial match', async () => { - fetchMock - .get( - `https://repo.sourcify.dev/contracts/full_match/42220/${address}/metadata.json`, - 400 - ) - .get( - `https://repo.sourcify.dev/contracts/partial_match/42220/${address}/metadata.json`, - {} - ) - const metadata = await fetchMetadata(connection, address) - expect(metadata).toBeInstanceOf(Metadata) - }) - }) - - describe('and a partial match does not exist', () => { - it('is null', async () => { - fetchMock - .get( - `https://repo.sourcify.dev/contracts/full_match/42220/${address}/metadata.json`, - 400 - ) - .get( - `https://repo.sourcify.dev/contracts/partial_match/42220/${address}/metadata.json`, - 400 - ) - const metadata = await fetchMetadata(connection, address) - expect(metadata).toEqual(null) - }) - }) - }) - }) - - describe('Metadata', () => { - describe('get abi', () => { - it('returns the abi when it finds it', () => { - const metadata = new Metadata(connection, address, { output: { abi: [{}] } }) - const abi = metadata.abi - expect(abi).not.toBeNull() - expect(abi).toEqual([{}]) - }) - - it('returns null when there is no abi', () => { - const metadata = new Metadata(connection, address, { output: { other: [{}] } }) - const abi = metadata.abi - expect(abi).toBeNull() - }) - }) - - describe('get contractName', () => { - describe('when the structure does not contain it', () => { - it('returns null', () => { - const metadata = new Metadata(connection, address, { output: { abi: [{}] } }) - const name = metadata.contractName - expect(name).toBeNull() - }) - }) - - describe('when the structure contains multiple compilation targets', () => { - it('returns the first', () => { - const metadata = new Metadata(connection, address, { - settings: { - compilationTarget: { - 'somefile.sol': 'SomeContract', - 'otherfile.sol': 'OtherContract', - }, - }, - }) - const name = metadata.contractName - expect(name).toEqual('SomeContract') - }) - }) - - describe('when the structure contains one compilation targets', () => { - it('returns it', () => { - const metadata = new Metadata(connection, address, { - settings: { - compilationTarget: { - 'otherfile.sol': 'OtherContract', - }, - }, - }) - const name = metadata.contractName - expect(name).toEqual('OtherContract') - }) - }) - }) - - describe('abiForMethod', () => { - let contractMetadata: Metadata - - beforeEach(() => { - contractMetadata = new Metadata(connection, address, CONTRACT_METADATA) - }) - - describe('with full signature', () => { - it('finds one ABI item when it exists', async () => { - const results = contractMetadata.abiForMethod('isLegacyRole(bytes32,bytes32)') - expect(results.length).toEqual(1) - expect(results[0]).toMatchObject({ - name: 'isLegacyRole', - inputs: [{ name: 'role' }, { name: 'otherRole' }], - }) - }) - - it('returns an empty array when none exists', async () => { - const results = contractMetadata.abiForMethod('randomFunction(bytes32,bytes32') - expect(results.length).toEqual(0) - }) - }) - - describe('with method name', () => { - it('finds one ABI item when one exists', async () => { - const results = contractMetadata.abiForMethod('isLegacySigner') - expect(results.length).toEqual(1) - expect(results[0]).toMatchObject({ - name: 'isLegacySigner', - }) - }) - - it('finds multiple ABI items when they exist', async () => { - const results = contractMetadata.abiForMethod('isLegacyRole') - expect(results.length).toEqual(2) - }) - - it('returns an empty array when none exists', async () => { - const results = contractMetadata.abiForMethod('randomFunction') - expect(results.length).toEqual(0) - }) - }) - }) - - describe('abiForSignature', () => { - let contractMetadata: Metadata - - beforeEach(() => { - contractMetadata = new Metadata(connection, address, CONTRACT_METADATA) - }) - - describe('when the function exists', () => { - it('returns the ABI', async () => { - const callSignature = connection - .getAbiCoder() - .encodeFunctionSignature('authorizedBy(address)') - const abi = contractMetadata.abiForSelector(callSignature) - expect(abi).toMatchObject({ - constant: true, - inputs: [ - { - internalType: 'address', - name: '', - type: 'address', - }, - ], - name: 'authorizedBy', - outputs: [ - { - internalType: 'address', - name: '', - type: 'address', - }, - ], - payable: false, - stateMutability: 'view', - type: 'function', - }) - }) - }) - - describe("when the function doesn't exist", () => { - it('returns null', () => { - const abi = contractMetadata.abiForSelector('0x0') - expect(abi).toBeNull() - }) - }) - }) - - describe('tryGetProxyImplementation', () => { - describe('with a cLabs proxy', () => { - it('fetches the implementation', async () => { - const result = await tryGetProxyImplementation(connection, proxyAddress) - expect(result?.toLocaleLowerCase()).toEqual(implAddress.toLocaleLowerCase()) - }) - }) - - describe('with a non-proxy', () => { - it('returns null', async () => { - const result = await tryGetProxyImplementation(connection, address) - expect(result).toBeUndefined() - }) - }) - }) - }) -}) diff --git a/packages/sdk/explorer/src/sourcify.ts b/packages/sdk/explorer/src/sourcify.ts deleted file mode 100644 index 6d631ab8d05..00000000000 --- a/packages/sdk/explorer/src/sourcify.ts +++ /dev/null @@ -1,237 +0,0 @@ -/** - * Sourcify (https://sourcify.dev/) helpers for querying - * contract metadata when it's available. - * - * @example - * Get the ABI of an arbitrary contract. - * ```ts - * const metadata = fetchMetadata('42220', '0xF27c7D717B4b7CaD2833a61cb9CA7B61021f9F73') - * if (metadata.abi !== null) { - * // do something with it. - * } - */ -import { AbiCoder, ABIDefinition, AbiItem, Address, Connection } from '@celo/connect' -import fetch from 'cross-fetch' -import { ContractMapping, mapFromPairs } from './base' - -const PROXY_IMPLEMENTATION_GETTERS = [ - '_getImplementation', - 'getImplementation', - '_implementation', - 'implementation', -] - -const PROXY_ABI: AbiItem[] = PROXY_IMPLEMENTATION_GETTERS.map((funcName) => ({ - constant: true, - inputs: [], - name: funcName, - outputs: [ - { - internalType: 'address', - name: 'implementation', - type: 'address', - }, - ], - payable: false, - stateMutability: 'view', - type: 'function', -})) - -/** - * MetadataResponse interface for the `metadata.json` file that the sourcify repo returns. - * All fields are optional because we don't really _know_ what we get from the API, thus - * we need to enforce the structure at runtime. - */ -export interface MetadataResponse { - output?: { - abi?: AbiItem[] - } - settings?: { - compilationTarget?: Record - } -} - -/** - * Wrapper class for a metadata.json response from sourcify. - * Because the response's true structure is unknown this wrapper implements - * light runtime verification. - */ -export class Metadata { - public abi: AbiItem[] | null = null - public contractName: string | null = null - public fnMapping: Map = new Map() - - private abiCoder: AbiCoder - private jsonInterfaceMethodToString: (item: AbiItem) => string - private address: Address - - constructor(connection: Connection, address: Address, response: any) { - this.abiCoder = connection.getAbiCoder() - - this.response = response as MetadataResponse - // XXX: For some reason this isn't exported as it should be - // @ts-ignore - this.jsonInterfaceMethodToString = connection.web3.utils._jsonInterfaceMethodToString - this.address = address - } - - set response(value: MetadataResponse) { - if ( - typeof value === 'object' && - typeof value.output === 'object' && - 'abi' in value.output && - Array.isArray(value.output.abi) && - value.output.abi.length > 0 - ) { - this.abi = value.output.abi - this.fnMapping = mapFromPairs( - (this.abi || []) - .filter((item) => item.type === 'function') - .map((item) => { - const signature = this.abiCoder.encodeFunctionSignature(item) - return { ...item, signature } - }) - .map((item) => [item.signature, item]) - ) - } - - if ( - typeof value === 'object' && - typeof value.settings === 'object' && - typeof value.settings.compilationTarget === 'object' && - Object.values(value.settings.compilationTarget).length > 0 - ) { - // XXX: Not sure when there are multiple compilationTargets and what should - // happen then but defaulting to this for now. - const contracts = Object.values(value.settings.compilationTarget) - this.contractName = contracts[0] - } - } - - /** - * Turn the ABI into a mapping of function selectors to ABI items. - */ - toContractMapping(): ContractMapping { - return { - details: { - name: this.contractName || 'Unknown', - address: this.address, - jsonInterface: this.abi || [], - isCore: false, - }, - fnMapping: this.fnMapping, - } - } - - /** - * Find the AbiItem for a given function selector - * @param selector the 4-byte selector of the function call - * @returns an AbiItem if found or null - */ - abiForSelector(selector: string): AbiItem | null { - return ( - this.abi?.find((item) => { - return item.type === 'function' && this.abiCoder.encodeFunctionSignature(item) === selector - }) || null - ) - } - - /** - * Find the AbiItem for methods that match the provided method name. - * The function can return more than one AbiItem if the query string - * provided doesn't contain arguments as there can be multiple - * definitions with different arguments. - * @param method name of the method to lookup - * @returns and array of AbiItems matching the query - */ - abiForMethod(query: string): AbiItem[] { - if (query.indexOf('(') >= 0) { - // Method is a full call signature with arguments - return ( - this.abi?.filter((item) => { - return item.type === 'function' && this.jsonInterfaceMethodToString(item) === query - }) || [] - ) - } else { - // Method is only method name - return ( - this.abi?.filter((item) => { - return item.type === 'function' && item.name === query - }) || [] - ) - } - } -} - -/** - * Fetch the sourcify response and instantiate a Metadata wrapper class around it. - * Try a full_match but fallback to partial_match when not strict. - * @param connection @celo/connect instance - * @param contract the address of the contract to query - * @param strict only allow full matches https://docs.sourcify.dev/docs/full-vs-partial-match/ - * @returns Metadata or null - */ -export async function fetchMetadata( - connection: Connection, - contract: Address, - strict = false -): Promise { - const fullMatchMetadata = await querySourcify(connection, 'full_match', contract) - if (fullMatchMetadata !== null) { - return fullMatchMetadata - } else if (strict) { - return null - } else { - return querySourcify(connection, 'partial_match', contract) - } -} - -/** - * Fetch the sourcify response and instantiate a Metadata wrapper class around it. - * @param connection @celo/connect instance - * @param matchType what type of match to query for https://docs.sourcify.dev/docs/full-vs-partial-match/ - * @param contract the address of the contract to query - * @returns Metadata or null - */ -async function querySourcify( - connection: Connection, - matchType: 'full_match' | 'partial_match', - contract: Address -): Promise { - const chainID = await connection.chainId() - const resp = await fetch( - `https://repo.sourcify.dev/contracts/${matchType}/${chainID}/${contract}/metadata.json` - ) - if (resp.ok) { - return new Metadata(connection, contract, await resp.json()) - } - return null -} - -/** - * Use heuristics to determine if the contract can be a proxy - * and extract the implementation. - * Available scenarios: - * - _getImplementation() exists - * - getImplementation() exists - * - _implementation() exists - * - implementation() exists - * @param connection @celo/connect instance - * @param contract the address of the contract to query - * @returns the implementation address or null - */ -export async function tryGetProxyImplementation( - connection: Connection, - contract: Address -): Promise
{ - const proxyContract = new connection.web3.eth.Contract(PROXY_ABI, contract) - for (const fn of PROXY_IMPLEMENTATION_GETTERS) { - try { - return await new Promise((resolve, reject) => { - proxyContract.methods[fn]().call().then(resolve).catch(reject) - }) - } catch { - continue - } - } -} diff --git a/packages/sdk/explorer/tsconfig.json b/packages/sdk/explorer/tsconfig.json deleted file mode 100644 index 25d848de425..00000000000 --- a/packages/sdk/explorer/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src/**/*", "types/**/*"] -} diff --git a/packages/sdk/explorer/tslint.json b/packages/sdk/explorer/tslint.json deleted file mode 100644 index 036f000683b..00000000000 --- a/packages/sdk/explorer/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "no-console": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/explorer/typedoc.json b/packages/sdk/explorer/typedoc.json deleted file mode 100644 index a963c26a9d8..00000000000 --- a/packages/sdk/explorer/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/explorer", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/governance/.gitignore b/packages/sdk/governance/.gitignore deleted file mode 100644 index 7fabe89f619..00000000000 --- a/packages/sdk/governance/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -lib/ -tmp/ -.tmp/ -.env \ No newline at end of file diff --git a/packages/sdk/governance/.npmignore b/packages/sdk/governance/.npmignore deleted file mode 100644 index 45e506bacd1..00000000000 --- a/packages/sdk/governance/.npmignore +++ /dev/null @@ -1,17 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils \ No newline at end of file diff --git a/packages/sdk/governance/CHANGELOG.md b/packages/sdk/governance/CHANGELOG.md deleted file mode 100644 index 59f5f3e2021..00000000000 --- a/packages/sdk/governance/CHANGELOG.md +++ /dev/null @@ -1,110 +0,0 @@ -# @celo/governance - -## 5.0.8 - -### Patch Changes - -- 041fc926f: Turn back on parallel registry updating for governance proposal views -- 041fc926f: Add textual feedback about parsing proposal -- 041fc926f: Fix Proposal View Regression when it includes proxy updates - -## 5.0.7-beta.2 - -### Patch Changes - -- 444db6de9: Turn back on parallel registry updating for governance proposal views -- Updated dependencies [9ab9d00eb] -- Updated dependencies [9ab9d00eb] - - @celo/contractkit@6.0.0-beta.1 - -## 5.0.7-beta.1 - -### Patch Changes - -- e4da5a7a8: Add textual feedback about parsing proposal - -## 5.0.7-beta.0 - -### Patch Changes - -- 86bbfddf1: Fix Proposal View Regression when it includes proxy updates -- Updated dependencies [1c9c844cf] - - @celo/contractkit@6.0.0-beta.0 - - @celo/explorer@5.0.7-beta.0 - -## 5.0.7 - -### Patch Changes - -- Updated dependencies [9ab9d00eb] -- Updated dependencies [1c9c844cf] -- Updated dependencies [9ab9d00eb] - - @celo/contractkit@6.0.0 - - @celo/explorer@5.0.7 - -## 5.0.6 - -### Patch Changes - -- Updated dependencies -- Updated dependencies [679ef0c60] -- Updated dependencies [32face3d8] -- Updated dependencies [97d5ccf43] -- Updated dependencies [87647b46b] - - @celo/contractkit@5.2.0 - - @celo/connect@5.1.1 - - @celo/base@6.0.0 - - @celo/explorer@5.0.6 - - @celo/utils@5.0.6 - -## 5.0.6-beta.0 - -### Patch Changes - -- Updated dependencies -- Updated dependencies [32face3d8] -- Updated dependencies [97d5ccf43] -- Updated dependencies [87647b46b] - - @celo/contractkit@5.2.0-beta.0 - - @celo/base@6.0.0-beta.0 - - @celo/explorer@5.0.6-beta.0 - - @celo/connect@5.1.1-beta.0 - - @celo/utils@5.0.6-beta.0 - -## 5.0.5 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- d48c68afc: Parallelize Fetching Proposal Info -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] - - @celo/contractkit@5.1.0 - - @celo/connect@5.1.0 - - @celo/explorer@5.0.5 - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.0.5-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- d48c68afc: Parallelize Fetching Proposal Info -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [d48c68afc] -- Updated dependencies [d48c68afc] - - @celo/contractkit@5.1.0-beta.0 - - @celo/connect@5.1.0-beta.0 - - @celo/explorer@5.0.5-beta.0 - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/governance/README.md b/packages/sdk/governance/README.md deleted file mode 100644 index 0e54f17297d..00000000000 --- a/packages/sdk/governance/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# @celo/governance - -Governance depends on @celo/contractkit and @celo/explorer. - -It provides functions to read and interact with Celo Governance Proposals (CGPs). - -Construct Celo Governance Proposals using either the `InteractiveProposalBuilder` class (for CLI apps) or `ProposalBuilder` (consumable via JS) - diff --git a/packages/sdk/governance/package.json b/packages/sdk/governance/package.json deleted file mode 100644 index 61cd870c9d1..00000000000 --- a/packages/sdk/governance/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "@celo/governance", - "version": "5.0.8", - "description": "Celo's governance proposals", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "author": "Celo", - "license": "Apache-2.0", - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/governance", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/governance", - "keywords": [ - "celo", - "blockchain" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand --passWithNoTests", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@celo/abis": "10.0.0", - "@celo/base": "^6.0.0", - "@celo/utils": "^5.0.6", - "@celo/connect": "^5.1.1", - "@celo/contractkit": "^6.0.0", - "@celo/explorer": "^5.0.7", - "@ethereumjs/util": "8.0.5", - "@types/debug": "^4.1.5", - "@types/inquirer": "^6.5.0", - "debug": "^4.1.1", - "bignumber.js": "^9.0.0", - "ethereum-cryptography": "1.2.0", - "inquirer": "^7.0.5" - }, - "engines": { - "node": ">=8.14.2" - } -} diff --git a/packages/sdk/governance/src/index.ts b/packages/sdk/governance/src/index.ts deleted file mode 100644 index 7f8c39ce00f..00000000000 --- a/packages/sdk/governance/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './proposals' diff --git a/packages/sdk/governance/src/proposals.ts b/packages/sdk/governance/src/proposals.ts deleted file mode 100644 index b3445699c20..00000000000 --- a/packages/sdk/governance/src/proposals.ts +++ /dev/null @@ -1,551 +0,0 @@ -import { ABI as GovernanceABI } from '@celo/abis/web3/Governance' -import { ABI as RegistryABI } from '@celo/abis/web3/Registry' -import { Address, isHexString, trimLeading0x } from '@celo/base/lib/address' -import { - AbiCoder, - ABIDefinition, - AbiItem, - CeloTransactionObject, - CeloTxObject, - CeloTxPending, - Contract, - getAbiByName, - parseDecodedParams, - signatureToAbiDefinition, -} from '@celo/connect' -import { - CeloContract, - ContractKit, - RegisteredContracts, - REGISTRY_CONTRACT_ADDRESS, -} from '@celo/contractkit' -import { stripProxy, suffixProxy } from '@celo/contractkit/lib/base' -// tslint:disable: ordered-imports -import { - getInitializeAbiOfImplementation, - SET_AND_INITIALIZE_IMPLEMENTATION_ABI, - SET_IMPLEMENTATION_ABI, - setImplementationOnProxy, -} from '@celo/contractkit/lib/proxy' -// tslint:enable: ordered-imports -import { valueToString } from '@celo/contractkit/lib/wrappers/BaseWrapper' -import { - hotfixToParams, - Proposal, - ProposalTransaction, -} from '@celo/contractkit/lib/wrappers/Governance' -import { newBlockExplorer } from '@celo/explorer' -import { fetchMetadata, tryGetProxyImplementation } from '@celo/explorer/lib/sourcify' -import { isValidAddress } from '@celo/utils/lib/address' -import { fromFixed } from '@celo/utils/lib/fixidity' -import { BigNumber } from 'bignumber.js' -import debugFactory from 'debug' -import { keccak256 } from 'ethereum-cryptography/keccak' -import { utf8ToBytes } from 'ethereum-cryptography/utils' -import * as inquirer from 'inquirer' - -const debug = debugFactory('governance:proposals') - -export const hotfixExecuteAbi = getAbiByName(GovernanceABI, 'executeHotfix') - -export const hotfixToEncodedParams = (kit: ContractKit, proposal: Proposal, salt: Buffer) => - kit.connection.getAbiCoder().encodeParameters( - hotfixExecuteAbi.inputs!.map((input) => input.type), - hotfixToParams(proposal, salt) - ) - -export const hotfixToHash = (kit: ContractKit, proposal: Proposal, salt: Buffer) => - keccak256(utf8ToBytes(hotfixToEncodedParams(kit, proposal, salt))) as Buffer - -/** - * JSON encoding of a proposal transaction. - * - * Example: - * ```json - * { - * "contract": "Election", - * "function": "setElectableValidators", - * "args": [ "1", "120" ], - * "value": "0" - * } - * ``` - */ -export interface ProposalTransactionJSON { - contract: CeloContract - address?: Address - function: string - args: any[] - params?: Record - value: string -} - -const isRegistryRepoint = (tx: ProposalTransactionJSON) => - tx.contract === 'Registry' && tx.function === 'setAddressFor' - -const isGovernanceConstitutionSetter = (tx: ProposalTransactionJSON) => - tx.contract === 'Governance' && tx.function === 'setConstitution' - -const registryRepointArgs = (tx: ProposalTransactionJSON) => { - if (!isRegistryRepoint(tx)) { - throw new Error(`Proposal transaction not a registry repoint:\n${JSON.stringify(tx, null, 2)}`) - } - return { - name: tx.args[0] as CeloContract, - address: tx.args[1] as string, - } -} - -const setAddressAbi = getAbiByName(RegistryABI, 'setAddressFor') - -const isRegistryRepointRaw = (abiCoder: AbiCoder, tx: ProposalTransaction) => - tx.to === REGISTRY_CONTRACT_ADDRESS && - tx.input.startsWith(abiCoder.encodeFunctionSignature(setAddressAbi)) - -const registryRepointRawArgs = (abiCoder: AbiCoder, tx: ProposalTransaction) => { - if (!isRegistryRepointRaw(abiCoder, tx)) { - throw new Error(`Proposal transaction not a registry repoint:\n${JSON.stringify(tx, null, 2)}`) - } - const params = abiCoder.decodeParameters(setAddressAbi.inputs!, trimLeading0x(tx.input).slice(8)) - return { - name: params.identifier as CeloContract, - address: params.addr, - } -} - -const isProxySetAndInitFunction = (tx: ProposalTransactionJSON) => - tx.function === SET_AND_INITIALIZE_IMPLEMENTATION_ABI.name! - -const isProxySetFunction = (tx: ProposalTransactionJSON) => - tx.function === SET_IMPLEMENTATION_ABI.name! - -/** - * Convert a compiled proposal to a human-readable JSON form using network information. - * @param kit Contract kit instance used to resolve addresses to contract names. - * @param proposal A constructed proposal object. - * @param registryAdditions Registry remappings prior to parsing the proposal as a map of name to corresponding contract address. - * @returns The JSON encoding of the proposal. - */ -export const proposalToJSON = async ( - kit: ContractKit, - proposal: Proposal, - registryAdditions?: RegistryAdditions -) => { - const blockExplorer = await newBlockExplorer(kit) - - const updateRegistryMapping = async (name: CeloContract, address: Address) => { - debug(`updating registry to reflect ${name} => ${address}`) - // this just sets the mapping in memory not anywhere like on chain or on a server - await blockExplorer.updateContractDetailsMapping(stripProxy(name), address) - } - if (registryAdditions) { - await Promise.all( - Object.keys(registryAdditions).map(async (nameStr) => { - const name = nameStr as CeloContract - if (CeloContract[name]) { - await updateRegistryMapping(name, registryAdditions[name]) - } else { - debug(`Name ${nameStr} in registry additions not a CeloContract`) - } - }) - ) - } - const abiCoder = kit.connection.getAbiCoder() - - const proposalJson: ProposalTransactionJSON[] = [] - - for (const tx of proposal) { - const parsedTx = await blockExplorer.tryParseTx(tx as CeloTxPending) - if (parsedTx == null) { - throw new Error(`Unable to parse ${JSON.stringify(tx)} with block explorer`) - } - if (isRegistryRepointRaw(abiCoder, tx) && parsedTx.callDetails.isCoreContract) { - const args = registryRepointRawArgs(abiCoder, tx) - await updateRegistryMapping(args.name, args.address) - } - - const jsonTx: ProposalTransactionJSON = { - contract: parsedTx.callDetails.contract as CeloContract, - address: parsedTx.callDetails.contractAddress, - function: parsedTx.callDetails.function, - args: parsedTx.callDetails.argList, - params: parsedTx.callDetails.paramMap, - value: parsedTx.tx.value, - } - - if (isProxySetFunction(jsonTx)) { - jsonTx.contract = suffixProxy(jsonTx.contract) - await blockExplorer.setProxyOverride(tx.to!, jsonTx.args[0]) - } else if (isProxySetAndInitFunction(jsonTx)) { - await blockExplorer.setProxyOverride(tx.to!, jsonTx.args[0]) - let initAbi - if (parsedTx.callDetails.isCoreContract) { - jsonTx.contract = suffixProxy(jsonTx.contract) - initAbi = getInitializeAbiOfImplementation(jsonTx.contract as any) - } else { - const implAddress = jsonTx.args[0] - const metadata = await fetchMetadata(kit.connection, implAddress) - if (metadata && metadata.abi) { - initAbi = metadata?.abiForMethod('initialize')[0] - } - } - - if (initAbi !== undefined) { - // Transform delegate call initialize args into a readable params map - // 8 bytes for function sig - const initSig = trimLeading0x(jsonTx.args[1]).slice(0, 8) - const initArgs = trimLeading0x(jsonTx.args[1]).slice(8) - - const { params: initParams } = parseDecodedParams( - kit.connection.getAbiCoder().decodeParameters(initAbi.inputs!, initArgs) - ) - jsonTx.params![`initialize@${initSig}`] = initParams - } - } else if (isGovernanceConstitutionSetter(jsonTx)) { - const [address, functionId, threshold] = jsonTx.args - const contractMapping = await blockExplorer.getContractMappingWithSelector( - address, - functionId - ) - if (contractMapping === undefined) { - throw new Error( - `Governance.setConstitution targets unknown address ${address} and function id ${functionId}` - ) - } - jsonTx.params![`setConstitution[${address}][${functionId}]`] = { - contract: contractMapping.details.name, - method: contractMapping.fnMapping.get(functionId)?.name, - threshold: fromFixed(new BigNumber(threshold)), - } - } - console.info('.') - proposalJson.push(jsonTx) - } - - return proposalJson -} - -type ProposalTxParams = Pick -interface RegistryAdditions { - [contractName: string]: Address -} - -/** - * Builder class to construct proposals from JSON or transaction objects. - */ -export class ProposalBuilder { - externalCallProxyRepoint: Map = new Map() - - constructor( - private readonly kit: ContractKit, - private readonly builders: Array<() => Promise> = [], - public readonly registryAdditions: RegistryAdditions = {} - ) {} - - /** - * Build calls all of the added build steps and returns the final proposal. - * @returns A constructed Proposal object (i.e. a list of ProposalTransaction) - */ - build = async () => { - const ret = [] - for (const builder of this.builders) { - ret.push(await builder()) - } - return ret - } - - /** - * Converts a Web3 transaction into a proposal transaction object. - * @param tx A Web3 transaction object to convert. - * @param params Parameters for how the transaction should be executed. - */ - fromWeb3tx = (tx: CeloTxObject, params: ProposalTxParams): ProposalTransaction => ({ - value: params.value, - to: params.to, - input: tx.encodeABI(), - }) - - /** - * Adds a transaction to set the implementation on a proxy to the given address. - * @param contract Celo contract name of the proxy which should have its implementation set. - * @param newImplementationAddress Address of the new contract implementation. - */ - addProxyRepointingTx = (contract: CeloContract, newImplementationAddress: string) => { - this.builders.push(async () => { - const proxy = await this.kit._web3Contracts.getContract(contract) - return this.fromWeb3tx( - setImplementationOnProxy(newImplementationAddress, this.kit.connection.web3), - { - to: proxy.options.address, - value: '0', - } - ) - }) - } - - /** - * Adds a Web3 transaction to the list for proposal construction. - * @param tx A Web3 transaction object to add to the proposal. - * @param params Parameters for how the transaction should be executed. - */ - addWeb3Tx = (tx: CeloTxObject, params: ProposalTxParams) => - this.builders.push(async () => this.fromWeb3tx(tx, params)) - - /** - * Adds a Celo transaction to the list for proposal construction. - * @param tx A Celo transaction object to add to the proposal. - * @param params Optional parameters for how the transaction should be executed. - */ - addTx(tx: CeloTransactionObject, params: Partial = {}) { - const to = params.to ?? tx.defaultParams?.to - const value = params.value ?? tx.defaultParams?.value - if (!to || !value) { - throw new Error("Transaction parameters 'to' and/or 'value' not provided") - } - // TODO fix type of value - this.addWeb3Tx(tx.txo, { to, value: valueToString(value.toString()) }) - } - - setRegistryAddition = (contract: CeloContract, address: string) => - (this.registryAdditions[stripProxy(contract)] = address) - - getRegistryAddition = (contract: CeloContract): string | undefined => - this.registryAdditions[stripProxy(contract)] - - isRegistryContract = (contract: CeloContract) => - RegisteredContracts.includes(stripProxy(contract)) || - this.getRegistryAddition(contract) !== undefined - - /* - * @deprecated - use isRegistryContract - */ - isRegistered = this.isRegistryContract - - lookupExternalMethodABI = async ( - address: string, - tx: ProposalTransactionJSON - ): Promise => { - const abiCoder = this.kit.connection.getAbiCoder() - const metadata = await fetchMetadata(this.kit.connection, address) - const potentialABIs = metadata?.abiForMethod(tx.function) ?? [] - return ( - potentialABIs.find((abi) => { - try { - abiCoder.encodeFunctionCall(abi, tx.args) - return true - } catch { - return false - } - }) || null - ) - } - - buildCallToExternalContract = async ( - tx: ProposalTransactionJSON - ): Promise => { - if (!tx.address || !isValidAddress(tx.address)) { - throw new Error(`${tx.contract} is not a core celo contract so address must be specified`) - } - - if (tx.function === '') { - return { input: '', to: tx.address, value: tx.value } - } - - let methodABI: AbiItem | null = await this.lookupExternalMethodABI(tx.address, tx) - if (methodABI === null) { - const proxyImpl = this.externalCallProxyRepoint.has(tx.address) - ? this.externalCallProxyRepoint.get(tx.address) - : await tryGetProxyImplementation(this.kit.connection, tx.address) - - if (proxyImpl) { - methodABI = await this.lookupExternalMethodABI(proxyImpl, tx) - } - } - - if (methodABI === null) { - methodABI = signatureToAbiDefinition(tx.function) - } - - const input = this.kit.connection.getAbiCoder().encodeFunctionCall(methodABI, tx.args) - return { input, to: tx.address, value: tx.value } - } - - /* - * @deprecated use buildCallToExternalContract - * - */ - buildFunctionCallToExternalContract = this.buildCallToExternalContract - - buildCallToCoreContract = async (tx: ProposalTransactionJSON): Promise => { - // Account for canonical registry addresses from current proposal - const address = - this.getRegistryAddition(tx.contract) ?? (await this.kit.registry.addressFor(tx.contract)) - - if (tx.address && address !== tx.address) { - throw new Error(`Address mismatch for ${tx.contract}: ${address} !== ${tx.address}`) - } - - if (tx.function === SET_AND_INITIALIZE_IMPLEMENTATION_ABI.name && Array.isArray(tx.args[1])) { - // Transform array of initialize arguments (if provided) into delegate call data - tx.args[1] = this.kit.connection - .getAbiCoder() - .encodeFunctionCall(getInitializeAbiOfImplementation(tx.contract as any), tx.args[1]) - } - - const contract = await this.kit._web3Contracts.getContract(tx.contract, address) - const methodName = tx.function - const method = (contract.methods as Contract['methods'])[methodName] - if (!method) { - throw new Error(`Method ${methodName} not found on ${tx.contract}`) - } - const txo = method(...tx.args) - if (!txo) { - throw new Error(`Arguments ${tx.args} did not match ${methodName} signature`) - } - - return this.fromWeb3tx(txo, { to: address, value: tx.value }) - } - - fromJsonTx = async (tx: ProposalTransactionJSON): Promise => { - if (isRegistryRepoint(tx)) { - // Update canonical registry addresses - const args = registryRepointArgs(tx) - this.setRegistryAddition(args.name, args.address) - } - - if (isProxySetAndInitFunction(tx) || isProxySetFunction(tx)) { - console.log(tx.address + ' is a proxy, repointing to ' + tx.args[0]) - this.externalCallProxyRepoint.set(tx.address || tx.contract, tx.args[0] as string) - } - - const strategies = [this.buildCallToCoreContract, this.buildCallToExternalContract] - - for (const strategy of strategies) { - try { - return await strategy(tx) - } catch (e) { - debug("Couldn't build transaction with strategy %s: %O", strategy.name, e) - } - } - - throw new Error(`Couldn't build call for transaction: ${JSON.stringify(tx)}`) - } - - addJsonTx = (tx: ProposalTransactionJSON) => this.builders.push(async () => this.fromJsonTx(tx)) -} - -const DONE_CHOICE = '✔ done' - -export class InteractiveProposalBuilder { - constructor(private readonly builder: ProposalBuilder) {} - - async outputTransactions() { - const transactionList = this.builder.build() - console.log(JSON.stringify(transactionList, null, 2)) - } - - async promptTransactions() { - const transactions: ProposalTransactionJSON[] = [] - while (true) { - console.log(`Transaction #${transactions.length + 1}:`) - - // prompt for contract - const contractPromptName = 'Celo Contract' - const contractAnswer = await inquirer.prompt({ - name: contractPromptName, - type: 'list', - choices: [DONE_CHOICE, ...RegisteredContracts], - }) - - const choice = contractAnswer[contractPromptName] - if (choice === DONE_CHOICE) { - break - } - - const contractName = choice as CeloContract - const contractABI = require('@celo/abis/web3/' + contractName).ABI as ABIDefinition[] - - const txMethods = contractABI.filter( - (def) => def.type === 'function' && def.stateMutability !== 'view' - ) - const txMethodNames = txMethods.map((def) => def.name!) - - // prompt for function - const functionPromptName = contractName + ' Function' - const functionAnswer = await inquirer.prompt({ - name: functionPromptName, - type: 'list', - choices: txMethodNames, - }) - const functionName = functionAnswer[functionPromptName] as string - const idx = txMethodNames.findIndex((m) => m === functionName) - const txDefinition = txMethods[idx] - - // prompt individually for each argument - const args = [] - for (const functionInput of txDefinition.inputs!) { - const inputAnswer = await inquirer.prompt({ - name: functionInput.name, - type: 'input', - validate: async (input: string) => { - switch (functionInput.type) { - case 'uint256': - try { - // tslint:disable-next-line: no-unused-expression - new BigNumber(input) - return true - } catch (e) { - return false - } - case 'boolean': - return input === 'true' || input === 'false' - case 'address': - return isValidAddress(input) - case 'bytes': - return isHexString(input) - default: - return true - } - }, - }) - - // @ts-ignore - const answer: string = inputAnswer[functionInput.name] - // transformedValue may not be in scientific notation - const transformedValue = - functionInput.type === 'uint256' ? new BigNumber(answer).toString(10) : answer - args.push(transformedValue) - } - - // prompt for value only when tx is payable - let value: string - if (txDefinition.payable) { - const valuePromptName = 'Value' - const valueAnswer = await inquirer.prompt({ - name: valuePromptName, - type: 'input', - }) - value = valueAnswer[valuePromptName] - } else { - value = '0' - } - - const tx: ProposalTransactionJSON = { - contract: contractName, - function: functionName, - args, - value, - } - - try { - // use fromJsonTx as well-formed tx validation - await this.builder.fromJsonTx(tx) - transactions.push(tx) - } catch (error) { - console.error(error) - console.error('Please retry forming this transaction') - } - } - - return transactions - } -} diff --git a/packages/sdk/governance/tsconfig.json b/packages/sdk/governance/tsconfig.json deleted file mode 100644 index 0d7e3ffd850..00000000000 --- a/packages/sdk/governance/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "moduleResolution": "node16", - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src/**/*", "types/**/*"] -} diff --git a/packages/sdk/governance/tslint.json b/packages/sdk/governance/tslint.json deleted file mode 100644 index 036f000683b..00000000000 --- a/packages/sdk/governance/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "no-console": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/governance/typedoc.json b/packages/sdk/governance/typedoc.json deleted file mode 100644 index 02eff0adc00..00000000000 --- a/packages/sdk/governance/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/generated/*.ts", "**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/governance", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/keystores/.gitignore b/packages/sdk/keystores/.gitignore deleted file mode 100644 index cd91bda02d9..00000000000 --- a/packages/sdk/keystores/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -lib/ -test-keystore-dir/ diff --git a/packages/sdk/keystores/.npmignore b/packages/sdk/keystores/.npmignore deleted file mode 100644 index d8d8e42b865..00000000000 --- a/packages/sdk/keystores/.npmignore +++ /dev/null @@ -1,24 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/keystores/CHANGELOG.md b/packages/sdk/keystores/CHANGELOG.md deleted file mode 100644 index ceae6a0fa36..00000000000 --- a/packages/sdk/keystores/CHANGELOG.md +++ /dev/null @@ -1,35 +0,0 @@ -# @celo/keystores - -## 5.0.6 - -### Patch Changes - -- @celo/utils@5.0.6 -- @celo/wallet-local@5.1.1 - -## 5.0.6-beta.0 - -### Patch Changes - -- @celo/utils@5.0.6-beta.0 -- @celo/wallet-local@5.1.1-beta.0 - -## 5.0.5 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/wallet-local@5.1.0 - - @celo/utils@5.0.5 - -## 5.0.5-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/wallet-local@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 diff --git a/packages/sdk/keystores/README.md b/packages/sdk/keystores/README.md deleted file mode 100644 index 132a40f350e..00000000000 --- a/packages/sdk/keystores/README.md +++ /dev/null @@ -1,3 +0,0 @@ - - -# @celo/keystores \ No newline at end of file diff --git a/packages/sdk/keystores/jest.config.js b/packages/sdk/keystores/jest.config.js deleted file mode 100644 index 2681a75d5a6..00000000000 --- a/packages/sdk/keystores/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/keystores/package.json b/packages/sdk/keystores/package.json deleted file mode 100644 index 4ff78072d06..00000000000 --- a/packages/sdk/keystores/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@celo/keystores", - "version": "5.0.6", - "description": "keystore implementation", - "author": "Celo", - "license": "Apache-2.0", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/keystores", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/keystores", - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@celo/utils": "^5.0.6", - "@celo/wallet-local": "^5.1.1", - "ethereumjs-wallet": "^1.0.1" - }, - "devDependencies": { - "rimraf": "3.0.2", - "@types/rimraf": "3.0.2" - }, - "engines": { - "node": ">=10" - } -} \ No newline at end of file diff --git a/packages/sdk/keystores/src/file-keystore.test.ts b/packages/sdk/keystores/src/file-keystore.test.ts deleted file mode 100644 index a1d9a95624f..00000000000 --- a/packages/sdk/keystores/src/file-keystore.test.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { trimLeading0x } from '@celo/utils/lib/address' -import { mkdirSync, readdirSync, readFileSync, writeFileSync } from 'fs' -import path from 'path' -import rimraf from 'rimraf' -import { FileKeystore } from './file-keystore' -import { ADDRESS1, GETH_GEN_KEYSTORE1, KEYSTORE_NAME1, PASSPHRASE1, PK1 } from './test-constants' - -jest.setTimeout(20000) - -describe('FileKeystore tests', () => { - const parentWorkdir = path.join(__dirname, 'wallet-keystore-workdir') - let testWorkdir: string - - beforeAll(() => { - mkdirSync(parentWorkdir, { recursive: true }) - }) - - beforeEach(() => { - testWorkdir = path.join(parentWorkdir, `test-${Math.random().toString(36).substring(2, 7)}`) - mkdirSync(testWorkdir) - }) - - afterAll((done) => { - rimraf(parentWorkdir, () => { - done() - }) - }) - it('initializes keystore, imports key into keystore file, and deletes', async () => { - const keystore = new FileKeystore(testWorkdir) - expect(readdirSync(testWorkdir)).toEqual(['keystore']) - const keystorePath = path.join(testWorkdir, 'keystore') - expect(readdirSync(keystorePath).length).toBe(0) - await keystore.importPrivateKey(PK1, PASSPHRASE1) - const keystoreFiles = readdirSync(keystorePath) - expect(keystoreFiles.length).toBe(1) - const keystoreName = await keystore.getKeystoreName(ADDRESS1) - expect(readFileSync(path.join(keystorePath, keystoreFiles[0])).toString()).toEqual( - keystore.getRawKeystore(keystoreName) - ) - keystore.removeKeystore(keystoreName) - expect(readdirSync(keystorePath).length).toBe(0) - }) - - it('reads key from file in existing keystore', async () => { - const keystorePath = path.join(testWorkdir, 'keystore') - mkdirSync(keystorePath) - writeFileSync(path.join(keystorePath, KEYSTORE_NAME1), GETH_GEN_KEYSTORE1) - const keystore = new FileKeystore(testWorkdir) - expect(await keystore.getAllKeystoreNames()).toEqual([KEYSTORE_NAME1]) - expect(await keystore.listKeystoreAddresses()).toEqual([ADDRESS1]) - expect(trimLeading0x(await keystore.getPrivateKey(ADDRESS1, PASSPHRASE1))).toEqual(PK1) - }) -}) diff --git a/packages/sdk/keystores/src/file-keystore.ts b/packages/sdk/keystores/src/file-keystore.ts deleted file mode 100644 index 08eb4dbac35..00000000000 --- a/packages/sdk/keystores/src/file-keystore.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { mkdirSync, promises as fsPromises, readFileSync, unlinkSync, writeFileSync } from 'fs' -import path from 'path' -import { KeystoreBase } from './keystore-base' - -export class FileKeystore extends KeystoreBase { - /** - * Implements keystore as a directory on disk - * with files for keystore entries - */ - private _keystoreDir: string - - /** - * Creates (but does not overwrite existing) directory - * for containing keystore entries. - * @param keystoreDir Path to directory where keystore will be saved - */ - constructor(keystoreDir: string) { - super() - this._keystoreDir = path.join(keystoreDir, 'keystore') - // Does not overwrite existing directories - mkdirSync(this._keystoreDir, { recursive: true }) - } - - /** - * @returns List of file names (keystore entries) in the keystore - */ - async getAllKeystoreNames(): Promise { - return fsPromises.readdir(this._keystoreDir) - } - - /** - * Saves keystore entries as a file in the keystore directory - * @param keystoreName File name of keystore entry - * @param keystore V3Keystore string entry - */ - persistKeystore(keystoreName: string, keystore: string) { - writeFileSync(path.join(this._keystoreDir, keystoreName), keystore) - } - - /** - * Gets contents of keystore entry file - * @param keystoreName File name of keystore entry - * @returns V3Keystore string entry - */ - getRawKeystore(keystoreName: string): string { - return readFileSync(path.join(this._keystoreDir, keystoreName)).toString() - } - - /** - * Deletes file keystore entry from directory - * @param keystoreName File name of keystore entry to be removed - */ - removeKeystore(keystoreName: string) { - return unlinkSync(path.join(this._keystoreDir, keystoreName)) - } -} diff --git a/packages/sdk/keystores/src/index.ts b/packages/sdk/keystores/src/index.ts deleted file mode 100644 index 9c1467886b6..00000000000 --- a/packages/sdk/keystores/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './file-keystore' -export * from './inmemory-keystore' -export * from './keystore-base' -export * from './keystore-wallet-wrapper' diff --git a/packages/sdk/keystores/src/inmemory-keystore.ts b/packages/sdk/keystores/src/inmemory-keystore.ts deleted file mode 100644 index 5fa6a41b271..00000000000 --- a/packages/sdk/keystores/src/inmemory-keystore.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { KeystoreBase } from './keystore-base' - -export class InMemoryKeystore extends KeystoreBase { - /** - * Used for mocking keystore operations in unit tests - */ - private _storage: Record = {} - - // Implements required abstract class methods - persistKeystore(keystoreName: string, keystore: string) { - this._storage[keystoreName] = keystore - } - - getRawKeystore(keystoreName: string): string { - return this._storage[keystoreName] - } - - async getAllKeystoreNames(): Promise { - return Object.keys(this._storage) - } - - removeKeystore(keystoreName: string) { - delete this._storage[keystoreName] - } -} diff --git a/packages/sdk/keystores/src/keystore-base.test.ts b/packages/sdk/keystores/src/keystore-base.test.ts deleted file mode 100644 index e4f7bc77563..00000000000 --- a/packages/sdk/keystores/src/keystore-base.test.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { privateKeyToAddress, trimLeading0x } from '@celo/utils/lib/address' -import { InMemoryKeystore } from './inmemory-keystore' -import { ErrorMessages } from './keystore-base' -import { - ADDRESS1, - ADDRESS2, - GETH_GEN_KEYSTORE1, - GETH_GEN_KEYSTORE2, - KEYSTORE_NAME1, - KEYSTORE_NAME2, - PASSPHRASE1, - PASSPHRASE2, - PK1, -} from './test-constants' - -jest.setTimeout(60000) - -describe('KeystoreBase functionality via InMemoryKeystore (mock)', () => { - let keystore: InMemoryKeystore - beforeEach(() => { - keystore = new InMemoryKeystore() - }) - - describe('checks with an empty keystore', () => { - it('lists no addresses', async () => { - expect(await keystore.listKeystoreAddresses()).toEqual([]) - }) - it('imports keystore (can decrypt, can list addresses)', async () => { - await keystore.importPrivateKey(PK1, PASSPHRASE1) - expect(await keystore.listKeystoreAddresses()).toEqual([ADDRESS1]) - expect(trimLeading0x(await keystore.getPrivateKey(ADDRESS1, PASSPHRASE1))).toEqual(PK1) - }) - it('gets empty address map', async () => { - expect(await keystore.getAddressMap()).toEqual({}) - }) - it('fails when address is not in the keystore', async () => { - await expect(keystore.getPrivateKey(ADDRESS1, PK1)).rejects.toThrow( - ErrorMessages.NO_MATCHING_ENTRY - ) - }) - }) - - describe('checks with a populated keystore', () => { - beforeEach(() => { - keystore.persistKeystore(KEYSTORE_NAME1, GETH_GEN_KEYSTORE1) - }) - - it('decrypts and returns raw private key from keystore blob', async () => { - expect(trimLeading0x(await keystore.getPrivateKey(ADDRESS1, PASSPHRASE1))).toBe(PK1) - }) - - it('decrypts when non-normalized address is passed in', async () => { - expect( - trimLeading0x(await keystore.getPrivateKey(privateKeyToAddress(PK1), PASSPHRASE1)) - ).toBe(PK1) - }) - - it('does not decrypt keystore with incorrect passphrase', async () => { - await expect(keystore.getPrivateKey(ADDRESS1, PASSPHRASE1 + '!')).rejects.toThrow( - 'Key derivation failed - possibly wrong passphrase' - ) - }) - - it('gets keystore name from address', async () => { - expect(await keystore.getKeystoreName(ADDRESS1)).toBe(KEYSTORE_NAME1) - }) - - it('changes keystore passphrase successfully', async () => { - await keystore.changeKeystorePassphrase(ADDRESS1, PASSPHRASE1, PASSPHRASE2) - await expect(keystore.getPrivateKey(ADDRESS1, PASSPHRASE1)).rejects.toThrow() - expect(trimLeading0x(await keystore.getPrivateKey(ADDRESS1, PASSPHRASE2))).toBe(PK1) - }) - - it('does not import same private key twice', async () => { - await expect(keystore.importPrivateKey(PK1, PASSPHRASE2)).rejects.toThrow( - ErrorMessages.KEYSTORE_ENTRY_EXISTS - ) - }) - - it('lists addresses', async () => { - expect(await keystore.listKeystoreAddresses()).toEqual([ADDRESS1]) - }) - - it('deletes keystore', async () => { - await keystore.deleteKeystore(ADDRESS1) - expect(await keystore.listKeystoreAddresses()).toEqual([]) - }) - - it('maps address to keystore name', async () => { - keystore.persistKeystore(KEYSTORE_NAME2, GETH_GEN_KEYSTORE2) - const expectedMap: Record = {} - expectedMap[ADDRESS1] = KEYSTORE_NAME1 - expectedMap[ADDRESS2] = KEYSTORE_NAME2 - expect(await keystore.getAddressMap()).toEqual(expectedMap) - }) - }) -}) diff --git a/packages/sdk/keystores/src/keystore-base.ts b/packages/sdk/keystores/src/keystore-base.ts deleted file mode 100644 index 6e0fc44126e..00000000000 --- a/packages/sdk/keystores/src/keystore-base.ts +++ /dev/null @@ -1,148 +0,0 @@ -import { - ensureLeading0x, - normalizeAddressWith0x, - privateKeyToAddress, -} from '@celo/utils/lib/address' -import Wallet from 'ethereumjs-wallet' - -export enum ErrorMessages { - KEYSTORE_ENTRY_EXISTS = 'Existing encrypted keystore for address', - NO_MATCHING_ENTRY = 'Keystore entry not found for address', - UNKNOWN_STRUCTURE = 'Unexpected keystore entry structure', -} - -// TODO refine language around keystore entry / keystore / keystore container ...? -export abstract class KeystoreBase { - /** - * Handles encrytion and transformation between private keys <-> V3Keystore strings - * See https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition - * for more details on conventions around Web3 Secret Storage. - */ - - /** - * Saves encrypted keystore entry (i.e. to disk, database, ...). Must be implemented by subclass. - * @param keystoreName Name of keystore entry to be saved - * @param keystore encrypted V3Keystore string entry - */ - abstract persistKeystore(keystoreName: string, keystore: string): void - - /** - * Returns raw encrypted keystore entry string by name - * @param keystoreName Name of keystore entry to retrieve - */ - abstract getRawKeystore(keystoreName: string): string - - /** - * Gets a list of the names of each entry in the keystore - */ - abstract getAllKeystoreNames(): Promise - - /** - * Removes keystore entry from keystore permanently - * @param keystoreName Name of keystore entry to remove - */ - abstract removeKeystore(keystoreName: string): void - - /** - * Gets the address corresponding to a particular keystore entry - * @param keystoreName Name of keystore entry belonging to the address - * @returns Account address - */ - getAddress(keystoreName: string): string { - const rawKeystore = this.getRawKeystore(keystoreName) - try { - const address = JSON.parse(rawKeystore).address - return ensureLeading0x(address) - } catch (e) { - throw new Error(ErrorMessages.UNKNOWN_STRUCTURE) - } - } - /** - * Gets a list of all account addresses in the keystore - * @returns List of account address strings - */ - async listKeystoreAddresses(): Promise { - return Object.keys(await this.getAddressMap()) - } - - /** - * Maps account addresses to their respective keystore entries (names) - * @returns Record with account addresses as keys, keystore entry names as values - */ - async getAddressMap(): Promise> { - // Don't store this to minimize race conditions (file is deleted/added manually) - const addressToFile: Record = {} - ;(await this.getAllKeystoreNames()).forEach( - (file) => (addressToFile[this.getAddress(file)] = file) - ) - return addressToFile - } - - /** - * Encrypts and stores a private key as a new keystore entry - * @param privateKey Private key to encrypted - * @param passphrase Secret string to encrypt private key - */ - async importPrivateKey(privateKey: string, passphrase: string) { - // Duplicate entries for the same private key are not permitted - const address = normalizeAddressWith0x(privateKeyToAddress(privateKey)) - if ((await this.listKeystoreAddresses()).includes(address)) { - throw new Error(ErrorMessages.KEYSTORE_ENTRY_EXISTS) - } - - const key = Buffer.from(privateKey, 'hex') - const wallet = Wallet.fromPrivateKey(key) - const keystore = await wallet.toV3String(passphrase) - const keystoreName = wallet.getV3Filename(Date.now()) - - this.persistKeystore(keystoreName, keystore) - } - - /** - * Gets name of keystore entry corresponding to an address - * @param address Account address - * @returns Name of corresponding keystore entry - */ - async getKeystoreName(address: string): Promise { - const keystoreName = (await this.getAddressMap())[normalizeAddressWith0x(address)] - if (keystoreName === undefined) { - throw new Error(ErrorMessages.NO_MATCHING_ENTRY) - } - return keystoreName - } - - /** - * Gets decrypted (plaintext) private key for an account address - * @param address Account address - * @param passphrase Secret phrase used to encrypt the private key - * @returns - */ - async getPrivateKey(address: string, passphrase: string): Promise { - const rawKeystore = this.getRawKeystore(await this.getKeystoreName(address)) - // TODO do we want to trim leading 0x here? what is the best practice here? - return (await Wallet.fromV3(rawKeystore, passphrase)).getPrivateKeyString() - } - - /** - * Change secret phrase used to encrypt the private key of an address - * @param address Account address - * @param oldPassphrase Secret phrase used to encrypt the private key - * @param newPassphrase New secret phrase to re-encrypt the private key - */ - async changeKeystorePassphrase(address: string, oldPassphrase: string, newPassphrase: string) { - const keystoreName = await this.getKeystoreName(address) - const rawKeystore = this.getRawKeystore(keystoreName) - const newKeystore = await ( - await Wallet.fromV3(rawKeystore, oldPassphrase) - ).toV3String(newPassphrase) - this.persistKeystore(keystoreName, newKeystore) - } - - /** - * Permanently removes keystore entry from keystore - * @param address Account address of keystore to be deleted - */ - async deleteKeystore(address: string) { - this.removeKeystore(await this.getKeystoreName(address)) - } -} diff --git a/packages/sdk/keystores/src/keystore-wallet-wrapper.test.ts b/packages/sdk/keystores/src/keystore-wallet-wrapper.test.ts deleted file mode 100644 index 1ad717e24f1..00000000000 --- a/packages/sdk/keystores/src/keystore-wallet-wrapper.test.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { normalizeAddressWith0x, privateKeyToAddress } from '@celo/utils/lib/address' -import { InMemoryKeystore } from './inmemory-keystore' -import { KeystoreWalletWrapper } from './keystore-wallet-wrapper' - -const PASSPHRASE1 = 'test- passwøörd1!' -const PK1 = 'd72f6c0b0d7348a72eaa7d3c997bd49293bdc7d4bf79eba03e9f7ca9c5ac6b7f' -const GETH_GEN_KEYSTORE1 = `{"address":"8233d802bdc645d0d1b9b2e6face6e5825905081","blspublickey":"ed2ed9b2670458d01df329a4c750e7a6f89ec0e86676d4e093b2f32b4f3b603b6927b8dfe12e9fdf5c9f4bbbc504770052d816dbcaae90f4ef0af19333965b29f29b069c1f28eaa4bcaa62b27459855e4ad201aac245de05c3cb51dcab118080","crypto":{"cipher":"aes-128-ctr","ciphertext":"7b2ccdede461b9f7cc33fbbd7a9bfe23fdf455f3d4a8558cb10e86c5a4c5cc39","cipherparams":{"iv":"a78b8382da088a544edef093e922947b"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"2007752e0c72eed75a793cddba6a9e3c698b95a259002b32443d8c0430038505"},"mac":"e1599623f8957e538e17512e39693bf1a85fc4eab10fdb243c7d33fd18f9c766"},"id":"3b9465ac-eca1-4923-84e6-4624bd41ab0b","version":3}` -const KEYSTORE_NAME1 = 'PK1 keystore name' -const ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PK1)) - -jest.setTimeout(30000) - -describe('KeystoreWalletWrapper using InMemoryKeystore', () => { - let keystoreWalletWrapper: KeystoreWalletWrapper - - beforeEach(() => { - keystoreWalletWrapper = new KeystoreWalletWrapper(new InMemoryKeystore()) - }) - - describe('checks with an empty keystore', () => { - it('imports private key into keystore wallet', async () => { - await keystoreWalletWrapper.importPrivateKey(PK1, PASSPHRASE1) - expect(keystoreWalletWrapper.getLocalWallet().getAccounts()).toEqual([ADDRESS1]) - }) - }) - - describe('checks with a populated keystore', () => { - beforeEach(() => { - keystoreWalletWrapper.getKeystore().persistKeystore(KEYSTORE_NAME1, GETH_GEN_KEYSTORE1) - }) - - it('lists no accounts pre-unlock', async () => { - expect(keystoreWalletWrapper.getLocalWallet().getAccounts()).toEqual([]) - }) - - it('lists account post-unlock', async () => { - await keystoreWalletWrapper.unlockAccount(ADDRESS1, PASSPHRASE1) - expect(keystoreWalletWrapper.getLocalWallet().getAccounts()).toEqual([ADDRESS1]) - }) - }) -}) diff --git a/packages/sdk/keystores/src/keystore-wallet-wrapper.ts b/packages/sdk/keystores/src/keystore-wallet-wrapper.ts deleted file mode 100644 index f93b887465d..00000000000 --- a/packages/sdk/keystores/src/keystore-wallet-wrapper.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { LocalWallet } from '@celo/wallet-local' -import { KeystoreBase } from './keystore-base' - -/** - * Convenience wrapper of the LocalWallet to connect to a keystore - */ -export class KeystoreWalletWrapper { - private _keystore: KeystoreBase - private _localWallet: LocalWallet - - constructor(keystore: KeystoreBase) { - this._keystore = keystore - this._localWallet = new LocalWallet() - } - - async importPrivateKey(privateKey: string, passphrase: string) { - await this._keystore.importPrivateKey(privateKey, passphrase) - this._localWallet.addAccount(privateKey) - } - - getLocalWallet(): LocalWallet { - return this._localWallet - } - - getKeystore(): KeystoreBase { - return this._keystore - } - - async unlockAccount(address: string, passphrase: string) { - // Unlock and add account to internal LocalWallet - this._localWallet.addAccount(await this._keystore.getPrivateKey(address, passphrase)) - } - - async lockAccount(address: string) { - this._localWallet.removeAccount(address) - } -} - -// const testKeystoreWalletWrapper = new KeystoreWalletWrapper(new FileKeystore()) diff --git a/packages/sdk/keystores/src/test-constants.ts b/packages/sdk/keystores/src/test-constants.ts deleted file mode 100644 index 677769d5758..00000000000 --- a/packages/sdk/keystores/src/test-constants.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { normalizeAddressWith0x, privateKeyToAddress } from '@celo/utils/lib/address' - -export const PASSPHRASE1 = 'test- passwøörd1!' -export const PK1 = 'd72f6c0b0d7348a72eaa7d3c997bd49293bdc7d4bf79eba03e9f7ca9c5ac6b7f' -// Use a geth-generated keystore to ensure compatibility -export const GETH_GEN_KEYSTORE1 = `{"address":"8233d802bdc645d0d1b9b2e6face6e5825905081","blspublickey":"ed2ed9b2670458d01df329a4c750e7a6f89ec0e86676d4e093b2f32b4f3b603b6927b8dfe12e9fdf5c9f4bbbc504770052d816dbcaae90f4ef0af19333965b29f29b069c1f28eaa4bcaa62b27459855e4ad201aac245de05c3cb51dcab118080","crypto":{"cipher":"aes-128-ctr","ciphertext":"7b2ccdede461b9f7cc33fbbd7a9bfe23fdf455f3d4a8558cb10e86c5a4c5cc39","cipherparams":{"iv":"a78b8382da088a544edef093e922947b"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"2007752e0c72eed75a793cddba6a9e3c698b95a259002b32443d8c0430038505"},"mac":"e1599623f8957e538e17512e39693bf1a85fc4eab10fdb243c7d33fd18f9c766"},"id":"3b9465ac-eca1-4923-84e6-4624bd41ab0b","version":3}` -export const KEYSTORE_NAME1 = 'PK1 keystore name' -export const ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PK1)) -export const PASSPHRASE2 = 'test-password2 !!' -export const PK2 = 'bb6f3fa4a83b7b06e72e580a3b09df5dd6fb4fa745ee2b0d865413ad6299e64e' -export const KEYSTORE_NAME2 = 'PK2 keystore name' -export const GETH_GEN_KEYSTORE2 = `{"address":"b81a82696018fd9d8b43431966b60c31bdcdc2e8","blspublickey":"b9f862e2ced58bb2eef8ffde7020189ab2bb050603630eceec9b80c1636d98f8c3b9bd517d673937a0551c3a0698a00086bda4db1f0d859912a91988775ae388886013e7eb254d195871f9ced6643e288755da0b483ebe6dda448fea2eb75481","crypto":{"cipher":"aes-128-ctr","ciphertext":"6f3cd02b2d3d81b2bbf76743396c9c3c1685ddc6cfafbba34195ab03476831d3","cipherparams":{"iv":"af1f9853e0ff20ee5d495cf7d9461e1c"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"cf0446914e5d214f2a312c08ef24e7e3dd15e948d2ca67d59b3bb97903a96147"},"mac":"58348f6d843d28b3ac8cf40542d10da198016f28f132c32389ab56a945c858e1"},"id":"b224dac6-c089-4b47-8557-e04ae60b3506","version":3}` -export const ADDRESS2 = normalizeAddressWith0x(privateKeyToAddress(PK2)) diff --git a/packages/sdk/keystores/tsconfig.json b/packages/sdk/keystores/tsconfig.json deleted file mode 100644 index 25d848de425..00000000000 --- a/packages/sdk/keystores/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src/**/*", "types/**/*"] -} diff --git a/packages/sdk/keystores/tslint.json b/packages/sdk/keystores/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/keystores/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/keystores/typedoc.json b/packages/sdk/keystores/typedoc.json deleted file mode 100644 index a2af6adf2cf..00000000000 --- a/packages/sdk/keystores/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/keystores", - "gitRevision": "master", - "readme": "none" -} diff --git a/packages/sdk/network-utils/.gitignore b/packages/sdk/network-utils/.gitignore deleted file mode 100644 index 7fabe89f619..00000000000 --- a/packages/sdk/network-utils/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -lib/ -tmp/ -.tmp/ -.env \ No newline at end of file diff --git a/packages/sdk/network-utils/.npmignore b/packages/sdk/network-utils/.npmignore deleted file mode 100644 index 45e506bacd1..00000000000 --- a/packages/sdk/network-utils/.npmignore +++ /dev/null @@ -1,17 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils \ No newline at end of file diff --git a/packages/sdk/network-utils/CHANGELOG.md b/packages/sdk/network-utils/CHANGELOG.md deleted file mode 100644 index 413be434142..00000000000 --- a/packages/sdk/network-utils/CHANGELOG.md +++ /dev/null @@ -1,13 +0,0 @@ -# @celo/network-utils - -## 5.0.5 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other - -## 5.0.5-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other diff --git a/packages/sdk/network-utils/README.md b/packages/sdk/network-utils/README.md deleted file mode 100644 index 4b146d3a85a..00000000000 --- a/packages/sdk/network-utils/README.md +++ /dev/null @@ -1,4 +0,0 @@ - -# @celo/network-utils - - @celo/network-utils provides utilities for getting genesis block and static node information. diff --git a/packages/sdk/network-utils/jest.config.js b/packages/sdk/network-utils/jest.config.js deleted file mode 100644 index 31e6b5e7485..00000000000 --- a/packages/sdk/network-utils/jest.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], - setupFilesAfterEnv: ['@celo/dev-utils/lib/matchers', '/jestSetup.ts'], - verbose: true, -} diff --git a/packages/sdk/network-utils/jestSetup.ts b/packages/sdk/network-utils/jestSetup.ts deleted file mode 100644 index 3bc66344853..00000000000 --- a/packages/sdk/network-utils/jestSetup.ts +++ /dev/null @@ -1,5 +0,0 @@ -const fetchMockSandbox = require('fetch-mock').sandbox() -jest.mock('cross-fetch', () => fetchMockSandbox) - -// @ts-ignore -global.fetchMock = fetchMockSandbox diff --git a/packages/sdk/network-utils/package.json b/packages/sdk/network-utils/package.json deleted file mode 100644 index e3a15d8b62d..00000000000 --- a/packages/sdk/network-utils/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@celo/network-utils", - "version": "5.0.5", - "description": "Utilities for fetching static information about the Celo network", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "author": "Celo", - "license": "Apache-2.0", - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/network-utils", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/network-utils", - "keywords": [ - "celo", - "blockchain", - "contractkit" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@types/debug": "^4.1.5", - "cross-fetch": "3.0.6", - "debug": "^4.1.1" - }, - "devDependencies": { - "@celo/dev-utils": "0.0.1", - "fetch-mock": "9.10.4" - }, - "engines": { - "node": ">=8.13.0" - } -} \ No newline at end of file diff --git a/packages/sdk/network-utils/scripts/fetch_timezones.ts b/packages/sdk/network-utils/scripts/fetch_timezones.ts deleted file mode 100644 index 59d289d00f0..00000000000 --- a/packages/sdk/network-utils/scripts/fetch_timezones.ts +++ /dev/null @@ -1,97 +0,0 @@ -import fs from 'fs' -import 'isomorphic-fetch' -import path from 'path' -import { Timezone } from '../src/utils/timezone' - -const TZ_URL = 'https://data.iana.org/time-zones/tzdb/zone.tab' -const OUTPUT_PATH = path.normalize(path.join(__dirname, '..', 'src', 'utils', 'timezones.json')) - -// Parse a latitude coordinate as encoded in the zone.tab file. -function parseLatitude(lat: string): number { - const match = lat.match(/^([+-])(\d{2})(\d{2})(\d{2})?/) - if (!match) { - throw new Error(`Cannot parse ${lat} as latitude`) - } - const [sign, degrees, minutes, seconds] = match.slice(1) - return Number(sign + '1') * (Number(degrees) + Number(minutes) / 60 + Number(seconds ?? 0) / 60) -} - -// Parse a longitude coordinate as encoded in the zone.tab file. -function parseLongitude(lon: string): number { - const match = lon.match(/^([+-])(\d{3})(\d{2})(\d{2})?/) - if (!match) { - throw new Error(`Cannot parse ${lon} as longitude`) - } - const [sign, degrees, minutes, seconds] = match.slice(1) - return Number(sign + '1') * (Number(degrees) + Number(minutes) / 60 + Number(seconds ?? 0) / 60) -} - -async function main() { - console.info(`Fetching timzone table from ${TZ_URL}`) - const resp = await fetch(TZ_URL) - if (!resp.ok) { - throw new Error(`Got HTTP error code ${resp.status}: ${resp.statusText}`) - } - - const timestamp = resp.headers.get('Last-Modified') - if (timestamp) { - console.info(`Last modified ${timestamp}`) - } - - // Parse the text into a table. - const text = await resp.text() - const table = text - .split(/\r?\n/) - .filter((line) => !line.match(/^(#|\s*$)/)) - .map((line) => line.split('\t')) - - // Parse the table into a list of timezone objects. - const zones: Timezone[] = table.map((row) => { - const countryCodes = row[0].split(',') - if (!countryCodes) { - throw new Error(`Country codes undefined for timezone entry`) - } - - // Coordinates are in ISO 6709 sign-degrees-minutes-seconds format, - // either ±DDMM±DDDMM or ±DDMMSS±DDDMMSS, - const coordinates = row[1].match(/^([+-]\d{4,6})([+-]\d{5,7})$/)?.slice(1) - if (!coordinates) { - throw new Error(`Could not parse ${row[1]} as coordinates`) - } - const [latitude, longitude] = [parseLatitude(coordinates[0]), parseLongitude(coordinates[1])] - - const [name, comments] = row.slice(2) - if (!name) { - throw new Error(`Name undefined for timezone entry`) - } - - return { - countryCodes, - coordinates: { - latitude, - longitude, - }, - name, - comments, - } - }) - console.info(`Parsed ${zones.length} timezone entries`) - - // Produce a mapping of timezone names to objects. - const mapping: { [name: string]: Timezone } = {} - for (const zone of zones) { - mapping[zone.name] = zone - } - - console.info(`Writing output to ${OUTPUT_PATH}`) - fs.writeFileSync(OUTPUT_PATH, JSON.stringify(mapping)) -} - -main() - .then(() => { - process.exit(0) - }) - .catch((err) => { - console.error(err) - process.exit(1) - }) diff --git a/packages/sdk/network-utils/src/genesis-block-utils.test.ts b/packages/sdk/network-utils/src/genesis-block-utils.test.ts deleted file mode 100644 index 007820cfae1..00000000000 --- a/packages/sdk/network-utils/src/genesis-block-utils.test.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { GenesisBlockUtils } from './genesis-block-utils' - -const NETWORK_NAME = 'alfajores' -const ENDPOINT = `https://www.googleapis.com/storage/v1/b/genesis_blocks/o/${NETWORK_NAME}?alt=media` - -const mockGenesisBlock = { - config: { - homesteadBlock: 0, - eip150Block: 0, - eip150Hash: '0x0000000000000000000000000000000000000000000000000000000000000000', - eip155Block: 0, - eip158Block: 0, - byzantiumBlock: 0, - constantinopleBlock: 0, - petersburgBlock: 0, - istanbulBlock: 0, - chainId: 44787, - istanbul: { - policy: 2, - blockperiod: 5, - requesttimeout: 10000, - epoch: 17280, - lookbackwindow: 12, - }, - }, - nonce: '0x0', - timestamp: '0x5b843511', - gasLimit: '0x8000000', - extraData: - '0xecc833a7747eaa8327335e8e0c6b6d8aa3a38d0063591e43ce116ccf5c89753ef905bbf8d294456f41406b32c45d59e539e4bba3d7898c3584da94dd1f519f63423045f526b8c83edc0eb4ba6434a494050f34537f5b2a00b9b9c752cb8500a3fce3da7d94cda518f6b5a797c3ec45d37c65b83e0b0748edca94b4e92c94a2712e98c020a81868264bde52c188cb94ae1ec841923811219b98aceb1db297aade2f46f394621843731fe33418007c06ee48cfd71e0ea828d9942a43f97f8bf959e31f69a894ebd80a88572c855394ad682035be6ab6f06e478d2bdab0eab6477b460e9430d060f129817c4de5fbc1366d53e19f43c8c64ff903d4b86011877b768127c8eb0f122fbe69553bc9d142d27c06a85c6eeb7b8b457f511e50c33a57fcbc5fd6d1823f69a111f8010151a17f6a8798a25343f5403b1e6a595c7d9698af3db78b013d26a761fc201b3cf793be5f0a0a849b3f68a8bfa81e7001b860d882cd4cc09109928e9517644d5303610155978cf5e3b7ad6122daa19c3dab3da8c439bc763d6d3eef18a38ebb0d3200664b94fab11adbb3f44b963969763b590af45931c482396be88a185214c9c8690615aae5197e852bc1d04b3dbd03ab80b86051588d46ba8998d944a30cde93bfe946e774ef1f6fe2fb559a74ffebf60d1ad967b876a038c6e312d0c20752cbc8440012293b6ea417f32a163caedeaaae7aad3c1b31be1fe86c405924b1be7d0aaae6f3ba567ee907d0d4c00dce5091442380b8601f2becc31c1f0141e8c5768c5f07d02d1342c086c037cce70aaf3629b40ea017884a81163f58697b020b21fe39c440006970bc1f52b847d7262599ae92ee7db45ad38efe5612c8ed42d9db9380da0769bab713f5259b7c015998296bf02a0a01b860d02ec615b916bba4fe7e65a3d79e607aa27bb5a84b0c2f242e9d8f379512cf40051a43030e55aca965d91c905b656d006434d95b7034bfc2e5e2ef7384e8cd640efae740558216f6f9db24c6d1acf755746dfbb68c76961593741105725d5680b860d6e86d5e73db3b3a2c96c6caa1a7e153e17adb13fb541943a44bfa90beab38aa73ad453d918fea2ba57c0a67115d0401c56946d8894f346d796864e9344fd1439dd1345de762f85d7e18e311b35c3cbe492886ef8bc872b4aabfa23c2e38a901b8601cf59939da60cdb9aff09f76e6070a17fa21356ca7016390ef4444243e12ab7ed7a233d7ca48b0d17870ba015a4410014e5cac8d456e03ec2908d347627d5e9ecd496ce990d10900ddc529300eef3d037e48d79f03ad2b6bcd48affe2ddf2681b8601cfe8876c0b89ef15128bb27eb69e7939b4a888b0a81195d5fd1bbda748a29838274e652dcf857f4090bb85343055300ca3e75a980b100403d3b6d34f62c6a86bbd75203391c63dd405725c69241a828e6892f623ed5b35c8dc132b032061201b860a6fc71d63c5adedb7b30b9e0ba3d83debf86d12ba235c13584a9cbad410f082030427be4f8a9127889979c3eea58860031af128deece487df5aef9d999c8dc2fb51f308eb1ee229e6bbd6860138d4fcf4209eb7bec62ca70dd8643104003c200b8606b7adb5d01e3fd72ae2c4ff17e6620dc383431e0ebe06c9af5b94207f380287429043e7bbe417b82d0aed2e43dc7b8002bb52886773e4a2c23bf0ebfd401471e8da3cf3a0a7e0949d9ad4de38138a787a975993ba311525ce8be331cd60d670080b8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f86480b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f86480b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080', - difficulty: '0x1', - coinbase: '0x0000000000000000000000000000000000000000', - alloc: { - '456f41406B32c45D59E539e4BBA3D7898c3584dA': { - balance: '103010030000000000000000000', - }, - DD1F519F63423045F526b8c83edC0eB4BA6434a4: { - balance: '10011000000000000000000', - }, - '050f34537F5b2a00B9B9C752Cb8500a3fcE3DA7d': { - balance: '10011000000000000000000', - }, - Cda518F6b5a797C3EC45D37c65b83e0b0748eDca: { - balance: '10011000000000000000000', - }, - b4e92c94A2712e98c020A81868264bdE52C188Cb: { - balance: '10011000000000000000000', - }, - Ae1ec841923811219b98ACeB1db297AADE2F46F3: { - balance: '10011000000000000000000', - }, - '621843731fe33418007C06ee48CfD71e0ea828d9': { - balance: '10011000000000000000000', - }, - '2A43f97f8BF959E31F69A894ebD80A88572C8553': { - balance: '10011000000000000000000', - }, - AD682035bE6Ab6f06e478D2BDab0EAb6477B460E: { - balance: '10011000000000000000000', - }, - '30D060F129817c4DE5fBc1366d53e19f43c8c64f': { - balance: '10011000000000000000000', - }, - '22579CA45eE22E2E16dDF72D955D6cf4c767B0eF': { - balance: '10011000000000000000000', - }, - '1173C5A50bf025e8356823a068E396ccF2bE696C': { - balance: '10011000000000000000000', - }, - '40F71B525A96baa8d14Eaa7Bcd19929782659c64': { - balance: '10011000000000000000000', - }, - b923626C6f1d237252793FB2aA12BA21328C51BC: { - balance: '10011000000000000000000', - }, - B70f9ABf41F36B3ab60cc9aE1a85Ddda3C88D261: { - balance: '10011000000000000000000', - }, - d4369DB59eaDc4Cfa089c0a3c1004ceAb1b318D8: { - balance: '10011000000000000000000', - }, - '2fd430d3a96eadc38cc1B38b6685C5f52Cf7a083': { - balance: '10011000000000000000000', - }, - Fecc71C8f33Ca5952534fd346ADdeDC38DBb9cb7: { - balance: '10011000000000000000000', - }, - '0de78C89e7BF5060f28dd3f820C15C4A6A81AFB5': { - balance: '10011000000000000000000', - }, - '75411b92fcE120C1e7fd171b1c2bF802f2E3CF48': { - balance: '10011000000000000000000', - }, - '563433bD8357b06982Fe001df20B2b43393d21d2': { - balance: '10011000000000000000000', - }, - '79dfB9d2367E7921d4139D7841d24ED82F48907F': { - balance: '10011000000000000000000', - }, - '5809369FC5121a071eE67659a975e88ae40fBE3b': { - balance: '10011000000000000000000', - }, - '7517E54a456bcc6c5c695B5d9f97EBc05d29a824': { - balance: '10011000000000000000000', - }, - B0a1A5Ffcb34E6Fa278D2b40613f0AE1042d32f8: { - balance: '10011000000000000000000', - }, - EeE9f4DDf49976251E84182AbfD3300Ee58D12aa: { - balance: '10011000000000000000000', - }, - Eb5Fd57f87a4e1c7bAa53ec1c0d021bb1710B743: { - balance: '10011000000000000000000', - }, - B7Dd51bFb73c5753778e5Af56f1D9669BCe6777F: { - balance: '10011000000000000000000', - }, - '33C222BB13C63295AF32D6C91278AA34b573e776': { - balance: '10011000000000000000000', - }, - '83c58603bF72DA067D7f6238E7bF390d91B2f531': { - balance: '10011000000000000000000', - }, - '6651112198C0da05921355642a2B8dF1fA3Ede93': { - balance: '10011000000000000000000', - }, - '4EE72A98549eA7CF774C3E2E1b39fF166b4b68BE': { - balance: '10011000000000000000000', - }, - '840b32F30e1a3b2E8b9E6C0972eBa0148E22B847': { - balance: '100000000000000000000', - }, - '000000000000000000000000000000000000ce10': { - code: '0x60806040526004361061004a5760003560e01c806303386ba3146101e757806342404e0714610280578063bb913f41146102d7578063d29d44ee14610328578063f7e6af8014610379575b6000600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b9050600081549050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610136576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f20496d706c656d656e746174696f6e20736574000000000000000000000081525060200191505060405180910390fd5b61013f816103d0565b6101b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c696420636f6e74726163742061646472657373000000000000000081525060200191505060405180910390fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e82600081146101e3578282f35b8282fd5b61027e600480360360408110156101fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561023a57600080fd5b82018360208201111561024c57600080fd5b8035906020019184600183028401116401000000008311171561026e57600080fd5b909192939192939050505061041b565b005b34801561028c57600080fd5b506102956105c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e357600080fd5b50610326600480360360208110156102fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061060d565b005b34801561033457600080fd5b506103776004803603602081101561034b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107bd565b005b34801561038557600080fd5b5061038e610871565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561041257506000801b8214155b92505050919050565b610423610871565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f73656e64657220776173206e6f74206f776e657200000000000000000000000081525060200191505060405180910390fd5b6104cc8361060d565b600060608473ffffffffffffffffffffffffffffffffffffffff168484604051808383808284378083019250505092505050600060405180830381855af49150503d8060008114610539576040519150601f19603f3d011682016040523d82523d6000602084013e61053e565b606091505b508092508193505050816105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f696e697469616c697a6174696f6e2063616c6c6261636b206661696c6564000081525060200191505060405180910390fd5b5050505050565b600080600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b9050805491505090565b610615610871565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f73656e64657220776173206e6f74206f776e657200000000000000000000000081525060200191505060405180910390fd5b6000600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b9050610701826103d0565b610773576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c696420636f6e74726163742061646472657373000000000000000081525060200191505060405180910390fd5b8181558173ffffffffffffffffffffffffffffffffffffffff167fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1360405160405180910390a25050565b6107c5610871565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610865576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f73656e64657220776173206e6f74206f776e657200000000000000000000000081525060200191505060405180910390fd5b61086e816108bd565b50565b600080600160405180807f656970313936372e70726f78792e61646d696e000000000000000000000000008152506013019050604051809103902060001c0360001b9050805491505090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6f776e65722063616e6e6f74206265203000000000000000000000000000000081525060200191505060405180910390fd5b6000600160405180807f656970313936372e70726f78792e61646d696e000000000000000000000000008152506013019050604051809103902060001c0360001b90508181558173ffffffffffffffffffffffffffffffffffffffff167f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe260405160405180910390a2505056fea165627a7a723058202dbb6037e4381b4ad95015ed99441a23345cc2ae52ef27e2e91d34fb0acd277b0029', - storage: { - '0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103': - '456f41406B32c45D59E539e4BBA3D7898c3584dA', - }, - balance: '0', - }, - }, - number: '0x0', - gasUsed: '0x0', - mixHash: '0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365', - parentHash: '0x0000000000000000000000000000000000000000000000000000000000000000', -} - -// TODO Create e2e test that actually performs network request to bucket -describe('Genesis block utils', () => { - describe('#getGenesisBlockAsync', () => { - afterEach(() => { - fetchMock.reset() - }) - - it('should be able to get Genesis block', async () => { - fetchMock.mock(ENDPOINT, mockGenesisBlock) - const gensisBlock: string = await GenesisBlockUtils.getGenesisBlockAsync(NETWORK_NAME) - // Fail if genesis block is not proper JSON. - await JSON.parse(gensisBlock) - // Fail if genesis block is less than 100 characters. - // An arbitrary limit which ensures that genesis block has some data. - expect(gensisBlock.length).toBeGreaterThan(100) - }) - - it('should be able to get chain id from Genesis block', async () => { - fetchMock.mock(ENDPOINT, mockGenesisBlock) - const genesisBlock: string = await GenesisBlockUtils.getGenesisBlockAsync(NETWORK_NAME) - const chainId: number = GenesisBlockUtils.getChainIdFromGenesis(genesisBlock) - expect(chainId).toBeGreaterThan(0) - }) - }) -}) diff --git a/packages/sdk/network-utils/src/genesis-block-utils.ts b/packages/sdk/network-utils/src/genesis-block-utils.ts deleted file mode 100644 index 98bd1e71ff4..00000000000 --- a/packages/sdk/network-utils/src/genesis-block-utils.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { GoogleStorageUtils } from './google-storage-utils' - -const TAG = 'genesis-block-utils' - -export const GenesisBlocksGoogleStorageBucketName = 'genesis_blocks' - -export class GenesisBlockUtils { - /** - * Fetches the genesis block (as JSON data) from Google Storage. - * If the network is not working, the method will reject the returned promise - * along with the response data from Google api. - * @param networkName Name of the network to fetch genesis block for - */ - static async getGenesisBlockAsync(networkName: string): Promise { - console.debug(`${TAG} getGenesisBlockAsync("${networkName}") called`) - return GoogleStorageUtils.fetchFileFromGoogleStorage( - GenesisBlocksGoogleStorageBucketName, - networkName - ) - } - - static getChainIdFromGenesis(genesis: string): number { - try { - return JSON.parse(genesis).config.chainId - } catch (error) { - throw new Error(`Error extract config.chainId field from "${genesis}"`) - } - } -} diff --git a/packages/sdk/network-utils/src/globals.d.ts b/packages/sdk/network-utils/src/globals.d.ts deleted file mode 100644 index 0318570a84f..00000000000 --- a/packages/sdk/network-utils/src/globals.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare const fetchMock diff --git a/packages/sdk/network-utils/src/google-storage-utils.ts b/packages/sdk/network-utils/src/google-storage-utils.ts deleted file mode 100644 index 3cccd63efb4..00000000000 --- a/packages/sdk/network-utils/src/google-storage-utils.ts +++ /dev/null @@ -1,43 +0,0 @@ -import fetch from 'cross-fetch' -import debugFactory from 'debug' - -const debug = debugFactory('network-utils:google-storage-utils') - -const TAG = 'google-storage-utils' - -export class GoogleStorageUtils { - static async fetchFileFromGoogleStorage(bucketName: string, fileName: string): Promise { - debug( - `google-storage-utils@fetchFileFromGoogleStorage`, - `Downloading file ${fileName} from ${bucketName}...` - ) - const url = GoogleStorageUtils.constructGoogleStorageUrl(bucketName, fileName) - let response: Response | null = null - try { - response = await fetch(url) - } catch (error) { - debug( - `google-storage-utils@fetchFileFromGoogleStorage`, - `${TAG} Fetch failed with error "${error}"` - ) - throw error - } - debug( - `google-storage-utils@fetchFileFromGoogleStorage`, - `${TAG} response for ${url} is ${JSON.stringify(response)}` - ) - - if (response.status >= 400) { - debug(`google-storage-utils@fetchFileFromGoogleStorage`, `Failed to fetch data`) - throw new Error(await response.text()) - } else { - debug(`google-storage-utils@fetchFileFromGoogleStorage`, `Successfully fetched data`) - return response.text() - } - } - - // Source: https://cloud.google.com/storage/docs/json_api/ - private static constructGoogleStorageUrl(bucketName: string, fileName: string): string { - return `https://www.googleapis.com/storage/v1/b/${bucketName}/o/${fileName}?alt=media` - } -} diff --git a/packages/sdk/network-utils/src/index.ts b/packages/sdk/network-utils/src/index.ts deleted file mode 100644 index 9ca5cdbbb90..00000000000 --- a/packages/sdk/network-utils/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { GenesisBlockUtils } from './genesis-block-utils' -export { StaticNodeUtils } from './static-node-utils' diff --git a/packages/sdk/network-utils/src/static-node-utils.test.ts b/packages/sdk/network-utils/src/static-node-utils.test.ts deleted file mode 100644 index ca66961a9fd..00000000000 --- a/packages/sdk/network-utils/src/static-node-utils.test.ts +++ /dev/null @@ -1,170 +0,0 @@ -import { StaticNodeUtils } from './static-node-utils' -import { _testSetTimezoneOverride } from './utils/timezone' - -const testEndpoint = (network: string) => - `https://www.googleapis.com/storage/v1/b/static_nodes/o/${network}?alt=media` - -const mockStaticNodes = [ - 'enode://e99a883d0b7d0bacb84cde98c4729933b49adbc94e718b77fdb31779c7ed9da6c49236330a9ae096f42bcbf6e803394229120201704b7a4a3ae8004993fa0876@34.83.92.243:30303', - 'enode://b3b42a9a6ef1125006f39b95850c624422eadb6340ac86e4023e47d5452914bb3d17340f9455cd1cdd0d246058b1fec2d3c500eeddbeafa49abd71f8f144b04e@35.199.145.251:30303', - 'enode://af5677afe5bf99a00bdb86d0f80f948b2e25f8978867b38cba8e860a6426507cbc37e15900f798305ceff6b7ac7f4057195827274d6b5f6a7e547ce512ff26ba@35.230.21.97:30303', -] - -describe('StaticNodeUtils', () => { - describe('StaticNodeUtils.getStaticNodesAsync', () => { - afterEach(() => { - fetchMock.reset() - _testSetTimezoneOverride(undefined) - }) - - it('should fetch static nodes for alfajores', async () => { - fetchMock.mock(testEndpoint('alfajores'), mockStaticNodes) - const nodes = await StaticNodeUtils.getStaticNodesAsync('alfajores') - // Expect that the mocked data was returned. - expect(JSON.parse(nodes)).toEqual(mockStaticNodes) - }) - - it('should fail to fetch static nodes for an invalid network', async () => { - fetchMock.mock(testEndpoint('churro'), 404) - await expect(StaticNodeUtils.getStaticNodesAsync('churro')).rejects.toEqual(new Error()) - }) - }) - - describe('StaticNodeUtils.getRegionalStaticNodesAsync', () => { - afterEach(() => { - fetchMock.reset() - _testSetTimezoneOverride(undefined) - }) - - it('should retrieve the correct mainnet static nodes file based on the region', async () => { - _testSetTimezoneOverride('Asia/Jakarta') - fetchMock.mock(testEndpoint('mainnet.gcp-asia-east1'), mockStaticNodes) - const nodes = await StaticNodeUtils.getRegionalStaticNodesAsync('mainnet') - // Expect that the mocked data was returned. - expect(JSON.parse(nodes)).toEqual(mockStaticNodes) - }) - - it('should retrieve the default alfajores static nodes file', async () => { - _testSetTimezoneOverride('Asia/Jakarta') - fetchMock.mock(testEndpoint('alfajores'), mockStaticNodes) - const nodes = await StaticNodeUtils.getRegionalStaticNodesAsync('alfajores') - // Expect that the mocked data was returned. - expect(JSON.parse(nodes)).toEqual(mockStaticNodes) - }) - - it('should fail to retrieve the correct mainnet static nodes file if the region is not available', async () => { - _testSetTimezoneOverride('Asia/Jakarta') - fetchMock.mock(testEndpoint('mainnet.gcp-asia-east1'), 404) - await expect(StaticNodeUtils.getRegionalStaticNodesAsync('mainnet')).rejects.toEqual( - new Error() - ) - }) - }) - - describe('StaticNodeUtils.getStaticNodeRegion', () => { - const cases = [ - { - timezone: 'America/Chicago', - region: 'gcp-us-east1', - }, - { - timezone: 'America/New_York', - region: 'gcp-us-east1', - }, - { - timezone: 'America/Los_Angeles', - region: 'gcp-us-west1', - }, - { - timezone: 'Europe/Istanbul', - region: 'gcp-europe-west1', - }, - { - timezone: 'America/El_Salvador', - region: 'gcp-us-east1', - }, - { - timezone: 'Europe/Lisbon', - region: 'gcp-europe-west1', - }, - { - timezone: 'Europe/Oslo', - region: 'gcp-europe-west1', - }, - { - timezone: 'America/Mexico_City', - region: 'gcp-us-east1', - }, - { - timezone: 'Africa/Nairobi', - region: 'gcp-europe-west1', - }, - { - timezone: 'Africa/Kampala', - region: 'gcp-europe-west1', - }, - { - timezone: 'America/Argentina/Buenos_Aires', - region: 'gcp-southamerica-east1', - }, - { - timezone: 'America/Sao_Paulo', - region: 'gcp-southamerica-east1', - }, - { - timezone: 'America/Bogota', - region: 'gcp-us-east1', - }, - { - timezone: 'America/Costa_Rica', - region: 'gcp-us-east1', - }, - { - timezone: 'Asia/Hong_Kong', - region: 'gcp-asia-east1', - }, - { - timezone: 'Asia/Jakarta', - region: 'gcp-asia-east1', - }, - { - timezone: 'Australia/Melbourne', - region: 'gcp-asia-east1', - }, - { - timezone: 'Etc', // Virtual timezone that does not denote location. - region: '', - }, - { - timezone: 'Oz/Emerald_City', // Not a real timezone - region: '', - }, - ] - - afterEach(() => { - _testSetTimezoneOverride(undefined) - }) - - for (const { timezone, region } of cases) { - it(`should select the best mainnet region for ${timezone}`, () => { - _testSetTimezoneOverride(timezone) - expect(StaticNodeUtils.getStaticNodeRegion('mainnet')).toEqual(region) - expect(StaticNodeUtils.getStaticNodeRegion('rc1')).toEqual(region) - }) - } - - it(`should always select the region based on given timezone when provided`, () => { - for (const { timezone, region } of cases) { - _testSetTimezoneOverride('Unknown') - expect(StaticNodeUtils.getStaticNodeRegion('mainnet', timezone)).toEqual(region) - } - }) - - it(`should always select the default baklava region`, () => { - for (const { timezone } of cases) { - _testSetTimezoneOverride(timezone) - expect(StaticNodeUtils.getStaticNodeRegion('baklava')).toEqual('') - } - }) - }) -}) diff --git a/packages/sdk/network-utils/src/static-node-utils.ts b/packages/sdk/network-utils/src/static-node-utils.ts deleted file mode 100644 index 7c66f7393a6..00000000000 --- a/packages/sdk/network-utils/src/static-node-utils.ts +++ /dev/null @@ -1,126 +0,0 @@ -import debugFactory from 'debug' -import { GoogleStorageUtils } from './google-storage-utils' -import { Coordinates, timezone } from './utils/timezone' - -const debug = debugFactory('network-utils:static-node-utils') - -// The bucket where we store static_nodes information for all the networks. -const StaticNodesGoogleStorageBucketName = `static_nodes` - -interface Range { - min: number - max: number -} - -// Represents a region as a box, specified in degrees of latitude and longitude. -interface Region { - name: string - latitude?: Range - longitude?: Range -} - -/** - * Checks whether the given coordinates are in the given region. - * @remarks Latitudes are assumed to be normalized to the range [-90, 90], - * and longitudes to the range [-180, 180]. - */ -function inRegion(coords: Coordinates, region: Region): boolean { - // Check that x in is the range, wrapping if range min is greater than the max. - const rangeCheck = (x: number, range: Range | undefined) => - range === undefined || - (range.min <= range.max ? range.min <= x && x < range.max : range.min <= x || x < range.max) - - return ( - rangeCheck(coords.latitude, region.latitude) && rangeCheck(coords.longitude, region.longitude) - ) -} - -/** - * Region names for groups of static nodes deployed around the world for each network. - * Used as a suffix to the blob name when fetching to get region specific nodes. - */ -const mainnetRegions = [ - { - name: 'gcp-asia-east1', - longitude: { min: 60, max: -170 }, - }, - { - name: 'gcp-europe-west1', - longitude: { min: -25, max: 60 }, - }, - { - name: 'gcp-southamerica-east1', - latitude: { min: -90, max: 0 }, - longitude: { min: -170, max: -25 }, - }, - { - name: 'gcp-us-east1', - latitude: { min: 0, max: 90 }, - longitude: { min: -105, max: -25 }, - }, - { - name: 'gcp-us-west1', - latitude: { min: 0, max: 90 }, - longitude: { min: -170, max: -105 }, - }, -] -const StaticNodeRegions: { [network: string]: Region[] } = { - mainnet: mainnetRegions, - // Alias for mainnet - rc1: mainnetRegions, -} - -export class StaticNodeUtils { - static getStaticNodesGoogleStorageBucketName(): string { - return StaticNodesGoogleStorageBucketName - } - - /** - * Resolves the best region to use for static node connections. - * @param networkName Name of the network to get a region for. - * @remarks This method currently uses the interpreter's timezone and the - * IANA timezone database to establish what region of the world the client is - * in, then map that to a static list of static node clusters run by cLabs. - * If the timezone is not set according to the user's location, this method - * may route them to suboptimal set of static nodes. The resolution method - * may be replaced in the future. - */ - static getStaticNodeRegion(networkName: string, tz?: string): string { - // Get the latitude and longitude of the timezone locations. - // Note: This is the location of the city that the user has the timzone set to. - const tzInfo = timezone(tz) - const coords = tzInfo?.coordinates - if (coords === undefined) { - debug('Could not resolve region from timezone %s', tzInfo?.name) - return '' // Use the default region of static nodes - } - const regions = StaticNodeRegions[networkName] ?? [] - const result = regions.find((region) => inRegion(coords, region))?.name ?? '' - debug('Resolved region %q from timezone %s', result, tzInfo?.name) - return result - } - - /** - * Fetches the static nodes (as JSON data) from Google Storage corresponding - * to the best available region for this caller. - * If the network is not working, the method will reject the returned promise - * along with the response data from Google API. - * @param networkName Name of the network to fetch config for - */ - static getRegionalStaticNodesAsync(networkName: string, region?: string): Promise { - const resolvedRegion = region ?? this.getStaticNodeRegion(networkName) - const bucketName = StaticNodesGoogleStorageBucketName - const fileName = resolvedRegion ? `${networkName}.${resolvedRegion}` : networkName - return GoogleStorageUtils.fetchFileFromGoogleStorage(bucketName, fileName) - } - - /** - * Fetches the static nodes (as JSON data) from Google Storage. - * If the network is not working, the method will reject the returned promise - * along with the response data from Google API. - * @param networkName Name of the network to fetch config for - */ - static async getStaticNodesAsync(networkName: string): Promise { - return this.getRegionalStaticNodesAsync(networkName, '') - } -} diff --git a/packages/sdk/network-utils/src/utils/timezone.ts b/packages/sdk/network-utils/src/utils/timezone.ts deleted file mode 100644 index 3bda80412a5..00000000000 --- a/packages/sdk/network-utils/src/utils/timezone.ts +++ /dev/null @@ -1,51 +0,0 @@ -// Import a static mapping of timezone names to metadata. -const timezones: { [name: string]: Timezone } = require('./timezones.json') - -// Used in testing to override the timezone which is returned by the system. -let _testTimezoneOverride: string | undefined - -export function _testSetTimezoneOverride(zone: string | undefined) { - _testTimezoneOverride = zone -} - -export interface Coordinates { - latitude: number - longitude: number -} - -// Timezone information from the IANA timezone database. -// https://data.iana.org/time-zones/tzdb/zone.tab -export interface Timezone { - name: string - countryCodes?: string[] - coordinates?: Coordinates - comments?: string -} - -function resolveTimezoneName(): string | undefined { - try { - return _testTimezoneOverride ?? Intl.DateTimeFormat().resolvedOptions().timeZone - } catch { - // Intl is not defined in some environments, such as react-native. - return undefined - } -} - -// Extract a normalized timezone name from the given string. (e.g. remove trailing slashes) -function normalize(tz: string): string | undefined { - return tz.match(/((?:[a-zA-Z_]+)(?:\/[a-zA-Z_]+)*)/)?.[1] ?? undefined -} - -// Return the current timezone, or the timezone with the given name. -// If the current timezone cannot be resolved, undefined is returned. -export function timezone(tz?: string): Timezone | undefined { - const name = tz ?? resolveTimezoneName() - if (name === undefined) { - return undefined - } - const key = normalize(name) - if (key === undefined) { - return undefined - } - return timezones[key] -} diff --git a/packages/sdk/network-utils/src/utils/timezones.json b/packages/sdk/network-utils/src/utils/timezones.json deleted file mode 100644 index 90b22ccabed..00000000000 --- a/packages/sdk/network-utils/src/utils/timezones.json +++ /dev/null @@ -1 +0,0 @@ -{"Europe/Andorra":{"countryCodes":["AD"],"coordinates":{"latitude":42.5,"longitude":1.5166666666666666},"name":"Europe/Andorra"},"Asia/Dubai":{"countryCodes":["AE"],"coordinates":{"latitude":25.3,"longitude":55.3},"name":"Asia/Dubai"},"Asia/Kabul":{"countryCodes":["AF"],"coordinates":{"latitude":34.516666666666666,"longitude":69.2},"name":"Asia/Kabul"},"America/Antigua":{"countryCodes":["AG"],"coordinates":{"latitude":17.05,"longitude":-61.8},"name":"America/Antigua"},"America/Anguilla":{"countryCodes":["AI"],"coordinates":{"latitude":18.2,"longitude":-63.06666666666667},"name":"America/Anguilla"},"Europe/Tirane":{"countryCodes":["AL"],"coordinates":{"latitude":41.333333333333336,"longitude":19.833333333333332},"name":"Europe/Tirane"},"Asia/Yerevan":{"countryCodes":["AM"],"coordinates":{"latitude":40.18333333333333,"longitude":44.5},"name":"Asia/Yerevan"},"Africa/Luanda":{"countryCodes":["AO"],"coordinates":{"latitude":-8.8,"longitude":13.233333333333333},"name":"Africa/Luanda"},"Antarctica/McMurdo":{"countryCodes":["AQ"],"coordinates":{"latitude":-77.83333333333333,"longitude":166.6},"name":"Antarctica/McMurdo","comments":"New Zealand time - McMurdo, South Pole"},"Antarctica/Casey":{"countryCodes":["AQ"],"coordinates":{"latitude":-66.28333333333333,"longitude":110.51666666666667},"name":"Antarctica/Casey","comments":"Casey"},"Antarctica/Davis":{"countryCodes":["AQ"],"coordinates":{"latitude":-68.58333333333333,"longitude":77.96666666666667},"name":"Antarctica/Davis","comments":"Davis"},"Antarctica/DumontDUrville":{"countryCodes":["AQ"],"coordinates":{"latitude":-66.66666666666667,"longitude":140.01666666666668},"name":"Antarctica/DumontDUrville","comments":"Dumont-d'Urville"},"Antarctica/Mawson":{"countryCodes":["AQ"],"coordinates":{"latitude":-67.6,"longitude":62.88333333333333},"name":"Antarctica/Mawson","comments":"Mawson"},"Antarctica/Palmer":{"countryCodes":["AQ"],"coordinates":{"latitude":-64.8,"longitude":-64.1},"name":"Antarctica/Palmer","comments":"Palmer"},"Antarctica/Rothera":{"countryCodes":["AQ"],"coordinates":{"latitude":-67.56666666666666,"longitude":-68.13333333333334},"name":"Antarctica/Rothera","comments":"Rothera"},"Antarctica/Syowa":{"countryCodes":["AQ"],"coordinates":{"latitude":-69.36666666666666,"longitude":39.983333333333334},"name":"Antarctica/Syowa","comments":"Syowa"},"Antarctica/Troll":{"countryCodes":["AQ"],"coordinates":{"latitude":-72.68333333333334,"longitude":2.6333333333333333},"name":"Antarctica/Troll","comments":"Troll"},"Antarctica/Vostok":{"countryCodes":["AQ"],"coordinates":{"latitude":-78.4,"longitude":106.9},"name":"Antarctica/Vostok","comments":"Vostok"},"America/Argentina/Buenos_Aires":{"countryCodes":["AR"],"coordinates":{"latitude":-34.6,"longitude":-58.45},"name":"America/Argentina/Buenos_Aires","comments":"Buenos Aires (BA, CF)"},"America/Argentina/Cordoba":{"countryCodes":["AR"],"coordinates":{"latitude":-31.4,"longitude":-64.18333333333334},"name":"America/Argentina/Cordoba","comments":"Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF)"},"America/Argentina/Salta":{"countryCodes":["AR"],"coordinates":{"latitude":-24.783333333333335,"longitude":-65.41666666666667},"name":"America/Argentina/Salta","comments":"Salta (SA, LP, NQ, RN)"},"America/Argentina/Jujuy":{"countryCodes":["AR"],"coordinates":{"latitude":-24.183333333333334,"longitude":-65.3},"name":"America/Argentina/Jujuy","comments":"Jujuy (JY)"},"America/Argentina/Tucuman":{"countryCodes":["AR"],"coordinates":{"latitude":-26.816666666666666,"longitude":-65.21666666666667},"name":"America/Argentina/Tucuman","comments":"Tucuman (TM)"},"America/Argentina/Catamarca":{"countryCodes":["AR"],"coordinates":{"latitude":-28.466666666666665,"longitude":-65.78333333333333},"name":"America/Argentina/Catamarca","comments":"Catamarca (CT); Chubut (CH)"},"America/Argentina/La_Rioja":{"countryCodes":["AR"],"coordinates":{"latitude":-29.433333333333334,"longitude":-66.85},"name":"America/Argentina/La_Rioja","comments":"La Rioja (LR)"},"America/Argentina/San_Juan":{"countryCodes":["AR"],"coordinates":{"latitude":-31.533333333333335,"longitude":-68.51666666666667},"name":"America/Argentina/San_Juan","comments":"San Juan (SJ)"},"America/Argentina/Mendoza":{"countryCodes":["AR"],"coordinates":{"latitude":-32.88333333333333,"longitude":-68.81666666666666},"name":"America/Argentina/Mendoza","comments":"Mendoza (MZ)"},"America/Argentina/San_Luis":{"countryCodes":["AR"],"coordinates":{"latitude":-33.31666666666667,"longitude":-66.35},"name":"America/Argentina/San_Luis","comments":"San Luis (SL)"},"America/Argentina/Rio_Gallegos":{"countryCodes":["AR"],"coordinates":{"latitude":-51.63333333333333,"longitude":-69.21666666666667},"name":"America/Argentina/Rio_Gallegos","comments":"Santa Cruz (SC)"},"America/Argentina/Ushuaia":{"countryCodes":["AR"],"coordinates":{"latitude":-54.8,"longitude":-68.3},"name":"America/Argentina/Ushuaia","comments":"Tierra del Fuego (TF)"},"Pacific/Pago_Pago":{"countryCodes":["AS"],"coordinates":{"latitude":-14.266666666666667,"longitude":-170.7},"name":"Pacific/Pago_Pago"},"Europe/Vienna":{"countryCodes":["AT"],"coordinates":{"latitude":48.21666666666667,"longitude":16.333333333333332},"name":"Europe/Vienna"},"Australia/Lord_Howe":{"countryCodes":["AU"],"coordinates":{"latitude":-31.55,"longitude":159.08333333333334},"name":"Australia/Lord_Howe","comments":"Lord Howe Island"},"Antarctica/Macquarie":{"countryCodes":["AU"],"coordinates":{"latitude":-54.5,"longitude":158.95},"name":"Antarctica/Macquarie","comments":"Macquarie Island"},"Australia/Hobart":{"countryCodes":["AU"],"coordinates":{"latitude":-42.88333333333333,"longitude":147.31666666666666},"name":"Australia/Hobart","comments":"Tasmania (most areas)"},"Australia/Currie":{"countryCodes":["AU"],"coordinates":{"latitude":-39.93333333333333,"longitude":143.86666666666667},"name":"Australia/Currie","comments":"Tasmania (King Island)"},"Australia/Melbourne":{"countryCodes":["AU"],"coordinates":{"latitude":-37.81666666666667,"longitude":144.96666666666667},"name":"Australia/Melbourne","comments":"Victoria"},"Australia/Sydney":{"countryCodes":["AU"],"coordinates":{"latitude":-33.86666666666667,"longitude":151.21666666666667},"name":"Australia/Sydney","comments":"New South Wales (most areas)"},"Australia/Broken_Hill":{"countryCodes":["AU"],"coordinates":{"latitude":-31.95,"longitude":141.45},"name":"Australia/Broken_Hill","comments":"New South Wales (Yancowinna)"},"Australia/Brisbane":{"countryCodes":["AU"],"coordinates":{"latitude":-27.466666666666665,"longitude":153.03333333333333},"name":"Australia/Brisbane","comments":"Queensland (most areas)"},"Australia/Lindeman":{"countryCodes":["AU"],"coordinates":{"latitude":-20.266666666666666,"longitude":149},"name":"Australia/Lindeman","comments":"Queensland (Whitsunday Islands)"},"Australia/Adelaide":{"countryCodes":["AU"],"coordinates":{"latitude":-34.916666666666664,"longitude":138.58333333333334},"name":"Australia/Adelaide","comments":"South Australia"},"Australia/Darwin":{"countryCodes":["AU"],"coordinates":{"latitude":-12.466666666666667,"longitude":130.83333333333334},"name":"Australia/Darwin","comments":"Northern Territory"},"Australia/Perth":{"countryCodes":["AU"],"coordinates":{"latitude":-31.95,"longitude":115.85},"name":"Australia/Perth","comments":"Western Australia (most areas)"},"Australia/Eucla":{"countryCodes":["AU"],"coordinates":{"latitude":-31.716666666666665,"longitude":128.86666666666667},"name":"Australia/Eucla","comments":"Western Australia (Eucla)"},"America/Aruba":{"countryCodes":["AW"],"coordinates":{"latitude":12.5,"longitude":-69.96666666666667},"name":"America/Aruba"},"Europe/Mariehamn":{"countryCodes":["AX"],"coordinates":{"latitude":60.1,"longitude":19.95},"name":"Europe/Mariehamn"},"Asia/Baku":{"countryCodes":["AZ"],"coordinates":{"latitude":40.38333333333333,"longitude":49.85},"name":"Asia/Baku"},"Europe/Sarajevo":{"countryCodes":["BA"],"coordinates":{"latitude":43.86666666666667,"longitude":18.416666666666668},"name":"Europe/Sarajevo"},"America/Barbados":{"countryCodes":["BB"],"coordinates":{"latitude":13.1,"longitude":-59.61666666666667},"name":"America/Barbados"},"Asia/Dhaka":{"countryCodes":["BD"],"coordinates":{"latitude":23.716666666666665,"longitude":90.41666666666667},"name":"Asia/Dhaka"},"Europe/Brussels":{"countryCodes":["BE"],"coordinates":{"latitude":50.833333333333336,"longitude":4.333333333333333},"name":"Europe/Brussels"},"Africa/Ouagadougou":{"countryCodes":["BF"],"coordinates":{"latitude":12.366666666666667,"longitude":-1.5166666666666666},"name":"Africa/Ouagadougou"},"Europe/Sofia":{"countryCodes":["BG"],"coordinates":{"latitude":42.68333333333333,"longitude":23.316666666666666},"name":"Europe/Sofia"},"Asia/Bahrain":{"countryCodes":["BH"],"coordinates":{"latitude":26.383333333333333,"longitude":50.583333333333336},"name":"Asia/Bahrain"},"Africa/Bujumbura":{"countryCodes":["BI"],"coordinates":{"latitude":-3.3833333333333333,"longitude":29.366666666666667},"name":"Africa/Bujumbura"},"Africa/Porto-Novo":{"countryCodes":["BJ"],"coordinates":{"latitude":6.483333333333333,"longitude":2.6166666666666667},"name":"Africa/Porto-Novo"},"America/St_Barthelemy":{"countryCodes":["BL"],"coordinates":{"latitude":17.883333333333333,"longitude":-62.85},"name":"America/St_Barthelemy"},"Atlantic/Bermuda":{"countryCodes":["BM"],"coordinates":{"latitude":32.28333333333333,"longitude":-64.76666666666667},"name":"Atlantic/Bermuda"},"Asia/Brunei":{"countryCodes":["BN"],"coordinates":{"latitude":4.933333333333334,"longitude":114.91666666666667},"name":"Asia/Brunei"},"America/La_Paz":{"countryCodes":["BO"],"coordinates":{"latitude":-16.5,"longitude":-68.15},"name":"America/La_Paz"},"America/Kralendijk":{"countryCodes":["BQ"],"coordinates":{"latitude":12.200000000000001,"longitude":-68.86666666666666},"name":"America/Kralendijk"},"America/Noronha":{"countryCodes":["BR"],"coordinates":{"latitude":-3.85,"longitude":-32.416666666666664},"name":"America/Noronha","comments":"Atlantic islands"},"America/Belem":{"countryCodes":["BR"],"coordinates":{"latitude":-1.45,"longitude":-48.483333333333334},"name":"America/Belem","comments":"Para (east); Amapa"},"America/Fortaleza":{"countryCodes":["BR"],"coordinates":{"latitude":-3.716666666666667,"longitude":-38.5},"name":"America/Fortaleza","comments":"Brazil (northeast: MA, PI, CE, RN, PB)"},"America/Recife":{"countryCodes":["BR"],"coordinates":{"latitude":-8.05,"longitude":-34.9},"name":"America/Recife","comments":"Pernambuco"},"America/Araguaina":{"countryCodes":["BR"],"coordinates":{"latitude":-7.2,"longitude":-48.2},"name":"America/Araguaina","comments":"Tocantins"},"America/Maceio":{"countryCodes":["BR"],"coordinates":{"latitude":-9.666666666666666,"longitude":-35.71666666666667},"name":"America/Maceio","comments":"Alagoas, Sergipe"},"America/Bahia":{"countryCodes":["BR"],"coordinates":{"latitude":-12.983333333333333,"longitude":-38.516666666666666},"name":"America/Bahia","comments":"Bahia"},"America/Sao_Paulo":{"countryCodes":["BR"],"coordinates":{"latitude":-23.533333333333335,"longitude":-46.61666666666667},"name":"America/Sao_Paulo","comments":"Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS)"},"America/Campo_Grande":{"countryCodes":["BR"],"coordinates":{"latitude":-20.45,"longitude":-54.61666666666667},"name":"America/Campo_Grande","comments":"Mato Grosso do Sul"},"America/Cuiaba":{"countryCodes":["BR"],"coordinates":{"latitude":-15.583333333333334,"longitude":-56.083333333333336},"name":"America/Cuiaba","comments":"Mato Grosso"},"America/Santarem":{"countryCodes":["BR"],"coordinates":{"latitude":-2.4333333333333336,"longitude":-54.86666666666667},"name":"America/Santarem","comments":"Para (west)"},"America/Porto_Velho":{"countryCodes":["BR"],"coordinates":{"latitude":-8.766666666666667,"longitude":-63.9},"name":"America/Porto_Velho","comments":"Rondonia"},"America/Boa_Vista":{"countryCodes":["BR"],"coordinates":{"latitude":2.8166666666666664,"longitude":-60.666666666666664},"name":"America/Boa_Vista","comments":"Roraima"},"America/Manaus":{"countryCodes":["BR"],"coordinates":{"latitude":-3.1333333333333333,"longitude":-60.016666666666666},"name":"America/Manaus","comments":"Amazonas (east)"},"America/Eirunepe":{"countryCodes":["BR"],"coordinates":{"latitude":-6.666666666666667,"longitude":-69.86666666666666},"name":"America/Eirunepe","comments":"Amazonas (west)"},"America/Rio_Branco":{"countryCodes":["BR"],"coordinates":{"latitude":-9.966666666666667,"longitude":-67.8},"name":"America/Rio_Branco","comments":"Acre"},"America/Nassau":{"countryCodes":["BS"],"coordinates":{"latitude":25.083333333333332,"longitude":-77.35},"name":"America/Nassau"},"Asia/Thimphu":{"countryCodes":["BT"],"coordinates":{"latitude":27.466666666666665,"longitude":89.65},"name":"Asia/Thimphu"},"Africa/Gaborone":{"countryCodes":["BW"],"coordinates":{"latitude":-24.65,"longitude":25.916666666666668},"name":"Africa/Gaborone"},"Europe/Minsk":{"countryCodes":["BY"],"coordinates":{"latitude":53.9,"longitude":27.566666666666666},"name":"Europe/Minsk"},"America/Belize":{"countryCodes":["BZ"],"coordinates":{"latitude":17.5,"longitude":-88.2},"name":"America/Belize"},"America/St_Johns":{"countryCodes":["CA"],"coordinates":{"latitude":47.56666666666667,"longitude":-52.71666666666667},"name":"America/St_Johns","comments":"Newfoundland; Labrador (southeast)"},"America/Halifax":{"countryCodes":["CA"],"coordinates":{"latitude":44.65,"longitude":-63.6},"name":"America/Halifax","comments":"Atlantic - NS (most areas); PE"},"America/Glace_Bay":{"countryCodes":["CA"],"coordinates":{"latitude":46.2,"longitude":-59.95},"name":"America/Glace_Bay","comments":"Atlantic - NS (Cape Breton)"},"America/Moncton":{"countryCodes":["CA"],"coordinates":{"latitude":46.1,"longitude":-64.78333333333333},"name":"America/Moncton","comments":"Atlantic - New Brunswick"},"America/Goose_Bay":{"countryCodes":["CA"],"coordinates":{"latitude":53.333333333333336,"longitude":-60.416666666666664},"name":"America/Goose_Bay","comments":"Atlantic - Labrador (most areas)"},"America/Blanc-Sablon":{"countryCodes":["CA"],"coordinates":{"latitude":51.416666666666664,"longitude":-57.11666666666667},"name":"America/Blanc-Sablon","comments":"AST - QC (Lower North Shore)"},"America/Toronto":{"countryCodes":["CA"],"coordinates":{"latitude":43.65,"longitude":-79.38333333333334},"name":"America/Toronto","comments":"Eastern - ON, QC (most areas)"},"America/Nipigon":{"countryCodes":["CA"],"coordinates":{"latitude":49.016666666666666,"longitude":-88.26666666666667},"name":"America/Nipigon","comments":"Eastern - ON, QC (no DST 1967-73)"},"America/Thunder_Bay":{"countryCodes":["CA"],"coordinates":{"latitude":48.38333333333333,"longitude":-89.25},"name":"America/Thunder_Bay","comments":"Eastern - ON (Thunder Bay)"},"America/Iqaluit":{"countryCodes":["CA"],"coordinates":{"latitude":63.733333333333334,"longitude":-68.46666666666667},"name":"America/Iqaluit","comments":"Eastern - NU (most east areas)"},"America/Pangnirtung":{"countryCodes":["CA"],"coordinates":{"latitude":66.13333333333334,"longitude":-65.73333333333333},"name":"America/Pangnirtung","comments":"Eastern - NU (Pangnirtung)"},"America/Atikokan":{"countryCodes":["CA"],"coordinates":{"latitude":49.266666666666666,"longitude":-91.91666666666666},"name":"America/Atikokan","comments":"EST - ON (Atikokan); NU (Coral H)"},"America/Winnipeg":{"countryCodes":["CA"],"coordinates":{"latitude":49.88333333333333,"longitude":-97.15},"name":"America/Winnipeg","comments":"Central - ON (west); Manitoba"},"America/Rainy_River":{"countryCodes":["CA"],"coordinates":{"latitude":48.71666666666667,"longitude":-94.56666666666666},"name":"America/Rainy_River","comments":"Central - ON (Rainy R, Ft Frances)"},"America/Resolute":{"countryCodes":["CA"],"coordinates":{"latitude":75.41666666666667,"longitude":-95.56666666666666},"name":"America/Resolute","comments":"Central - NU (Resolute)"},"America/Rankin_Inlet":{"countryCodes":["CA"],"coordinates":{"latitude":62.81666666666667,"longitude":-93.05},"name":"America/Rankin_Inlet","comments":"Central - NU (central)"},"America/Regina":{"countryCodes":["CA"],"coordinates":{"latitude":50.4,"longitude":-104.65},"name":"America/Regina","comments":"CST - SK (most areas)"},"America/Swift_Current":{"countryCodes":["CA"],"coordinates":{"latitude":50.28333333333333,"longitude":-107.83333333333333},"name":"America/Swift_Current","comments":"CST - SK (midwest)"},"America/Edmonton":{"countryCodes":["CA"],"coordinates":{"latitude":53.55,"longitude":-113.46666666666667},"name":"America/Edmonton","comments":"Mountain - AB; BC (E); SK (W)"},"America/Cambridge_Bay":{"countryCodes":["CA"],"coordinates":{"latitude":69.93333333333332,"longitude":-105.21666666666667},"name":"America/Cambridge_Bay","comments":"Mountain - NU (west)"},"America/Yellowknife":{"countryCodes":["CA"],"coordinates":{"latitude":62.45,"longitude":-114.35},"name":"America/Yellowknife","comments":"Mountain - NT (central)"},"America/Inuvik":{"countryCodes":["CA"],"coordinates":{"latitude":69.31666666666666,"longitude":-133.71666666666667},"name":"America/Inuvik","comments":"Mountain - NT (west)"},"America/Creston":{"countryCodes":["CA"],"coordinates":{"latitude":49.1,"longitude":-116.51666666666667},"name":"America/Creston","comments":"MST - BC (Creston)"},"America/Dawson_Creek":{"countryCodes":["CA"],"coordinates":{"latitude":59.766666666666666,"longitude":-120.23333333333333},"name":"America/Dawson_Creek","comments":"MST - BC (Dawson Cr, Ft St John)"},"America/Fort_Nelson":{"countryCodes":["CA"],"coordinates":{"latitude":58.8,"longitude":-122.7},"name":"America/Fort_Nelson","comments":"MST - BC (Ft Nelson)"},"America/Vancouver":{"countryCodes":["CA"],"coordinates":{"latitude":49.266666666666666,"longitude":-123.11666666666666},"name":"America/Vancouver","comments":"Pacific - BC (most areas)"},"America/Whitehorse":{"countryCodes":["CA"],"coordinates":{"latitude":60.71666666666667,"longitude":-135.05},"name":"America/Whitehorse","comments":"Pacific - Yukon (east)"},"America/Dawson":{"countryCodes":["CA"],"coordinates":{"latitude":64.06666666666666,"longitude":-139.41666666666666},"name":"America/Dawson","comments":"Pacific - Yukon (west)"},"Indian/Cocos":{"countryCodes":["CC"],"coordinates":{"latitude":-12.166666666666666,"longitude":96.91666666666667},"name":"Indian/Cocos"},"Africa/Kinshasa":{"countryCodes":["CD"],"coordinates":{"latitude":-4.3,"longitude":15.3},"name":"Africa/Kinshasa","comments":"Dem. Rep. of Congo (west)"},"Africa/Lubumbashi":{"countryCodes":["CD"],"coordinates":{"latitude":-11.666666666666666,"longitude":27.466666666666665},"name":"Africa/Lubumbashi","comments":"Dem. Rep. of Congo (east)"},"Africa/Bangui":{"countryCodes":["CF"],"coordinates":{"latitude":4.366666666666666,"longitude":18.583333333333332},"name":"Africa/Bangui"},"Africa/Brazzaville":{"countryCodes":["CG"],"coordinates":{"latitude":-4.266666666666667,"longitude":15.283333333333333},"name":"Africa/Brazzaville"},"Europe/Zurich":{"countryCodes":["CH"],"coordinates":{"latitude":47.38333333333333,"longitude":8.533333333333333},"name":"Europe/Zurich"},"Africa/Abidjan":{"countryCodes":["CI"],"coordinates":{"latitude":5.316666666666666,"longitude":-4.033333333333333},"name":"Africa/Abidjan"},"Pacific/Rarotonga":{"countryCodes":["CK"],"coordinates":{"latitude":-21.233333333333334,"longitude":-159.76666666666668},"name":"Pacific/Rarotonga"},"America/Santiago":{"countryCodes":["CL"],"coordinates":{"latitude":-33.45,"longitude":-70.66666666666667},"name":"America/Santiago","comments":"Chile (most areas)"},"America/Punta_Arenas":{"countryCodes":["CL"],"coordinates":{"latitude":-53.15,"longitude":-70.91666666666667},"name":"America/Punta_Arenas","comments":"Region of Magallanes"},"Pacific/Easter":{"countryCodes":["CL"],"coordinates":{"latitude":-27.15,"longitude":-109.43333333333334},"name":"Pacific/Easter","comments":"Easter Island"},"Africa/Douala":{"countryCodes":["CM"],"coordinates":{"latitude":4.05,"longitude":9.7},"name":"Africa/Douala"},"Asia/Shanghai":{"countryCodes":["CN"],"coordinates":{"latitude":31.233333333333334,"longitude":121.46666666666667},"name":"Asia/Shanghai","comments":"Beijing Time"},"Asia/Urumqi":{"countryCodes":["CN"],"coordinates":{"latitude":43.8,"longitude":87.58333333333333},"name":"Asia/Urumqi","comments":"Xinjiang Time"},"America/Bogota":{"countryCodes":["CO"],"coordinates":{"latitude":4.6,"longitude":-74.08333333333333},"name":"America/Bogota"},"America/Costa_Rica":{"countryCodes":["CR"],"coordinates":{"latitude":9.933333333333334,"longitude":-84.08333333333333},"name":"America/Costa_Rica"},"America/Havana":{"countryCodes":["CU"],"coordinates":{"latitude":23.133333333333333,"longitude":-82.36666666666666},"name":"America/Havana"},"Atlantic/Cape_Verde":{"countryCodes":["CV"],"coordinates":{"latitude":14.916666666666666,"longitude":-23.516666666666666},"name":"Atlantic/Cape_Verde"},"America/Curacao":{"countryCodes":["CW"],"coordinates":{"latitude":12.183333333333334,"longitude":-69},"name":"America/Curacao"},"Indian/Christmas":{"countryCodes":["CX"],"coordinates":{"latitude":-10.416666666666666,"longitude":105.71666666666667},"name":"Indian/Christmas"},"Asia/Nicosia":{"countryCodes":["CY"],"coordinates":{"latitude":35.166666666666664,"longitude":33.36666666666667},"name":"Asia/Nicosia","comments":"Cyprus (most areas)"},"Asia/Famagusta":{"countryCodes":["CY"],"coordinates":{"latitude":35.11666666666667,"longitude":33.95},"name":"Asia/Famagusta","comments":"Northern Cyprus"},"Europe/Prague":{"countryCodes":["CZ"],"coordinates":{"latitude":50.083333333333336,"longitude":14.433333333333334},"name":"Europe/Prague"},"Europe/Berlin":{"countryCodes":["DE"],"coordinates":{"latitude":52.5,"longitude":13.366666666666667},"name":"Europe/Berlin","comments":"Germany (most areas)"},"Europe/Busingen":{"countryCodes":["DE"],"coordinates":{"latitude":47.7,"longitude":8.683333333333334},"name":"Europe/Busingen","comments":"Busingen"},"Africa/Djibouti":{"countryCodes":["DJ"],"coordinates":{"latitude":11.6,"longitude":43.15},"name":"Africa/Djibouti"},"Europe/Copenhagen":{"countryCodes":["DK"],"coordinates":{"latitude":55.666666666666664,"longitude":12.583333333333334},"name":"Europe/Copenhagen"},"America/Dominica":{"countryCodes":["DM"],"coordinates":{"latitude":15.3,"longitude":-61.4},"name":"America/Dominica"},"America/Santo_Domingo":{"countryCodes":["DO"],"coordinates":{"latitude":18.466666666666665,"longitude":-69.9},"name":"America/Santo_Domingo"},"Africa/Algiers":{"countryCodes":["DZ"],"coordinates":{"latitude":36.78333333333333,"longitude":3.05},"name":"Africa/Algiers"},"America/Guayaquil":{"countryCodes":["EC"],"coordinates":{"latitude":-2.1666666666666665,"longitude":-79.83333333333333},"name":"America/Guayaquil","comments":"Ecuador (mainland)"},"Pacific/Galapagos":{"countryCodes":["EC"],"coordinates":{"latitude":-0.9,"longitude":-89.6},"name":"Pacific/Galapagos","comments":"Galapagos Islands"},"Europe/Tallinn":{"countryCodes":["EE"],"coordinates":{"latitude":59.416666666666664,"longitude":24.75},"name":"Europe/Tallinn"},"Africa/Cairo":{"countryCodes":["EG"],"coordinates":{"latitude":30.05,"longitude":31.25},"name":"Africa/Cairo"},"Africa/El_Aaiun":{"countryCodes":["EH"],"coordinates":{"latitude":27.15,"longitude":-13.2},"name":"Africa/El_Aaiun"},"Africa/Asmara":{"countryCodes":["ER"],"coordinates":{"latitude":15.333333333333334,"longitude":38.88333333333333},"name":"Africa/Asmara"},"Europe/Madrid":{"countryCodes":["ES"],"coordinates":{"latitude":40.4,"longitude":-3.6833333333333336},"name":"Europe/Madrid","comments":"Spain (mainland)"},"Africa/Ceuta":{"countryCodes":["ES"],"coordinates":{"latitude":35.88333333333333,"longitude":-5.316666666666666},"name":"Africa/Ceuta","comments":"Ceuta, Melilla"},"Atlantic/Canary":{"countryCodes":["ES"],"coordinates":{"latitude":28.1,"longitude":-15.4},"name":"Atlantic/Canary","comments":"Canary Islands"},"Africa/Addis_Ababa":{"countryCodes":["ET"],"coordinates":{"latitude":9.033333333333333,"longitude":38.7},"name":"Africa/Addis_Ababa"},"Europe/Helsinki":{"countryCodes":["FI"],"coordinates":{"latitude":60.166666666666664,"longitude":24.966666666666665},"name":"Europe/Helsinki"},"Pacific/Fiji":{"countryCodes":["FJ"],"coordinates":{"latitude":-18.133333333333333,"longitude":178.41666666666666},"name":"Pacific/Fiji"},"Atlantic/Stanley":{"countryCodes":["FK"],"coordinates":{"latitude":-51.7,"longitude":-57.85},"name":"Atlantic/Stanley"},"Pacific/Chuuk":{"countryCodes":["FM"],"coordinates":{"latitude":7.416666666666667,"longitude":151.78333333333333},"name":"Pacific/Chuuk","comments":"Chuuk/Truk, Yap"},"Pacific/Pohnpei":{"countryCodes":["FM"],"coordinates":{"latitude":6.966666666666667,"longitude":158.21666666666667},"name":"Pacific/Pohnpei","comments":"Pohnpei/Ponape"},"Pacific/Kosrae":{"countryCodes":["FM"],"coordinates":{"latitude":5.316666666666666,"longitude":162.98333333333332},"name":"Pacific/Kosrae","comments":"Kosrae"},"Atlantic/Faroe":{"countryCodes":["FO"],"coordinates":{"latitude":62.016666666666666,"longitude":-6.766666666666667},"name":"Atlantic/Faroe"},"Europe/Paris":{"countryCodes":["FR"],"coordinates":{"latitude":48.86666666666667,"longitude":2.3333333333333335},"name":"Europe/Paris"},"Africa/Libreville":{"countryCodes":["GA"],"coordinates":{"latitude":0.38333333333333336,"longitude":9.45},"name":"Africa/Libreville"},"Europe/London":{"countryCodes":["GB"],"coordinates":{"latitude":52,"longitude":-0.6333333333333334},"name":"Europe/London"},"America/Grenada":{"countryCodes":["GD"],"coordinates":{"latitude":12.05,"longitude":-61.75},"name":"America/Grenada"},"Asia/Tbilisi":{"countryCodes":["GE"],"coordinates":{"latitude":41.71666666666667,"longitude":44.81666666666667},"name":"Asia/Tbilisi"},"America/Cayenne":{"countryCodes":["GF"],"coordinates":{"latitude":4.933333333333334,"longitude":-52.333333333333336},"name":"America/Cayenne"},"Europe/Guernsey":{"countryCodes":["GG"],"coordinates":{"latitude":49.733333333333334,"longitude":-2.6999999999999997},"name":"Europe/Guernsey"},"Africa/Accra":{"countryCodes":["GH"],"coordinates":{"latitude":5.55,"longitude":-0.21666666666666667},"name":"Africa/Accra"},"Europe/Gibraltar":{"countryCodes":["GI"],"coordinates":{"latitude":36.13333333333333,"longitude":-5.35},"name":"Europe/Gibraltar"},"America/Nuuk":{"countryCodes":["GL"],"coordinates":{"latitude":64.18333333333334,"longitude":-51.733333333333334},"name":"America/Nuuk","comments":"Greenland (most areas)"},"America/Danmarkshavn":{"countryCodes":["GL"],"coordinates":{"latitude":76.76666666666667,"longitude":-18.666666666666668},"name":"America/Danmarkshavn","comments":"National Park (east coast)"},"America/Scoresbysund":{"countryCodes":["GL"],"coordinates":{"latitude":70.48333333333333,"longitude":-21.966666666666665},"name":"America/Scoresbysund","comments":"Scoresbysund/Ittoqqortoormiit"},"America/Thule":{"countryCodes":["GL"],"coordinates":{"latitude":76.56666666666666,"longitude":-68.78333333333333},"name":"America/Thule","comments":"Thule/Pituffik"},"Africa/Banjul":{"countryCodes":["GM"],"coordinates":{"latitude":13.466666666666667,"longitude":-16.65},"name":"Africa/Banjul"},"Africa/Conakry":{"countryCodes":["GN"],"coordinates":{"latitude":9.516666666666667,"longitude":-13.716666666666667},"name":"Africa/Conakry"},"America/Guadeloupe":{"countryCodes":["GP"],"coordinates":{"latitude":16.233333333333334,"longitude":-61.53333333333333},"name":"America/Guadeloupe"},"Africa/Malabo":{"countryCodes":["GQ"],"coordinates":{"latitude":3.75,"longitude":8.783333333333333},"name":"Africa/Malabo"},"Europe/Athens":{"countryCodes":["GR"],"coordinates":{"latitude":37.96666666666667,"longitude":23.716666666666665},"name":"Europe/Athens"},"Atlantic/South_Georgia":{"countryCodes":["GS"],"coordinates":{"latitude":-54.266666666666666,"longitude":-36.53333333333333},"name":"Atlantic/South_Georgia"},"America/Guatemala":{"countryCodes":["GT"],"coordinates":{"latitude":14.633333333333333,"longitude":-90.51666666666667},"name":"America/Guatemala"},"Pacific/Guam":{"countryCodes":["GU"],"coordinates":{"latitude":13.466666666666667,"longitude":144.75},"name":"Pacific/Guam"},"Africa/Bissau":{"countryCodes":["GW"],"coordinates":{"latitude":11.85,"longitude":-15.583333333333334},"name":"Africa/Bissau"},"America/Guyana":{"countryCodes":["GY"],"coordinates":{"latitude":6.8,"longitude":-58.166666666666664},"name":"America/Guyana"},"Asia/Hong_Kong":{"countryCodes":["HK"],"coordinates":{"latitude":22.283333333333335,"longitude":114.15},"name":"Asia/Hong_Kong"},"America/Tegucigalpa":{"countryCodes":["HN"],"coordinates":{"latitude":14.1,"longitude":-87.21666666666667},"name":"America/Tegucigalpa"},"Europe/Zagreb":{"countryCodes":["HR"],"coordinates":{"latitude":45.8,"longitude":15.966666666666667},"name":"Europe/Zagreb"},"America/Port-au-Prince":{"countryCodes":["HT"],"coordinates":{"latitude":18.533333333333335,"longitude":-72.33333333333333},"name":"America/Port-au-Prince"},"Europe/Budapest":{"countryCodes":["HU"],"coordinates":{"latitude":47.5,"longitude":19.083333333333332},"name":"Europe/Budapest"},"Asia/Jakarta":{"countryCodes":["ID"],"coordinates":{"latitude":-6.166666666666667,"longitude":106.8},"name":"Asia/Jakarta","comments":"Java, Sumatra"},"Asia/Pontianak":{"countryCodes":["ID"],"coordinates":{"latitude":-0.03333333333333333,"longitude":109.33333333333333},"name":"Asia/Pontianak","comments":"Borneo (west, central)"},"Asia/Makassar":{"countryCodes":["ID"],"coordinates":{"latitude":-5.116666666666666,"longitude":119.4},"name":"Asia/Makassar","comments":"Borneo (east, south); Sulawesi/Celebes, Bali, Nusa Tengarra; Timor (west)"},"Asia/Jayapura":{"countryCodes":["ID"],"coordinates":{"latitude":-2.533333333333333,"longitude":140.7},"name":"Asia/Jayapura","comments":"New Guinea (West Papua / Irian Jaya); Malukus/Moluccas"},"Europe/Dublin":{"countryCodes":["IE"],"coordinates":{"latitude":53.333333333333336,"longitude":-6.25},"name":"Europe/Dublin"},"Asia/Jerusalem":{"countryCodes":["IL"],"coordinates":{"latitude":32.6,"longitude":35.65},"name":"Asia/Jerusalem"},"Europe/Isle_of_Man":{"countryCodes":["IM"],"coordinates":{"latitude":54.15,"longitude":-4.466666666666667},"name":"Europe/Isle_of_Man"},"Asia/Kolkata":{"countryCodes":["IN"],"coordinates":{"latitude":22.533333333333335,"longitude":88.36666666666666},"name":"Asia/Kolkata"},"Indian/Chagos":{"countryCodes":["IO"],"coordinates":{"latitude":-7.333333333333333,"longitude":72.41666666666667},"name":"Indian/Chagos"},"Asia/Baghdad":{"countryCodes":["IQ"],"coordinates":{"latitude":33.35,"longitude":44.416666666666664},"name":"Asia/Baghdad"},"Asia/Tehran":{"countryCodes":["IR"],"coordinates":{"latitude":35.666666666666664,"longitude":51.43333333333333},"name":"Asia/Tehran"},"Atlantic/Reykjavik":{"countryCodes":["IS"],"coordinates":{"latitude":64.15,"longitude":-21.85},"name":"Atlantic/Reykjavik"},"Europe/Rome":{"countryCodes":["IT"],"coordinates":{"latitude":41.9,"longitude":12.483333333333333},"name":"Europe/Rome"},"Europe/Jersey":{"countryCodes":["JE"],"coordinates":{"latitude":49.199999999999996,"longitude":-2.5},"name":"Europe/Jersey"},"America/Jamaica":{"countryCodes":["JM"],"coordinates":{"latitude":18.049999999999997,"longitude":-77.38333333333333},"name":"America/Jamaica"},"Asia/Amman":{"countryCodes":["JO"],"coordinates":{"latitude":31.95,"longitude":35.93333333333333},"name":"Asia/Amman"},"Asia/Tokyo":{"countryCodes":["JP"],"coordinates":{"latitude":35.916666666666664,"longitude":140.41666666666666},"name":"Asia/Tokyo"},"Africa/Nairobi":{"countryCodes":["KE"],"coordinates":{"latitude":-1.2833333333333332,"longitude":36.81666666666667},"name":"Africa/Nairobi"},"Asia/Bishkek":{"countryCodes":["KG"],"coordinates":{"latitude":42.9,"longitude":74.6},"name":"Asia/Bishkek"},"Asia/Phnom_Penh":{"countryCodes":["KH"],"coordinates":{"latitude":11.55,"longitude":104.91666666666667},"name":"Asia/Phnom_Penh"},"Pacific/Tarawa":{"countryCodes":["KI"],"coordinates":{"latitude":1.4166666666666667,"longitude":173},"name":"Pacific/Tarawa","comments":"Gilbert Islands"},"Pacific/Enderbury":{"countryCodes":["KI"],"coordinates":{"latitude":-3.1333333333333333,"longitude":-171.08333333333334},"name":"Pacific/Enderbury","comments":"Phoenix Islands"},"Pacific/Kiritimati":{"countryCodes":["KI"],"coordinates":{"latitude":1.8666666666666667,"longitude":-157.33333333333334},"name":"Pacific/Kiritimati","comments":"Line Islands"},"Indian/Comoro":{"countryCodes":["KM"],"coordinates":{"latitude":-11.683333333333334,"longitude":43.266666666666666},"name":"Indian/Comoro"},"America/St_Kitts":{"countryCodes":["KN"],"coordinates":{"latitude":17.3,"longitude":-62.71666666666667},"name":"America/St_Kitts"},"Asia/Pyongyang":{"countryCodes":["KP"],"coordinates":{"latitude":39.016666666666666,"longitude":125.75},"name":"Asia/Pyongyang"},"Asia/Seoul":{"countryCodes":["KR"],"coordinates":{"latitude":37.55,"longitude":126.96666666666667},"name":"Asia/Seoul"},"Asia/Kuwait":{"countryCodes":["KW"],"coordinates":{"latitude":29.333333333333332,"longitude":47.983333333333334},"name":"Asia/Kuwait"},"America/Cayman":{"countryCodes":["KY"],"coordinates":{"latitude":19.3,"longitude":-81.38333333333334},"name":"America/Cayman"},"Asia/Almaty":{"countryCodes":["KZ"],"coordinates":{"latitude":43.25,"longitude":76.95},"name":"Asia/Almaty","comments":"Kazakhstan (most areas)"},"Asia/Qyzylorda":{"countryCodes":["KZ"],"coordinates":{"latitude":44.8,"longitude":65.46666666666667},"name":"Asia/Qyzylorda","comments":"Qyzylorda/Kyzylorda/Kzyl-Orda"},"Asia/Qostanay":{"countryCodes":["KZ"],"coordinates":{"latitude":53.2,"longitude":63.61666666666667},"name":"Asia/Qostanay","comments":"Qostanay/Kostanay/Kustanay"},"Asia/Aqtobe":{"countryCodes":["KZ"],"coordinates":{"latitude":50.28333333333333,"longitude":57.166666666666664},"name":"Asia/Aqtobe","comments":"Aqtobe/Aktobe"},"Asia/Aqtau":{"countryCodes":["KZ"],"coordinates":{"latitude":44.516666666666666,"longitude":50.266666666666666},"name":"Asia/Aqtau","comments":"Mangghystau/Mankistau"},"Asia/Atyrau":{"countryCodes":["KZ"],"coordinates":{"latitude":47.11666666666667,"longitude":51.93333333333333},"name":"Asia/Atyrau","comments":"Atyrau/Atirau/Gur'yev"},"Asia/Oral":{"countryCodes":["KZ"],"coordinates":{"latitude":51.21666666666667,"longitude":51.35},"name":"Asia/Oral","comments":"West Kazakhstan"},"Asia/Vientiane":{"countryCodes":["LA"],"coordinates":{"latitude":17.966666666666665,"longitude":102.6},"name":"Asia/Vientiane"},"Asia/Beirut":{"countryCodes":["LB"],"coordinates":{"latitude":33.88333333333333,"longitude":35.5},"name":"Asia/Beirut"},"America/St_Lucia":{"countryCodes":["LC"],"coordinates":{"latitude":14.016666666666667,"longitude":-61},"name":"America/St_Lucia"},"Europe/Vaduz":{"countryCodes":["LI"],"coordinates":{"latitude":47.15,"longitude":9.516666666666667},"name":"Europe/Vaduz"},"Asia/Colombo":{"countryCodes":["LK"],"coordinates":{"latitude":6.933333333333334,"longitude":79.85},"name":"Asia/Colombo"},"Africa/Monrovia":{"countryCodes":["LR"],"coordinates":{"latitude":6.3,"longitude":-10.783333333333333},"name":"Africa/Monrovia"},"Africa/Maseru":{"countryCodes":["LS"],"coordinates":{"latitude":-29.466666666666665,"longitude":27.5},"name":"Africa/Maseru"},"Europe/Vilnius":{"countryCodes":["LT"],"coordinates":{"latitude":54.68333333333333,"longitude":25.316666666666666},"name":"Europe/Vilnius"},"Europe/Luxembourg":{"countryCodes":["LU"],"coordinates":{"latitude":49.6,"longitude":6.15},"name":"Europe/Luxembourg"},"Europe/Riga":{"countryCodes":["LV"],"coordinates":{"latitude":56.95,"longitude":24.1},"name":"Europe/Riga"},"Africa/Tripoli":{"countryCodes":["LY"],"coordinates":{"latitude":32.9,"longitude":13.183333333333334},"name":"Africa/Tripoli"},"Africa/Casablanca":{"countryCodes":["MA"],"coordinates":{"latitude":33.65,"longitude":-7.583333333333333},"name":"Africa/Casablanca"},"Europe/Monaco":{"countryCodes":["MC"],"coordinates":{"latitude":43.7,"longitude":7.383333333333334},"name":"Europe/Monaco"},"Europe/Chisinau":{"countryCodes":["MD"],"coordinates":{"latitude":47,"longitude":28.833333333333332},"name":"Europe/Chisinau"},"Europe/Podgorica":{"countryCodes":["ME"],"coordinates":{"latitude":42.43333333333333,"longitude":19.266666666666666},"name":"Europe/Podgorica"},"America/Marigot":{"countryCodes":["MF"],"coordinates":{"latitude":18.066666666666666,"longitude":-63.083333333333336},"name":"America/Marigot"},"Indian/Antananarivo":{"countryCodes":["MG"],"coordinates":{"latitude":-18.916666666666668,"longitude":47.516666666666666},"name":"Indian/Antananarivo"},"Pacific/Majuro":{"countryCodes":["MH"],"coordinates":{"latitude":7.15,"longitude":171.2},"name":"Pacific/Majuro","comments":"Marshall Islands (most areas)"},"Pacific/Kwajalein":{"countryCodes":["MH"],"coordinates":{"latitude":9.083333333333334,"longitude":167.33333333333334},"name":"Pacific/Kwajalein","comments":"Kwajalein"},"Europe/Skopje":{"countryCodes":["MK"],"coordinates":{"latitude":41.983333333333334,"longitude":21.433333333333334},"name":"Europe/Skopje"},"Africa/Bamako":{"countryCodes":["ML"],"coordinates":{"latitude":12.65,"longitude":-8},"name":"Africa/Bamako"},"Asia/Yangon":{"countryCodes":["MM"],"coordinates":{"latitude":16.783333333333335,"longitude":96.16666666666667},"name":"Asia/Yangon"},"Asia/Ulaanbaatar":{"countryCodes":["MN"],"coordinates":{"latitude":47.916666666666664,"longitude":106.88333333333334},"name":"Asia/Ulaanbaatar","comments":"Mongolia (most areas)"},"Asia/Hovd":{"countryCodes":["MN"],"coordinates":{"latitude":48.016666666666666,"longitude":91.65},"name":"Asia/Hovd","comments":"Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan"},"Asia/Choibalsan":{"countryCodes":["MN"],"coordinates":{"latitude":48.06666666666667,"longitude":114.5},"name":"Asia/Choibalsan","comments":"Dornod, Sukhbaatar"},"Asia/Macau":{"countryCodes":["MO"],"coordinates":{"latitude":23.016666666666666,"longitude":114.03333333333333},"name":"Asia/Macau"},"Pacific/Saipan":{"countryCodes":["MP"],"coordinates":{"latitude":15.2,"longitude":145.75},"name":"Pacific/Saipan"},"America/Martinique":{"countryCodes":["MQ"],"coordinates":{"latitude":14.6,"longitude":-61.083333333333336},"name":"America/Martinique"},"Africa/Nouakchott":{"countryCodes":["MR"],"coordinates":{"latitude":18.1,"longitude":-15.95},"name":"Africa/Nouakchott"},"America/Montserrat":{"countryCodes":["MS"],"coordinates":{"latitude":16.716666666666665,"longitude":-62.21666666666667},"name":"America/Montserrat"},"Europe/Malta":{"countryCodes":["MT"],"coordinates":{"latitude":35.9,"longitude":14.516666666666667},"name":"Europe/Malta"},"Indian/Mauritius":{"countryCodes":["MU"],"coordinates":{"latitude":-20.166666666666668,"longitude":57.5},"name":"Indian/Mauritius"},"Indian/Maldives":{"countryCodes":["MV"],"coordinates":{"latitude":4.166666666666667,"longitude":73.5},"name":"Indian/Maldives"},"Africa/Blantyre":{"countryCodes":["MW"],"coordinates":{"latitude":-15.783333333333333,"longitude":35},"name":"Africa/Blantyre"},"America/Mexico_City":{"countryCodes":["MX"],"coordinates":{"latitude":19.4,"longitude":-99.15},"name":"America/Mexico_City","comments":"Central Time"},"America/Cancun":{"countryCodes":["MX"],"coordinates":{"latitude":21.083333333333332,"longitude":-86.76666666666667},"name":"America/Cancun","comments":"Eastern Standard Time - Quintana Roo"},"America/Merida":{"countryCodes":["MX"],"coordinates":{"latitude":20.966666666666665,"longitude":-89.61666666666666},"name":"America/Merida","comments":"Central Time - Campeche, Yucatan"},"America/Monterrey":{"countryCodes":["MX"],"coordinates":{"latitude":25.666666666666668,"longitude":-100.31666666666666},"name":"America/Monterrey","comments":"Central Time - Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas)"},"America/Matamoros":{"countryCodes":["MX"],"coordinates":{"latitude":25.833333333333332,"longitude":-97.5},"name":"America/Matamoros","comments":"Central Time US - Coahuila, Nuevo Leon, Tamaulipas (US border)"},"America/Mazatlan":{"countryCodes":["MX"],"coordinates":{"latitude":23.216666666666665,"longitude":-106.41666666666667},"name":"America/Mazatlan","comments":"Mountain Time - Baja California Sur, Nayarit, Sinaloa"},"America/Chihuahua":{"countryCodes":["MX"],"coordinates":{"latitude":28.633333333333333,"longitude":-106.08333333333333},"name":"America/Chihuahua","comments":"Mountain Time - Chihuahua (most areas)"},"America/Ojinaga":{"countryCodes":["MX"],"coordinates":{"latitude":29.566666666666666,"longitude":-104.41666666666667},"name":"America/Ojinaga","comments":"Mountain Time US - Chihuahua (US border)"},"America/Hermosillo":{"countryCodes":["MX"],"coordinates":{"latitude":29.066666666666666,"longitude":-110.96666666666667},"name":"America/Hermosillo","comments":"Mountain Standard Time - Sonora"},"America/Tijuana":{"countryCodes":["MX"],"coordinates":{"latitude":32.53333333333333,"longitude":-117.01666666666667},"name":"America/Tijuana","comments":"Pacific Time US - Baja California"},"America/Bahia_Banderas":{"countryCodes":["MX"],"coordinates":{"latitude":20.8,"longitude":-105.25},"name":"America/Bahia_Banderas","comments":"Central Time - Bahia de Banderas"},"Asia/Kuala_Lumpur":{"countryCodes":["MY"],"coordinates":{"latitude":3.1666666666666665,"longitude":101.7},"name":"Asia/Kuala_Lumpur","comments":"Malaysia (peninsula)"},"Asia/Kuching":{"countryCodes":["MY"],"coordinates":{"latitude":1.55,"longitude":110.33333333333333},"name":"Asia/Kuching","comments":"Sabah, Sarawak"},"Africa/Maputo":{"countryCodes":["MZ"],"coordinates":{"latitude":-25.966666666666665,"longitude":32.583333333333336},"name":"Africa/Maputo"},"Africa/Windhoek":{"countryCodes":["NA"],"coordinates":{"latitude":-22.566666666666666,"longitude":17.1},"name":"Africa/Windhoek"},"Pacific/Noumea":{"countryCodes":["NC"],"coordinates":{"latitude":-22.266666666666666,"longitude":166.45},"name":"Pacific/Noumea"},"Africa/Niamey":{"countryCodes":["NE"],"coordinates":{"latitude":13.516666666666667,"longitude":2.1166666666666667},"name":"Africa/Niamey"},"Pacific/Norfolk":{"countryCodes":["NF"],"coordinates":{"latitude":-29.05,"longitude":167.96666666666667},"name":"Pacific/Norfolk"},"Africa/Lagos":{"countryCodes":["NG"],"coordinates":{"latitude":6.45,"longitude":3.4},"name":"Africa/Lagos"},"America/Managua":{"countryCodes":["NI"],"coordinates":{"latitude":12.15,"longitude":-86.28333333333333},"name":"America/Managua"},"Europe/Amsterdam":{"countryCodes":["NL"],"coordinates":{"latitude":52.36666666666667,"longitude":4.9},"name":"Europe/Amsterdam"},"Europe/Oslo":{"countryCodes":["NO"],"coordinates":{"latitude":59.916666666666664,"longitude":10.75},"name":"Europe/Oslo"},"Asia/Kathmandu":{"countryCodes":["NP"],"coordinates":{"latitude":27.716666666666665,"longitude":85.31666666666666},"name":"Asia/Kathmandu"},"Pacific/Nauru":{"countryCodes":["NR"],"coordinates":{"latitude":-0.5166666666666667,"longitude":166.91666666666666},"name":"Pacific/Nauru"},"Pacific/Niue":{"countryCodes":["NU"],"coordinates":{"latitude":-19.016666666666666,"longitude":-169.91666666666666},"name":"Pacific/Niue"},"Pacific/Auckland":{"countryCodes":["NZ"],"coordinates":{"latitude":-36.86666666666667,"longitude":174.76666666666668},"name":"Pacific/Auckland","comments":"New Zealand (most areas)"},"Pacific/Chatham":{"countryCodes":["NZ"],"coordinates":{"latitude":-43.95,"longitude":-176.55},"name":"Pacific/Chatham","comments":"Chatham Islands"},"Asia/Muscat":{"countryCodes":["OM"],"coordinates":{"latitude":23.6,"longitude":58.583333333333336},"name":"Asia/Muscat"},"America/Panama":{"countryCodes":["PA"],"coordinates":{"latitude":8.966666666666667,"longitude":-79.53333333333333},"name":"America/Panama"},"America/Lima":{"countryCodes":["PE"],"coordinates":{"latitude":-12.05,"longitude":-77.05},"name":"America/Lima"},"Pacific/Tahiti":{"countryCodes":["PF"],"coordinates":{"latitude":-17.533333333333335,"longitude":-149.56666666666666},"name":"Pacific/Tahiti","comments":"Society Islands"},"Pacific/Marquesas":{"countryCodes":["PF"],"coordinates":{"latitude":-9,"longitude":-139.5},"name":"Pacific/Marquesas","comments":"Marquesas Islands"},"Pacific/Gambier":{"countryCodes":["PF"],"coordinates":{"latitude":-23.133333333333333,"longitude":-134.95},"name":"Pacific/Gambier","comments":"Gambier Islands"},"Pacific/Port_Moresby":{"countryCodes":["PG"],"coordinates":{"latitude":-9.5,"longitude":147.16666666666666},"name":"Pacific/Port_Moresby","comments":"Papua New Guinea (most areas)"},"Pacific/Bougainville":{"countryCodes":["PG"],"coordinates":{"latitude":-6.216666666666667,"longitude":155.56666666666666},"name":"Pacific/Bougainville","comments":"Bougainville"},"Asia/Manila":{"countryCodes":["PH"],"coordinates":{"latitude":14.583333333333334,"longitude":121},"name":"Asia/Manila"},"Asia/Karachi":{"countryCodes":["PK"],"coordinates":{"latitude":24.866666666666667,"longitude":67.05},"name":"Asia/Karachi"},"Europe/Warsaw":{"countryCodes":["PL"],"coordinates":{"latitude":52.25,"longitude":21},"name":"Europe/Warsaw"},"America/Miquelon":{"countryCodes":["PM"],"coordinates":{"latitude":47.05,"longitude":-56.333333333333336},"name":"America/Miquelon"},"Pacific/Pitcairn":{"countryCodes":["PN"],"coordinates":{"latitude":-25.066666666666666,"longitude":-130.08333333333334},"name":"Pacific/Pitcairn"},"America/Puerto_Rico":{"countryCodes":["PR"],"coordinates":{"latitude":18.566666666666666,"longitude":-66.46666666666665},"name":"America/Puerto_Rico"},"Asia/Gaza":{"countryCodes":["PS"],"coordinates":{"latitude":31.5,"longitude":34.46666666666667},"name":"Asia/Gaza","comments":"Gaza Strip"},"Asia/Hebron":{"countryCodes":["PS"],"coordinates":{"latitude":31.533333333333335,"longitude":35.78333333333334},"name":"Asia/Hebron","comments":"West Bank"},"Europe/Lisbon":{"countryCodes":["PT"],"coordinates":{"latitude":38.71666666666667,"longitude":-9.133333333333333},"name":"Europe/Lisbon","comments":"Portugal (mainland)"},"Atlantic/Madeira":{"countryCodes":["PT"],"coordinates":{"latitude":32.63333333333333,"longitude":-16.9},"name":"Atlantic/Madeira","comments":"Madeira Islands"},"Atlantic/Azores":{"countryCodes":["PT"],"coordinates":{"latitude":37.733333333333334,"longitude":-25.666666666666668},"name":"Atlantic/Azores","comments":"Azores"},"Pacific/Palau":{"countryCodes":["PW"],"coordinates":{"latitude":7.333333333333333,"longitude":134.48333333333332},"name":"Pacific/Palau"},"America/Asuncion":{"countryCodes":["PY"],"coordinates":{"latitude":-25.266666666666666,"longitude":-57.666666666666664},"name":"America/Asuncion"},"Asia/Qatar":{"countryCodes":["QA"],"coordinates":{"latitude":25.283333333333335,"longitude":51.53333333333333},"name":"Asia/Qatar"},"Indian/Reunion":{"countryCodes":["RE"],"coordinates":{"latitude":-20.866666666666667,"longitude":55.46666666666667},"name":"Indian/Reunion"},"Europe/Bucharest":{"countryCodes":["RO"],"coordinates":{"latitude":44.43333333333333,"longitude":26.1},"name":"Europe/Bucharest"},"Europe/Belgrade":{"countryCodes":["RS"],"coordinates":{"latitude":44.833333333333336,"longitude":20.5},"name":"Europe/Belgrade"},"Europe/Kaliningrad":{"countryCodes":["RU"],"coordinates":{"latitude":54.71666666666667,"longitude":20.5},"name":"Europe/Kaliningrad","comments":"MSK-01 - Kaliningrad"},"Europe/Moscow":{"countryCodes":["RU"],"coordinates":{"latitude":56.1,"longitude":37.68333333333334},"name":"Europe/Moscow","comments":"MSK+00 - Moscow area"},"Europe/Simferopol":{"countryCodes":["UA"],"coordinates":{"latitude":44.95,"longitude":34.1},"name":"Europe/Simferopol","comments":"Crimea"},"Europe/Kirov":{"countryCodes":["RU"],"coordinates":{"latitude":58.6,"longitude":49.65},"name":"Europe/Kirov","comments":"MSK+00 - Kirov"},"Europe/Astrakhan":{"countryCodes":["RU"],"coordinates":{"latitude":46.35,"longitude":48.05},"name":"Europe/Astrakhan","comments":"MSK+01 - Astrakhan"},"Europe/Volgograd":{"countryCodes":["RU"],"coordinates":{"latitude":48.733333333333334,"longitude":44.416666666666664},"name":"Europe/Volgograd","comments":"MSK+01 - Volgograd"},"Europe/Saratov":{"countryCodes":["RU"],"coordinates":{"latitude":51.56666666666667,"longitude":46.03333333333333},"name":"Europe/Saratov","comments":"MSK+01 - Saratov"},"Europe/Ulyanovsk":{"countryCodes":["RU"],"coordinates":{"latitude":54.333333333333336,"longitude":48.4},"name":"Europe/Ulyanovsk","comments":"MSK+01 - Ulyanovsk"},"Europe/Samara":{"countryCodes":["RU"],"coordinates":{"latitude":53.2,"longitude":50.15},"name":"Europe/Samara","comments":"MSK+01 - Samara, Udmurtia"},"Asia/Yekaterinburg":{"countryCodes":["RU"],"coordinates":{"latitude":56.85,"longitude":60.6},"name":"Asia/Yekaterinburg","comments":"MSK+02 - Urals"},"Asia/Omsk":{"countryCodes":["RU"],"coordinates":{"latitude":55,"longitude":73.4},"name":"Asia/Omsk","comments":"MSK+03 - Omsk"},"Asia/Novosibirsk":{"countryCodes":["RU"],"coordinates":{"latitude":55.03333333333333,"longitude":82.91666666666667},"name":"Asia/Novosibirsk","comments":"MSK+04 - Novosibirsk"},"Asia/Barnaul":{"countryCodes":["RU"],"coordinates":{"latitude":53.36666666666667,"longitude":83.75},"name":"Asia/Barnaul","comments":"MSK+04 - Altai"},"Asia/Tomsk":{"countryCodes":["RU"],"coordinates":{"latitude":56.5,"longitude":84.96666666666667},"name":"Asia/Tomsk","comments":"MSK+04 - Tomsk"},"Asia/Novokuznetsk":{"countryCodes":["RU"],"coordinates":{"latitude":53.75,"longitude":87.11666666666666},"name":"Asia/Novokuznetsk","comments":"MSK+04 - Kemerovo"},"Asia/Krasnoyarsk":{"countryCodes":["RU"],"coordinates":{"latitude":56.016666666666666,"longitude":92.83333333333333},"name":"Asia/Krasnoyarsk","comments":"MSK+04 - Krasnoyarsk area"},"Asia/Irkutsk":{"countryCodes":["RU"],"coordinates":{"latitude":52.266666666666666,"longitude":104.33333333333333},"name":"Asia/Irkutsk","comments":"MSK+05 - Irkutsk, Buryatia"},"Asia/Chita":{"countryCodes":["RU"],"coordinates":{"latitude":52.05,"longitude":113.46666666666667},"name":"Asia/Chita","comments":"MSK+06 - Zabaykalsky"},"Asia/Yakutsk":{"countryCodes":["RU"],"coordinates":{"latitude":62,"longitude":129.66666666666666},"name":"Asia/Yakutsk","comments":"MSK+06 - Lena River"},"Asia/Khandyga":{"countryCodes":["RU"],"coordinates":{"latitude":63.03333333333333,"longitude":135.78333333333333},"name":"Asia/Khandyga","comments":"MSK+06 - Tomponsky, Ust-Maysky"},"Asia/Vladivostok":{"countryCodes":["RU"],"coordinates":{"latitude":43.166666666666664,"longitude":131.93333333333334},"name":"Asia/Vladivostok","comments":"MSK+07 - Amur River"},"Asia/Ust-Nera":{"countryCodes":["RU"],"coordinates":{"latitude":65.16666666666666,"longitude":143.81666666666666},"name":"Asia/Ust-Nera","comments":"MSK+07 - Oymyakonsky"},"Asia/Magadan":{"countryCodes":["RU"],"coordinates":{"latitude":59.56666666666667,"longitude":150.8},"name":"Asia/Magadan","comments":"MSK+08 - Magadan"},"Asia/Sakhalin":{"countryCodes":["RU"],"coordinates":{"latitude":46.96666666666667,"longitude":142.7},"name":"Asia/Sakhalin","comments":"MSK+08 - Sakhalin Island"},"Asia/Srednekolymsk":{"countryCodes":["RU"],"coordinates":{"latitude":67.46666666666667,"longitude":153.71666666666667},"name":"Asia/Srednekolymsk","comments":"MSK+08 - Sakha (E); North Kuril Is"},"Asia/Kamchatka":{"countryCodes":["RU"],"coordinates":{"latitude":53.016666666666666,"longitude":158.65},"name":"Asia/Kamchatka","comments":"MSK+09 - Kamchatka"},"Asia/Anadyr":{"countryCodes":["RU"],"coordinates":{"latitude":64.75,"longitude":177.48333333333332},"name":"Asia/Anadyr","comments":"MSK+09 - Bering Sea"},"Africa/Kigali":{"countryCodes":["RW"],"coordinates":{"latitude":-1.95,"longitude":30.066666666666666},"name":"Africa/Kigali"},"Asia/Riyadh":{"countryCodes":["SA"],"coordinates":{"latitude":24.633333333333333,"longitude":46.71666666666667},"name":"Asia/Riyadh"},"Pacific/Guadalcanal":{"countryCodes":["SB"],"coordinates":{"latitude":-9.533333333333333,"longitude":160.2},"name":"Pacific/Guadalcanal"},"Indian/Mahe":{"countryCodes":["SC"],"coordinates":{"latitude":-4.666666666666667,"longitude":55.46666666666667},"name":"Indian/Mahe"},"Africa/Khartoum":{"countryCodes":["SD"],"coordinates":{"latitude":15.6,"longitude":32.53333333333333},"name":"Africa/Khartoum"},"Europe/Stockholm":{"countryCodes":["SE"],"coordinates":{"latitude":59.333333333333336,"longitude":18.05},"name":"Europe/Stockholm"},"Asia/Singapore":{"countryCodes":["SG"],"coordinates":{"latitude":1.2833333333333332,"longitude":103.85},"name":"Asia/Singapore"},"Atlantic/St_Helena":{"countryCodes":["SH"],"coordinates":{"latitude":-15.916666666666666,"longitude":-5.7},"name":"Atlantic/St_Helena"},"Europe/Ljubljana":{"countryCodes":["SI"],"coordinates":{"latitude":46.05,"longitude":14.516666666666667},"name":"Europe/Ljubljana"},"Arctic/Longyearbyen":{"countryCodes":["SJ"],"coordinates":{"latitude":78,"longitude":16},"name":"Arctic/Longyearbyen"},"Europe/Bratislava":{"countryCodes":["SK"],"coordinates":{"latitude":48.15,"longitude":17.116666666666667},"name":"Europe/Bratislava"},"Africa/Freetown":{"countryCodes":["SL"],"coordinates":{"latitude":8.5,"longitude":-13.25},"name":"Africa/Freetown"},"Europe/San_Marino":{"countryCodes":["SM"],"coordinates":{"latitude":43.916666666666664,"longitude":12.466666666666667},"name":"Europe/San_Marino"},"Africa/Dakar":{"countryCodes":["SN"],"coordinates":{"latitude":14.666666666666666,"longitude":-17.433333333333334},"name":"Africa/Dakar"},"Africa/Mogadishu":{"countryCodes":["SO"],"coordinates":{"latitude":2.066666666666667,"longitude":45.36666666666667},"name":"Africa/Mogadishu"},"America/Paramaribo":{"countryCodes":["SR"],"coordinates":{"latitude":5.833333333333333,"longitude":-55.166666666666664},"name":"America/Paramaribo"},"Africa/Juba":{"countryCodes":["SS"],"coordinates":{"latitude":4.85,"longitude":31.616666666666667},"name":"Africa/Juba"},"Africa/Sao_Tome":{"countryCodes":["ST"],"coordinates":{"latitude":0.3333333333333333,"longitude":6.733333333333333},"name":"Africa/Sao_Tome"},"America/El_Salvador":{"countryCodes":["SV"],"coordinates":{"latitude":13.7,"longitude":-89.2},"name":"America/El_Salvador"},"America/Lower_Princes":{"countryCodes":["SX"],"coordinates":{"latitude":18.133333333333333,"longitude":-63.86666666666667},"name":"America/Lower_Princes"},"Asia/Damascus":{"countryCodes":["SY"],"coordinates":{"latitude":33.5,"longitude":36.3},"name":"Asia/Damascus"},"Africa/Mbabane":{"countryCodes":["SZ"],"coordinates":{"latitude":-26.3,"longitude":31.1},"name":"Africa/Mbabane"},"America/Grand_Turk":{"countryCodes":["TC"],"coordinates":{"latitude":21.466666666666665,"longitude":-71.13333333333334},"name":"America/Grand_Turk"},"Africa/Ndjamena":{"countryCodes":["TD"],"coordinates":{"latitude":12.116666666666667,"longitude":15.05},"name":"Africa/Ndjamena"},"Indian/Kerguelen":{"countryCodes":["TF"],"coordinates":{"latitude":-49.516666666666666,"longitude":70.26666666666667},"name":"Indian/Kerguelen"},"Africa/Lome":{"countryCodes":["TG"],"coordinates":{"latitude":6.133333333333334,"longitude":1.2166666666666668},"name":"Africa/Lome"},"Asia/Bangkok":{"countryCodes":["TH"],"coordinates":{"latitude":13.75,"longitude":100.51666666666667},"name":"Asia/Bangkok"},"Asia/Dushanbe":{"countryCodes":["TJ"],"coordinates":{"latitude":38.583333333333336,"longitude":68.8},"name":"Asia/Dushanbe"},"Pacific/Fakaofo":{"countryCodes":["TK"],"coordinates":{"latitude":-9.366666666666667,"longitude":-171.23333333333332},"name":"Pacific/Fakaofo"},"Asia/Dili":{"countryCodes":["TL"],"coordinates":{"latitude":-8.55,"longitude":125.58333333333333},"name":"Asia/Dili"},"Asia/Ashgabat":{"countryCodes":["TM"],"coordinates":{"latitude":37.95,"longitude":58.38333333333333},"name":"Asia/Ashgabat"},"Africa/Tunis":{"countryCodes":["TN"],"coordinates":{"latitude":36.8,"longitude":10.183333333333334},"name":"Africa/Tunis"},"Pacific/Tongatapu":{"countryCodes":["TO"],"coordinates":{"latitude":-21.166666666666668,"longitude":-175.16666666666666},"name":"Pacific/Tongatapu"},"Europe/Istanbul":{"countryCodes":["TR"],"coordinates":{"latitude":41.016666666666666,"longitude":28.966666666666665},"name":"Europe/Istanbul"},"America/Port_of_Spain":{"countryCodes":["TT"],"coordinates":{"latitude":10.65,"longitude":-61.516666666666666},"name":"America/Port_of_Spain"},"Pacific/Funafuti":{"countryCodes":["TV"],"coordinates":{"latitude":-8.516666666666667,"longitude":179.21666666666667},"name":"Pacific/Funafuti"},"Asia/Taipei":{"countryCodes":["TW"],"coordinates":{"latitude":25.05,"longitude":121.5},"name":"Asia/Taipei"},"Africa/Dar_es_Salaam":{"countryCodes":["TZ"],"coordinates":{"latitude":-6.8,"longitude":39.28333333333333},"name":"Africa/Dar_es_Salaam"},"Europe/Kiev":{"countryCodes":["UA"],"coordinates":{"latitude":50.43333333333333,"longitude":30.516666666666666},"name":"Europe/Kiev","comments":"Ukraine (most areas)"},"Europe/Uzhgorod":{"countryCodes":["UA"],"coordinates":{"latitude":48.61666666666667,"longitude":22.3},"name":"Europe/Uzhgorod","comments":"Transcarpathia"},"Europe/Zaporozhye":{"countryCodes":["UA"],"coordinates":{"latitude":47.833333333333336,"longitude":35.166666666666664},"name":"Europe/Zaporozhye","comments":"Zaporozhye and east Lugansk"},"Africa/Kampala":{"countryCodes":["UG"],"coordinates":{"latitude":0.31666666666666665,"longitude":32.416666666666664},"name":"Africa/Kampala"},"Pacific/Midway":{"countryCodes":["UM"],"coordinates":{"latitude":28.216666666666665,"longitude":-177.36666666666667},"name":"Pacific/Midway","comments":"Midway Islands"},"Pacific/Wake":{"countryCodes":["UM"],"coordinates":{"latitude":19.283333333333335,"longitude":166.61666666666667},"name":"Pacific/Wake","comments":"Wake Island"},"America/New_York":{"countryCodes":["US"],"coordinates":{"latitude":41.550000000000004,"longitude":-74.38333333333334},"name":"America/New_York","comments":"Eastern (most areas)"},"America/Detroit":{"countryCodes":["US"],"coordinates":{"latitude":43.2,"longitude":-83.78333333333333},"name":"America/Detroit","comments":"Eastern - MI (most areas)"},"America/Kentucky/Louisville":{"countryCodes":["US"],"coordinates":{"latitude":38.5,"longitude":-86.31666666666666},"name":"America/Kentucky/Louisville","comments":"Eastern - KY (Louisville area)"},"America/Kentucky/Monticello":{"countryCodes":["US"],"coordinates":{"latitude":37.6,"longitude":-85.78333333333333},"name":"America/Kentucky/Monticello","comments":"Eastern - KY (Wayne)"},"America/Indiana/Indianapolis":{"countryCodes":["US"],"coordinates":{"latitude":39.86666666666667,"longitude":-86.63333333333334},"name":"America/Indiana/Indianapolis","comments":"Eastern - IN (most areas)"},"America/Indiana/Vincennes":{"countryCodes":["US"],"coordinates":{"latitude":39.3,"longitude":-88.23333333333333},"name":"America/Indiana/Vincennes","comments":"Eastern - IN (Da, Du, K, Mn)"},"America/Indiana/Winamac":{"countryCodes":["US"],"coordinates":{"latitude":41.13333333333333,"longitude":-86.78333333333333},"name":"America/Indiana/Winamac","comments":"Eastern - IN (Pulaski)"},"America/Indiana/Marengo":{"countryCodes":["US"],"coordinates":{"latitude":38.9,"longitude":-87.01666666666667},"name":"America/Indiana/Marengo","comments":"Eastern - IN (Crawford)"},"America/Indiana/Petersburg":{"countryCodes":["US"],"coordinates":{"latitude":39,"longitude":-87.98333333333333},"name":"America/Indiana/Petersburg","comments":"Eastern - IN (Pike)"},"America/Indiana/Vevay":{"countryCodes":["US"],"coordinates":{"latitude":39.6,"longitude":-85.1},"name":"America/Indiana/Vevay","comments":"Eastern - IN (Switzerland)"},"America/Chicago":{"countryCodes":["US"],"coordinates":{"latitude":41.85,"longitude":-87.65},"name":"America/Chicago","comments":"Central (most areas)"},"America/Indiana/Tell_City":{"countryCodes":["US"],"coordinates":{"latitude":38.13333333333333,"longitude":-87.43333333333334},"name":"America/Indiana/Tell_City","comments":"Central - IN (Perry)"},"America/Indiana/Knox":{"countryCodes":["US"],"coordinates":{"latitude":42.03333333333333,"longitude":-87.11666666666666},"name":"America/Indiana/Knox","comments":"Central - IN (Starke)"},"America/Menominee":{"countryCodes":["US"],"coordinates":{"latitude":45.56666666666667,"longitude":-88.44999999999999},"name":"America/Menominee","comments":"Central - MI (Wisconsin border)"},"America/North_Dakota/Center":{"countryCodes":["US"],"coordinates":{"latitude":48.083333333333336,"longitude":-102.23333333333333},"name":"America/North_Dakota/Center","comments":"Central - ND (Oliver)"},"America/North_Dakota/New_Salem":{"countryCodes":["US"],"coordinates":{"latitude":47.53333333333334,"longitude":-102.05000000000001},"name":"America/North_Dakota/New_Salem","comments":"Central - ND (Morton rural)"},"America/North_Dakota/Beulah":{"countryCodes":["US"],"coordinates":{"latitude":48.1,"longitude":-102.43333333333334},"name":"America/North_Dakota/Beulah","comments":"Central - ND (Mercer)"},"America/Denver":{"countryCodes":["US"],"coordinates":{"latitude":40.083333333333336,"longitude":-105.03333333333333},"name":"America/Denver","comments":"Mountain (most areas)"},"America/Boise":{"countryCodes":["US"],"coordinates":{"latitude":44.41666666666667,"longitude":-116.35000000000001},"name":"America/Boise","comments":"Mountain - ID (south); OR (east)"},"America/Phoenix":{"countryCodes":["US"],"coordinates":{"latitude":34.33333333333333,"longitude":-112.46666666666667},"name":"America/Phoenix","comments":"MST - Arizona (except Navajo)"},"America/Los_Angeles":{"countryCodes":["US"],"coordinates":{"latitude":34.18333333333333,"longitude":-118.8},"name":"America/Los_Angeles","comments":"Pacific"},"America/Anchorage":{"countryCodes":["US"],"coordinates":{"latitude":61.300000000000004,"longitude":-149.91666666666669},"name":"America/Anchorage","comments":"Alaska (most areas)"},"America/Juneau":{"countryCodes":["US"],"coordinates":{"latitude":58.416666666666664,"longitude":-134.6},"name":"America/Juneau","comments":"Alaska - Juneau area"},"America/Sitka":{"countryCodes":["US"],"coordinates":{"latitude":57.75,"longitude":-135.41666666666669},"name":"America/Sitka","comments":"Alaska - Sitka area"},"America/Metlakatla":{"countryCodes":["US"],"coordinates":{"latitude":55.733333333333334,"longitude":-132.15},"name":"America/Metlakatla","comments":"Alaska - Annette Island"},"America/Yakutat":{"countryCodes":["US"],"coordinates":{"latitude":60.35,"longitude":-140.35},"name":"America/Yakutat","comments":"Alaska - Yakutat"},"America/Nome":{"countryCodes":["US"],"coordinates":{"latitude":64.56666666666666,"longitude":-165.78333333333333},"name":"America/Nome","comments":"Alaska (west)"},"America/Adak":{"countryCodes":["US"],"coordinates":{"latitude":52.666666666666664,"longitude":-177.13333333333333},"name":"America/Adak","comments":"Aleutian Islands"},"Pacific/Honolulu":{"countryCodes":["US"],"coordinates":{"latitude":21.71666666666667,"longitude":-158.35},"name":"Pacific/Honolulu","comments":"Hawaii"},"America/Montevideo":{"countryCodes":["UY"],"coordinates":{"latitude":-35.449999999999996,"longitude":-56.95},"name":"America/Montevideo"},"Asia/Samarkand":{"countryCodes":["UZ"],"coordinates":{"latitude":39.666666666666664,"longitude":66.8},"name":"Asia/Samarkand","comments":"Uzbekistan (west)"},"Asia/Tashkent":{"countryCodes":["UZ"],"coordinates":{"latitude":41.333333333333336,"longitude":69.3},"name":"Asia/Tashkent","comments":"Uzbekistan (east)"},"Europe/Vatican":{"countryCodes":["VA"],"coordinates":{"latitude":42.03333333333333,"longitude":12.633333333333333},"name":"Europe/Vatican"},"America/St_Vincent":{"countryCodes":["VC"],"coordinates":{"latitude":13.15,"longitude":-61.233333333333334},"name":"America/St_Vincent"},"America/Caracas":{"countryCodes":["VE"],"coordinates":{"latitude":10.5,"longitude":-66.93333333333334},"name":"America/Caracas"},"America/Tortola":{"countryCodes":["VG"],"coordinates":{"latitude":18.45,"longitude":-64.61666666666666},"name":"America/Tortola"},"America/St_Thomas":{"countryCodes":["VI"],"coordinates":{"latitude":18.35,"longitude":-64.93333333333334},"name":"America/St_Thomas"},"Asia/Ho_Chi_Minh":{"countryCodes":["VN"],"coordinates":{"latitude":10.75,"longitude":106.66666666666667},"name":"Asia/Ho_Chi_Minh"},"Pacific/Efate":{"countryCodes":["VU"],"coordinates":{"latitude":-17.666666666666668,"longitude":168.41666666666666},"name":"Pacific/Efate"},"Pacific/Wallis":{"countryCodes":["WF"],"coordinates":{"latitude":-13.3,"longitude":-176.16666666666666},"name":"Pacific/Wallis"},"Pacific/Apia":{"countryCodes":["WS"],"coordinates":{"latitude":-13.833333333333334,"longitude":-171.73333333333332},"name":"Pacific/Apia"},"Asia/Aden":{"countryCodes":["YE"],"coordinates":{"latitude":12.75,"longitude":45.2},"name":"Asia/Aden"},"Indian/Mayotte":{"countryCodes":["YT"],"coordinates":{"latitude":-12.783333333333333,"longitude":45.233333333333334},"name":"Indian/Mayotte"},"Africa/Johannesburg":{"countryCodes":["ZA"],"coordinates":{"latitude":-26.25,"longitude":28},"name":"Africa/Johannesburg"},"Africa/Lusaka":{"countryCodes":["ZM"],"coordinates":{"latitude":-15.416666666666666,"longitude":28.283333333333335},"name":"Africa/Lusaka"},"Africa/Harare":{"countryCodes":["ZW"],"coordinates":{"latitude":-17.833333333333332,"longitude":31.05},"name":"Africa/Harare"}} \ No newline at end of file diff --git a/packages/sdk/network-utils/tsconfig.json b/packages/sdk/network-utils/tsconfig.json deleted file mode 100644 index fa35118f9d3..00000000000 --- a/packages/sdk/network-utils/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "resolveJsonModule": true - }, - "include": ["src/**/*", "types/**/*", "src/utils/timezones.json"], - "exclude": ["**/*/test.ts"] -} diff --git a/packages/sdk/network-utils/tslint.json b/packages/sdk/network-utils/tslint.json deleted file mode 100644 index 036f000683b..00000000000 --- a/packages/sdk/network-utils/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "no-console": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/network-utils/typedoc.json b/packages/sdk/network-utils/typedoc.json deleted file mode 100644 index ecb2c955082..00000000000 --- a/packages/sdk/network-utils/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/network-utils", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/phone-utils/.gitignore b/packages/sdk/phone-utils/.gitignore deleted file mode 100644 index 592a8d4a357..00000000000 --- a/packages/sdk/phone-utils/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.js -!jest.config.js -lib \ No newline at end of file diff --git a/packages/sdk/phone-utils/.npmignore b/packages/sdk/phone-utils/.npmignore deleted file mode 100644 index c206e25b7b1..00000000000 --- a/packages/sdk/phone-utils/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -/node_modules -/coverage -/tslint.json -/tsconfig.json -/test -/src -**.test.js \ No newline at end of file diff --git a/packages/sdk/phone-utils/CHANGELOG.md b/packages/sdk/phone-utils/CHANGELOG.md deleted file mode 100644 index 1f5a13485f8..00000000000 --- a/packages/sdk/phone-utils/CHANGELOG.md +++ /dev/null @@ -1,43 +0,0 @@ -# @celo/phone-utils - -## 6.0.0 - -### Major Changes - -- 97d5ccf43: Remove getPhoneHash, to lookup an odis hash for an identifier use getIdentifierHash from @celo/identity - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0 - - @celo/utils@5.0.6 - -## 6.0.0-beta.0 - -### Major Changes - -- 97d5ccf43: Remove getPhoneHash, to lookup an odis hash for an identifier use getIdentifierHash from @celo/identity - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - - @celo/utils@5.0.6-beta.0 - -## 5.0.5 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.0.5-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/phone-utils/README.md b/packages/sdk/phone-utils/README.md deleted file mode 100644 index 8ae4f465d3f..00000000000 --- a/packages/sdk/phone-utils/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# @celo/phone-utils - -These are A collection of functions for formatting and reading phonenumbers used by the v1 Attestation Service and wallets such as Valora. It uses `google-lib-phonenumber`, under the hood. - - -It may be deprecated in the future. \ No newline at end of file diff --git a/packages/sdk/phone-utils/jest.config.js b/packages/sdk/phone-utils/jest.config.js deleted file mode 100644 index 53358d65426..00000000000 --- a/packages/sdk/phone-utils/jest.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/phone-utils/package.json b/packages/sdk/phone-utils/package.json deleted file mode 100644 index 96820488c27..00000000000 --- a/packages/sdk/phone-utils/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "@celo/phone-utils", - "version": "6.0.0", - "description": "Celo phone utils", - "author": "Celo", - "license": "Apache-2.0", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "sideEffects": false, - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/phone-utils", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/phone-utils", - "scripts": { - "prepublishOnly": "yarn build", - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand --ci", - "test:verbose": "jest --verbose", - "lint": "tslint -c tslint.json --project ." - }, - "files": [ - "lib/**/*" - ], - "dependencies": { - "@celo/base": "^6.0.0", - "@celo/utils": "^5.0.6", - "@types/country-data": "^0.0.0", - "@types/google-libphonenumber": "^7.4.23", - "@types/node": "^18.7.16", - "country-data": "^0.0.31", - "fp-ts": "2.1.1", - "google-libphonenumber": "^3.2.27", - "io-ts": "2.0.1", - "web3-utils": "^1.10.0" - }, - "devDependencies": { - "@celo/typescript": "0.0.1" - } -} diff --git a/packages/sdk/phone-utils/scripts/linkdocs.ts b/packages/sdk/phone-utils/scripts/linkdocs.ts deleted file mode 100644 index 961bf59b73a..00000000000 --- a/packages/sdk/phone-utils/scripts/linkdocs.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { readFileSync, writeFileSync } from 'fs' -import { TypeDocOptionMap } from 'typedoc' - -const pkgName = process.argv.slice(2)[0] -if (!pkgName) { - console.error('No package name given.') - process.exit(1) -} -const indent = ' ' - -const config: Partial = JSON.parse(readFileSync('./typedoc.json').toString()) -const localSummaryPath = `${config.out!}/SUMMARY.md` -const localSummary = readFileSync(localSummaryPath).toString() - -const filePathPrefix = pkgName.indexOf('wallet') >= 0 ? '../../../docs/' : '../../docs/' -const localPathPrefix = config.out!.replace(filePathPrefix, '') - -const pathRegex = /\(.*.md\)/g -const modifiedLocalSummary = localSummary - .replace(pathRegex, (match) => `(${localPathPrefix}/${match.slice(1, -1)})`) - .replace(/\*/g, indent + '-') - -const globalSummaryPath = filePathPrefix + 'SUMMARY.md' -const globalSummary = readFileSync(globalSummaryPath).toString() - -// Adding the indent to the tag, otherwise the markdows has poor preview -const startTag = `${indent}` -const endTag = `${indent}` - -const modifiedGlobalSummary = - globalSummary.slice(0, globalSummary.search(startTag) + startTag.length) + - '\n' + - modifiedLocalSummary + - '\n' + - globalSummary.slice(globalSummary.search(endTag)) - -writeFileSync(globalSummaryPath, modifiedGlobalSummary) - -console.log(`${globalSummaryPath} updated with links to generated docs`) diff --git a/packages/sdk/phone-utils/src/countries.test.ts b/packages/sdk/phone-utils/src/countries.test.ts deleted file mode 100644 index 1ae03ebb5e3..00000000000 --- a/packages/sdk/phone-utils/src/countries.test.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { Countries } from './countries' - -const countries = new Countries('en-us') - -describe('countries', () => { - describe('getCountryMap', () => { - test('Valid Country', () => { - const country = countries.getCountryByCodeAlpha2('US') - - expect(country).toBeDefined() - - // check these to make tsc happy - if (country && country.names) { - expect(country.names['en-us']).toEqual('United States') - } - }) - - test('Invalid Country', () => { - // canary islands, no calling code - const invalidCountry = countries.getCountryByCodeAlpha2('IC') - - expect(invalidCountry).toBeUndefined() - }) - }) - describe('getCountry', () => { - test('has all country data', () => { - const country = countries.getCountry('taiwan') - - expect(country).toMatchInlineSnapshot(` - { - "alpha2": "TW", - "alpha3": "TWN", - "countryCallingCode": "+886", - "countryCallingCodes": [ - "+886", - ], - "countryPhonePlaceholder": { - "national": "00 0000 0000", - }, - "currencies": [ - "TWD", - ], - "displayName": "Taiwan", - "displayNameNoDiacritics": "taiwan", - "emoji": "🇹🇼", - "ioc": "TPE", - "languages": [ - "zho", - ], - "name": "Taiwan", - "names": { - "en-us": "Taiwan", - "es-419": "Taiwán", - }, - "status": "assigned", - } - `) - }) - }) - - describe('Country Search', () => { - test('finds an exact match', () => { - const results = countries.getFilteredCountries('taiwan') - - expect(results).toMatchInlineSnapshot(` - [ - { - "alpha2": "TW", - "alpha3": "TWN", - "countryCallingCode": "+886", - "countryCallingCodes": [ - "+886", - ], - "countryPhonePlaceholder": { - "national": "00 0000 0000", - }, - "currencies": [ - "TWD", - ], - "displayName": "Taiwan", - "displayNameNoDiacritics": "taiwan", - "emoji": "🇹🇼", - "ioc": "TPE", - "languages": [ - "zho", - ], - "name": "Taiwan", - "names": { - "en-us": "Taiwan", - "es-419": "Taiwán", - }, - "status": "assigned", - }, - ] - `) - }) - - test('finds countries by calling code', () => { - const results = countries.getFilteredCountries('49') - - expect(results).toMatchInlineSnapshot(` - [ - { - "alpha2": "DE", - "alpha3": "DEU", - "countryCallingCode": "+49", - "countryCallingCodes": [ - "+49", - ], - "countryPhonePlaceholder": { - "national": "000 000000", - }, - "currencies": [ - "EUR", - ], - "displayName": "Germany", - "displayNameNoDiacritics": "germany", - "emoji": "🇩🇪", - "ioc": "GER", - "languages": [ - "deu", - ], - "name": "Germany", - "names": { - "en-us": "Germany", - "es-419": "Alemania", - }, - "status": "assigned", - }, - ] - `) - }) - - test('finds countries by ISO code', () => { - const results = countries.getFilteredCountries('gb') - - expect(results).toMatchInlineSnapshot(` - [ - { - "alpha2": "GB", - "alpha3": "GBR", - "countryCallingCode": "+44", - "countryCallingCodes": [ - "+44", - ], - "countryPhonePlaceholder": { - "national": "0000 000 0000", - }, - "currencies": [ - "GBP", - ], - "displayName": "United Kingdom", - "displayNameNoDiacritics": "united kingdom", - "emoji": "🇬🇧", - "ioc": "GBR", - "languages": [ - "eng", - "cor", - "gle", - "gla", - "cym", - ], - "name": "United Kingdom", - "names": { - "en-us": "United Kingdom", - "es-419": "Reino Unido", - }, - "status": "assigned", - }, - ] - `) - }) - }) -}) diff --git a/packages/sdk/phone-utils/src/countries.ts b/packages/sdk/phone-utils/src/countries.ts deleted file mode 100644 index e5ffe3319cc..00000000000 --- a/packages/sdk/phone-utils/src/countries.ts +++ /dev/null @@ -1,116 +0,0 @@ -import countryData from 'country-data' -// more countries @ https://github.com/umpirsky/country-list -import esData from './data/countries/es/country.json' -import { getExampleNumber } from './phoneNumbers' - -interface CountryNames { - [name: string]: string -} - -export interface LocalizedCountry extends Omit { - displayName: string - displayNameNoDiacritics: string - names: CountryNames - countryPhonePlaceholder: { - national?: string | undefined - international?: string | undefined - } - countryCallingCode: string -} - -const removeDiacritics = (word: string) => - word && - word - .normalize('NFD') - .replace(/[\u0300-\u036f]/g, '') - .toLowerCase() - .trim() - -const matchCountry = (country: LocalizedCountry, query: string) => { - return ( - country.displayNameNoDiacritics.startsWith(query) || - country.countryCallingCode.startsWith('+' + query) || - country.alpha3.startsWith(query.toUpperCase()) - ) -} - -export class Countries { - language: string - countryMap: Map - localizedCountries: LocalizedCountry[] - - constructor(language?: string) { - // fallback to 'en-us' - this.language = language ? language.toLocaleLowerCase() : 'en-us' - this.countryMap = new Map() - this.localizedCountries = Array() - this.assignCountries() - } - - getCountry(countryName?: string | null): LocalizedCountry | undefined { - if (!countryName) { - return undefined - } - - const query = removeDiacritics(countryName) - - return this.localizedCountries.find((country) => country.displayNameNoDiacritics === query) - } - - getCountryByCodeAlpha2(countryCode: string): LocalizedCountry | undefined { - return this.countryMap.get(countryCode) - } - - getFilteredCountries(query: string): LocalizedCountry[] { - query = removeDiacritics(query) - // Return full list if the query is empty - if (!query || !query.length) { - return this.localizedCountries - } - - return this.localizedCountries.filter((country) => matchCountry(country, query)) - } - - private assignCountries() { - // add other languages to country data - this.localizedCountries = countryData.callingCountries.all - .map((country: countryData.Country) => { - // this is assuming these two are the only cases, in i18n.ts seems like there - // are fallback languages 'es-US' and 'es-LA' that are not covered - const names: CountryNames = { - 'en-us': country.name, - // @ts-ignore - 'es-419': esData[country.alpha2], - } - - const displayName = names[this.language] || country.name - - // We only use the first calling code, others are irrelevant in the current dataset. - // Also some of them have a non standard calling code - // for instance: 'Antigua And Barbuda' has '+1 268', where only '+1' is expected - // so we fix this here - const countryCallingCode = country.countryCallingCodes[0].split(' ')[0] - - const localizedCountry = { - names, - displayName, - displayNameNoDiacritics: removeDiacritics(displayName), - countryPhonePlaceholder: { - national: getExampleNumber(countryCallingCode), - // Not needed right now - // international: getExampleNumber(countryCallingCode, true, true), - }, - countryCallingCode, - ...country, - // Use default emoji when flag emoji is missing - emoji: country.emoji || '🏳', - } - - // use ISO 3166-1 alpha2 code as country id - this.countryMap.set(country.alpha2.toUpperCase(), localizedCountry) - - return localizedCountry - }) - .sort((a, b) => a.displayName.localeCompare(b.displayName)) - } -} diff --git a/packages/sdk/phone-utils/src/data/countries/es/country.json b/packages/sdk/phone-utils/src/data/countries/es/country.json deleted file mode 100644 index ee1e3cecc0c..00000000000 --- a/packages/sdk/phone-utils/src/data/countries/es/country.json +++ /dev/null @@ -1 +0,0 @@ -{"AF":"Afganist\u00e1n","AL":"Albania","DE":"Alemania","AD":"Andorra","AO":"Angola","AI":"Anguila","AQ":"Ant\u00e1rtida","AG":"Antigua y Barbuda","SA":"Arabia Saud\u00ed","DZ":"Argelia","AR":"Argentina","AM":"Armenia","AW":"Aruba","AU":"Australia","AT":"Austria","AZ":"Azerbaiy\u00e1n","BS":"Bahamas","BD":"Banglad\u00e9s","BB":"Barbados","BH":"Bar\u00e9in","BE":"B\u00e9lgica","BZ":"Belice","BJ":"Ben\u00edn","BM":"Bermudas","BY":"Bielorrusia","BO":"Bolivia","BA":"Bosnia y Herzegovina","BW":"Botsuana","BR":"Brasil","BN":"Brun\u00e9i","BG":"Bulgaria","BF":"Burkina Faso","BI":"Burundi","BT":"But\u00e1n","CV":"Cabo Verde","KH":"Camboya","CM":"Camer\u00fan","CA":"Canad\u00e1","IC":"Canarias","BQ":"Caribe neerland\u00e9s","QA":"Catar","EA":"Ceuta y Melilla","TD":"Chad","CZ":"Chequia","CL":"Chile","CN":"China","CY":"Chipre","VA":"Ciudad del Vaticano","CO":"Colombia","KM":"Comoras","CG":"Congo","KP":"Corea del Norte","KR":"Corea del Sur","CR":"Costa Rica","CI":"C\u00f4te d\u2019Ivoire","HR":"Croacia","CU":"Cuba","CW":"Curazao","DG":"Diego Garc\u00eda","DK":"Dinamarca","DM":"Dominica","EC":"Ecuador","EG":"Egipto","SV":"El Salvador","AE":"Emiratos \u00c1rabes Unidos","ER":"Eritrea","SK":"Eslovaquia","SI":"Eslovenia","ES":"Espa\u00f1a","US":"Estados Unidos","EE":"Estonia","SZ":"Esuatini","ET":"Etiop\u00eda","PH":"Filipinas","FI":"Finlandia","FJ":"Fiyi","FR":"Francia","GA":"Gab\u00f3n","GM":"Gambia","GE":"Georgia","GH":"Ghana","GI":"Gibraltar","GD":"Granada","GR":"Grecia","GL":"Groenlandia","GP":"Guadalupe","GU":"Guam","GT":"Guatemala","GF":"Guayana Francesa","GG":"Guernsey","GN":"Guinea","GQ":"Guinea Ecuatorial","GW":"Guinea-Bis\u00e1u","GY":"Guyana","HT":"Hait\u00ed","HN":"Honduras","HU":"Hungr\u00eda","IN":"India","ID":"Indonesia","IQ":"Irak","IR":"Ir\u00e1n","IE":"Irlanda","AC":"Isla de la Ascensi\u00f3n","IM":"Isla de Man","CX":"Isla de Navidad","NF":"Isla Norfolk","IS":"Islandia","AX":"Islas \u00c5land","KY":"Islas Caim\u00e1n","CC":"Islas Cocos","CK":"Islas Cook","FO":"Islas Feroe","GS":"Islas Georgia del Sur y Sandwich del Sur","FK":"Islas Malvinas","MP":"Islas Marianas del Norte","MH":"Islas Marshall","UM":"Islas menores alejadas de EE. UU.","PN":"Islas Pitcairn","SB":"Islas Salom\u00f3n","TC":"Islas Turcas y Caicos","VG":"Islas V\u00edrgenes Brit\u00e1nicas","VI":"Islas V\u00edrgenes de EE. UU.","IL":"Israel","IT":"Italia","JM":"Jamaica","JP":"Jap\u00f3n","JE":"Jersey","JO":"Jordania","KZ":"Kazajist\u00e1n","KE":"Kenia","KG":"Kirguist\u00e1n","KI":"Kiribati","XK":"Kosovo","KW":"Kuwait","LA":"Laos","LS":"Lesoto","LV":"Letonia","LB":"L\u00edbano","LR":"Liberia","LY":"Libia","LI":"Liechtenstein","LT":"Lituania","LU":"Luxemburgo","MK":"Macedonia","MG":"Madagascar","MY":"Malasia","MW":"Malaui","MV":"Maldivas","ML":"Mali","MT":"Malta","MA":"Marruecos","MQ":"Martinica","MU":"Mauricio","MR":"Mauritania","YT":"Mayotte","MX":"M\u00e9xico","FM":"Micronesia","MD":"Moldavia","MC":"M\u00f3naco","MN":"Mongolia","ME":"Montenegro","MS":"Montserrat","MZ":"Mozambique","MM":"Myanmar (Birmania)","NA":"Namibia","NR":"Nauru","NP":"Nepal","NI":"Nicaragua","NE":"N\u00edger","NG":"Nigeria","NU":"Niue","NO":"Noruega","NC":"Nueva Caledonia","NZ":"Nueva Zelanda","OM":"Om\u00e1n","NL":"Pa\u00edses Bajos","PK":"Pakist\u00e1n","PW":"Palaos","PA":"Panam\u00e1","PG":"Pap\u00faa Nueva Guinea","PY":"Paraguay","PE":"Per\u00fa","PF":"Polinesia Francesa","PL":"Polonia","PT":"Portugal","XA":"Pseudo-Accents","XB":"Pseudo-Bidi","PR":"Puerto Rico","HK":"RAE de Hong Kong (China)","MO":"RAE de Macao (China)","GB":"Reino Unido","CF":"Rep\u00fablica Centroafricana","CD":"Rep\u00fablica Democr\u00e1tica del Congo","DO":"Rep\u00fablica Dominicana","RE":"Reuni\u00f3n","RW":"Ruanda","RO":"Ruman\u00eda","RU":"Rusia","EH":"S\u00e1hara Occidental","WS":"Samoa","AS":"Samoa Americana","BL":"San Bartolom\u00e9","KN":"San Crist\u00f3bal y Nieves","SM":"San Marino","MF":"San Mart\u00edn","PM":"San Pedro y Miquel\u00f3n","VC":"San Vicente y las Granadinas","SH":"Santa Elena","LC":"Santa Luc\u00eda","ST":"Santo Tom\u00e9 y Pr\u00edncipe","SN":"Senegal","RS":"Serbia","SC":"Seychelles","SL":"Sierra Leona","SG":"Singapur","SX":"Sint Maarten","SY":"Siria","SO":"Somalia","LK":"Sri Lanka","ZA":"Sud\u00e1frica","SD":"Sud\u00e1n","SS":"Sud\u00e1n del Sur","SE":"Suecia","CH":"Suiza","SR":"Surinam","SJ":"Svalbard y Jan Mayen","TH":"Tailandia","TW":"Taiw\u00e1n","TZ":"Tanzania","TJ":"Tayikist\u00e1n","IO":"Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico","TF":"Territorios Australes Franceses","PS":"Territorios Palestinos","TL":"Timor-Leste","TG":"Togo","TK":"Tokelau","TO":"Tonga","TT":"Trinidad y Tobago","TA":"Trist\u00e1n de Acu\u00f1a","TN":"T\u00fanez","TM":"Turkmenist\u00e1n","TR":"Turqu\u00eda","TV":"Tuvalu","UA":"Ucrania","UG":"Uganda","UY":"Uruguay","UZ":"Uzbekist\u00e1n","VU":"Vanuatu","VE":"Venezuela","VN":"Vietnam","WF":"Wallis y Futuna","YE":"Yemen","DJ":"Yibuti","ZM":"Zambia","ZW":"Zimbabue"} \ No newline at end of file diff --git a/packages/sdk/phone-utils/src/getCountryEmoji.ts b/packages/sdk/phone-utils/src/getCountryEmoji.ts deleted file mode 100644 index 9735b3f06e2..00000000000 --- a/packages/sdk/phone-utils/src/getCountryEmoji.ts +++ /dev/null @@ -1,23 +0,0 @@ -import CountryData from 'country-data' -import { getCountryCode, getRegionCode } from './phoneNumbers' - -export function getCountryEmoji( - e164PhoneNumber: string, - countryCodePossible?: number, - regionCodePossible?: string -) { - // The country code and region code can both be passed in, or it can be inferred from the e164PhoneNumber - let countryCode: any - let regionCode: any - countryCode = countryCodePossible - regionCode = regionCodePossible - if (!countryCode || !regionCode) { - countryCode = getCountryCode(e164PhoneNumber) - regionCode = getRegionCode(e164PhoneNumber) - } - const countries = CountryData.lookup.countries({ countryCallingCodes: `+${countryCode}` }) - const userCountryArray = countries.filter((c: any) => c.alpha2 === regionCode) - const country = userCountryArray.length > 0 ? userCountryArray[0] : undefined - - return country ? country.emoji : '' -} diff --git a/packages/sdk/phone-utils/src/index.ts b/packages/sdk/phone-utils/src/index.ts deleted file mode 100644 index ee40f691185..00000000000 --- a/packages/sdk/phone-utils/src/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -export * from './countries' -export { Countries, LocalizedCountry } from './countries' -export * from './getCountryEmoji' -export * from './inputValidation' -export * from './io' -export { - getCountryCode, - getDisplayNumberInternational, - getDisplayPhoneNumber, - getE164DisplayNumber, - getE164Number, - getExampleNumber, - getRegionCode, - getRegionCodeFromCountryCode, - isE164NumberStrict, - parsePhoneNumber, - PhoneNumberUtils, -} from './phoneNumbers' diff --git a/packages/sdk/phone-utils/src/inputValidation.test.ts b/packages/sdk/phone-utils/src/inputValidation.test.ts deleted file mode 100644 index 5d5e9d0f3d2..00000000000 --- a/packages/sdk/phone-utils/src/inputValidation.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { BaseProps, ValidatorKind } from '@celo/base/lib/inputValidation' -import { validateInput } from './inputValidation' - -describe('inputValidation', () => { - function validateFunction( - itStr: string, - inputs: string[], - validator: ValidatorKind, - expected: string, - props?: BaseProps - ) { - it(itStr, () => - inputs.forEach((input) => { - const result = validateInput(input, { validator, countryCallingCode: '1', ...props }) - expect(result).toEqual(expected) - }) - ) - } - - const numbers = ['bu1.23n', '1.2.3', '1.23', '1.2.-_[`/,zx3.....', '1.b.23'] - - validateFunction('validates integers', numbers, ValidatorKind.Integer, '123') - - validateFunction('validates decimals', numbers, ValidatorKind.Decimal, '1.23') - - validateFunction( - 'allows comma decimals', - numbers.map((val) => val.replace('.', ',')), - ValidatorKind.Decimal, - '1,23', - { decimalSeparator: ',' } - ) - - validateFunction( - 'validates phone numbers', - [ - '4023939889', - '(402)3939889', - '(402)393-9889', - '402bun393._=988-9', - '402 393 9889', - '(4023) 9-39-88-9', - '4-0-2-3-9-3-9-8-8-9', // phone-kebab - ], - ValidatorKind.Phone, - '(402) 393-9889' - ) -}) diff --git a/packages/sdk/phone-utils/src/inputValidation.ts b/packages/sdk/phone-utils/src/inputValidation.ts deleted file mode 100644 index 8979fdd8820..00000000000 --- a/packages/sdk/phone-utils/src/inputValidation.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { BaseProps, validateDecimal, validateInteger } from '@celo/base/lib/inputValidation' -import { getDisplayPhoneNumber } from './phoneNumbers' - -export function validatePhone(input: string, countryCallingCode?: string): string { - input = input.replace(/[^0-9()\- ]/g, '') - - if (!countryCallingCode) { - return input - } - - const displayNumber = getDisplayPhoneNumber(input, countryCallingCode) - - if (!displayNumber) { - return input - } - - return displayNumber -} - -export function validateInput(input: string, props: BaseProps): string { - if (!props.validator && !props.customValidator) { - return input - } - - switch (props.validator) { - case 'decimal': - return validateDecimal(input, props.decimalSeparator) - case 'integer': - return validateInteger(input) - case 'phone': - return validatePhone(input, props.countryCallingCode) - case 'custom': { - if (props.customValidator) { - return props.customValidator(input) - } - } - } - - throw new Error('Unhandled input validator') -} diff --git a/packages/sdk/phone-utils/src/io.ts b/packages/sdk/phone-utils/src/io.ts deleted file mode 100644 index b2d5c0aa811..00000000000 --- a/packages/sdk/phone-utils/src/io.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { AddressType, SaltType, SignatureType } from '@celo/utils/lib/io' -import { either } from 'fp-ts/lib/Either' -import * as t from 'io-ts' -import { isE164NumberStrict } from './phoneNumbers' - -export const E164PhoneNumberType = new t.Type( - 'E164Number', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - isE164NumberStrict(stringValue) - ? t.success(stringValue) - : t.failure(stringValue, context, 'is not a valid e164 number') - ), - String -) -export const AttestationServiceTestRequestType = t.type({ - phoneNumber: E164PhoneNumberType, - message: t.string, - signature: SignatureType, - provider: t.union([t.string, t.undefined]), -}) -export type AttestationServiceTestRequest = t.TypeOf - -export type E164Number = t.TypeOf - -export const AttestationRequestType = t.type({ - phoneNumber: E164PhoneNumberType, - account: AddressType, - issuer: AddressType, - // io-ts way of defining optional key-value pair - salt: t.union([t.undefined, SaltType]), - smsRetrieverAppSig: t.union([t.undefined, t.string]), - // if specified, the message sent will be short random number prefixed by this string - securityCodePrefix: t.union([t.undefined, t.string]), - language: t.union([t.undefined, t.string]), - // unblinded signature - phoneNumberSignature: t.union([t.undefined, t.string]), -}) - -export type AttestationRequest = t.TypeOf - -export const GetAttestationRequestType = t.type({ - phoneNumber: E164PhoneNumberType, - account: AddressType, - issuer: AddressType, - // io-ts way of defining optional key-value pair - salt: t.union([t.undefined, SaltType]), - // if the value supplied matches the stored security code, the response will include the complete message - securityCode: t.union([t.undefined, t.string]), -}) - -export type GetAttestationRequest = t.TypeOf - -export const AttestationResponseType = t.type({ - // Always returned in 1.0.x - success: t.boolean, - - // Returned for errors in 1.0.x - error: t.union([t.undefined, t.string]), - - // Stringifyed JSON dict of dicts, mapping attempt to error info. - errors: t.union([t.undefined, t.string]), - - // Returned for successful send in 1.0.x - provider: t.union([t.undefined, t.string]), - - // New fields - identifier: t.union([t.undefined, t.string]), - account: t.union([t.undefined, AddressType]), - issuer: t.union([t.undefined, AddressType]), - status: t.union([t.undefined, t.string]), - attempt: t.union([t.undefined, t.number]), - countryCode: t.union([t.undefined, t.string]), - - // Time to receive eventual delivery/failure (inc retries) - duration: t.union([t.undefined, t.number]), - - // Only used by test endpoint to return randomly generated salt. - // Never return a user-supplied salt. - salt: t.union([t.undefined, t.string]), - - // only returned if the request supplied the correct security code - attestationCode: t.union([t.undefined, t.string]), -}) - -export type AttestationResponse = t.TypeOf diff --git a/packages/sdk/phone-utils/src/phoneNumbers.test.ts b/packages/sdk/phone-utils/src/phoneNumbers.test.ts deleted file mode 100644 index b9d78090fc3..00000000000 --- a/packages/sdk/phone-utils/src/phoneNumbers.test.ts +++ /dev/null @@ -1,315 +0,0 @@ -import { isE164Number } from '@celo/base/lib/phoneNumbers' -import { - getCountryCode, - getDisplayPhoneNumber, - getE164Number, - getExampleNumber, - getRegionCode, - getRegionCodeFromCountryCode, - parsePhoneNumber, -} from './phoneNumbers' - -const COUNTRY_CODES = { - US: '+1', - DE: '+49', - AR: '+54', - MX: '+52', - LR: '+231', - CI: '+225', -} - -const TEST_PHONE_NUMBERS = { - VALID_US_1: '6282287826', - VALID_US_2: '(628) 228-7826', - VALID_US_3: '+16282287826', - VALID_US_4: '16282287826', - VALID_DE_1: '015229355106', - VALID_DE_2: '01522 (935)-5106', - VALID_DE_3: '+49 01522 935 5106', - VALID_AR_1: '091126431111', - VALID_AR_2: '(911) 2643-1111', - VALID_AR_3: '+5411 2643-1111', - VALID_AR_4: '9 11 2643 1111', - VALID_MX_1: '33 1234-5678', - VALID_MX_2: '1 33 1234-5678', - VALID_MX_3: '+52 1 33 1234-5678', - VALID_LR: '881551952', - VALID_CI: '+225 2122003801', - FORMATTED_AR: '+5491126431111', - FORMATTED_MX: '+523312345678', - FORMATTED_LR: '+231881551952', - FORMATTED_CI: '+2252122003801', - DISPLAY_AR: '9 11 2643-1111', - DISPLAY_MX: '33 1234 5678', - DISPLAY_LR: '88 155 1952', - DISPLAY_CI: '21 22 0 03801', - INVALID_EMPTY: '', - TOO_SHORT: '123', - VALID_E164: '+141555544444', -} - -describe('Phone number formatting and utilities', () => { - describe('E164 formatting', () => { - it('Invalid empty', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.INVALID_EMPTY, COUNTRY_CODES.US)).toBe(null) - }) - it('Format US phone simple, no country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_US_1, COUNTRY_CODES.US)).toBe('+16282287826') - }) - it('Format US phone messy, no country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_US_2, COUNTRY_CODES.US)).toBe('+16282287826') - }) - it('Format US phone simple, with country code and wrong region', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_US_3, COUNTRY_CODES.AR)).toBe('+16282287826') - }) - it('Format US phone simple, with country code no plus', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_US_4, COUNTRY_CODES.US)).toBe('+16282287826') - }) - it('Format DE phone simple, no country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_DE_1, COUNTRY_CODES.DE)).toBe('+4915229355106') - }) - it('Format DE phone messy, no country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_DE_2, COUNTRY_CODES.DE)).toBe('+4915229355106') - }) - it('Format DE phone messy, wrong country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_DE_2, COUNTRY_CODES.US)).toBe(null) - }) - it('Format DE phone with country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_DE_3, COUNTRY_CODES.DE)).toBe('+4915229355106') - }) - it('Format AR phone simple, no country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_AR_1, COUNTRY_CODES.AR)).toBe( - TEST_PHONE_NUMBERS.FORMATTED_AR - ) - }) - it('Format AR phone messy, no country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_AR_2, COUNTRY_CODES.AR)).toBe( - TEST_PHONE_NUMBERS.FORMATTED_AR - ) - }) - it('Format AR phone with country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_AR_3, COUNTRY_CODES.AR)).toBe( - TEST_PHONE_NUMBERS.FORMATTED_AR - ) - }) - - it('Format MX phone simple, no country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_MX_1, COUNTRY_CODES.MX)).toBe( - TEST_PHONE_NUMBERS.FORMATTED_MX - ) - }) - it('Format MX phone simple with 1, no country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_MX_2, COUNTRY_CODES.MX)).toBe( - TEST_PHONE_NUMBERS.FORMATTED_MX - ) - }) - it('Format MX phone with country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_MX_3, COUNTRY_CODES.MX)).toBe( - TEST_PHONE_NUMBERS.FORMATTED_MX - ) - }) - - it('Format LR phone with country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_LR, COUNTRY_CODES.LR)).toBe( - TEST_PHONE_NUMBERS.FORMATTED_LR - ) - }) - - it('Format CI phone with country code', () => { - expect(getE164Number(TEST_PHONE_NUMBERS.VALID_CI, COUNTRY_CODES.CI)).toBe( - TEST_PHONE_NUMBERS.FORMATTED_CI - ) - }) - }) - - describe('Display formatting', () => { - it('Invalid empty', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.INVALID_EMPTY, COUNTRY_CODES.US)).toBe('') - }) - it('Format US phone simple, no country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_US_1, COUNTRY_CODES.US)).toBe( - '(628) 228-7826' - ) - }) - it('Format US phone messy, no country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_US_2, COUNTRY_CODES.US)).toBe( - '(628) 228-7826' - ) - }) - it('Format US phone simple, with country code and wrong region', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_US_3, COUNTRY_CODES.AR)).toBe( - '(628) 228-7826' - ) - }) - it('Format US phone simple, with country code but no param', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_US_3, COUNTRY_CODES.US)).toBe( - '(628) 228-7826' - ) - }) - it('Format US phone simple, with country code no plus', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_US_4, COUNTRY_CODES.US)).toBe( - '(628) 228-7826' - ) - }) - it('Format DE phone simple, no country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_DE_1, COUNTRY_CODES.DE)).toBe( - '01522 9355106' - ) - }) - it('Format DE phone messy, no country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_DE_2, COUNTRY_CODES.DE)).toBe( - '01522 9355106' - ) - }) - it('Format DE phone messy, wrong country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_DE_2, COUNTRY_CODES.US)).toBe( - TEST_PHONE_NUMBERS.VALID_DE_2 - ) - }) - it('Format DE phone with country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_DE_3, COUNTRY_CODES.DE)).toBe( - '01522 9355106' - ) - }) - it('Format AR phone simple, no country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_AR_1, COUNTRY_CODES.AR)).toBe( - TEST_PHONE_NUMBERS.DISPLAY_AR - ) - }) - it('Format AR phone messy, no country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_AR_2, COUNTRY_CODES.AR)).toBe( - TEST_PHONE_NUMBERS.DISPLAY_AR - ) - }) - it('Format AR phone with country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_AR_3, COUNTRY_CODES.AR)).toBe( - TEST_PHONE_NUMBERS.DISPLAY_AR - ) - }) - - it('Format MX phone with country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_MX_3, COUNTRY_CODES.MX)).toBe( - TEST_PHONE_NUMBERS.DISPLAY_MX - ) - }) - - it('Format LR phone with no country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_LR, COUNTRY_CODES.LR)).toBe( - TEST_PHONE_NUMBERS.DISPLAY_LR - ) - }) - - it('Format CI phone with no country code', () => { - expect(getDisplayPhoneNumber(TEST_PHONE_NUMBERS.VALID_CI, COUNTRY_CODES.CI)).toBe( - TEST_PHONE_NUMBERS.DISPLAY_CI - ) - }) - }) - - describe('Number Parsing', () => { - it('Invalid empty', () => { - expect(parsePhoneNumber(TEST_PHONE_NUMBERS.INVALID_EMPTY, COUNTRY_CODES.US)).toBe(null) - }) - it('Too short', () => { - expect(parsePhoneNumber(TEST_PHONE_NUMBERS.TOO_SHORT, COUNTRY_CODES.US)).toBe(null) - }) - it('Format US messy phone #', () => { - expect(parsePhoneNumber(TEST_PHONE_NUMBERS.VALID_US_2, COUNTRY_CODES.US)).toMatchObject({ - e164Number: '+16282287826', - displayNumber: '(628) 228-7826', - countryCode: 1, - regionCode: 'US', - }) - }) - it('Format DE messy phone #', () => { - expect(parsePhoneNumber(TEST_PHONE_NUMBERS.VALID_DE_2, COUNTRY_CODES.DE)).toMatchObject({ - e164Number: '+4915229355106', - displayNumber: '01522 9355106', - countryCode: 49, - regionCode: 'DE', - }) - }) - it('Format AR messy phone # 1', () => { - expect(parsePhoneNumber(TEST_PHONE_NUMBERS.VALID_AR_4, COUNTRY_CODES.AR)).toMatchObject({ - e164Number: TEST_PHONE_NUMBERS.FORMATTED_AR, - displayNumber: TEST_PHONE_NUMBERS.DISPLAY_AR, - countryCode: 54, - regionCode: 'AR', - }) - }) - - it('Format MX phone # 1', () => { - expect(parsePhoneNumber(TEST_PHONE_NUMBERS.VALID_MX_1, COUNTRY_CODES.MX)).toMatchObject({ - e164Number: TEST_PHONE_NUMBERS.FORMATTED_MX, - displayNumber: TEST_PHONE_NUMBERS.DISPLAY_MX, - countryCode: 52, - regionCode: 'MX', - }) - }) - - it('Format CI phone #', () => { - expect(parsePhoneNumber(TEST_PHONE_NUMBERS.VALID_CI, COUNTRY_CODES.CI)).toMatchObject({ - e164Number: TEST_PHONE_NUMBERS.FORMATTED_CI, - displayNumber: TEST_PHONE_NUMBERS.DISPLAY_CI, - countryCode: 225, - regionCode: 'CI', - }) - }) - }) - - describe('Other phone helper methods', () => { - it('gets country code', () => { - expect(getCountryCode(TEST_PHONE_NUMBERS.VALID_US_3)).toBe(1) - expect(getCountryCode(TEST_PHONE_NUMBERS.VALID_DE_3)).toBe(49) - expect(getCountryCode(TEST_PHONE_NUMBERS.VALID_AR_3)).toBe(54) - expect(getCountryCode(TEST_PHONE_NUMBERS.VALID_CI)).toBe(225) - }) - - it('gets region code', () => { - expect(getRegionCode(TEST_PHONE_NUMBERS.VALID_US_3)).toBe('US') - expect(getRegionCode(TEST_PHONE_NUMBERS.VALID_DE_3)).toBe('DE') - expect(getRegionCode(TEST_PHONE_NUMBERS.VALID_AR_3)).toBe('AR') - expect(getRegionCode(TEST_PHONE_NUMBERS.VALID_CI)).toBe('CI') - }) - - it('gets region code from country code', () => { - expect(getRegionCodeFromCountryCode(COUNTRY_CODES.US)).toBe('US') - expect(getRegionCodeFromCountryCode(COUNTRY_CODES.DE)).toBe('DE') - expect(getRegionCodeFromCountryCode(COUNTRY_CODES.AR)).toBe('AR') - expect(getRegionCodeFromCountryCode(COUNTRY_CODES.CI)).toBe('CI') - }) - - it('checks if number is e164', () => { - // @ts-ignore - expect(isE164Number(null)).toBe(false) - expect(isE164Number('')).toBe(false) - expect(isE164Number(TEST_PHONE_NUMBERS.VALID_US_1)).toBe(false) - expect(isE164Number(TEST_PHONE_NUMBERS.VALID_US_2)).toBe(false) - expect(isE164Number(TEST_PHONE_NUMBERS.VALID_US_3)).toBe(true) - expect(isE164Number(TEST_PHONE_NUMBERS.VALID_US_4)).toBe(false) - }) - }) - - describe('Example phones', () => { - it('gets example by country showing zeros', () => { - expect(getExampleNumber(COUNTRY_CODES.AR)).toBe('000 0000-0000') - expect(getExampleNumber(COUNTRY_CODES.DE)).toBe('000 000000') - expect(getExampleNumber(COUNTRY_CODES.US)).toBe('(000) 000-0000') - expect(getExampleNumber(COUNTRY_CODES.CI)).toBe('00 00 0 00000') - }) - - it('gets example by country', () => { - expect(getExampleNumber(COUNTRY_CODES.AR, false)).toBe('011 2345-6789') - expect(getExampleNumber(COUNTRY_CODES.DE, false)).toBe('030 123456') - expect(getExampleNumber(COUNTRY_CODES.US, false)).toBe('(201) 555-0123') - expect(getExampleNumber(COUNTRY_CODES.CI, false)).toBe('21 23 4 56789') - }) - - it('gets example by country showing zeros in international way', () => { - expect(getExampleNumber(COUNTRY_CODES.AR, true, true)).toBe('+54 00 0000-0000') - expect(getExampleNumber(COUNTRY_CODES.DE, true, true)).toBe('+49 00 000000') - expect(getExampleNumber(COUNTRY_CODES.US, true, true)).toBe('+1 000-000-0000') - expect(getExampleNumber(COUNTRY_CODES.CI, true, true)).toBe('+225 00 00 0 00000') - }) - }) -}) diff --git a/packages/sdk/phone-utils/src/phoneNumbers.ts b/packages/sdk/phone-utils/src/phoneNumbers.ts deleted file mode 100644 index 015416bdc83..00000000000 --- a/packages/sdk/phone-utils/src/phoneNumbers.ts +++ /dev/null @@ -1,246 +0,0 @@ -import { isE164Number, ParsedPhoneNumber } from '@celo/base/lib/phoneNumbers' -import { - PhoneNumber, - PhoneNumberFormat, - PhoneNumberType, - PhoneNumberUtil, -} from 'google-libphonenumber' - -const phoneUtil = PhoneNumberUtil.getInstance() -const MIN_PHONE_LENGTH = 4 - -export function getCountryCode(e164PhoneNumber: string) { - if (!e164PhoneNumber) { - return null - } - try { - return phoneUtil.parse(e164PhoneNumber).getCountryCode() - } catch (error) { - console.debug(`getCountryCode, number: ${e164PhoneNumber}, error: ${error}`) - return null - } -} - -export function getRegionCode(e164PhoneNumber: string) { - if (!e164PhoneNumber) { - return null - } - try { - return phoneUtil.getRegionCodeForNumber(phoneUtil.parse(e164PhoneNumber)) - } catch (error) { - console.debug(`getRegionCodeForNumber, number: ${e164PhoneNumber}, error: ${error}`) - return null - } -} - -export function getRegionCodeFromCountryCode(countryCode: string) { - if (!countryCode) { - return null - } - try { - return phoneUtil.getRegionCodeForCountryCode(parseInt(countryCode, 10)) - } catch (error) { - console.debug(`getRegionCodeFromCountryCode, countrycode: ${countryCode}, error: ${error}`) - return null - } -} - -export function getDisplayPhoneNumber(phoneNumber: string, defaultCountryCode: string) { - const phoneDetails = parsePhoneNumber(phoneNumber, defaultCountryCode) - if (phoneDetails) { - return phoneDetails.displayNumber - } else { - // Fallback to input instead of showing nothing for invalid numbers - return phoneNumber - } -} - -export function getDisplayNumberInternational(e164PhoneNumber: string) { - const countryCode = getCountryCode(e164PhoneNumber) - const phoneDetails = parsePhoneNumber(e164PhoneNumber, (countryCode || '').toString()) - if (phoneDetails) { - return phoneDetails.displayNumberInternational - } else { - // Fallback to input instead of showing nothing for invalid numbers - return e164PhoneNumber - } -} - -export function getE164DisplayNumber(e164PhoneNumber: string) { - const countryCode = getCountryCode(e164PhoneNumber) - return getDisplayPhoneNumber(e164PhoneNumber, (countryCode || '').toString()) -} - -export function getE164Number(phoneNumber: string, defaultCountryCode: string) { - const phoneDetails = parsePhoneNumber(phoneNumber, defaultCountryCode) - if (phoneDetails && isE164Number(phoneDetails.e164Number)) { - return phoneDetails.e164Number - } else { - return null - } -} - -// Actually runs through the parsing instead of using a regex -export function isE164NumberStrict(phoneNumber: string) { - try { - const parsedPhoneNumber = phoneUtil.parse(phoneNumber) - if (!phoneUtil.isValidNumber(parsedPhoneNumber)) { - return false - } - return phoneUtil.format(parsedPhoneNumber, PhoneNumberFormat.E164) === phoneNumber - } catch { - return false - } -} - -export function parsePhoneNumber( - phoneNumberRaw: string, - defaultCountryCode?: string -): ParsedPhoneNumber | null { - try { - if (!phoneNumberRaw || phoneNumberRaw.length < MIN_PHONE_LENGTH) { - return null - } - - const defaultRegionCode = defaultCountryCode - ? getRegionCodeFromCountryCode(defaultCountryCode) - : null - const parsedNumberUnfixed = phoneUtil.parse(phoneNumberRaw, defaultRegionCode || undefined) - const parsedCountryCode = parsedNumberUnfixed.getCountryCode() - const parsedRegionCode = phoneUtil.getRegionCodeForNumber(parsedNumberUnfixed) - const parsedNumber = handleSpecialCasesForParsing( - parsedNumberUnfixed, - parsedCountryCode, - parsedRegionCode - ) - - if (!parsedNumber) { - return null - } - - const isValid = phoneUtil.isValidNumberForRegion(parsedNumber, parsedRegionCode) - - return isValid - ? { - e164Number: phoneUtil.format(parsedNumber, PhoneNumberFormat.E164), - displayNumber: handleSpecialCasesForDisplay(parsedNumber, parsedCountryCode), - displayNumberInternational: phoneUtil.format( - parsedNumber, - PhoneNumberFormat.INTERNATIONAL - ), - countryCode: parsedCountryCode, - regionCode: parsedRegionCode, - } - : null - } catch (error) { - console.debug(`phoneNumbers/parsePhoneNumber/Failed to parse phone number, error: ${error}`) - return null - } -} - -function handleSpecialCasesForParsing( - parsedNumber: PhoneNumber, - countryCode?: number, - regionCode?: string -) { - if (!countryCode || !regionCode) { - return parsedNumber - } - - switch (countryCode) { - // Argentina - // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#why-is-this-number-from-argentina-ar-or-mexico-mx-not-identified-as-the-right-number-type - // https://en.wikipedia.org/wiki/Telephone_numbers_in_Argentina - case 54: - return prependToFormMobilePhoneNumber(parsedNumber, regionCode, '9') - - default: - return parsedNumber - } -} - -// TODO(Rossy) Given the inconsistencies of numbers around the world, we should -// display e164 everywhere to ensure users knows exactly who their sending money to -function handleSpecialCasesForDisplay(parsedNumber: PhoneNumber, countryCode?: number) { - switch (countryCode) { - // Argentina - // The Google lib formatter incorretly adds '15' to the nationally formatted number for Argentina - // However '15' is only needed when calling a mobile from a landline - case 54: - return phoneUtil - .format(parsedNumber, PhoneNumberFormat.INTERNATIONAL) - .replace(/\+54(\s)?/, '') - - case 231: - const formatted = phoneUtil.format(parsedNumber, PhoneNumberFormat.NATIONAL) - return formatted && formatted[0] === '0' ? formatted.slice(1) : formatted - - default: - return phoneUtil.format(parsedNumber, PhoneNumberFormat.NATIONAL) - } -} - -/** - * Some countries require a prefix before the area code depending on if the number is - * mobile vs landline and international vs national - */ - -function prependToFormMobilePhoneNumber( - parsedNumber: PhoneNumber, - regionCode: string, - prefix: string -) { - if (phoneUtil.getNumberType(parsedNumber) === PhoneNumberType.MOBILE) { - return parsedNumber - } - - let nationalNumber = phoneUtil.format(parsedNumber, PhoneNumberFormat.NATIONAL) - // Nationally formatted numbers sometimes contain leading 0 - if (nationalNumber.charAt(0) === '0') { - nationalNumber = nationalNumber.slice(1) - } - // If the number already starts with prefix, don't prepend it again - if (nationalNumber.startsWith(prefix)) { - return null - } - - const adjustedNumber = phoneUtil.parse(prefix + nationalNumber, regionCode) - return phoneUtil.getNumberType(adjustedNumber) === PhoneNumberType.MOBILE ? adjustedNumber : null -} - -export function getExampleNumber( - regionCode: string, - useOnlyZeroes = true, - isInternational = false -) { - const examplePhone = phoneUtil.getExampleNumber( - getRegionCodeFromCountryCode(regionCode) as string - ) - - if (!examplePhone) { - return - } - - const formatedExample = phoneUtil.format( - examplePhone, - isInternational ? PhoneNumberFormat.INTERNATIONAL : PhoneNumberFormat.NATIONAL - ) - - if (useOnlyZeroes) { - if (isInternational) { - return formatedExample.replace(/(^\+[0-9]{1,3} |[0-9])/g, (value, _, i) => (i ? '0' : value)) - } - return formatedExample.replace(/[0-9]/g, '0') - } - - return formatedExample -} - -export const PhoneNumberUtils = { - getCountryCode, - getRegionCode, - getDisplayPhoneNumber, - getE164Number, - isE164Number, - parsePhoneNumber, -} diff --git a/packages/sdk/phone-utils/tsconfig.json b/packages/sdk/phone-utils/tsconfig.json deleted file mode 100644 index 8a3e89de4de..00000000000 --- a/packages/sdk/phone-utils/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "downlevelIteration": true, - "resolveJsonModule": true - }, - "include": ["src/**/*.ts", "src/**/*.json"], - "exclude": ["src/**/*.test.ts"] -} diff --git a/packages/sdk/phone-utils/tslint.json b/packages/sdk/phone-utils/tslint.json deleted file mode 100644 index 7221d56e375..00000000000 --- a/packages/sdk/phone-utils/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "no-console": false, - "no-floating-promises": true - } -} diff --git a/packages/sdk/phone-utils/typedoc.json b/packages/sdk/phone-utils/typedoc.json deleted file mode 100644 index 704fd90f999..00000000000 --- a/packages/sdk/phone-utils/typedoc.json +++ /dev/null @@ -1,15 +0,0 @@ - - -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/phone-utils", - "gitRevision": "master", - "readme": "readme.md" -} diff --git a/packages/sdk/transactions-uri/.gitignore b/packages/sdk/transactions-uri/.gitignore deleted file mode 100644 index 7fabe89f619..00000000000 --- a/packages/sdk/transactions-uri/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -lib/ -tmp/ -.tmp/ -.env \ No newline at end of file diff --git a/packages/sdk/transactions-uri/.npmignore b/packages/sdk/transactions-uri/.npmignore deleted file mode 100644 index 45e506bacd1..00000000000 --- a/packages/sdk/transactions-uri/.npmignore +++ /dev/null @@ -1,17 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils \ No newline at end of file diff --git a/packages/sdk/transactions-uri/CHANGELOG.md b/packages/sdk/transactions-uri/CHANGELOG.md deleted file mode 100644 index 26fb80e24ea..00000000000 --- a/packages/sdk/transactions-uri/CHANGELOG.md +++ /dev/null @@ -1,40 +0,0 @@ -# @celo/transactions-uri - -## 5.0.6 - -### Patch Changes - -- Updated dependencies [679ef0c60] -- Updated dependencies [97d5ccf43] - - @celo/connect@5.1.1 - - @celo/base@6.0.0 - -## 5.0.6-beta.0 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - - @celo/connect@5.1.1-beta.0 - -## 5.0.5 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0 - - @celo/base@5.0.5 - -## 5.0.5-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/transactions-uri/README.md b/packages/sdk/transactions-uri/README.md deleted file mode 100644 index ba790fcd089..00000000000 --- a/packages/sdk/transactions-uri/README.md +++ /dev/null @@ -1,6 +0,0 @@ - - -# @celo/transactions-uri - - -Makes it easy to generate Celo transaction URIs and QR codes. diff --git a/packages/sdk/transactions-uri/jest.config.js b/packages/sdk/transactions-uri/jest.config.js deleted file mode 100644 index 6037bd8aa5d..00000000000 --- a/packages/sdk/transactions-uri/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], - setupFilesAfterEnv: ['@celo/dev-utils/lib/matchers', '/jestSetup.ts'], - globalSetup: '/src/test-utils/setup.global.ts', - globalTeardown: '/src/test-utils/teardown.global.ts', - verbose: true, -} diff --git a/packages/sdk/transactions-uri/jestSetup.ts b/packages/sdk/transactions-uri/jestSetup.ts deleted file mode 100644 index 3bc66344853..00000000000 --- a/packages/sdk/transactions-uri/jestSetup.ts +++ /dev/null @@ -1,5 +0,0 @@ -const fetchMockSandbox = require('fetch-mock').sandbox() -jest.mock('cross-fetch', () => fetchMockSandbox) - -// @ts-ignore -global.fetchMock = fetchMockSandbox diff --git a/packages/sdk/transactions-uri/package.json b/packages/sdk/transactions-uri/package.json deleted file mode 100644 index 7c72b089df8..00000000000 --- a/packages/sdk/transactions-uri/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "@celo/transactions-uri", - "version": "5.0.6", - "description": "Celo's transactions uri generation", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "author": "Celo", - "license": "Apache-2.0", - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/transactions-uri", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/transactions-uri", - "keywords": [ - "celo", - "blockchain", - "contractkit" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@types/debug": "^4.1.5", - "@types/qrcode": "^1.3.4", - "@celo/base": "^6.0.0", - "@celo/connect": "^5.1.1", - "bn.js": "4.11.9", - "qrcode": "1.4.4", - "web3-eth-abi": "1.10.0" - }, - "devDependencies": { - "@celo/celo-devchain": "^6.0.3", - "@celo/dev-utils": "0.0.1", - "@celo/contractkit": "^6.0.0", - "dotenv": "^8.2.0" - }, - "engines": { - "node": ">=8.13.0" - } -} diff --git a/packages/sdk/transactions-uri/src/index.ts b/packages/sdk/transactions-uri/src/index.ts deleted file mode 100644 index 0134ccf1c18..00000000000 --- a/packages/sdk/transactions-uri/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './tx-uri' diff --git a/packages/sdk/transactions-uri/src/test-utils/setup.global.ts b/packages/sdk/transactions-uri/src/test-utils/setup.global.ts deleted file mode 100644 index c6605fd245c..00000000000 --- a/packages/sdk/transactions-uri/src/test-utils/setup.global.ts +++ /dev/null @@ -1,18 +0,0 @@ -import baseSetup from '@celo/dev-utils/lib/ganache-setup' -// Has to import the matchers somewhere so that typescript knows the matchers have been made available -import _unused from '@celo/dev-utils/lib/matchers' -import { waitForPortOpen } from '@celo/dev-utils/lib/network' -import * as path from 'path' - -// Warning: There should be an unused import of '@celo/dev-utils/lib/matchers' above. -// If there is not, then your editor probably deleted it automatically. - -export default async function globalSetup() { - const chainDataPath = path.join(path.dirname(require.resolve('@celo/celo-devchain')), '../chains') - // v10 refers to core contract release 10 - await baseSetup(path.resolve(chainDataPath), 'v10.tar.gz', { - from_targz: true, - }) - await waitForPortOpen('localhost', 8545, 60) - console.log('...ganache started') -} diff --git a/packages/sdk/transactions-uri/src/test-utils/teardown.global.ts b/packages/sdk/transactions-uri/src/test-utils/teardown.global.ts deleted file mode 100644 index aea64f79dbb..00000000000 --- a/packages/sdk/transactions-uri/src/test-utils/teardown.global.ts +++ /dev/null @@ -1,5 +0,0 @@ -import teardown from '@celo/dev-utils/lib/ganache-teardown' - -export default async function globalTeardown() { - await teardown() -} diff --git a/packages/sdk/transactions-uri/src/tx-uri.test.ts b/packages/sdk/transactions-uri/src/tx-uri.test.ts deleted file mode 100644 index 8e7236f12c3..00000000000 --- a/packages/sdk/transactions-uri/src/tx-uri.test.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { CeloTx } from '@celo/connect' -import { CeloContract, newKitFromWeb3 } from '@celo/contractkit' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { buildUri, parseUri } from './tx-uri' - -testWithGanache('URI utils', (web3) => { - const recipient = '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef' - const value = '100' - - const simpleTransferTx: CeloTx = { - value, - to: recipient, - } - const simpleTransferUri = `celo:${recipient}?value=${value}` - - let stableTokenTransferUri: string - let stableTokenTransferTx: CeloTx - - let lockGoldUri: string - let lockGoldTx: CeloTx - - const kit = newKitFromWeb3(web3) - - beforeAll(async () => { - const stableTokenAddr = await kit.registry.addressFor(CeloContract.StableToken) - stableTokenTransferUri = `celo:${stableTokenAddr}/transfer(address,uint256)?args=[${recipient},${value}]` - const stableToken = await kit.contracts.getStableToken() - const transferData = stableToken.transfer(recipient, value).txo.encodeABI() - stableTokenTransferTx = { - to: stableTokenAddr, - data: transferData, - } - - const lockedGoldAddr = await kit.registry.addressFor(CeloContract.LockedGold) - lockGoldUri = `celo:${lockedGoldAddr}/lock()?value=${value}` - const lockedGold = await kit.contracts.getLockedGold() - const lockData = lockedGold.lock().txo.encodeABI() - lockGoldTx = { - to: lockedGoldAddr, - data: lockData, - value, - } - }) - - describe('#parseUri', () => { - it('should match simple CELO transfer tx', () => { - const resultTx = parseUri(simpleTransferUri) - expect(resultTx).toEqual(simpleTransferTx) - }) - - it('should match cUSD transfer tx', () => { - const resultTx = parseUri(stableTokenTransferUri) - expect(resultTx).toEqual(stableTokenTransferTx) - }) - - it('should match lock gold tx', () => { - const resultTx = parseUri(lockGoldUri) - expect(resultTx).toEqual(lockGoldTx) - }) - }) - - describe('#buildUri', () => { - it('should match simple CELO transfer URI', () => { - const resultUri = buildUri(simpleTransferTx) - expect(resultUri).toEqual(simpleTransferUri) - }) - - it('should match cUSD transfer URI', () => { - const uri = buildUri(stableTokenTransferTx, 'transfer', ['address', 'uint256']) - expect(uri).toEqual(stableTokenTransferUri) - }) - - it('should match lock gold URI', () => { - const uri = buildUri(lockGoldTx, 'lock') - expect(uri).toEqual(lockGoldUri) - }) - }) -}) diff --git a/packages/sdk/transactions-uri/src/tx-uri.ts b/packages/sdk/transactions-uri/src/tx-uri.ts deleted file mode 100644 index 780c556cf10..00000000000 --- a/packages/sdk/transactions-uri/src/tx-uri.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { trimLeading0x } from '@celo/base/lib/address' -import { zeroRange } from '@celo/base/lib/collections' -import { AbiCoder, CeloTx } from '@celo/connect' -import BN from 'bn.js' -import qrcode from 'qrcode' -import querystring from 'querystring' -import abiWeb3 from 'web3-eth-abi' - -const abi = abiWeb3 as unknown as AbiCoder - -// see https://solidity.readthedocs.io/en/v0.5.3/abi-spec.html#function-selector-and-argument-encoding -const ABI_TYPE_REGEX = '(u?int(8|16|32|64|128|256)|address|bool|bytes(4|32)?|string)(\\[\\])?' -const FUNCTION_REGEX = `(?\\w+\\((?(,?${ABI_TYPE_REGEX})*)\\))` -const ADDRESS_REGEX_STR = '(?
0x[a-fA-F0-9]{40})' -const CHAIN_ID_REGEX = '(?\\d+)' -const TX_PARAMS = ['feeCurrency', 'gas', 'gasPrice', 'value', 'gatewayFee', 'gatewayFeeRecipient'] -const PARAM_REGEX = `(${TX_PARAMS.join('|')})=\\w+` -const ARGS_REGEX = 'args=\\[(,?\\w+)*\\]' -const QUERY_REGEX = `(?(&?(${PARAM_REGEX}|${ARGS_REGEX}))+)` - -// URI scheme mostly borrowed from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-681.md -const URI_REGEX_STR = `^celo:${ADDRESS_REGEX_STR}(@${CHAIN_ID_REGEX})?(/${FUNCTION_REGEX})?(\\?${QUERY_REGEX})?$` - -const uriRegexp = new RegExp(URI_REGEX_STR) - -export function parseUri(uri: string): CeloTx { - const matchObj = uriRegexp.exec(uri) - if (matchObj == null) { - throw new Error(`URI ${uri}\n did not match\n ${URI_REGEX_STR}`) - } - const namedGroups = (matchObj as any).groups - - let tx: CeloTx = { - to: namedGroups.address, - } - - if (namedGroups.chainId !== undefined) { - tx.chainId = namedGroups.chainId - } - - if (namedGroups.query !== undefined) { - const parsedQuery = querystring.parse(namedGroups.query) - - if (namedGroups.function !== undefined) { - const functionSig = abi.encodeFunctionSignature(namedGroups.function) - tx.data = functionSig - - if (namedGroups.inputTypes != null && namedGroups.inputTypes !== '') { - const abiTypes = namedGroups.inputTypes.split(',') - const rawArgs = (parsedQuery.args || '[]') as string - const builtArgs = rawArgs.slice(1, rawArgs.length - 1).split(',') - const callSig = abi.encodeParameters(abiTypes, builtArgs) - - tx.data += trimLeading0x(callSig) - } - } - - const { args, ...txParams } = parsedQuery - tx = { ...tx, ...txParams } - } - - return tx -} - -export function buildUri(tx: CeloTx, functionName?: string, abiTypes: string[] = []): string { - if (!tx.to) { - throw new Error("'to' address must be defined for celo URIs") - } - let uri = `celo:${tx.to!}` - - if (tx.chainId) { - uri += `@${tx.chainId}` - } - - let functionArgs: string[] | undefined - if (tx.data !== undefined) { - if (!functionName) { - throw new Error("Cannot decode tx 'data' without 'functionName'") - } - - const functionSelector = `${functionName}(${abiTypes.join(',')})` - const functionSig = trimLeading0x(abi.encodeFunctionSignature(functionSelector)) - const txData = trimLeading0x(tx.data) - const funcEncoded = txData.slice(0, 8) - - if (functionSig !== funcEncoded) { - throw new Error("'functionName' and 'abiTypes' do not match first 4 bytes of 'tx.data'") - } - - uri += `/${functionSelector}` - - if (txData.length > 8) { - const argsEncoded = txData.slice(8) - const decoded = abi.decodeParameters(abiTypes, argsEncoded) - functionArgs = zeroRange(decoded.__length__).map((idx) => decoded[idx].toLowerCase()) - } - } - - const { data, to, chainId, nonce, hardfork, common, chain, ...txQueryParams } = tx - - uri += '?' - if (functionArgs) { - uri += `args=[${functionArgs.join(',')}]` - } - const params = txQueryParams as { [key: string]: string } - if (txQueryParams.value instanceof BN) { - params.value = txQueryParams.value.toString() - } - uri += querystring.stringify({ ...params }) - - return uri -} - -export function QrFromUri(uri: string, type: 'svg' | 'terminal' | 'utf8') { - if (!uriRegexp.test(uri)) { - throw new Error(`Invalid uri ${uri}`) - } - - return qrcode.toString(uri, { type }) -} diff --git a/packages/sdk/transactions-uri/tsconfig.json b/packages/sdk/transactions-uri/tsconfig.json deleted file mode 100644 index b15de292905..00000000000 --- a/packages/sdk/transactions-uri/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src/**/*", "types/**/*"], - "exclude": ["**/*.test.ts"] -} diff --git a/packages/sdk/transactions-uri/tslint.json b/packages/sdk/transactions-uri/tslint.json deleted file mode 100644 index 036f000683b..00000000000 --- a/packages/sdk/transactions-uri/tslint.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "no-console": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/transactions-uri/typedoc.json b/packages/sdk/transactions-uri/typedoc.json deleted file mode 100644 index 2835fe206d2..00000000000 --- a/packages/sdk/transactions-uri/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/generated/*.ts", "**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/transactions-uri", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/utils/.gitignore b/packages/sdk/utils/.gitignore deleted file mode 100644 index 592a8d4a357..00000000000 --- a/packages/sdk/utils/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.js -!jest.config.js -lib \ No newline at end of file diff --git a/packages/sdk/utils/.npmignore b/packages/sdk/utils/.npmignore deleted file mode 100644 index 6bc36640606..00000000000 --- a/packages/sdk/utils/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -/node_modules -/coverage -/tslint.json -/tsconfig.json -/test -/src - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/utils/CHANGELOG.md b/packages/sdk/utils/CHANGELOG.md deleted file mode 100644 index 13995c7b39b..00000000000 --- a/packages/sdk/utils/CHANGELOG.md +++ /dev/null @@ -1,31 +0,0 @@ -# @celo/utils - -## 5.0.6 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0 - -## 5.0.6-beta.0 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - -## 5.0.5 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/base@5.0.5 - -## 5.0.5-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/utils/README.md b/packages/sdk/utils/README.md deleted file mode 100644 index 2718989d0be..00000000000 --- a/packages/sdk/utils/README.md +++ /dev/null @@ -1,5 +0,0 @@ - - -# @celo/utils - -Various utility functions used across celo sdks \ No newline at end of file diff --git a/packages/sdk/utils/jest.config.js b/packages/sdk/utils/jest.config.js deleted file mode 100644 index 53358d65426..00000000000 --- a/packages/sdk/utils/jest.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/utils/package.json b/packages/sdk/utils/package.json deleted file mode 100644 index 6557b671e84..00000000000 --- a/packages/sdk/utils/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "@celo/utils", - "version": "5.0.6", - "description": "Celo common utils", - "author": "Celo", - "license": "Apache-2.0", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "sideEffects": false, - "homepage": "https://celo-sdk-docs.readthedocs.io/en/latest/utils", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/utils", - "scripts": { - "prepublishOnly": "yarn build", - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand --ci", - "test:verbose": "jest --verbose", - "lint": "tslint -c tslint.json --project ." - }, - "files": [ - "lib/**/*" - ], - "dependencies": { - "@celo/base": "^6.0.0", - "@ethereumjs/util": "8.0.5", - "rlp": "^2.2.4", - "@types/bn.js": "^5.1.0", - "@types/elliptic": "^6.4.9", - "@types/node": "^18.7.16", - "bignumber.js": "^9.0.0", - "elliptic": "^6.5.4", - "ethereum-cryptography": "1.2.0", - "bn.js": "4.11.9", - "io-ts": "2.0.1", - "fp-ts": "2.1.1", - "web3-eth-abi": "1.10.0", - "web3-utils": "1.10.0" - }, - "devDependencies": { - "@celo/typescript": "0.0.1" - }, - "resolutions": { - "@types/bn.js": "4.11.6", - "bn.js": "4.11.9", - "elliptic/bn.js": "bn.js@4.11.9", - "web3-utils/bn.js": "bn.js@4.11.9", - "@ethereumjs/bn.js": "bn.js@4.11.9" - } -} diff --git a/packages/sdk/utils/scripts/linkdocs.ts b/packages/sdk/utils/scripts/linkdocs.ts deleted file mode 100644 index 961bf59b73a..00000000000 --- a/packages/sdk/utils/scripts/linkdocs.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { readFileSync, writeFileSync } from 'fs' -import { TypeDocOptionMap } from 'typedoc' - -const pkgName = process.argv.slice(2)[0] -if (!pkgName) { - console.error('No package name given.') - process.exit(1) -} -const indent = ' ' - -const config: Partial = JSON.parse(readFileSync('./typedoc.json').toString()) -const localSummaryPath = `${config.out!}/SUMMARY.md` -const localSummary = readFileSync(localSummaryPath).toString() - -const filePathPrefix = pkgName.indexOf('wallet') >= 0 ? '../../../docs/' : '../../docs/' -const localPathPrefix = config.out!.replace(filePathPrefix, '') - -const pathRegex = /\(.*.md\)/g -const modifiedLocalSummary = localSummary - .replace(pathRegex, (match) => `(${localPathPrefix}/${match.slice(1, -1)})`) - .replace(/\*/g, indent + '-') - -const globalSummaryPath = filePathPrefix + 'SUMMARY.md' -const globalSummary = readFileSync(globalSummaryPath).toString() - -// Adding the indent to the tag, otherwise the markdows has poor preview -const startTag = `${indent}` -const endTag = `${indent}` - -const modifiedGlobalSummary = - globalSummary.slice(0, globalSummary.search(startTag) + startTag.length) + - '\n' + - modifiedLocalSummary + - '\n' + - globalSummary.slice(globalSummary.search(endTag)) - -writeFileSync(globalSummaryPath, modifiedGlobalSummary) - -console.log(`${globalSummaryPath} updated with links to generated docs`) diff --git a/packages/sdk/utils/src/address.test.ts b/packages/sdk/utils/src/address.test.ts deleted file mode 100644 index 4d16d903ec6..00000000000 --- a/packages/sdk/utils/src/address.test.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { getAddressChunks, isValidAddress } from './address' - -describe(getAddressChunks, () => { - test('splits the address into chunks of 4 chars', async () => { - expect(getAddressChunks('0xce10ce10ce10ce10ce10ce10ce10ce10ce10ce10')).toEqual([ - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - 'ce10', - ]) - }) - - describe('isValidAddress', () => { - describe('when nothing', () => { - it('returns false', () => { - expect(isValidAddress(null as any)).toBe(false) - }) - }) - - describe('when a random string', () => { - it('returns false', () => { - expect(isValidAddress('532ttgs7')).toBe(false) - }) - }) - describe('when an address', () => { - it('returns true', () => { - expect(isValidAddress('0x52395FA87E9EB5b2FB3ec47a34a196AdA5bcF0D0')).toBe(true) - }) - }) - describe('when an zero address', () => { - it('returns true', () => { - expect(isValidAddress('0x0000000000000000000000000000000000000000')).toBe(true) - }) - }) - - describe('when UPPERCASE', () => { - it('returns true', () => { - expect(isValidAddress('0x52395FA87E9EB5b2FB3ec47a34a196AdA5bcF0D0'.toUpperCase())).toBe( - true - ) - }) - }) - - describe('when LOWERCASE', () => { - it('returns true', () => { - expect(isValidAddress('0x52395FA87E9EB5b2FB3ec47a34a196AdA5bcF0D0'.toLowerCase())).toBe( - true - ) - }) - }) - }) -}) diff --git a/packages/sdk/utils/src/address.ts b/packages/sdk/utils/src/address.ts deleted file mode 100644 index 7f001df3b06..00000000000 --- a/packages/sdk/utils/src/address.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { ensureLeading0x, hexToBuffer } from '@celo/base/lib/address' -import { - isValidPrivate, - privateToAddress, - privateToPublic, - pubToAddress, - toBuffer, - toChecksumAddress, -} from '@ethereumjs/util' -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { - Address, - bufferToHex, - ensureLeading0x, - eqAddress, - findAddressIndex, - getAddressChunks, - hexToBuffer, - isHexString, - mapAddressListDataOnto, - mapAddressListOnto, - normalizeAddress, - normalizeAddressWith0x, - NULL_ADDRESS, - trimLeading0x, -} from '@celo/base/lib/address' -export { isValidChecksumAddress, toChecksumAddress } from '@ethereumjs/util' - -export const privateKeyToAddress = (privateKey: string) => - toChecksumAddress(ensureLeading0x(privateToAddress(hexToBuffer(privateKey)).toString('hex'))) - -export const privateKeyToPublicKey = (privateKey: string) => - toChecksumAddress(ensureLeading0x(privateToPublic(hexToBuffer(privateKey)).toString('hex'))) - -export const publicKeyToAddress = (publicKey: string) => - toChecksumAddress( - ensureLeading0x(pubToAddress(toBuffer(ensureLeading0x(publicKey)), true).toString('hex')) - ) - -export const isValidPrivateKey = (privateKey: string) => - privateKey.startsWith('0x') && isValidPrivate(hexToBuffer(privateKey)) - -export const isValidAddress = (input: string): boolean => { - if ('string' !== typeof input) { - return false - } - if (!/^(0x)?[0-9a-f]{40}$/i.test(input)) { - return false - } - if (/^(0x|0X)?[0-9A-F]{40}$/.test(input.toUpperCase())) { - return true - } - - if (toChecksumAddress(input) === input) { - return true - } - - return false -} diff --git a/packages/sdk/utils/src/async.test.ts b/packages/sdk/utils/src/async.test.ts deleted file mode 100644 index 57cfb840adf..00000000000 --- a/packages/sdk/utils/src/async.test.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { concurrentMap, retryAsync, selectiveRetryAsyncWithBackOff, sleep } from './async' - -describe('retryAsync()', () => { - test('tries once if it works', async () => { - const mockFunction = jest.fn() - await retryAsync(mockFunction, 3, [], 1) - expect(mockFunction).toHaveBeenCalledTimes(1) - }) - - test('retries n times', async () => { - const mockFunction = jest.fn(() => { - throw new Error('error') - }) - - try { - await retryAsync(mockFunction, 3, [], 1) - expect(false).toBeTruthy() - } catch (error) { - // should never happen - } - - expect(mockFunction).toHaveBeenCalledTimes(3) - }) -}) - -describe('selectiveRetryAsyncWithBackOff()', () => { - test('tries only once if error is in dontRetry array', async () => { - const mockFunction = jest.fn() - mockFunction.mockImplementation(() => { - throw new Error('test') - }) - let didThrowError = false - try { - await selectiveRetryAsyncWithBackOff(mockFunction, 3, ['test'], []) - } catch { - didThrowError = true - } - expect(mockFunction).toHaveBeenCalledTimes(1) - expect(didThrowError).toBeTruthy() - }) -}) - -const counter = () => { - let value = 0 - - return { - val() { - return value - }, - async inc(x: number) { - await sleep(5) - value++ - return x * x - }, - } -} - -describe('concurrentMap()', () => { - it('should be equivalent to Promise.all(xs.map())', async () => { - const fn = async (x: number) => x * x - - const xs = [1, 3, 4, 5, 6, 23, 90] - const expected = await Promise.all(xs.map(fn)) - const result = await concurrentMap(3, xs, fn) - expect(result).toEqual(expected) - }) - - // TODO this test is flaky, disabling for now - it.skip('should respect the concurrency level', async () => { - const c1 = counter() - const c2 = counter() - - const xs = [1, 3, 4, 5, 6, 23, 90] - - // launch both task, but don't wait for them - const p1 = Promise.all(xs.map(c1.inc)) - const p2 = concurrentMap(2, xs, c2.inc) - - // sleep enough for Promise.all to finish - await sleep(7) - expect(c1.val()).toEqual(xs.length) - expect(c1.val()).not.toEqual(c2.val()) - - await sleep(20) - expect(c1.val()).toEqual(c2.val()) - - await p1 - await p2 - }) - - it('should allow concurrency level > than length', async () => { - const c = counter() - const xs = [1, 3, 4] - const p = concurrentMap(5, xs, c.inc) - await sleep(7) - expect(c.val()).toEqual(xs.length) - await p - }) -}) diff --git a/packages/sdk/utils/src/async.ts b/packages/sdk/utils/src/async.ts deleted file mode 100644 index 1118f417f6b..00000000000 --- a/packages/sdk/utils/src/async.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { - concurrentMap, - concurrentValuesMap, - retryAsync, - retryAsyncWithBackOff, - selectiveRetryAsyncWithBackOff, - sleep, -} from '@celo/base/lib/async' diff --git a/packages/sdk/utils/src/bn.ts b/packages/sdk/utils/src/bn.ts deleted file mode 100644 index da5e647903a..00000000000 --- a/packages/sdk/utils/src/bn.ts +++ /dev/null @@ -1,11 +0,0 @@ -import BN from 'bn.js' - -export function compareBN(a: BN, b: BN) { - if (a.eq(b)) { - return 0 - } else if (a.lt(b)) { - return -1 - } else { - return 1 - } -} diff --git a/packages/sdk/utils/src/celoHistory.ts b/packages/sdk/utils/src/celoHistory.ts deleted file mode 100644 index 0e11c16f84b..00000000000 --- a/packages/sdk/utils/src/celoHistory.ts +++ /dev/null @@ -1,7 +0,0 @@ -import BigNumber from 'bignumber.js' - -const WEI_PER_UNIT = 1000000000000000000 - -// A small amount returns a rate closer to the median rate -export const DOLLAR_AMOUNT_FOR_ESTIMATE = new BigNumber(0.01 * WEI_PER_UNIT) // 0.01 dollar -export const CELO_AMOUNT_FOR_ESTIMATE = new BigNumber(0.01 * WEI_PER_UNIT) // 0.01 celo diff --git a/packages/sdk/utils/src/collections.test.ts b/packages/sdk/utils/src/collections.test.ts deleted file mode 100644 index c808fd7a5b6..00000000000 --- a/packages/sdk/utils/src/collections.test.ts +++ /dev/null @@ -1,201 +0,0 @@ -import BigNumber from 'bignumber.js' -import { NULL_ADDRESS } from './address' -import { AddressListItem, linkedListChange, linkedListChanges } from './collections' - -describe('Collection', () => { - describe('linkedListChange', () => { - it('singleton list', () => { - const lst: AddressListItem[] = [{ address: 'address 1', value: new BigNumber(2) }] - const change: AddressListItem = { address: 'address 1', value: new BigNumber(20) } - const expected = { - lesser: NULL_ADDRESS, - greater: NULL_ADDRESS, - } - expect(linkedListChange(lst, change)).toMatchObject(expected) - }) - it('becoming greatest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(4) }, - { address: 'address 2', value: new BigNumber(4) }, - { address: 'address 3', value: new BigNumber(3) }, - { address: 'address 4', value: new BigNumber(2) }, - ] - const change: AddressListItem = { address: 'address 3', value: new BigNumber(20) } - const expected = { - lesser: 'address 1', - greater: NULL_ADDRESS, - } - expect(linkedListChange(lst, change)).toMatchObject(expected) - }) - it('becoming smallest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(4) }, - { address: 'address 2', value: new BigNumber(4) }, - { address: 'address 3', value: new BigNumber(3) }, - { address: 'address 4', value: new BigNumber(2) }, - { address: 'address 5', value: new BigNumber(2) }, - ] - const change: AddressListItem = { address: 'address 3', value: new BigNumber(1) } - const expected = { - lesser: NULL_ADDRESS, - greater: 'address 5', - } - expect(linkedListChange(lst, change)).toMatchObject(expected) - }) - it('change order', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const change: AddressListItem = { address: 'address 3', value: new BigNumber(2) } - const expected = { - greater: 'address 6', - lesser: 'address 7', - } - expect(linkedListChange(lst, change)).toMatchObject(expected) - }) - }) - describe('linkedListChanges', () => { - it('singleton list', () => { - const lst: AddressListItem[] = [{ address: 'address 1', value: new BigNumber(2) }] - const changes: AddressListItem[] = [{ address: 'address 1', value: new BigNumber(20) }] - const expected = { - lessers: ['0x0000000000000000000000000000000000000000'], - greaters: ['0x0000000000000000000000000000000000000000'], - } - expect(linkedListChanges(lst, changes)).toMatchObject(expected) - }) - it('becoming greatest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(4) }, - { address: 'address 2', value: new BigNumber(4) }, - { address: 'address 3', value: new BigNumber(3) }, - { address: 'address 4', value: new BigNumber(2) }, - ] - const changes: AddressListItem[] = [{ address: 'address 3', value: new BigNumber(20) }] - const expected = { - lessers: ['address 1'], - greaters: ['0x0000000000000000000000000000000000000000'], - } - expect(linkedListChanges(lst, changes)).toMatchObject(expected) - }) - it('becoming smallest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(4) }, - { address: 'address 2', value: new BigNumber(4) }, - { address: 'address 3', value: new BigNumber(3) }, - { address: 'address 4', value: new BigNumber(2) }, - { address: 'address 5', value: new BigNumber(2) }, - ] - const changes: AddressListItem[] = [{ address: 'address 3', value: new BigNumber(1) }] - const expected = { - lessers: ['0x0000000000000000000000000000000000000000'], - greaters: ['address 5'], - } - expect(linkedListChanges(lst, changes)).toMatchObject(expected) - }) - it('change order', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const changes: AddressListItem[] = [{ address: 'address 3', value: new BigNumber(2) }] - const expected = { - greaters: ['address 6'], - lessers: ['address 7'], - } - expect(linkedListChanges(lst, changes)).toMatchObject(expected) - }) - it('change order, become smallest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const changes: AddressListItem[] = [ - { address: 'address 3', value: new BigNumber(2) }, - { address: 'address 2', value: new BigNumber(0) }, - ] - const expected = { - greaters: ['address 6', 'address 7'], - lessers: ['address 7', NULL_ADDRESS], - } - expect(linkedListChanges(lst, changes)).toMatchObject(expected) - }) - it('change order, become largest', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const changes: AddressListItem[] = [ - { address: 'address 3', value: new BigNumber(2) }, - { address: 'address 2', value: new BigNumber(8) }, - ] - const expected = { - greaters: ['address 6', NULL_ADDRESS], - lessers: ['address 7', 'address 1'], - } - expect(linkedListChanges(lst, changes)).toMatchObject(expected) - }) - it('change order, then replace with another', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(7) }, - { address: 'address 2', value: new BigNumber(5) }, - { address: 'address 3', value: new BigNumber(4) }, - { address: 'address 4', value: new BigNumber(3) }, - { address: 'address 5', value: new BigNumber(2) }, - { address: 'address 6', value: new BigNumber(2) }, - { address: 'address 7', value: new BigNumber(1) }, - ] - const changes: AddressListItem[] = [ - { address: 'address 3', value: new BigNumber(2) }, - { address: 'address 2', value: new BigNumber(2) }, - ] - const expected = { - greaters: ['address 6', 'address 3'], - lessers: ['address 7', 'address 7'], - } - expect(linkedListChanges(lst, changes)).toMatchObject(expected) - }) - it('change order, then replace with another again', () => { - const lst: AddressListItem[] = [ - { address: 'address 1', value: new BigNumber(17) }, - { address: 'address 2', value: new BigNumber(15) }, - { address: 'address 3', value: new BigNumber(14) }, - { address: 'address 4', value: new BigNumber(13) }, - { address: 'address 5', value: new BigNumber(12) }, - { address: 'address 6', value: new BigNumber(11) }, - { address: 'address 7', value: new BigNumber(0) }, - ] - const changes: AddressListItem[] = [ - { address: 'address 3', value: new BigNumber(2) }, - { address: 'address 2', value: new BigNumber(1) }, - { address: 'address 4', value: new BigNumber(3) }, - ] - const expected = { - greaters: ['address 6', 'address 3', 'address 6'], - lessers: ['address 7', 'address 7', 'address 3'], - } - expect(linkedListChanges(lst, changes)).toMatchObject(expected) - }) - }) -}) diff --git a/packages/sdk/utils/src/collections.ts b/packages/sdk/utils/src/collections.ts deleted file mode 100644 index dfa2dbd916a..00000000000 --- a/packages/sdk/utils/src/collections.ts +++ /dev/null @@ -1,24 +0,0 @@ -import * as base from '@celo/base/lib/collections' -import BigNumber from 'bignumber.js' - -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { intersection, notEmpty, zeroRange, zip, zip3 } from '@celo/base/lib/collections' -export type AddressListItem = base.AddressListItem - -// BigNumber comparator -const bigNumberComparator: base.Comparator = (a: BigNumber, b: BigNumber) => a.lt(b) - -export function linkedListChange( - sortedList: AddressListItem[], - change: AddressListItem -): { lesser: string; greater: string; list: AddressListItem[] } { - return base.linkedListChange(sortedList, change, bigNumberComparator) -} - -export function linkedListChanges( - sortedList: AddressListItem[], - changeList: AddressListItem[] -): { lessers: string[]; greaters: string[]; list: AddressListItem[] } { - return base.linkedListChanges(sortedList, changeList, bigNumberComparator) -} diff --git a/packages/sdk/utils/src/contacts.ts b/packages/sdk/utils/src/contacts.ts deleted file mode 100644 index c5b85babafb..00000000000 --- a/packages/sdk/utils/src/contacts.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { MinimalContact } from '@celo/base/lib/contacts' -import { keccak256 } from 'web3-utils' - -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { - ContactPhoneNumber, - getContactPhoneNumber, - isContact, - MinimalContact, -} from '@celo/base/lib/contacts' - -/** - * @deprecated May be removed in future - */ -export const getContactNameHash = (contact: MinimalContact) => { - if (!contact) { - throw new Error('Invalid contact') - } - - return keccak256(contact.displayName || '') -} diff --git a/packages/sdk/utils/src/currencies.ts b/packages/sdk/utils/src/currencies.ts deleted file mode 100644 index eaba79f5ef4..00000000000 --- a/packages/sdk/utils/src/currencies.ts +++ /dev/null @@ -1,9 +0,0 @@ -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { - CURRENCIES, - currencyToShortMap, - CURRENCY_ENUM, - resolveCurrency, - SHORT_CURRENCIES, -} from '@celo/base/lib/currencies' diff --git a/packages/sdk/utils/src/displayFormatting.ts b/packages/sdk/utils/src/displayFormatting.ts deleted file mode 100644 index 9b612e3cc5c..00000000000 --- a/packages/sdk/utils/src/displayFormatting.ts +++ /dev/null @@ -1,3 +0,0 @@ -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { getErrorMessage } from '@celo/base/lib/displayFormatting' diff --git a/packages/sdk/utils/src/ecdh.ts b/packages/sdk/utils/src/ecdh.ts deleted file mode 100644 index d81101588fe..00000000000 --- a/packages/sdk/utils/src/ecdh.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { trimLeading0x } from '@celo/base/lib/address' -import { createECDH } from 'crypto' - -export function computeSharedSecret(privateKey: string, publicKey: string): Buffer { - const ecdh = createECDH('secp256k1') - ecdh.setPrivateKey(Buffer.from(trimLeading0x(privateKey), 'hex')) - return ecdh.computeSecret(Buffer.from(ensureCompressed(publicKey), 'hex')) -} - -export function isCompressed(publicKey: string) { - const noLeading0x = trimLeading0x(publicKey) - if (noLeading0x.length === 64) { - return true - } - return noLeading0x.length === 66 && (noLeading0x.startsWith('02') || noLeading0x.startsWith('03')) -} - -export function ensureCompressed(publicKey: string): string { - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - return ec.keyFromPublic(ensureUncompressedPrefix(publicKey), 'hex').getPublic(true, 'hex') -} - -export function ensureUncompressed(publicKey: string) { - const noLeading0x = trimLeading0x(publicKey) - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - const uncompressed = ec - .keyFromPublic(ensureUncompressedPrefix(noLeading0x), 'hex') - .getPublic(false, 'hex') - return uncompressed -} - -export function trimUncompressedPrefix(publicKey: string) { - const noLeading0x = trimLeading0x(publicKey) - if (noLeading0x.length === 130 && noLeading0x.startsWith('04')) { - return noLeading0x.slice(2) - } - return noLeading0x -} - -function ensureUncompressedPrefix(publicKey: string): string { - const noLeading0x = trimLeading0x(publicKey) - if (noLeading0x.length === 128) { - return `04${noLeading0x}` - } - return noLeading0x -} diff --git a/packages/sdk/utils/src/ecies.test.ts b/packages/sdk/utils/src/ecies.test.ts deleted file mode 100644 index 8c98d79118a..00000000000 --- a/packages/sdk/utils/src/ecies.test.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { privateToPublic } from '@ethereumjs/util' -import { randomBytes } from 'crypto' -import { ECIES } from './ecies' - -describe('ECIES', () => { - describe('encrypt', () => { - it('should encrypt a message without error', () => { - const privKey = randomBytes(32) - const pubKey = privateToPublic(privKey) - const message = Buffer.from(`foo`) - const encrypted = ECIES.Encrypt(pubKey, message) - expect(encrypted.length).toBeGreaterThanOrEqual(113) - }) - - it('should throw an error if priv key is given', () => { - const privKey = randomBytes(32) - const message = Buffer.from('foo') - try { - ECIES.Encrypt(privKey, message) - expect(false).toBe(true) - } catch (error) { - // ok, encryption should not work when a priv key is given - } - }) - }) - - describe('roundtrip', () => { - it('should return the same plaintext after roundtrip', () => { - const plaintext = Buffer.from('spam') - const privKey = randomBytes(32) - const pubKey = privateToPublic(privKey) - const encrypted = ECIES.Encrypt(pubKey, plaintext) - const decrypted = ECIES.Decrypt(privKey, encrypted) - expect(decrypted.toString()).toEqual(plaintext.toString()) - }) - - it('should only decrypt if correct priv key is given', () => { - const plaintext = Buffer.from('spam') - const privKey = randomBytes(32) - const pubKey = privateToPublic(privKey) - const fakePrivKey = randomBytes(32) - try { - ECIES.Encrypt(pubKey, plaintext) - ECIES.Decrypt(fakePrivKey, plaintext) - expect(false).toBe(true) - } catch (error) { - // ok, decryption should not work for incorrect priv key - } - }) - - it('should be able to encrypt and decrypt a longer message (1024 bytes)', () => { - const plaintext = randomBytes(1024) - const privKey = randomBytes(32) - const pubKey = privateToPublic(privKey) - const encrypted = ECIES.Encrypt(pubKey, plaintext) - const decrypted = ECIES.Decrypt(privKey, encrypted) - expect(decrypted.toString()).toEqual(plaintext.toString()) - }) - }) -}) - -describe('AES128CTR', () => { - describe('encrypt', () => { - it('should encrypt a message without error', () => { - const plaintext = Buffer.from('spam') - const encKey = randomBytes(16) - const macKey = randomBytes(16) - const encrypted = ECIES.AES128EncryptAndHMAC(encKey, macKey, plaintext) - expect(encrypted.length).toBeGreaterThanOrEqual(plaintext.length) - }) - }) - - describe('roundtrip', () => { - it('should return the same plaintext after roundtrip', () => { - const plaintext = Buffer.from('spam') - const encKey = randomBytes(16) - const macKey = randomBytes(16) - const encrypted = ECIES.AES128EncryptAndHMAC(encKey, macKey, plaintext) - const decrypted = ECIES.AES128DecryptAndHMAC(encKey, macKey, encrypted) - expect(decrypted.toString()).toEqual(plaintext.toString()) - }) - - it('should only decrypt if correct priv key is given', () => { - const plaintext = Buffer.from('spam') - const encKey = randomBytes(16) - const macKey = randomBytes(16) - const fakeKey = randomBytes(16) - const encrypted = ECIES.AES128EncryptAndHMAC(encKey, macKey, plaintext) - console.info(encrypted.toString('hex').length) - const decrypted = ECIES.AES128DecryptAndHMAC(fakeKey, macKey, encrypted) - expect(plaintext.equals(decrypted)).toBe(false) - }) - - it('should be able to encrypt and decrypt a longer message (1024 bytes)', () => { - const plaintext = randomBytes(1024) - const encKey = randomBytes(16) - const macKey = randomBytes(16) - const encrypted = ECIES.AES128EncryptAndHMAC(encKey, macKey, plaintext) - const decrypted = ECIES.AES128DecryptAndHMAC(encKey, macKey, encrypted) - expect(decrypted.toString()).toEqual(plaintext.toString()) - }) - }) - - describe('authentication', () => { - it('should reject invalid mac', () => { - try { - const plaintext = Buffer.from('spam') - const encKey = randomBytes(16) - const macKey = randomBytes(16) - const fakeKey = randomBytes(16) - const encrypted = ECIES.AES128EncryptAndHMAC(encKey, macKey, plaintext) - ECIES.AES128DecryptAndHMAC(encKey, fakeKey, encrypted) - expect(true).toBe(false) - } catch (e) { - // Should in fact throw. - } - }) - }) -}) diff --git a/packages/sdk/utils/src/ecies.ts b/packages/sdk/utils/src/ecies.ts deleted file mode 100644 index 75c4bc13df6..00000000000 --- a/packages/sdk/utils/src/ecies.ts +++ /dev/null @@ -1,189 +0,0 @@ -/** - * ECIES encrypt/decrypt with Ethereum keys - * A Typescript implementation of geth/crypto/ecies/ecies.go - * Modified from https://github.com/LimelabsTech/eth-ecies/blob/master/index.js - * At commit c858cbd021e9a99d8afa629de33c8c30d923b3e5. - */ -'use strict' - -import { createCipheriv, createDecipheriv, createHash, createHmac, randomBytes } from 'crypto' - -export const IV_LENGTH = 16 - -/** - * Increments big endian uint32 - * - * @param {Buffer} ctr 32 bit unsigned big endian integer to increment. - * @returns Incremented counter. - */ -const IncCounter = (ctr: Buffer) => { - for (let i = ctr.length - 1; i >= 0; i--) { - ctr[i]++ - if (ctr[i] !== 0) { - return ctr - } - } - return ctr -} - -/** - * NIST 8000-56C Rev 1 One Step KDF with the following parameters: - * - H(x) is SHA-256(x) - * - Fixed info is null - * - * TODO: - * - Implement proper ceiling on reps. - * - * @param {Buffer} px Input keying material to derive key from. - * @param {number} kdLen Length of output in bytes - * @returns {Buffer} Output keying material of length kdLen bytes. - */ -const ConcatKDF = (px: Buffer, kdLen: number) => { - const blockSize = 32 - const reps = ((kdLen + 7) * 8) / (blockSize * 8) - let counter = Buffer.from('00000001', 'hex') - let k = Buffer.from('00', 'hex') - for (let i = 0; i <= reps; i++) { - const hash = createHash('sha256') - hash.update(counter) - hash.update(px) - k = Buffer.concat([k, hash.digest()]) - counter = IncCounter(counter) - } - return k.slice(1, kdLen + 1) -} - -/** - * AES-128 CTR encrypt - * @param {Buffer} encryptionKey - * @param {Buffer} iv - * @param {Buffer} plaintext - * @returns {Buffer} ciphertext - */ -export function AES128Encrypt(encryptionKey: Buffer, iv: Buffer, plaintext: Buffer) { - const cipher = createCipheriv('aes-128-ctr', encryptionKey, iv) - const firstChunk = cipher.update(plaintext) - const secondChunk = cipher.final() - return Buffer.concat([iv, firstChunk, secondChunk]) -} - -/** - * AES-128 CTR encrypt with message authentication - * @param {Buffer} encryptionKey - * @param {Buffer} macKey - * @param {Buffer} plaintext - * @returns {Buffer} ciphertext - */ -export function AES128EncryptAndHMAC( - encryptionKey: Buffer, - macKey: Buffer, - plaintext: Buffer -): Buffer { - const iv = randomBytes(IV_LENGTH) - const dataToMac = AES128Encrypt(encryptionKey, iv, plaintext) - const mac = createHmac('sha256', macKey).update(dataToMac).digest() - - return Buffer.concat([dataToMac, mac]) -} - -/** - * AES-128 CTR decrypt - * @param {Buffer} encryptionKey - * @param {Buffer} iv - * @param {Buffer} ciphertext - * @returns {Buffer} plaintext - */ -export function AES128Decrypt(encryptionKey: Buffer, iv: Buffer, ciphertext: Buffer) { - const cipher = createDecipheriv('aes-128-ctr', encryptionKey, iv) - const firstChunk = cipher.update(ciphertext) - const secondChunk = cipher.final() - - return Buffer.concat([firstChunk, secondChunk]) -} - -/** - * AES-128 CTR decrypt with message authentication - * @param {Buffer} encryptionKey - * @param {Buffer} macKey - * @param {Buffer} ciphertext - * @returns {Buffer} plaintext - */ -export function AES128DecryptAndHMAC( - encryptionKey: Buffer, - macKey: Buffer, - ciphertext: Buffer -): Buffer { - const iv = ciphertext.slice(0, IV_LENGTH) - const message = ciphertext.slice(IV_LENGTH, ciphertext.length - 32) - const mac = ciphertext.slice(ciphertext.length - 32, ciphertext.length) - const dataToMac = Buffer.concat([iv, message]) - const computedMac = createHmac('sha256', macKey).update(dataToMac).digest() - if (!mac.equals(computedMac)) { - throw new Error('MAC mismatch') - } - - return AES128Decrypt(encryptionKey, iv, message) -} - -/** - * ECIES encrypt - * @param {Buffer} pubKeyTo Ethereum pub key, 64 bytes. - * @param {Buffer} plaintext Plaintext to be encrypted. - * @returns {Buffer} Encrypted message, serialized, 113+ bytes - */ -export function Encrypt(pubKeyTo: Buffer, plaintext: Buffer) { - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - const ephemPrivKey = ec.keyFromPrivate(randomBytes(32)) - const ephemPubKey = ephemPrivKey.getPublic(false, 'hex') - const ephemPubKeyEncoded = Buffer.from(ephemPubKey, 'hex') - const px = ephemPrivKey.derive( - ec.keyFromPublic(Buffer.concat([Buffer.from([0x04]), pubKeyTo])).getPublic() - ) - const hash = ConcatKDF(px.toArrayLike(Buffer), 32) - const encryptionKey = hash.slice(0, 16) - const macKey = createHash('sha256').update(hash.slice(16)).digest() - const message = AES128EncryptAndHMAC(encryptionKey, macKey, plaintext) - const serializedCiphertext = Buffer.concat([ - ephemPubKeyEncoded, // 65 bytes - message, // iv + ciphertext + mac (min 48 bytes) - ]) - return serializedCiphertext -} - -/** - * ECIES decrypt - * @param {Buffer} privKey Ethereum private key, 32 bytes. - * @param {Buffer} encrypted Encrypted message, serialized, 113+ bytes - * @returns {Buffer} plaintext - */ -export function Decrypt(privKey: Buffer, encrypted: Buffer) { - // Read iv, ephemPubKey, mac, ciphertext from encrypted message - const ephemPubKeyEncoded = encrypted.slice(0, 65) - const symmetricEncrypted = encrypted.slice(65) - - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - - const ephemPubKey = ec.keyFromPublic(ephemPubKeyEncoded).getPublic() - const px = ec.keyFromPrivate(privKey).derive(ephemPubKey) - const hash = ConcatKDF(px.toBuffer(), 32) - // km, ke - const encryptionKey = hash.slice(0, 16) - const macKey = createHash('sha256').update(hash.slice(16)).digest() - - return AES128DecryptAndHMAC(encryptionKey, macKey, symmetricEncrypted) -} - -export const ECIES = { - Encrypt, - Decrypt, - AES128EncryptAndHMAC, - AES128DecryptAndHMAC, -} diff --git a/packages/sdk/utils/src/fixidity.ts b/packages/sdk/utils/src/fixidity.ts deleted file mode 100644 index 275b7eb4b83..00000000000 --- a/packages/sdk/utils/src/fixidity.ts +++ /dev/null @@ -1,30 +0,0 @@ -import BigNumber from 'bignumber.js' - -export const digits = new BigNumber('24') -export const fixed1 = new BigNumber('1000000000000000000000000') - -export const toFixed = (n: number | BigNumber) => { - return fixed1.times(n).integerValue(BigNumber.ROUND_FLOOR) -} - -// Keeps the decimal portion -export const fromFixed = (f: BigNumber) => { - return f.div(fixed1) -} - -// Returns an integer -export const fixedToInt = (f: BigNumber) => { - return f.idiv(fixed1) -} - -export const multiply = (a: BigNumber, b: BigNumber) => { - return a.times(b).idiv(fixed1) -} - -export const divide = (a: BigNumber, b: BigNumber) => { - return a.times(fixed1).idiv(b) -} - -export const reciprocal = (f: BigNumber) => { - return divide(fixed1, f) -} diff --git a/packages/sdk/utils/src/future.test.ts b/packages/sdk/utils/src/future.test.ts deleted file mode 100644 index 32bb5b22526..00000000000 --- a/packages/sdk/utils/src/future.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Future } from './future' - -test('it should expose resolve/reject inmediately', async () => { - const ep = new Future() - expect(ep.resolve).toBeDefined() - expect(ep.reject).toBeDefined() -}) - -test('it SBAT resolve inmediately', async () => { - const ep = new Future() - ep.resolve(5) - await expect(ep.wait()).resolves.toEqual(5) -}) - -test('it SBAT reject inmediately', async () => { - const ep = new Future() - const err = new Error('failed') - ep.reject(err) - await expect(ep.wait()).rejects.toBe(err) -}) diff --git a/packages/sdk/utils/src/future.ts b/packages/sdk/utils/src/future.ts deleted file mode 100644 index 1b44a546aff..00000000000 --- a/packages/sdk/utils/src/future.ts +++ /dev/null @@ -1,3 +0,0 @@ -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { Future, pipeToFuture, toFuture } from '@celo/base/lib/future' diff --git a/packages/sdk/utils/src/index.ts b/packages/sdk/utils/src/index.ts deleted file mode 100644 index f1699972c85..00000000000 --- a/packages/sdk/utils/src/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import * as AddressUtils from './address' - -export * from './contacts' -export * from './currencies' -export { ECIES } from './ecies' -export { IstanbulUtils } from './istanbul' -export { SignatureUtils } from './signatureUtils' -export { StringUtils } from './string' -export { AddressUtils } diff --git a/packages/sdk/utils/src/inputValidation.ts b/packages/sdk/utils/src/inputValidation.ts deleted file mode 100644 index 1eaaca746f3..00000000000 --- a/packages/sdk/utils/src/inputValidation.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { - BaseProps, - validateDecimal, - validateInteger, - ValidatorKind, -} from '@celo/base/lib/inputValidation' diff --git a/packages/sdk/utils/src/io.ts b/packages/sdk/utils/src/io.ts deleted file mode 100644 index b78ec2dadc7..00000000000 --- a/packages/sdk/utils/src/io.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { URL_REGEX } from '@celo/base/lib/io' -import { isValidPublic, toChecksumAddress } from '@ethereumjs/util' -import { either } from 'fp-ts/lib/Either' -import * as t from 'io-ts' -import { isValidAddress } from './address' - -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { isValidUrl, URL_REGEX } from '@celo/base/lib/io' - -export const UrlType = new t.Type( - 'Url', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - URL_REGEX.test(stringValue) - ? t.success(stringValue) - : t.failure(stringValue, context, 'is not a valid url') - ), - String -) - -export const JSONStringType = new t.Type( - 'JSONString', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => { - try { - JSON.parse(stringValue) - return t.success(stringValue) - } catch (error) { - return t.failure(stringValue, context, 'can not be parsed as JSON') - } - }), - String -) - -export const AddressType = new t.Type( - 'Address', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - isValidAddress(stringValue) - ? t.success(toChecksumAddress(stringValue)) - : t.failure(stringValue, context, 'is not a valid address') - ), - String -) - -export const PublicKeyType = new t.Type( - 'Public Key', - t.string.is, - (input, context) => - either.chain(t.string.validate(input, context), (stringValue) => - stringValue.startsWith('0x') && isValidPublic(Buffer.from(stringValue.slice(2), 'hex'), true) - ? t.success(toChecksumAddress(stringValue)) - : t.failure(stringValue, context, 'is not a valid public key') - ), - String -) - -export const SignatureType = t.string -export const SaltType = t.string - -export type Signature = t.TypeOf -export type Address = t.TypeOf diff --git a/packages/sdk/utils/src/istanbul.test.ts b/packages/sdk/utils/src/istanbul.test.ts deleted file mode 100644 index a8a9f254978..00000000000 --- a/packages/sdk/utils/src/istanbul.test.ts +++ /dev/null @@ -1,63 +0,0 @@ -import BigNumber from 'bignumber.js' -import { bitIsSet, Bitmap, IstanbulExtra, parseBlockExtraData } from './istanbul' - -describe('Istanbul utilities', () => { - describe('parseBlockExtraData', () => { - const testExtraData = - '0xd983010817846765746888676f312e31312e358664617277696e000000000000f90127d594fd0893e334' + - 'c6401188ae77072546979b94d91813f862b8604fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36' + - 'a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053' + - 'cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff0001b84188022a71c12a801a4318e2' + - '7eeb5c82aa923160632c63b0eae4457ed120356ddb549fb7c4e4865728478aa61c19b9abe10ec7db34c866' + - '2b003b139188e99edcd400f30db040c083f6b6e29a6a2cab4498f50d37d458a2458b5438c9faeae8598cd4' + - '7f4ed6e17ca10e1f87c6faa14d5e3e393f0e0080f30db06107252c187052f8212ef5cfc9052fe59c7af040' + - 'e77a09b762fd51060220511e93d1c681be8883043f8a93ea637492818080' - - const expected: IstanbulExtra = { - addedValidators: ['0xFd0893E334C6401188Ae77072546979B94d91813'], - addedValidatorsPublicKeys: [ - '0x4fa3f67fc913878b068d1fa1cdddc54913d3bf988dbe5a36a20fa888f20d4894c408a6773f3d7bde11154f2a3076b700d345a42fd25a0e5e83f4db5586ac7979ac2053cd95d8f2efd3e959571ceccaa743e02cf4be3f5d7aaddb0b06fc9aff00', - ], - removedValidators: new BigNumber(1), - seal: '0x88022a71c12a801a4318e27eeb5c82aa923160632c63b0eae4457ed120356ddb549fb7c4e4865728478aa61c19b9abe10ec7db34c8662b003b139188e99edcd400', - aggregatedSeal: { - bitmap: new BigNumber(13), - signature: - '0x40c083f6b6e29a6a2cab4498f50d37d458a2458b5438c9faeae8598cd47f4ed6e17ca10e1f87c6faa14d5e3e393f0e00', - round: new BigNumber(0), - }, - parentAggregatedSeal: { - bitmap: new BigNumber(13), - signature: - '0x6107252c187052f8212ef5cfc9052fe59c7af040e77a09b762fd51060220511e93d1c681be8883043f8a93ea63749281', - round: new BigNumber(0), - }, - } - - it('should decode the Istanbul extra data correctly', () => { - expect(parseBlockExtraData(testExtraData)).toEqual(expected) - }) - }) - - describe('bitIsSet', () => { - const testBitmap: Bitmap = new BigNumber('0x40d1', 16) - const testBitmapAsBinary = ('0100' + '0000' + '1101' + '0001') - .split('') - .map((b) => b === '1') - .reverse() - - it('should correctly identify set bits within expected index', () => { - for (let i = 0; i < testBitmapAsBinary.length; i++) { - expect(bitIsSet(testBitmap, i)).toBe(testBitmapAsBinary[i]) - } - }) - - it('should return false when the index is too large', () => { - expect(bitIsSet(testBitmap, 1000)).toBe(false) - }) - - it('should throw an error when the index is negative', () => { - expect(() => bitIsSet(testBitmap, -1)).toThrow() - }) - }) -}) diff --git a/packages/sdk/utils/src/istanbul.ts b/packages/sdk/utils/src/istanbul.ts deleted file mode 100644 index 4ee6bcb080e..00000000000 --- a/packages/sdk/utils/src/istanbul.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { bufferToHex, toChecksumAddress } from '@ethereumjs/util' -import BigNumber from 'bignumber.js' -import * as rlp from 'rlp' -import { Address } from './address' - -// This file contains utilities that help with istanbul-specific block information. -// See https://github.com/celo-org/celo-blockchain/blob/master/core/types/istanbul.go - -const ISTANBUL_EXTRA_VANITY_BYTES = 32 - -export type Bitmap = BigNumber - -// Aggregated BLS signatures for a block. -export interface Seal { - bitmap: Bitmap - signature: string - round: BigNumber -} - -// Extra data in the block header to support Istanbul BFT. -export interface IstanbulExtra { - addedValidators: Address[] - addedValidatorsPublicKeys: string[] - removedValidators: Bitmap - seal: string - aggregatedSeal: Seal - parentAggregatedSeal: Seal -} - -function bigNumberFromBuffer(data: Buffer): BigNumber { - return new BigNumber('0x' + (data.toString('hex') || '0'), 16) -} - -function sealFromBuffers(data: Buffer[]): Seal { - return { - bitmap: bigNumberFromBuffer(data[0]), - signature: '0x' + data[1].toString('hex'), - round: bigNumberFromBuffer(data[2]), - } -} - -// Parse RLP encoded block extra data into an IstanbulExtra object. -export function parseBlockExtraData(data: string): IstanbulExtra { - const buffer = Buffer.from(data.replace(/^0x/, ''), 'hex') - const decode: any = rlp.decode('0x' + buffer.slice(ISTANBUL_EXTRA_VANITY_BYTES).toString('hex')) - return { - addedValidators: decode[0].map((addr: Buffer) => toChecksumAddress(bufferToHex(addr))), - addedValidatorsPublicKeys: decode[1].map((key: Buffer) => '0x' + key.toString('hex')), - removedValidators: bigNumberFromBuffer(decode[2]), - seal: '0x' + decode[3].toString('hex'), - aggregatedSeal: sealFromBuffers(decode[4]), - parentAggregatedSeal: sealFromBuffers(decode[5]), - } -} - -export function bitIsSet(bitmap: Bitmap, index: number): boolean { - if (index < 0) { - throw new Error(`bit index must be greater than zero: got ${index}`) - } - return bitmap - .idiv('1' + '0'.repeat(index), 2) - .mod(2) - .gt(0) -} - -export const IstanbulUtils = { - parseBlockExtraData, - bitIsSet, -} diff --git a/packages/sdk/utils/src/levenshtein.test.ts b/packages/sdk/utils/src/levenshtein.test.ts deleted file mode 100644 index 39722baaf57..00000000000 --- a/packages/sdk/utils/src/levenshtein.test.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { levenshteinDistance } from './levenshtein' - -describe('levenshteinDistance()', () => { - const cases = [ - { - a: '', - b: '', - distance: 0, - }, - { - a: 'foo', - b: '', - distance: 3, - }, - { - a: 'a', - b: 'b', - distance: 1, - }, - { - a: 'ab', - b: 'ac', - distance: 1, - }, - { - a: 'ac', - b: 'bc', - distance: 1, - }, - { - a: 'abc', - b: 'axc', - distance: 1, - }, - { - a: 'kitten', - b: 'sitting', - distance: 3, - }, - { - a: 'xabxcdxxefxgx', - b: '1ab2cd34ef5g6', - distance: 6, - }, - { - a: 'cat', - b: 'cow', - distance: 2, - }, - { - a: 'xabxcdxxefxgx', - b: 'abcdefg', - distance: 6, - }, - { - a: 'javawasneat', - b: 'scalaisgreat', - distance: 7, - }, - { - a: 'example', - b: 'samples', - distance: 3, - }, - { - a: 'sturgeon', - b: 'urgently', - distance: 6, - }, - { - a: 'levenshtein', - b: 'frankenstein', - distance: 6, - }, - { - a: 'distance', - b: 'difference', - distance: 5, - }, - { - a: '因為我是中國人所以我會說中文', - b: '因為我是英國人所以我會說英文', - distance: 2, - }, - ] - - for (const { a, b, distance } of cases) { - it(`should report a distance of ${distance} between '${a}' and '${b}'`, () => { - expect(levenshteinDistance(a, b)).toBe(distance) - }) - } -}) diff --git a/packages/sdk/utils/src/levenshtein.ts b/packages/sdk/utils/src/levenshtein.ts deleted file mode 100644 index 05007cf8a8e..00000000000 --- a/packages/sdk/utils/src/levenshtein.ts +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2017 Gustaf Andersson (github.com/gustf/js-levenshtein) -// Distributed under the MIT license github.com/gustf/js-levenshtein/blob/master/LICENSE -// Adapted for use in TypeScript by cLabs, 2021 - -const _min = (d0: number, d1: number, d2: number, bx: number, ay: number): number => { - return d0 < d1 || d2 < d1 ? (d0 > d2 ? d2 + 1 : d0 + 1) : bx === ay ? d1 : d1 + 1 -} - -export function levenshteinDistance(a: string, b: string): number { - if (a === b) { - return 0 - } - - if (a.length > b.length) { - const tmp = a - a = b - b = tmp - } - - let la = a.length - let lb = b.length - - while (la > 0 && a.charCodeAt(la - 1) === b.charCodeAt(lb - 1)) { - la-- - lb-- - } - - let offset = 0 - - while (offset < la && a.charCodeAt(offset) === b.charCodeAt(offset)) { - offset++ - } - - la -= offset - lb -= offset - - if (la === 0 || lb < 3) { - return lb - } - - let x = 0 - let y: number - let d0: number - let d1: number - let d2: number - let d3: number - let dd: number - let dy: number - let ay: number - let bx0: number - let bx1: number - let bx2: number - let bx3: number - - const vector: number[] = [] - - for (y = 0; y < la; y++) { - vector.push(y + 1) - vector.push(a.charCodeAt(offset + y)) - } - - const len = vector.length - 1 - - for (; x < lb - 3; ) { - bx0 = b.charCodeAt(offset + (d0 = x)) - bx1 = b.charCodeAt(offset + (d1 = x + 1)) - bx2 = b.charCodeAt(offset + (d2 = x + 2)) - bx3 = b.charCodeAt(offset + (d3 = x + 3)) - dd = x += 4 - for (y = 0; y < len; y += 2) { - dy = vector[y] - ay = vector[y + 1] - d0 = _min(dy, d0, d1, bx0, ay) - d1 = _min(d0, d1, d2, bx1, ay) - d2 = _min(d1, d2, d3, bx2, ay) - dd = _min(d2, d3, dd, bx3, ay) - vector[y] = dd - d3 = d2 - d2 = d1 - d1 = d0 - d0 = dy - } - } - - for (; x < lb; ) { - bx0 = b.charCodeAt(offset + (d0 = x)) - dd = ++x - for (y = 0; y < len; y += 2) { - dy = vector[y] - vector[y] = dd = _min(dy, d0, dd, bx0, vector[y + 1]) - d0 = dy - } - } - - return dd! -} diff --git a/packages/sdk/utils/src/logger.ts b/packages/sdk/utils/src/logger.ts deleted file mode 100644 index 3efa51fa69e..00000000000 --- a/packages/sdk/utils/src/logger.ts +++ /dev/null @@ -1,3 +0,0 @@ -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { consoleLogger, Logger, noopLogger, prefixLogger } from '@celo/base/lib/logger' diff --git a/packages/sdk/utils/src/parsing.test.ts b/packages/sdk/utils/src/parsing.test.ts deleted file mode 100644 index 5e3f3eaabd5..00000000000 --- a/packages/sdk/utils/src/parsing.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -import BigNumber from 'bignumber.js' -import { parseInputAmount, stringToBoolean } from './parsing' - -test('stringToBoolean()', () => { - expect(stringToBoolean('true')).toBe(true) - expect(stringToBoolean(' true ')).toBe(true) - expect(stringToBoolean('false')).toBe(false) - expect(stringToBoolean(' false ')).toBe(false) - - expect(stringToBoolean('FaLse')).toBe(false) - expect(stringToBoolean('TruE')).toBe(true) - - expect(() => stringToBoolean('fals')).toThrow("Unable to parse 'fals' as boolean") -}) - -test('stringToBigNum()', () => { - expect(parseInputAmount('.1')).toStrictEqual(new BigNumber('0.1')) - expect(parseInputAmount('.1 ')).toStrictEqual(new BigNumber('0.1')) - expect(parseInputAmount('1.')).toStrictEqual(new BigNumber('1')) - expect(parseInputAmount('0')).toStrictEqual(new BigNumber('0')) - expect(parseInputAmount('')).toStrictEqual(new BigNumber('0')) - expect(parseInputAmount('1.23')).toStrictEqual(new BigNumber('1.23')) - expect(parseInputAmount('1,23')).toStrictEqual(new BigNumber(NaN)) - expect(parseInputAmount('1,23', ',')).toStrictEqual(new BigNumber('1.23')) -}) diff --git a/packages/sdk/utils/src/parsing.ts b/packages/sdk/utils/src/parsing.ts deleted file mode 100644 index 01fef6840b5..00000000000 --- a/packages/sdk/utils/src/parsing.ts +++ /dev/null @@ -1,12 +0,0 @@ -import BigNumber from 'bignumber.js' - -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { parseSolidityStringArray, stringToBoolean } from '@celo/base/lib/parsing' - -export const parseInputAmount = (inputString: string, decimalSeparator = '.'): BigNumber => { - if (decimalSeparator !== '.') { - inputString = inputString.replace(decimalSeparator, '.') - } - return new BigNumber(inputString || '0') -} diff --git a/packages/sdk/utils/src/sign-typed-data-utils.test.ts b/packages/sdk/utils/src/sign-typed-data-utils.test.ts deleted file mode 100644 index ebe426f19b0..00000000000 --- a/packages/sdk/utils/src/sign-typed-data-utils.test.ts +++ /dev/null @@ -1,487 +0,0 @@ -import { NULL_ADDRESS } from '@celo/base/lib/address' -import { BigNumber } from 'bignumber.js' -import { keccak256 } from 'ethereum-cryptography/keccak' -import { utf8ToBytes } from 'ethereum-cryptography/utils' -import { - EIP712Object, - EIP712ObjectValue, - EIP712Optional, - EIP712Types, - encodeData, - encodeType, - structHash, - typeHash, - zeroValue, -} from './sign-typed-data-utils' - -// Compile-time check that Domain can be cast to type EIP712Object -export const TEST_OPTIONAL_IS_EIP712: EIP712Object = - {} as unknown as EIP712Optional - -interface EIP712TestCase { - primaryType: string - types: EIP712Types - typeEncoding: string - zero?: EIP712Object - examples: Array<{ - data: EIP712Object - dataEncoding: Buffer - }> -} - -const TEST_TYPES: EIP712TestCase[] = [ - { - primaryType: 'Mail', - types: { - Mail: [ - { name: 'from', type: 'address' }, - { name: 'to', type: 'address' }, - { name: 'contents', type: 'string' }, - ], - }, - typeEncoding: 'Mail(address from,address to,string contents)', - zero: { - from: NULL_ADDRESS, - to: NULL_ADDRESS, - contents: '', - }, - examples: [ - { - data: { - from: '0x000000000000000000000000000000000000a1ce', - to: '0x0000000000000000000000000000000000000b0b', - contents: 'hello bob!', - }, - dataEncoding: Buffer.concat([ - Buffer.from('000000000000000000000000000000000000000000000000000000000000a1ce', 'hex'), - Buffer.from('0000000000000000000000000000000000000000000000000000000000000b0b', 'hex'), - keccak256(utf8ToBytes('hello bob!')), - ]), - }, - { - data: { - from: '0x000000000000000000000000000000000000a1ce', - to: '0x0000000000000000000000000000000000000b0b', - // Should be interpreted as a UTF-8 encoded string. Not hex encoded bytes. - contents: '0xdeadbeef', - }, - dataEncoding: Buffer.concat([ - Buffer.from('000000000000000000000000000000000000000000000000000000000000a1ce', 'hex'), - Buffer.from('0000000000000000000000000000000000000000000000000000000000000b0b', 'hex'), - keccak256(Buffer.from('0xdeadbeef', 'utf8')), - ]), - }, - ], - }, - { - primaryType: 'Transaction', - types: { - Transaction: [ - { name: 'from', type: 'Person' }, - { name: 'to', type: 'Person' }, - { name: 'tx', type: 'Asset' }, - ], - Person: [ - { name: 'wallet', type: 'address' }, - { name: 'name', type: 'string' }, - ], - Asset: [ - { name: 'token', type: 'address' }, - { name: 'amount', type: 'uint256' }, - ], - }, - typeEncoding: - 'Transaction(Person from,Person to,Asset tx)Asset(address token,uint256 amount)Person(address wallet,string name)', - zero: { - from: { wallet: NULL_ADDRESS, name: '' }, - to: { wallet: NULL_ADDRESS, name: '' }, - tx: { token: NULL_ADDRESS, amount: 0 }, - }, - examples: [ - { - data: { - from: { wallet: '0x000000000000000000000000000000000000a1ce', name: 'Alice' }, - to: { name: 'Bob', wallet: '0x0000000000000000000000000000000000000b0b' }, - tx: { - token: '0x000000000000000000000000000000000000ce10', - amount: new BigNumber('5e+18'), - }, - }, - dataEncoding: Buffer.concat([ - keccak256( - Buffer.concat([ - keccak256(utf8ToBytes('Person(address wallet,string name)')), - Buffer.from( - '000000000000000000000000000000000000000000000000000000000000a1ce', - 'hex' - ), - keccak256(utf8ToBytes('Alice')), - ]) - ), - keccak256( - Buffer.concat([ - keccak256(utf8ToBytes('Person(address wallet,string name)')), - Buffer.from( - '0000000000000000000000000000000000000000000000000000000000000b0b', - 'hex' - ), - keccak256(utf8ToBytes('Bob')), - ]) - ), - keccak256( - Buffer.concat([ - keccak256(utf8ToBytes('Asset(address token,uint256 amount)')), - Buffer.from( - '000000000000000000000000000000000000000000000000000000000000ce10', - 'hex' - ), - Buffer.from( - '0000000000000000000000000000000000000000000000004563918244F40000', - 'hex' - ), - ]) - ), - ]), - }, - ], - }, - { - primaryType: 'Nested', - types: { - Bird: [ - { name: 'species', type: 'string' }, - { name: 'color', type: 'Color' }, - { name: 'nest', type: 'Nested' }, - ], - Color: [ - { name: 'red', type: 'uint8' }, - { name: 'green', type: 'uint8' }, - { name: 'blue', type: 'uint8' }, - ], - Nested: [ - { name: 'nest', type: 'Nested' }, - { name: 'eggs', type: 'Egg[][]' }, - ], - Egg: [ - { name: 'bird', type: 'Bird' }, - { name: 'age', type: 'uint256' }, - ], - // An orphaned type should have no effect on the encoding. - Orphan: [], - }, - typeEncoding: - 'Nested(Nested nest,Egg[][] eggs)Bird(string species,Color color,Nested nest)Color(uint8 red,uint8 green,uint8 blue)Egg(Bird bird,uint256 age)', - // Although this recurive type definition can be encoded with EIP-712, no instance of it can. - examples: [], - }, - { - primaryType: 'GameBoard', - types: { - GameBoard: [{ name: 'grid', type: 'Tile[][]' }], - Tile: [ - { name: 'occupied', type: 'bool' }, - { name: 'occupantId', type: 'uint8' }, - ], - }, - typeEncoding: 'GameBoard(Tile[][] grid)Tile(bool occupied,uint8 occupantId)', - zero: { - grid: [], - }, - examples: [ - { - data: { - grid: [ - [ - { occupied: true, occupantId: 5 }, - { occupied: false, occupantId: 0 }, - ], - [ - { occupied: true, occupantId: new BigNumber(160) }, - { occupied: true, occupantId: 161 }, - ], - ], - }, - dataEncoding: Buffer.concat([ - keccak256( - Buffer.concat([ - keccak256( - Buffer.concat([ - keccak256( - Buffer.concat([ - keccak256(utf8ToBytes('Tile(bool occupied,uint8 occupantId)')), - Buffer.from( - '0000000000000000000000000000000000000000000000000000000000000001', - 'hex' - ), - Buffer.from( - '0000000000000000000000000000000000000000000000000000000000000005', - 'hex' - ), - ]) - ), - keccak256( - Buffer.concat([ - keccak256(utf8ToBytes('Tile(bool occupied,uint8 occupantId)')), - Buffer.from( - '0000000000000000000000000000000000000000000000000000000000000000', - 'hex' - ), - Buffer.from( - '0000000000000000000000000000000000000000000000000000000000000000', - 'hex' - ), - ]) - ), - ]) - ), - keccak256( - Buffer.concat([ - keccak256( - Buffer.concat([ - keccak256(utf8ToBytes('Tile(bool occupied,uint8 occupantId)')), - Buffer.from( - '0000000000000000000000000000000000000000000000000000000000000001', - 'hex' - ), - Buffer.from( - '00000000000000000000000000000000000000000000000000000000000000a0', - 'hex' - ), - ]) - ), - keccak256( - Buffer.concat([ - keccak256(utf8ToBytes('Tile(bool occupied,uint8 occupantId)')), - Buffer.from( - '0000000000000000000000000000000000000000000000000000000000000001', - 'hex' - ), - Buffer.from( - '00000000000000000000000000000000000000000000000000000000000000a1', - 'hex' - ), - ]) - ), - ]) - ), - ]) - ), - ]), - }, - ], - }, - { - primaryType: 'AllAtomicTypes', - types: { - AllAtomicTypes: [ - { name: 'ui8', type: 'uint8' }, - { name: 'ui16', type: 'uint16' }, - { name: 'ui24', type: 'uint24' }, - { name: 'ui32', type: 'uint32' }, - { name: 'ui40', type: 'uint40' }, - { name: 'ui48', type: 'uint48' }, - { name: 'ui56', type: 'uint56' }, - { name: 'ui64', type: 'uint64' }, - { name: 'ui72', type: 'uint72' }, - { name: 'ui80', type: 'uint80' }, - { name: 'ui88', type: 'uint88' }, - { name: 'ui96', type: 'uint96' }, - { name: 'ui104', type: 'uint104' }, - { name: 'ui112', type: 'uint112' }, - { name: 'ui120', type: 'uint120' }, - { name: 'ui128', type: 'uint128' }, - { name: 'ui136', type: 'uint136' }, - { name: 'ui144', type: 'uint144' }, - { name: 'ui152', type: 'uint152' }, - { name: 'ui160', type: 'uint160' }, - { name: 'ui168', type: 'uint168' }, - { name: 'ui176', type: 'uint176' }, - { name: 'ui184', type: 'uint184' }, - { name: 'ui192', type: 'uint192' }, - { name: 'ui200', type: 'uint200' }, - { name: 'ui208', type: 'uint208' }, - { name: 'ui216', type: 'uint216' }, - { name: 'ui224', type: 'uint224' }, - { name: 'ui232', type: 'uint232' }, - { name: 'ui240', type: 'uint240' }, - { name: 'ui248', type: 'uint248' }, - { name: 'ui256', type: 'uint256' }, - { name: 'i8', type: 'int8' }, - { name: 'i16', type: 'int16' }, - { name: 'i24', type: 'int24' }, - { name: 'i32', type: 'int32' }, - { name: 'i40', type: 'int40' }, - { name: 'i48', type: 'int48' }, - { name: 'i56', type: 'int56' }, - { name: 'i64', type: 'int64' }, - { name: 'i72', type: 'int72' }, - { name: 'i80', type: 'int80' }, - { name: 'i88', type: 'int88' }, - { name: 'i96', type: 'int96' }, - { name: 'i104', type: 'int104' }, - { name: 'i112', type: 'int112' }, - { name: 'i120', type: 'int120' }, - { name: 'i128', type: 'int128' }, - { name: 'i136', type: 'int136' }, - { name: 'i144', type: 'int144' }, - { name: 'i152', type: 'int152' }, - { name: 'i160', type: 'int160' }, - { name: 'i168', type: 'int168' }, - { name: 'i176', type: 'int176' }, - { name: 'i184', type: 'int184' }, - { name: 'i192', type: 'int192' }, - { name: 'i200', type: 'int200' }, - { name: 'i208', type: 'int208' }, - { name: 'i216', type: 'int216' }, - { name: 'i224', type: 'int224' }, - { name: 'i232', type: 'int232' }, - { name: 'i240', type: 'int240' }, - { name: 'i248', type: 'int248' }, - { name: 'i256', type: 'int256' }, - { name: 'b1', type: 'bytes1' }, - { name: 'b2', type: 'bytes2' }, - { name: 'b3', type: 'bytes3' }, - { name: 'b4', type: 'bytes4' }, - { name: 'b5', type: 'bytes5' }, - { name: 'b6', type: 'bytes6' }, - { name: 'b7', type: 'bytes7' }, - { name: 'b8', type: 'bytes8' }, - { name: 'b9', type: 'bytes9' }, - { name: 'b10', type: 'bytes10' }, - { name: 'b11', type: 'bytes11' }, - { name: 'b12', type: 'bytes12' }, - { name: 'b13', type: 'bytes13' }, - { name: 'b14', type: 'bytes14' }, - { name: 'b15', type: 'bytes15' }, - { name: 'b16', type: 'bytes16' }, - { name: 'b17', type: 'bytes17' }, - { name: 'b18', type: 'bytes18' }, - { name: 'b19', type: 'bytes19' }, - { name: 'b20', type: 'bytes20' }, - { name: 'b21', type: 'bytes21' }, - { name: 'b22', type: 'bytes22' }, - { name: 'b23', type: 'bytes23' }, - { name: 'b24', type: 'bytes24' }, - { name: 'b25', type: 'bytes25' }, - { name: 'b26', type: 'bytes26' }, - { name: 'b27', type: 'bytes27' }, - { name: 'b28', type: 'bytes28' }, - { name: 'b29', type: 'bytes29' }, - { name: 'b30', type: 'bytes30' }, - { name: 'b31', type: 'bytes31' }, - { name: 'b32', type: 'bytes32' }, - { name: 'bl', type: 'bool' }, - { name: 'addr', type: 'address' }, - ], - }, - typeEncoding: - 'AllAtomicTypes(uint8 ui8,uint16 ui16,uint24 ui24,uint32 ui32,uint40 ui40,uint48 ui48,uint56 ui56,uint64 ui64,uint72 ui72,uint80 ui80,uint88 ui88,uint96 ui96,uint104 ui104,uint112 ui112,uint120 ui120,uint128 ui128,uint136 ui136,uint144 ui144,uint152 ui152,uint160 ui160,uint168 ui168,uint176 ui176,uint184 ui184,uint192 ui192,uint200 ui200,uint208 ui208,uint216 ui216,uint224 ui224,uint232 ui232,uint240 ui240,uint248 ui248,uint256 ui256,int8 i8,int16 i16,int24 i24,int32 i32,int40 i40,int48 i48,int56 i56,int64 i64,int72 i72,int80 i80,int88 i88,int96 i96,int104 i104,int112 i112,int120 i120,int128 i128,int136 i136,int144 i144,int152 i152,int160 i160,int168 i168,int176 i176,int184 i184,int192 i192,int200 i200,int208 i208,int216 i216,int224 i224,int232 i232,int240 i240,int248 i248,int256 i256,bytes1 b1,bytes2 b2,bytes3 b3,bytes4 b4,bytes5 b5,bytes6 b6,bytes7 b7,bytes8 b8,bytes9 b9,bytes10 b10,bytes11 b11,bytes12 b12,bytes13 b13,bytes14 b14,bytes15 b15,bytes16 b16,bytes17 b17,bytes18 b18,bytes19 b19,bytes20 b20,bytes21 b21,bytes22 b22,bytes23 b23,bytes24 b24,bytes25 b25,bytes26 b26,bytes27 b27,bytes28 b28,bytes29 b29,bytes30 b30,bytes31 b31,bytes32 b32,bool bl,address addr)', - examples: [], - }, - { - primaryType: 'SomeAtomicTypes', - types: { - SomeAtomicTypes: [ - { name: 'ui8', type: 'uint8' }, - { name: 'ui160', type: 'uint160' }, - { name: 'ui256', type: 'uint256' }, - { name: 'i8', type: 'int8' }, - { name: 'i160', type: 'int160' }, - { name: 'i256', type: 'int256' }, - { name: 'b1', type: 'bytes1' }, - { name: 'b16', type: 'bytes16' }, - { name: 'b32', type: 'bytes32' }, - ], - }, - typeEncoding: - 'SomeAtomicTypes(uint8 ui8,uint160 ui160,uint256 ui256,int8 i8,int160 i160,int256 i256,bytes1 b1,bytes16 b16,bytes32 b32)', - zero: { - ui8: 0, - ui160: 0, - ui256: 0, - i8: 0, - i160: 0, - i256: 0, - b1: Buffer.from([]), - b16: Buffer.from([]), - b32: Buffer.from([]), - }, - examples: [ - { - data: { - ui8: 250, - ui160: '0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b', - ui256: '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', - i8: -120, - i160: '0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b', - i256: '0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', - b1: '0x01', - b16: '0x0102030405060708090a0b0c0d0e0f10', - b32: '0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20', - }, - dataEncoding: Buffer.concat([ - Buffer.from('00000000000000000000000000000000000000000000000000000000000000fa', 'hex'), - Buffer.from('0000000000000000000000001a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b', 'hex'), - Buffer.from('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'hex'), - Buffer.from('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88', 'hex'), - Buffer.from('0000000000000000000000001a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b', 'hex'), - Buffer.from('7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'hex'), - Buffer.from('0100000000000000000000000000000000000000000000000000000000000000', 'hex'), - Buffer.from('0102030405060708090a0b0c0d0e0f1000000000000000000000000000000000', 'hex'), - Buffer.from('0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20', 'hex'), - ]), - }, - ], - }, -] - -describe('encodeType()', () => { - for (const { primaryType, types, typeEncoding } of TEST_TYPES) { - it(`should encode type ${primaryType} correctly`, () => { - expect(encodeType(primaryType, types)).toEqual(typeEncoding) - }) - } -}) - -describe('typeHash()', () => { - for (const { primaryType, types, typeEncoding } of TEST_TYPES) { - it(`should hash type ${primaryType} correctly`, () => { - expect(typeHash(primaryType, types)).toEqual(keccak256(utf8ToBytes(typeEncoding))) - }) - } -}) - -describe('encodeData()', () => { - for (const { primaryType, types, examples } of TEST_TYPES) { - if (examples.length > 0) { - it(`should encode data ${primaryType} correctly`, () => { - for (const { data, dataEncoding } of examples) { - expect(encodeData(primaryType, data, types)).toEqual(dataEncoding) - } - }) - } - } -}) - -describe('structHash()', () => { - for (const { primaryType, types, examples } of TEST_TYPES) { - if (examples.length > 0) { - it(`should hash data ${primaryType} correctly`, () => { - for (const { data, dataEncoding } of examples) { - const expected = keccak256(Buffer.concat([typeHash(primaryType, types), dataEncoding])) - expect(structHash(primaryType, data, types)).toEqual(expected) - } - }) - } - } -}) - -describe('zeroValue()', () => { - for (const { primaryType, types, zero } of TEST_TYPES) { - if (zero !== undefined) { - it(`should return zero value for ${primaryType} correctly`, () => { - expect(zeroValue(primaryType, types)).toEqual(zero) - }) - } - } -}) diff --git a/packages/sdk/utils/src/sign-typed-data-utils.ts b/packages/sdk/utils/src/sign-typed-data-utils.ts deleted file mode 100644 index 7620729efce..00000000000 --- a/packages/sdk/utils/src/sign-typed-data-utils.ts +++ /dev/null @@ -1,311 +0,0 @@ -import { NULL_ADDRESS, trimLeading0x } from '@celo/base/lib/address' -import { toBuffer } from '@ethereumjs/util' -import { BigNumber } from 'bignumber.js' -import { keccak256 } from 'ethereum-cryptography/keccak' -import { hexToBytes, utf8ToBytes } from 'ethereum-cryptography/utils' -import * as t from 'io-ts' -import coder from 'web3-eth-abi' - -export interface EIP712Parameter { - name: string - type: string -} - -export interface EIP712Types { - [key: string]: EIP712Parameter[] -} - -export interface EIP712TypesWithPrimary { - types: EIP712Types - primaryType: string -} - -export type EIP712ObjectValue = - | string - | number - | BigNumber - | boolean - | Buffer - | EIP712Object - | EIP712ObjectValue[] - -export interface EIP712Object { - [key: string]: EIP712ObjectValue -} - -export interface EIP712TypedData { - types: EIP712Types & { EIP712Domain: EIP712Parameter[] } - domain: EIP712Object - message: EIP712Object - primaryType: string -} - -/** Array of all EIP-712 atomic type names. */ -export const EIP712_ATOMIC_TYPES = [ - 'bool', - 'address', - // bytes types from 1 to 32 bytes - // and uint/int types from 8 to 256 bits - ...(() => { - const result = [] - // Putting "bigger" types first, assuming they are more likely to be used. - // So `EIP712_ATOMIC_TYPES.includes(...)` calls are faster. (likely useless micro-optimization :D) - for (let i = 32; i >= 1; i--) { - result.push('bytes' + i) - result.push('uint' + i * 8) - result.push('int' + i * 8) - } - return result - })(), -] - -export const EIP712_DYNAMIC_TYPES = ['bytes', 'string'] - -export const EIP712_BUILTIN_TYPES = EIP712_DYNAMIC_TYPES.concat(EIP712_ATOMIC_TYPES) - -// Regular expression used to identify and parse EIP-712 array type strings. -const EIP712_ARRAY_REGEXP = /^(?[\w<>\[\]_\-]+)(\[(?\d+)?\])$/ - -// Regular expression used to identify EIP-712 integer types (e.g. int256, uint256, uint8). -const EIP712_INT_REGEXP = /^u?int\d*$/ - -// Regular expression used to identify EIP-712 bytes types (e.g. bytes, bytes1, up to bytes32). -const EIP712_BYTES_REGEXP = /^bytes\d*$/ - -/** - * Utility type representing an optional value in a EIP-712 compatible manner, as long as the - * concrete type T is a subtype of EIP712ObjectValue. - * - * @remarks EIP712Optonal is not part of the EIP712 standard, but is fully compatible with it. - */ -// tslint:disable-next-line:interface-over-type-literal Only builds when defined as type literal. -export type EIP712Optional = { - defined: boolean - value: T -} - -/** - * Utility to build EIP712Optional types to insert in EIP-712 type arrays. - * @param typeName EIP-712 string type name. Should be builtin or defined in the EIP712Types - * structure into which this type will be merged. - */ -export const eip712OptionalType = (typeName: string): EIP712Types => ({ - [`Optional<${typeName}>`]: [ - { name: 'defined', type: 'bool' }, - { name: 'value', type: typeName }, - ], -}) - -/** - * Utility to build EIP712Optional schemas for encoding and decoding with io-ts. - * @param schema io-ts type (a.k.a. schema or codec) describing the inner type. - */ -export const eip712OptionalSchema = (schema: S) => - t.type({ - defined: t.boolean, - value: schema, - }) - -/** Utility to construct an defined EIP712Optional value with inferred type. */ -export const defined = (value: T): EIP712Optional => ({ - defined: true, - value, -}) - -/** Undefined EIP712Optional type with value type boolean. */ -export const noBool: EIP712Optional = { - defined: false, - value: false, -} - -/** Undefined EIP712Optional type with value type number. */ -export const noNumber: EIP712Optional = { - defined: false, - value: 0, -} - -/** Undefined EIP712Optional type with value type string. */ -export const noString: EIP712Optional = { - defined: false, - value: '', -} - -/** - * Generates the EIP712 Typed Data hash for signing - * @param typedData An object that conforms to the EIP712TypedData interface - * @return A Buffer containing the hash of the typed data. - */ -export function generateTypedDataHash(typedData: EIP712TypedData): Buffer { - return keccak256( - Buffer.concat([ - Buffer.from('1901', 'hex'), - structHash('EIP712Domain', typedData.domain, typedData.types), - structHash(typedData.primaryType, typedData.message, typedData.types), - ]) - ) as Buffer -} - -/** - * Given the primary type, and dictionary of types, this function assembles a sorted list - * representing the transitive dependency closure of the primary type. (Inclusive of the primary - * type itself.) - */ -function findDependencies(primaryType: string, types: EIP712Types, found: string[] = []): string[] { - // If we have aready found the dependencies of this type, or it is a builtin, return early. - if (found.includes(primaryType) || EIP712_BUILTIN_TYPES.includes(primaryType)) { - return [] - } - - // If this is an array type, return the results for its member type. - if (EIP712_ARRAY_REGEXP.test(primaryType)) { - const match = EIP712_ARRAY_REGEXP.exec(primaryType) - const memberType: string = match?.groups?.memberType! - return findDependencies(memberType, types, found) - } - - // If this is not a builtin and is not defined, we cannot correctly construct a type encoding. - if (types[primaryType] === undefined) { - throw new Error(`Unrecognized type ${primaryType} is not included in the EIP-712 type list`) - } - - // Execute a depth-first search to populate the (inclusive) dependencies list. - // By the first invarient of this function, the resulting list should not contain duplicates. - const dependencies = [primaryType] - for (const field of types[primaryType]) { - dependencies.push(...findDependencies(field.type, types, found.concat(dependencies))) - } - return dependencies -} - -/** - * Creates a string encoding of the primary type, including all dependencies. - * E.g. "Transaction(Person from,Person to,Asset tx)Asset(address token,uint256 amount)Person(address wallet,string name)" - */ -export function encodeType(primaryType: string, types: EIP712Types): string { - let deps = findDependencies(primaryType, types) - deps = deps.filter((d) => d !== primaryType) - deps = [primaryType].concat(deps.sort()) - let result = '' - for (const dep of deps) { - result += `${dep}(${types[dep].map(({ name, type }) => `${type} ${name}`).join(',')})` - } - return result -} - -export function typeHash(primaryType: string, types: EIP712Types): Buffer { - return keccak256(utf8ToBytes(encodeType(primaryType, types))) as Buffer -} - -/** Encodes a single EIP-712 value to a 32-byte buffer */ -function encodeValue(valueType: string, value: EIP712ObjectValue, types: EIP712Types): Buffer { - // Encode the atomic types as their corresponding soldity ABI type. - if (EIP712_ATOMIC_TYPES.includes(valueType)) { - // @ts-ignore TypeScript does not believe encodeParameter exists. - const hexEncoded = coder.encodeParameter(valueType, normalizeValue(valueType, value)) - return Buffer.from(trimLeading0x(hexEncoded), 'hex') - } - - // Encode `string` and `bytes` types as their keccak hash. - if (valueType === 'string') { - // Converting to Buffer before passing to `keccak` prevents an issue where the string is - // interpretted as a hex-encoded string when is starts with 0x. - // https://github.com/ethereumjs/ethereumjs-util/blob/7e3be1d97b4e11fbc4924836b8c444e644f643ac/index.js#L155-L183 - return keccak256(Buffer.from(value as string, 'utf8')) as Buffer - } - if (valueType === 'bytes') { - // Allow the user to use either utf8 (plain string) or hex encoding for their bytes. - // Note: keccak throws if the value cannot be converted into a Buffer, - return toBuffer(keccak256(hexToBytes(trimLeading0x(value as string)))) - } - - // Encode structs as its hashStruct (e.g. keccak(typeHash || encodeData(struct)) ). - if (types[valueType] !== undefined) { - // tslint:disable-next-line:no-unnecessary-type-assertion. - return structHash(valueType, value as EIP712Object, types) - } - - // Encode arrays as the hash of the concatenated encoding of the underlying types. - if (EIP712_ARRAY_REGEXP.test(valueType)) { - // Note: If a fixed length is provided in the type, it is not checked. - const match = EIP712_ARRAY_REGEXP.exec(valueType) - const memberType: string = match?.groups?.memberType! - return keccak256( - Buffer.concat( - (value as EIP712ObjectValue[]).map((member) => encodeValue(memberType, member, types)) - ) - ) as Buffer - } - - throw new Error(`Unrecognized or unsupported type in EIP-712 encoding: ${valueType}`) -} - -function normalizeValue(type: string, value: EIP712ObjectValue): EIP712ObjectValue { - const normalizedValue = - EIP712_INT_REGEXP.test(type) && BigNumber.isBigNumber(value) ? value.toString() : value - return normalizedValue -} - -/** - * Constructs the struct encoding of the data as the primary type. - */ -export function encodeData(primaryType: string, data: EIP712Object, types: EIP712Types): Buffer { - const fields = types[primaryType] - if (fields === undefined) { - throw new Error(`Unrecognized primary type in EIP-712 encoding: ${primaryType}`) - } - - return Buffer.concat(fields.map((field) => encodeValue(field.type, data[field.name], types))) -} - -export function structHash(primaryType: string, data: EIP712Object, types: EIP712Types): Buffer { - return keccak256( - Buffer.concat([typeHash(primaryType, types), encodeData(primaryType, data, types)]) - ) as Buffer -} - -/** - * Produce the zero value for a given type. - * - * @remarks - * All atomic types will encode as the 32-byte zero value. Dynamic types as an empty hash. - * Dynamic arrays will return an empty array. Fixed length arrays will have members set to zero. - * Structs will have the values of all fields set to zero recursively. - * - * Note that EIP-712 does not specify zero values, and so this is non-standard. - */ -export function zeroValue(primaryType: string, types: EIP712Types = {}): EIP712ObjectValue { - // If the type is a built-in, return a pre-defined zero value. - if (EIP712_BUILTIN_TYPES.includes(primaryType)) { - if (EIP712_BYTES_REGEXP.test(primaryType)) { - return Buffer.alloc(0) - } - if (EIP712_INT_REGEXP.test(primaryType)) { - return 0 - } - if (primaryType === 'bool') { - return false - } - if (primaryType === 'address') { - return NULL_ADDRESS - } - if (primaryType === 'string') { - return '' - } - } - - // If the type is an array, return an empty array or an array of the given fixed length. - if (EIP712_ARRAY_REGEXP.test(primaryType)) { - const match = EIP712_ARRAY_REGEXP.exec(primaryType) - const memberType: string = match?.groups?.memberType! - const fixedLengthStr: string | undefined = match?.groups?.fixedLength - const fixedLength: number = fixedLengthStr === undefined ? 0 : parseInt(fixedLengthStr, 10) - return [...Array(fixedLength).keys()].map(() => zeroValue(memberType, types)) - } - - // Must be user-defined type. Return an object with all fields set to their zero value. - const fields = types[primaryType] - if (fields === undefined) { - throw new Error(`Unrecognized primary type for EIP-712 zero value: ${primaryType}`) - } - return fields.reduce((obj, field) => ({ ...obj, [field.name]: zeroValue(field.type, types) }), {}) -} diff --git a/packages/sdk/utils/src/signatureUtils.test.ts b/packages/sdk/utils/src/signatureUtils.test.ts deleted file mode 100644 index c2d6c62c0f1..00000000000 --- a/packages/sdk/utils/src/signatureUtils.test.ts +++ /dev/null @@ -1,88 +0,0 @@ -import * as Web3Utils from 'web3-utils' -import { privateKeyToAddress } from './address' -import { - parseSignature, - parseSignatureWithoutPrefix, - serializeSignature, - SignatureUtils, - signMessage, - signMessageWithoutPrefix, -} from './signatureUtils' - -describe('signatures', () => { - it('should sign appropriately with a hash of a message', () => { - const pKey = '0x62633f7c9583780a7d3904a2f55d792707c345f21de1bacb2d389934d82796b2' - const address = privateKeyToAddress(pKey) - const messageHash = Web3Utils.soliditySha3({ type: 'string', value: 'identifier' })! - const signature = signMessageWithoutPrefix(messageHash, pKey, address) - const serializedSig = serializeSignature(signature) - parseSignatureWithoutPrefix(messageHash, serializedSig, address) - }) - - it('should sign appropriately with just the message', () => { - const pKey = '0x62633f7c9583780a7d3904a2f55d792707c345f21de1bacb2d389934d82796b2' - const address = privateKeyToAddress(pKey) - const message = 'mymessage' - const signature = signMessage(message, pKey, address) - const serializedSig = serializeSignature(signature) - parseSignature(message, serializedSig, address) - }) - - describe('EIP712 signatures', () => { - const pKey = '0xac8ca7aeb0f57f1ed1ce98a695dabcb0278faf03d68e1bae08c9095355a28b06' - const signer = privateKeyToAddress(pKey) - const typedData = JSON.parse( - '{"types":{"EIP712Domain":[{"name":"name","type":"string"},{"name":"version","type":"string"}],"AttestationRequest":[{"name":"code","type":"string"}]},"primaryType":"AttestationRequest","domain":{"name":"Attestations","version":"1.0.0"},"message":{"code":"1000023"}}' - ) - // generated via LocalWallet's signTypedData - const rsvSignature = - '0x106c6f892c5667c298dddc023161b58657c47fb03348fa0ec9b3b515841df47b39985d448104683fcef8d81f2cdcf8bce83c97f8dfb130438f7d26c6e3b2a10001' - // generated via contractKit's signTypedData - const vrsSignature = - '0x1c106c6f892c5667c298dddc023161b58657c47fb03348fa0ec9b3b515841df47b39985d448104683fcef8d81f2cdcf8bce83c97f8dfb130438f7d26c6e3b2a100' - const signature = { - v: 28, - r: '0x106c6f892c5667c298dddc023161b58657c47fb03348fa0ec9b3b515841df47b', - s: '0x39985d448104683fcef8d81f2cdcf8bce83c97f8dfb130438f7d26c6e3b2a100', - } - // Modified 'v' from 1c -> 1b (28 -> 27) - const invalidVrsSignature = - '0x1b106c6f892c5667c298dddc023161b58657c47fb03348fa0ec9b3b515841df47b39985d448104683fcef8d81f2cdcf8bce83c97f8dfb130438f7d26c6e3b2a100' - - it('should recover signer from RSV-serialized sig of EIP712 typed data ', () => { - const recoveredSigner = SignatureUtils.recoverEIP712TypedDataSignerRsv( - typedData, - rsvSignature - ) - expect(signer.toLowerCase()).toEqual(recoveredSigner.toLowerCase()) - }) - it('should recover signer from VSR-serialized sig of EIP712 typed data', () => { - const recoveredSigner = SignatureUtils.recoverEIP712TypedDataSignerVrs( - typedData, - vrsSignature - ) - expect(signer.toLowerCase()).toEqual(recoveredSigner.toLowerCase()) - }) - it('should verify signer from RSV-serialized sig of EIP712 typed data', () => { - expect( - SignatureUtils.verifyEIP712TypedDataSigner(typedData, rsvSignature, signer) - ).toBeTruthy() - }) - it('should verify signer from VSR-serialized sig of EIP712 typed data', () => { - expect( - SignatureUtils.verifyEIP712TypedDataSigner(typedData, vrsSignature, signer) - ).toBeTruthy() - }) - it('should verify signer from serializeSignature output', () => { - const serializedSig = SignatureUtils.serializeSignature(signature) - expect( - SignatureUtils.verifyEIP712TypedDataSigner(typedData, serializedSig, signer) - ).toBeTruthy() - }) - it('should not verify signer from invalid sig of EIP712 typed data', () => { - expect( - SignatureUtils.verifyEIP712TypedDataSigner(typedData, invalidVrsSignature, signer) - ).toBeFalsy() - }) - }) -}) diff --git a/packages/sdk/utils/src/signatureUtils.ts b/packages/sdk/utils/src/signatureUtils.ts deleted file mode 100644 index ea86a7f7752..00000000000 --- a/packages/sdk/utils/src/signatureUtils.ts +++ /dev/null @@ -1,246 +0,0 @@ -import { NativeSigner, serializeSignature, Signature, Signer } from '@celo/base/lib/signatureUtils' -import { - bufferToHex, - ecrecover, - ecsign, - fromRpcSig, - privateToPublic, - pubToAddress, - toBuffer, -} from '@ethereumjs/util' -import { isHexStrict, soliditySha3 } from 'web3-utils' -import { ensureLeading0x, eqAddress, privateKeyToAddress, trimLeading0x } from './address' -import { EIP712TypedData, generateTypedDataHash } from './sign-typed-data-utils' - -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { - NativeSigner, - POP_SIZE, - serializeSignature, - Signature, - Signer, -} from '@celo/base/lib/signatureUtils' - -// If messages is a hex, the length of it should be the number of bytes -function messageLength(message: string) { - if (isHexStrict(message)) { - return (message.length - 2) / 2 - } - return message.length -} -// Ethereum has a special signature format that requires a prefix -// https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign -export function hashMessageWithPrefix(message: string): string { - const prefix = '\x19Ethereum Signed Message:\n' + messageLength(message) - return soliditySha3(prefix, message)! -} - -export function hashMessage(message: string): string { - return soliditySha3({ type: 'string', value: message })! -} - -export async function addressToPublicKey( - signer: string, - signFn: (message: string, signer: string) => Promise -) { - const msg = Buffer.from('dummy_msg_data') - const data = '0x' + msg.toString('hex') - // Note: Eth.sign typing displays incorrect parameter order - const sig = await signFn(data, signer) - - const rawsig = fromRpcSig(sig) - const prefixedMsg = hashMessageWithPrefix(data) - const pubKey = ecrecover(Buffer.from(prefixedMsg.slice(2), 'hex'), rawsig.v, rawsig.r, rawsig.s) - - const computedAddr = pubToAddress(pubKey).toString('hex') - if (!eqAddress(computedAddr, signer)) { - throw new Error('computed address !== signer') - } - - return '0x' + pubKey.toString('hex') -} - -export function LocalSigner(privateKey: string): Signer { - return { - sign: async (message: string) => - Promise.resolve( - serializeSignature(signMessage(message, privateKey, privateKeyToAddress(privateKey))) - ), - } -} - -export function signedMessageToPublicKey(message: string, v: number, r: string, s: string) { - const pubKeyBuf = ecrecover( - Buffer.from(message.slice(2), 'hex'), - BigInt(v), - Buffer.from(r.slice(2), 'hex'), - Buffer.from(s.slice(2), 'hex') - ) - return '0x' + pubKeyBuf.toString('hex') -} - -export function signMessage(message: string, privateKey: string, address: string) { - return signMessageWithoutPrefix( - hashMessageWithPrefix(message), - ensureLeading0x(privateKey), - address - ) -} - -export function signMessageWithoutPrefix(messageHash: string, privateKey: string, address: string) { - const publicKey = privateToPublic(toBuffer(privateKey)) - const derivedAddress: string = bufferToHex(pubToAddress(publicKey)) - if (derivedAddress.toLowerCase() !== address.toLowerCase()) { - throw new Error('Provided private key does not match address of intended signer') - } - const { r, s, v } = ecsign(toBuffer(messageHash), toBuffer(privateKey)) - if (!isValidSignature(address, messageHash, Number(v), bufferToHex(r), bufferToHex(s))) { - throw new Error('Unable to validate signature') - } - return { v: Number(v), r: bufferToHex(r), s: bufferToHex(s) } -} - -export function verifySignature(message: string, signature: string, signer: string) { - try { - parseSignature(message, signature, signer) - return true - } catch (error) { - return false - } -} - -export function parseSignature(message: string, signature: string, signer: string) { - return parseSignatureWithoutPrefix(hashMessageWithPrefix(message), signature, signer) -} - -export function parseSignatureWithoutPrefix( - messageHash: string, - signature: string, - signer: string -) { - let { r, s, v } = parseSignatureAsRsv(signature.slice(2)) - if (isValidSignature(signer, messageHash, v, r, s)) { - return { v, r, s } - } - - ;({ r, s, v } = parseSignatureAsVrs(signature.slice(2))) - if (isValidSignature(signer, messageHash, v, r, s)) { - return { v, r, s } - } - - throw new Error(`Unable to parse signature (expected signer ${signer})`) -} - -function recoverEIP712TypedDataSigner( - typedData: EIP712TypedData, - signature: string, - parseFunction: (signature: string) => Signature -): string { - const dataBuff = generateTypedDataHash(typedData) - const { r, s, v } = parseFunction(trimLeading0x(signature)) - const publicKey = ecrecover(toBuffer(dataBuff), BigInt(v), toBuffer(r), toBuffer(s)) - // TODO test error handling on this - return bufferToHex(pubToAddress(publicKey)) -} - -/** - * Recover signer from RSV-serialized signature over signed typed data. - * @param typedData EIP712 typed data - * @param signature RSV signature of signed type data by signer - * @returns string signer, or throws error if parsing fails - */ -export function recoverEIP712TypedDataSignerRsv( - typedData: EIP712TypedData, - signature: string -): string { - return recoverEIP712TypedDataSigner(typedData, signature, parseSignatureAsRsv) -} - -/** - * Recover signer from VRS-serialized signature over signed typed data. - * @param typedData EIP712 typed data - * @param signature VRS signature of signed type data by signer - * @returns string signer, or throws error if parsing fails - */ -export function recoverEIP712TypedDataSignerVrs( - typedData: EIP712TypedData, - signature: string -): string { - return recoverEIP712TypedDataSigner(typedData, signature, parseSignatureAsVrs) -} - -/** - * @param typedData EIP712 typed data - * @param signature VRS or SRV signature of `typedData` by `signer` - * @param signer address to verify signed the `typedData` - * @returns boolean, true if `signer` is a possible signer of `signature` - */ -export function verifyEIP712TypedDataSigner( - typedData: EIP712TypedData, - signature: string, - signer: string -) { - for (const recover of [recoverEIP712TypedDataSignerVrs, recoverEIP712TypedDataSignerRsv]) { - try { - if (eqAddress(recover(typedData, signature), signer)) { - return true - } - } catch (e) { - // try both serialization formats before failing to verify - } - } - return false -} - -export function guessSigner(message: string, signature: string): string { - const messageHash = hashMessageWithPrefix(message) - const { r, s, v } = parseSignatureAsRsv(signature.slice(2)) - const publicKey = ecrecover(toBuffer(messageHash), BigInt(v), toBuffer(r), toBuffer(s)) - return bufferToHex(pubToAddress(publicKey)) -} - -function parseSignatureAsVrs(signature: string) { - let v: number = parseInt(signature.slice(0, 2), 16) - const r: string = `0x${signature.slice(2, 66)}` - const s: string = `0x${signature.slice(66, 130)}` - if (v < 27) { - v += 27 - } - return { v, r, s } -} - -function parseSignatureAsRsv(signature: string) { - const r: string = `0x${signature.slice(0, 64)}` - const s: string = `0x${signature.slice(64, 128)}` - let v: number = parseInt(signature.slice(128, 130), 16) - if (v < 27) { - v += 27 - } - return { r, s, v } -} - -function isValidSignature(signer: string, message: string, v: number, r: string, s: string) { - try { - const publicKey = ecrecover(toBuffer(message), BigInt(v), toBuffer(r), toBuffer(s)) - - const retrievedAddress: string = bufferToHex(pubToAddress(publicKey)) - - return eqAddress(retrievedAddress, signer) - } catch (err) { - return false - } -} - -export const SignatureUtils = { - NativeSigner, - LocalSigner, - signMessage, - signMessageWithoutPrefix, - parseSignature, - parseSignatureWithoutPrefix, - serializeSignature, - recoverEIP712TypedDataSignerRsv, - recoverEIP712TypedDataSignerVrs, - verifyEIP712TypedDataSigner, -} diff --git a/packages/sdk/utils/src/solidity.ts b/packages/sdk/utils/src/solidity.ts deleted file mode 100644 index 548931d5dbe..00000000000 --- a/packages/sdk/utils/src/solidity.ts +++ /dev/null @@ -1 +0,0 @@ -export { sha3, soliditySha3, soliditySha3Raw } from 'web3-utils' diff --git a/packages/sdk/utils/src/string.ts b/packages/sdk/utils/src/string.ts deleted file mode 100644 index 6aba2ea3e7d..00000000000 --- a/packages/sdk/utils/src/string.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { appendPath, normalizeAccents } from '@celo/base/lib/string' -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { appendPath, normalizeAccents } from '@celo/base/lib/string' -export const StringUtils = { - appendPath, - normalizeAccents, -} diff --git a/packages/sdk/utils/src/task.test.ts b/packages/sdk/utils/src/task.test.ts deleted file mode 100644 index 78598bbdae9..00000000000 --- a/packages/sdk/utils/src/task.test.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { sleep } from './async' -import { conditionWatcher, repeatTask, RepeatTaskContext, tryObtainValueWithRetries } from './task' - -describe('repeatTask()', () => { - test("should repeat task until it't stopped", async () => { - const fn = jest.fn().mockResolvedValue(null) - - const task = repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - }, - fn - ) - - await sleep(15) - const currentCalls = fn.mock.calls.length - task.stop() - await sleep(10) - expect(task.isRunning()).toBeFalsy() - expect(fn).toBeCalledTimes(currentCalls) - }) - - test('should keep repeating even if task fails', async () => { - const fn = jest.fn().mockRejectedValue(new Error('Failed')) - - const task = repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - }, - fn - ) - await sleep(35) - expect(fn.mock.calls.length).toBeGreaterThan(1) - task.stop() - }) - - test('should set and increment execution number', async () => { - const executionsNumbers: number[] = [] - const fn = jest.fn(async (ctx: RepeatTaskContext) => { - executionsNumbers.push(ctx.executionNumber) - }) - - const task = repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - }, - fn - ) - - await sleep(35) - task.stop() - - for (let i = 0; i < executionsNumbers.length; i++) { - expect(executionsNumbers[i]).toBe(i + 1) - } - }) - - test('should call logger with taskName prefix', async () => { - const fn = async (ctx: RepeatTaskContext) => { - ctx.stopTask() - throw new Error('MESSAGE') - } - - const logger = jest.fn() - repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - logger, - }, - fn - ) - await sleep(5) - expect(logger.mock.calls.length).toBeGreaterThan(0) - for (const call of logger.mock.calls) { - expect(call[0]).toBe('testTask:: ') - } - }) - - test('should be able to stop repetitions from ctx', async () => { - const fn = jest.fn(async (ctx: RepeatTaskContext) => { - if (ctx.executionNumber === 2) { - ctx.stopTask() - } - }) - - const task = repeatTask( - { - name: 'testTask', - timeInBetweenMS: 10, - }, - fn - ) - - await sleep(25) - expect(task.isRunning()).toBeFalsy() - expect(fn).toBeCalledTimes(2) - }) - - test('should use initialDelayMS', async () => { - const fn = jest.fn().mockResolvedValue(null) - - const task = repeatTask( - { - name: 'testTask', - initialDelayMS: 10, - timeInBetweenMS: 10, - }, - fn - ) - - await sleep(2) - expect(fn).toHaveBeenCalledTimes(0) - await sleep(10) - expect(fn).toHaveBeenCalledTimes(1) - task.stop() - }) -}) - -describe('conditionWatcher()', () => { - test('will execute onSuccess when condition triggers', async () => { - const pollCondition = jest.fn().mockResolvedValueOnce(false).mockResolvedValueOnce(true) - const onSuccess = jest.fn() - - const task = conditionWatcher({ - name: 'testCondition', - onSuccess, - pollCondition, - timeInBetweenMS: 10, - }) - - await sleep(25) - expect(task.isRunning()).toBeFalsy() - expect(onSuccess).toHaveBeenCalled() - expect(pollCondition).toHaveBeenCalledTimes(2) - }) - - test('will work ok if pollCondition throws', async () => { - const pollCondition = jest - .fn() - .mockRejectedValueOnce(new Error('pepe')) - .mockResolvedValueOnce(true) - const onSuccess = jest.fn() - - const task = conditionWatcher({ - name: 'testCondition', - onSuccess, - pollCondition, - timeInBetweenMS: 10, - }) - - await sleep(25) - expect(task.isRunning()).toBeFalsy() - expect(onSuccess).toHaveBeenCalled() - expect(pollCondition).toHaveBeenCalledTimes(2) - }) - - test('will work ok if onSuccess throws', async () => { - const pollCondition = jest.fn().mockResolvedValue(true) - const onSuccess = jest.fn().mockRejectedValue(new Error('fail')) - - const task = conditionWatcher({ - name: 'testCondition', - onSuccess, - pollCondition, - timeInBetweenMS: 10, - }) - - await sleep(25) - expect(task.isRunning()).toBeFalsy() - expect(onSuccess).toHaveBeenCalled() - }) -}) - -describe('tryObtainValueWithRetries()', () => { - test('will return value if suceeds before retries expires', async () => { - const task = tryObtainValueWithRetries({ - name: 'testGet', - maxAttemps: 2, - tryGetValue: jest.fn().mockResolvedValueOnce(null).mockResolvedValueOnce('HELLO'), - timeInBetweenMS: 7, - }) - - await expect(task.onValue()).resolves.toBe('HELLO') - }) - - test('will reject on maxAttemps', async () => { - const task = tryObtainValueWithRetries({ - name: 'testGet', - maxAttemps: 2, - tryGetValue: jest - .fn() - .mockResolvedValueOnce(null) - .mockResolvedValueOnce(null) - .mockResolvedValueOnce('HELLO'), - timeInBetweenMS: 7, - }) - - await expect(task.onValue()).rejects.toThrow('Max Retries') - }) - - test('works on when tryGetValue throws', async () => { - const task = tryObtainValueWithRetries({ - name: 'testGet', - maxAttemps: 2, - tryGetValue: jest - .fn() - .mockRejectedValueOnce(new Error('error')) - .mockResolvedValueOnce('HELLO'), - timeInBetweenMS: 7, - }) - - await expect(task.onValue()).resolves.toBe('HELLO') - }) - - test('stops when task.stop() is called', async () => { - const tryGetValue = jest.fn().mockResolvedValue(null) - const task = tryObtainValueWithRetries({ - name: 'testGet', - maxAttemps: 15, - tryGetValue, - timeInBetweenMS: 7, - }) - - await sleep(15) - task.stop() - await expect(task.onValue()).rejects.toThrow('Cancelled') - const currentCalls = tryGetValue.mock.calls.length - await sleep(10) - expect(tryGetValue).toHaveBeenCalledTimes(currentCalls) - expect(task.isRunning()).toBeFalsy() - }) -}) diff --git a/packages/sdk/utils/src/task.ts b/packages/sdk/utils/src/task.ts deleted file mode 100644 index 70e65682127..00000000000 --- a/packages/sdk/utils/src/task.ts +++ /dev/null @@ -1,12 +0,0 @@ -// Exports moved to @celo/base, forwarding them -// here for backwards compatibility -export { - conditionWatcher, - repeatTask, - RepeatTaskContext, - RetryTaskOptions, - RunningTask, - RunningTaskWithValue, - TaskOptions, - tryObtainValueWithRetries, -} from '@celo/base/lib/task' diff --git a/packages/sdk/utils/src/typed-data-constructors.ts b/packages/sdk/utils/src/typed-data-constructors.ts deleted file mode 100644 index f0c08b9e32e..00000000000 --- a/packages/sdk/utils/src/typed-data-constructors.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Address } from '@celo/base' -import { EIP712TypedData } from './sign-typed-data-utils' - -export const authorizeSigner = ({ - account, - signer, - chainId, - role, - accountsContractAddress, -}: { - chainId: number - signer: string - account: string - role: string - accountsContractAddress: string -}): EIP712TypedData => ({ - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - AuthorizeSigner: [ - { name: 'account', type: 'address' }, - { name: 'signer', type: 'address' }, - { name: 'role', type: 'bytes32' }, - ], - }, - primaryType: 'AuthorizeSigner', - domain: { - name: 'Celo Core Contracts', - version: '1.0', - chainId, - verifyingContract: accountsContractAddress, - }, - message: { - account, - signer, - role, - }, -}) - -interface AttestationDetails { - identifier: string - issuer: string - account: string - signer: string - issuedOn: number -} - -export const registerAttestation = ( - chainId: number, - contractAddress: Address, - message?: AttestationDetails -) => { - return { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - OwnershipAttestation: [ - { name: 'identifier', type: 'bytes32' }, - { name: 'issuer', type: 'address' }, - { name: 'account', type: 'address' }, - { name: 'signer', type: 'address' }, - { name: 'issuedOn', type: 'uint64' }, - ], - }, - primaryType: 'OwnershipAttestation', - domain: { - name: 'FederatedAttestations', - version: '1.0', - chainId, - verifyingContract: contractAddress, - }, - message: message ? message : {}, - } -} diff --git a/packages/sdk/utils/tsconfig.json b/packages/sdk/utils/tsconfig.json deleted file mode 100644 index 410feb9ee75..00000000000 --- a/packages/sdk/utils/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib", - "downlevelIteration": true, - "resolveJsonModule": true - }, - "include": ["src/", "src/**/*.json"], - "exclude": ["**/*.test.ts"] -} diff --git a/packages/sdk/utils/tslint.json b/packages/sdk/utils/tslint.json deleted file mode 100644 index 7221d56e375..00000000000 --- a/packages/sdk/utils/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "no-console": false, - "no-floating-promises": true - } -} diff --git a/packages/sdk/utils/typedoc.json b/packages/sdk/utils/typedoc.json deleted file mode 100644 index c909edaa30a..00000000000 --- a/packages/sdk/utils/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../docs/sdk/docs/utils", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-base/.gitignore b/packages/sdk/wallets/wallet-base/.gitignore deleted file mode 100644 index c3af857904e..00000000000 --- a/packages/sdk/wallets/wallet-base/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lib/ diff --git a/packages/sdk/wallets/wallet-base/.npmignore b/packages/sdk/wallets/wallet-base/.npmignore deleted file mode 100644 index d8d8e42b865..00000000000 --- a/packages/sdk/wallets/wallet-base/.npmignore +++ /dev/null @@ -1,24 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-base/CHANGELOG.md b/packages/sdk/wallets/wallet-base/CHANGELOG.md deleted file mode 100644 index 5b6d084ce90..00000000000 --- a/packages/sdk/wallets/wallet-base/CHANGELOG.md +++ /dev/null @@ -1,52 +0,0 @@ -# @celo/wallet-base - -## 5.1.1 - -### Patch Changes - -- Updated dependencies [679ef0c60] -- Updated dependencies [97d5ccf43] - - @celo/connect@5.1.1 - - @celo/base@6.0.0 - - @celo/utils@5.0.6 - -## 5.1.1-beta.0 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - - @celo/connect@5.1.1-beta.0 - - @celo/utils@5.0.6-beta.0 - -## 5.1.0 - -### Minor Changes - -- 53bbd4958: Add cip64 support for feeCurrency Transactions. Note this is the replacement for the deprecated cip42 and legacy tx types https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip/0064.md - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0 - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.1.0-beta.0 - -### Minor Changes - -- 53bbd4958: Add cip64 support for feeCurrency Transactions. Note this is the replacement for the deprecated cip42 and legacy tx types https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip/0064.md - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/wallets/wallet-base/Readme.md b/packages/sdk/wallets/wallet-base/Readme.md deleted file mode 100644 index 272cc62d5a4..00000000000 --- a/packages/sdk/wallets/wallet-base/Readme.md +++ /dev/null @@ -1,3 +0,0 @@ - - -Wallet-base provides base utilities for creating Celo wallets. diff --git a/packages/sdk/wallets/wallet-base/jest.config.js b/packages/sdk/wallets/wallet-base/jest.config.js deleted file mode 100644 index 2681a75d5a6..00000000000 --- a/packages/sdk/wallets/wallet-base/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/wallets/wallet-base/package.json b/packages/sdk/wallets/wallet-base/package.json deleted file mode 100644 index 1bc7b20a428..00000000000 --- a/packages/sdk/wallets/wallet-base/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "@celo/wallet-base", - "version": "5.1.1", - "description": "Wallet base implementation", - "author": "Celo", - "license": "Apache-2.0", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/wallets/", - "homepage": "https://docs.celo.org", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand --passWithNoTests", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "devDependencies": { - "viem": "~1.5.4" - }, - "dependencies": { - "@celo/connect": "^5.1.1", - "@celo/base": "^6.0.0", - "@celo/utils": "^5.0.6", - "@ethereumjs/util": "8.0.5", - "@ethereumjs/rlp": "^5.0.0", - "ethereum-cryptography": "^2.1.2", - "@types/debug": "^4.1.5", - "bignumber.js": "^9.0.0", - "web3-eth-accounts": "1.10.0", - "debug": "^4.1.1", - "eth-lib": "^0.2.8", - "web3": "1.10.0" - }, - "engines": { - "node": ">=8.14.2" - } -} diff --git a/packages/sdk/wallets/wallet-base/src/index.ts b/packages/sdk/wallets/wallet-base/src/index.ts deleted file mode 100644 index 0ec550a6003..00000000000 --- a/packages/sdk/wallets/wallet-base/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './signing-utils' -export * from './wallet-base' diff --git a/packages/sdk/wallets/wallet-base/src/signing-utils.test.ts b/packages/sdk/wallets/wallet-base/src/signing-utils.test.ts deleted file mode 100644 index eb1882edce2..00000000000 --- a/packages/sdk/wallets/wallet-base/src/signing-utils.test.ts +++ /dev/null @@ -1,617 +0,0 @@ -import { CeloTx } from '@celo/connect' -import { normalizeAddressWith0x, privateKeyToAddress } from '@celo/utils/lib/address' -import { parseTransaction, serializeTransaction } from 'viem' -import { privateKeyToAccount } from 'viem/accounts' -import { celo } from 'viem/chains' -import Web3 from 'web3' -import { - extractSignature, - getSignerFromTxEIP2718TX, - isPriceToLow, - recoverTransaction, - rlpEncodedTx, - stringNumberOrBNToHex, -} from './signing-utils' -const PRIVATE_KEY1 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' -const ACCOUNT_ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY1)) as `0x${string}` - -describe('rlpEncodedTx', () => { - describe('legacy', () => { - const legacyTransaction = { - feeCurrency: '0x5409ED021D9299bf6814279A6A1411A7e866A631', - from: ACCOUNT_ADDRESS1, - to: ACCOUNT_ADDRESS1, - chainId: 2, - value: Web3.utils.toWei('1000', 'ether'), - nonce: 1, - gas: '1500000000', - gasPrice: '9900000000', - data: '0xabcdef', - } - it('convert CeloTx into RLP', () => { - const transaction = { - ...legacyTransaction, - } - const result = rlpEncodedTx(transaction) - expect(result).toMatchInlineSnapshot(` - { - "rlpEncode": "0xf8490185024e1603008459682f00945409ed021d9299bf6814279a6a1411a7e866a6318080941be31a94361a391bbafb2a4ccd704f57dc04d4bb893635c9adc5dea0000083abcdef028080", - "transaction": { - "chainId": 2, - "data": "0xabcdef", - "feeCurrency": "0x5409ed021d9299bf6814279a6a1411a7e866a631", - "from": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "gas": "0x59682f00", - "gasPrice": "0x024e160300", - "gatewayFee": "0x", - "gatewayFeeRecipient": "0x", - "maxFeePerGas": "0x", - "maxPriorityFeePerGas": "0x", - "nonce": 1, - "to": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "value": "0x3635c9adc5dea00000", - }, - "type": "celo-legacy", - } - `) - }) - - describe('when chainId / gasPrice / nonce is invalid', () => { - it('chainId is not a positive number it throws error', () => { - const transaction = { - ...legacyTransaction, - chainId: -1, - } - expect(() => rlpEncodedTx(transaction)).toThrowErrorMatchingInlineSnapshot( - `"Gas, nonce or chainId is less than than 0"` - ) - }) - it('gasPrice is not a positive number it throws error', () => { - const transaction = { - ...legacyTransaction, - gasPrice: -1, - } - expect(() => rlpEncodedTx(transaction)).toThrowErrorMatchingInlineSnapshot( - `"GasPrice or maxFeePerGas or maxPriorityFeePerGas is less than than 0"` - ) - }) - it('nonce is not a positive number it throws error', () => { - const transaction = { - ...legacyTransaction, - nonce: -1, - } - expect(() => rlpEncodedTx(transaction)).toThrowErrorMatchingInlineSnapshot( - `"Gas, nonce or chainId is less than than 0"` - ) - }) - it('gas is not a positive number it throws error', () => { - const transaction = { - ...legacyTransaction, - gas: -1, - } - expect(() => rlpEncodedTx(transaction)).toThrowErrorMatchingInlineSnapshot( - `"Gas, nonce or chainId is less than than 0"` - ) - }) - }) - }) - - describe('when no gas fields are provided', () => { - it('throws an error', () => { - expect(() => rlpEncodedTx({})).toThrowErrorMatchingInlineSnapshot(`""gas" is missing"`) - }) - }) - - describe('EIP1559 / CIP42', () => { - const eip1559Transaction: CeloTx = { - from: ACCOUNT_ADDRESS1, - to: ACCOUNT_ADDRESS1, - chainId: 2, - value: Web3.utils.toWei('1000', 'ether'), - nonce: 0, - maxFeePerGas: '10', - maxPriorityFeePerGas: '99', - gas: '99', - data: '0xabcdef', - } - - describe('when maxFeePerGas is to low', () => { - it('throws an error', () => { - const transaction = { - ...eip1559Transaction, - maxFeePerGas: Web3.utils.toBN('-5'), - } - expect(() => rlpEncodedTx(transaction)).toThrowErrorMatchingInlineSnapshot( - `"GasPrice or maxFeePerGas or maxPriorityFeePerGas is less than than 0"` - ) - }) - }) - describe('when maxPriorityFeePerGas is to low', () => { - it('throws an error', () => { - const transaction = { - ...eip1559Transaction, - maxPriorityFeePerGas: Web3.utils.toBN('-5'), - } - expect(() => rlpEncodedTx(transaction)).toThrowErrorMatchingInlineSnapshot( - `"GasPrice or maxFeePerGas or maxPriorityFeePerGas is less than than 0"` - ) - }) - }) - - describe('when maxFeePerGas and maxPriorityFeePerGas and feeCurrency are provided', () => { - it('orders fields in RLP as specified by CIP64', () => { - const CIP64Transaction = { - ...eip1559Transaction, - feeCurrency: '0x5409ED021D9299bf6814279A6A1411A7e866A631', - } - const result = rlpEncodedTx(CIP64Transaction) - expect(result).toMatchInlineSnapshot(` - { - "rlpEncode": "0x7bf83e0280630a63941be31a94361a391bbafb2a4ccd704f57dc04d4bb893635c9adc5dea0000083abcdefc0945409ed021d9299bf6814279a6a1411a7e866a631", - "transaction": { - "chainId": 2, - "data": "0xabcdef", - "feeCurrency": "0x5409ed021d9299bf6814279a6a1411a7e866a631", - "from": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "gas": "0x63", - "maxFeePerGas": "0x0a", - "maxPriorityFeePerGas": "0x63", - "nonce": 0, - "to": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "value": "0x3635c9adc5dea00000", - }, - "type": "cip64", - } - `) - }) - }) - - describe('when maxFeePerGas and maxPriorityFeePerGas are provided', () => { - it('orders fields in RLP as specified by EIP1559', () => { - const result = rlpEncodedTx(eip1559Transaction) - expect(result).toMatchInlineSnapshot(` - { - "rlpEncode": "0x02e90280630a63941be31a94361a391bbafb2a4ccd704f57dc04d4bb893635c9adc5dea0000083abcdefc0", - "transaction": { - "chainId": 2, - "data": "0xabcdef", - "from": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "gas": "0x63", - "maxFeePerGas": "0x0a", - "maxPriorityFeePerGas": "0x63", - "nonce": 0, - "to": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "value": "0x3635c9adc5dea00000", - }, - "type": "eip1559", - } - `) - }) - }) - }) - describe('compared to viem', () => { - it('matches output of viem serializeTransaction with accessList', () => { - const tx = { - type: 'eip1559' as const, - from: ACCOUNT_ADDRESS1, - to: ACCOUNT_ADDRESS1, - chainId: 2, - value: Web3.utils.toWei('1000', 'ether'), - nonce: 0, - maxFeePerGas: '1000', - maxPriorityFeePerGas: '99', - gas: '9900', - data: '0xabcdef' as const, - accessList: [ - { - address: '0x0000000000000000000000000000000000000000' as const, - storageKeys: [ - '0x0000000000000000000000000000000000000000000000000000000000000001' as const, - '0x60fdd29ff912ce880cd3edaf9f932dc61d3dae823ea77e0323f94adb9f6a72fe' as const, - ], - }, - ], - } - const txViem = { - ...tx, - gas: BigInt(tx.gas), - maxFeePerGas: BigInt(tx.maxFeePerGas), - maxPriorityFeePerGas: BigInt(tx.maxPriorityFeePerGas), - value: BigInt(tx.value), - } - const viemSerialized = serializeTransaction(txViem) - const serialized = rlpEncodedTx(tx) - - const parsedCK = parseTransaction(serialized.rlpEncode) - const parsedViem = parseTransaction(viemSerialized) - expect(parsedCK).toEqual(parsedViem) - expect(serialized.rlpEncode).toEqual(viemSerialized) - }) - it('matches output of viem serializeTransaction without accessList', () => { - const tx = { - type: 'eip1559' as const, - from: ACCOUNT_ADDRESS1, - to: ACCOUNT_ADDRESS1, - chainId: 2, - value: Web3.utils.toWei('1000', 'ether'), - nonce: 0, - maxFeePerGas: '1000', - maxPriorityFeePerGas: '99', - gas: '9900', - data: '0xabcdef' as const, - } - const txViem = { - ...tx, - gas: BigInt(tx.gas), - maxFeePerGas: BigInt(tx.maxFeePerGas), - maxPriorityFeePerGas: BigInt(tx.maxPriorityFeePerGas), - value: BigInt(tx.value), - } - const viemSerialized = serializeTransaction(txViem) - const serialized = rlpEncodedTx(tx) - - const parsedCK = parseTransaction(serialized.rlpEncode) - const parsedViem = parseTransaction(viemSerialized) - expect(parsedCK).toEqual(parsedViem) - expect(serialized.rlpEncode).toEqual(viemSerialized) - }) - }) -}) - -function ckToViem(tx: CeloTx & { v?: number }) { - return { - ...tx, - gas: BigInt(tx.gas!), - maxFeePerGas: BigInt(tx.maxFeePerGas?.toString()!), - maxPriorityFeePerGas: BigInt(tx.maxPriorityFeePerGas?.toString()!), - value: BigInt(tx.value?.toString()!), - v: BigInt(tx.v?.toString()! === '0x' ? 0 : tx.v?.toString()!), - } -} - -describe('recoverTransaction', () => { - const ACCOUNT_ADDRESS1 = privateKeyToAddress(PRIVATE_KEY1) - describe('with EIP1559 transactions', () => { - test('ok', async () => { - const account = privateKeyToAccount(PRIVATE_KEY1) - const hash = await account.signTransaction({ - type: 'eip1559' as const, - from: ACCOUNT_ADDRESS1, - to: ACCOUNT_ADDRESS1 as `0x${string}`, - chainId: 2, - value: BigInt(1000), - nonce: 0, - maxFeePerGas: BigInt('1000'), - maxPriorityFeePerGas: BigInt('99'), - gas: BigInt('9900'), - data: '0xabcdef' as const, - }) - - const [transaction, signer] = recoverTransaction(hash) - expect(signer).toEqual(ACCOUNT_ADDRESS1) - expect(transaction).toMatchInlineSnapshot(` - { - "accessList": [], - "chainId": 2, - "data": "0xabcdef", - "gas": 9900, - "maxFeePerGas": 1000, - "maxPriorityFeePerGas": 99, - "nonce": 0, - "r": "0x04ddb2c87a6e0f77aa25da7439c72f978541f74fa1bd20becf2e109301d2f85c", - "s": "0x2d91eec5c0abca75d4df8322677bf43306e90172b77914494bbb7641b6dfc7e9", - "to": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "type": "eip1559", - "v": 28, - "value": 1000, - "yParity": 1, - } - `) - }) - - it('matches output of viem parseTransaction', () => { - const encodedByCK1559TX = - // from packages/sdk/wallets/wallet-local/src/local-wallet.test.ts:211 -- when calling signTransaction succeeds with eip1559 - '0x02f86d82ad5a8063630a94588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdefc080a02c61b97c545c0a59732adbc497e944818da323a508930996383751d17e0b932ea015666dce65f074f12335ab78e1912f8b83fda75f05a002943459598712e6b17c' - const [transaction, signer] = recoverTransaction(encodedByCK1559TX) - const parsed = parseTransaction(encodedByCK1559TX) - - expect(ckToViem(transaction)).toMatchObject(parsed) - expect(signer).toMatchInlineSnapshot(`"0x1Be31A94361a391bBaFB2a4CCd704F57dc04d4bb"`) - }) - it('can recover (parse) transactions signed by viem', () => { - // stolen from viems's default eip1559 test result viem/src/accounts/utils/signTransaction.test.ts - const encodedByViem1559TX = - '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33' - const recovered = recoverTransaction(encodedByViem1559TX) - expect(recovered).toMatchInlineSnapshot(` - [ - { - "accessList": [], - "chainId": 1, - "data": "0x", - "gas": 21000, - "maxFeePerGas": 0, - "maxPriorityFeePerGas": 0, - "nonce": 785, - "r": "0x4012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1", - "s": "0x4e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33", - "to": "0x", - "type": "eip1559", - "v": 27, - "value": 0, - "yParity": 0, - }, - "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - ] - `) - }) - }) - it('handles celo-legacy transactions', () => { - const celoLegacyTx = - '0xf88480630a80941be31a94361a391bbafb2a4ccd704f57dc04d4bb82567894588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdef83015ad8a09e121a99dc0832a9f4d1d71500b3c8a69a3c064d437c225d6292577ffcc45a71a02c5efa3c4b58953c35968e42d11d3882dacacf45402ee802824268b7cd60daff' - expect(recoverTransaction(celoLegacyTx)).toMatchInlineSnapshot(` - [ - { - "chainId": "0xad5a", - "data": "0xabcdef", - "feeCurrency": "0x", - "gas": 10, - "gasPrice": 99, - "gatewayFee": "0x5678", - "gatewayFeeRecipient": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "nonce": 0, - "to": "0x588e4b68193001e4d10928660ab4165b813717c0", - "type": "celo-legacy", - "value": "0x0de0b6b3a7640000", - }, - "0x1Be31A94361a391bBaFB2a4CCd704F57dc04d4bb", - ] - `) - }) - it('handles cip64 transactions', () => { - const cip64TX = - '0x7bf88282ad5a8063630a94588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdefc094cd2a3d9f938e13cd947ec05abc7fe734df8dd82680a091b5504a59e529e7efa42dbb97fbc3311a91d035c873a94ab0789441fc989f84a02e8254d6b3101b63417e5d496833bc84f4832d4a8bf8a2b83e291d8f38c0f62d' - expect(recoverTransaction(cip64TX)).toMatchInlineSnapshot(` - [ - { - "accessList": [], - "chainId": 44378, - "data": "0xabcdef", - "feeCurrency": "0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826", - "gas": 10, - "maxFeePerGas": 99, - "maxPriorityFeePerGas": 99, - "nonce": 0, - "r": "0x91b5504a59e529e7efa42dbb97fbc3311a91d035c873a94ab0789441fc989f84", - "s": "0x2e8254d6b3101b63417e5d496833bc84f4832d4a8bf8a2b83e291d8f38c0f62d", - "to": "0x588e4b68193001e4d10928660ab4165b813717c0", - "type": "cip64", - "v": 27, - "value": 1000000000000000000, - "yParity": 0, - }, - "0x1Be31A94361a391bBaFB2a4CCd704F57dc04d4bb", - ] - `) - }) - it('handles cip42 transactions', () => { - const cip42TX = - '0x7cf89a82ad5a8063630a94cd2a3d9f938e13cd947ec05abc7fe734df8dd826941be31a94361a391bbafb2a4ccd704f57dc04d4bb82567894588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdefc01ba0c610507b2ac3cff80dd7017419021196807d605efce0970c18cde48db33c27d1a01799477e0f601f554f0ee6f7ac21490602124801e9f7a99d9605249b90f03112' - expect(recoverTransaction(cip42TX)).toMatchInlineSnapshot(` - [ - { - "accessList": [], - "chainId": 44378, - "data": "0xabcdef", - "feeCurrency": "0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826", - "gas": 10, - "gatewayFee": "0x5678", - "gatewayFeeRecipient": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "maxFeePerGas": 99, - "maxPriorityFeePerGas": 99, - "nonce": 0, - "r": "0xc610507b2ac3cff80dd7017419021196807d605efce0970c18cde48db33c27d1", - "s": "0x1799477e0f601f554f0ee6f7ac21490602124801e9f7a99d9605249b90f03112", - "to": "0x588e4b68193001e4d10928660ab4165b813717c0", - "type": "cip42", - "v": 28, - "value": 1000000000000000000, - "yParity": 1, - }, - "0x90AB065B949165c47Acac34cA9A43171bBeBb1E1", - ] - `) - }) - test('cip42 serialized by viem', async () => { - const account = privateKeyToAccount(PRIVATE_KEY1) - const signed = await account.signTransaction( - { - // @ts-ignore -- types on viem dont quite work for setting the tx type but the actual js execution works fine - type: 'cip42', - accessList: [], - chainId: 44378, - data: '0xabcdef', - feeCurrency: '0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826', - gas: BigInt(10), - gatewayFee: BigInt('0x5678'), - gatewayFeeRecipient: '0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb', - maxFeePerGas: BigInt(99), - maxPriorityFeePerGas: BigInt(99), - nonce: 0, - to: '0x588e4b68193001e4d10928660ab4165b813717c0', - value: BigInt(1000000000000000000), - }, - { serializer: celo.serializers?.transaction } - ) - - expect(recoverTransaction(signed)).toMatchInlineSnapshot(` - [ - { - "accessList": [], - "chainId": 44378, - "data": "0xabcdef", - "feeCurrency": "0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826", - "gas": 10, - "gatewayFee": "0x5678", - "gatewayFeeRecipient": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "maxFeePerGas": 99, - "maxPriorityFeePerGas": 99, - "nonce": 0, - "r": "0xc610507b2ac3cff80dd7017419021196807d605efce0970c18cde48db33c27d1", - "s": "0x1799477e0f601f554f0ee6f7ac21490602124801e9f7a99d9605249b90f03112", - "to": "0x588e4b68193001e4d10928660ab4165b813717c0", - "type": "cip42", - "v": 27, - "value": 1000000000000000000, - "yParity": 0, - }, - "0x1Be31A94361a391bBaFB2a4CCd704F57dc04d4bb", - ] - `) - expect(recoverTransaction(signed)[1]).toEqual(account.address) - }) -}) - -describe('isPriceToLow', () => { - test('maxFee and maxPriorityFee are positive', () => { - expect( - isPriceToLow({ - maxFeePerGas: 1_000_000_000, - maxPriorityFeePerGas: Web3.utils.toBN('50000000000000'), - gasPrice: undefined, - }) - ).toBe(false) - }) - test('gasPrice is positive', () => { - expect( - isPriceToLow({ - gasPrice: Web3.utils.toBN('50000000000000'), - }) - ).toBe(false) - }) - test('maxFeePerGas is less than 0 but maxPriorityFeePerGas is positive ', () => { - expect(() => - isPriceToLow({ - maxFeePerGas: -1, - maxPriorityFeePerGas: 1_000_000_000, - gasPrice: undefined, - }) - ).toThrowErrorMatchingInlineSnapshot( - `"GasPrice or maxFeePerGas or maxPriorityFeePerGas is less than than 0"` - ) - }) - test('maxPriorityFeePerGas is less than 0 but maxFeePerGas is positive ', () => { - expect(() => - isPriceToLow({ - maxFeePerGas: 1_000_000_000, - maxPriorityFeePerGas: -1_000_000_000, - gasPrice: undefined, - }) - ).toThrowErrorMatchingInlineSnapshot( - `"GasPrice or maxFeePerGas or maxPriorityFeePerGas is less than than 0"` - ) - }) - test('gasPrice is less than 0', () => { - expect(() => - isPriceToLow({ - maxFeePerGas: '0x', - maxPriorityFeePerGas: '0x', - gasPrice: -1, - }) - ).toThrowErrorMatchingInlineSnapshot( - `"GasPrice or maxFeePerGas or maxPriorityFeePerGas is less than than 0"` - ) - }) -}) - -describe('extractSignature', () => { - it('extracts from celo legacy txs', () => { - // packages/sdk/wallets/wallet-local/src/local-wallet.test.ts:176 (succeeds with legacy) - const extracted = extractSignature( - '0xf88480630a80941be31a94361a391bbafb2a4ccd704f57dc04d4bb82567894588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdef83015ad8a09e121a99dc0832a9f4d1d71500b3c8a69a3c064d437c225d6292577ffcc45a71a02c5efa3c4b58953c35968e42d11d3882dacacf45402ee802824268b7cd60daff' - ) - expect(extracted).toMatchInlineSnapshot(` - { - "r": "0x9e121a99dc0832a9f4d1d71500b3c8a69a3c064d437c225d6292577ffcc45a71", - "s": "0x2c5efa3c4b58953c35968e42d11d3882dacacf45402ee802824268b7cd60daff", - "v": "0x015ad8", - } - `) - }) - it('extracts from cip42 txs', () => { - // packages/sdk/wallets/wallet-local/src/local-wallet.test.ts:274 (succeeds with cip42) - const extracted = extractSignature( - '0x7cf89a82ad5a8063630a94cd2a3d9f938e13cd947ec05abc7fe734df8dd826941be31a94361a391bbafb2a4ccd704f57dc04d4bb82567894588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdefc01ba0c610507b2ac3cff80dd7017419021196807d605efce0970c18cde48db33c27d1a01799477e0f601f554f0ee6f7ac21490602124801e9f7a99d9605249b90f03112' - ) - expect(extracted).toMatchInlineSnapshot(` - { - "r": "0xc610507b2ac3cff80dd7017419021196807d605efce0970c18cde48db33c27d1", - "s": "0x1799477e0f601f554f0ee6f7ac21490602124801e9f7a99d9605249b90f03112", - "v": "0x1b", - } - `) - }) - it('extracts from eip1559 txs', () => { - // packages/sdk/wallets/wallet-local/src/local-wallet.test.ts:209 ( succeeds with eip1559) - const extracted = extractSignature( - '0x02f87082ad5a8063630a94588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdef8083015ad7a00fd2d0c579a971ebc04207d8c5ff5bb3449052f0c9e946a7146e5ae4d4ec6289a0737423de64cc81a62e700b5ca7970212aaed3d28de4dbce8b054483d361f6ff8' - ) - expect(extracted).toMatchInlineSnapshot(` - { - "r": "0x0fd2d0c579a971ebc04207d8c5ff5bb3449052f0c9e946a7146e5ae4d4ec6289", - "s": "0x737423de64cc81a62e700b5ca7970212aaed3d28de4dbce8b054483d361f6ff8", - "v": "0x015ad7", - } - `) - }) - it('fails when length is wrong', () => { - expect(() => extractSignature('0x')).toThrowErrorMatchingInlineSnapshot( - `"@extractSignature: provided transaction has 0 elements but celo-legacy txs with a signature have 12 []"` - ) - }) -}) - -describe('getSignerFromTx', () => { - const account = privateKeyToAccount(PRIVATE_KEY1) - test('extracts signer address from cip42 tx signed by viem', async () => { - const signed = await account.signTransaction( - { - // @ts-ignore - type: 'cip42', - accessList: [], - chainId: 44378, - data: '0xabcdef', - feeCurrency: '0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826', - gas: BigInt(10), - gatewayFee: BigInt('0x5678'), - gatewayFeeRecipient: '0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb', - maxFeePerGas: BigInt(99), - maxPriorityFeePerGas: BigInt(99), - nonce: 0, - to: '0x588e4b68193001e4d10928660ab4165b813717c0', - value: BigInt(1000000000000000000), - }, - { serializer: celo.serializers?.transaction } - ) - expect(getSignerFromTxEIP2718TX(signed)).toEqual(account.address) - }) -}) - -describe('stringNumberOrBNToHex', () => { - test('string as base 10 number', () => { - expect(stringNumberOrBNToHex('1230000000000020')).toEqual('0x045eadb112e014') - expect(stringNumberOrBNToHex('123')).toEqual('0x7b') - }) - test('string as base 16 number', () => { - expect(stringNumberOrBNToHex('0x7b')).toEqual('0x7b') - }) - test('number', () => { - expect(stringNumberOrBNToHex(1230000000000020)).toEqual('0x045eadb112e014') - expect(stringNumberOrBNToHex(123)).toEqual('0x7b') - }) - test('BN', () => { - const biggie = Web3.utils.toBN('123') - expect(stringNumberOrBNToHex(biggie)).toEqual('0x7b') - }) -}) diff --git a/packages/sdk/wallets/wallet-base/src/signing-utils.ts b/packages/sdk/wallets/wallet-base/src/signing-utils.ts deleted file mode 100644 index 3b2d2dac052..00000000000 --- a/packages/sdk/wallets/wallet-base/src/signing-utils.ts +++ /dev/null @@ -1,706 +0,0 @@ -// tslint:disable: ordered-imports -import { ensureLeading0x, trimLeading0x } from '@celo/base/lib/address' -import { - CeloTx, - CeloTxWithSig, - EncodedTransaction, - Hex, - RLPEncodedTx, - TransactionTypes, - isPresent, -} from '@celo/connect' -import { - hexToNumber, - inputCeloTxFormatter, - parseAccessList, -} from '@celo/connect/lib/utils/formatter' -import { EIP712TypedData, generateTypedDataHash } from '@celo/utils/lib/sign-typed-data-utils' -import { parseSignatureWithoutPrefix } from '@celo/utils/lib/signatureUtils' -// @ts-ignore-next-line -import * as ethUtil from '@ethereumjs/util' -import debugFactory from 'debug' -// @ts-ignore-next-line eth-lib types not found -import { account as Account, bytes as Bytes, hash as Hash, RLP } from 'eth-lib' -import { keccak256 } from 'ethereum-cryptography/keccak' -import { hexToBytes } from 'ethereum-cryptography/utils.js' -import Web3 from 'web3' // TODO try to do this without web3 direct -import Accounts from 'web3-eth-accounts' - -const { - Address, - ecrecover, - fromRpcSig, - hashPersonalMessage, - pubToAddress, - toBuffer, - toChecksumAddress, -} = ethUtil -const debug = debugFactory('wallet-base:tx:sign') - -// Original code taken from -// https://github.com/ethereum/web3.js/blob/1.x/packages/web3-eth-accounts/src/index.js - -// 0x04 prefix indicates that the key is not compressed -// https://tools.ietf.org/html/rfc5480#section-2.2 -export const publicKeyPrefix: number = 0x04 -export const sixtyFour: number = 64 -export const thirtyTwo: number = 32 - -const Y_PARITY_EIP_2098 = 27 - -function isNullOrUndefined(value: any): boolean { - return value === null || value === undefined -} - -// Simple replay attack protection -// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md -export function chainIdTransformationForSigning(chainId: number): number { - return chainId * 2 + 35 -} - -export function getHashFromEncoded(rlpEncode: string): string { - return Hash.keccak256(rlpEncode) -} - -function trimLeadingZero(hex: string) { - while (hex && hex.startsWith('0x0')) { - hex = ensureLeading0x(hex.slice(3)) - } - return hex -} - -function makeEven(hex: string) { - if (hex.length % 2 === 1) { - hex = hex.replace('0x', '0x0') - } - return hex -} - -function signatureFormatter( - signature: { v: number; r: Buffer; s: Buffer }, - type: TransactionTypes -): { - v: string - r: string - s: string -} { - let v = signature.v - if (type !== 'celo-legacy') { - v = signature.v === Y_PARITY_EIP_2098 ? 0 : 1 - } - return { - v: stringNumberToHex(v), - r: makeEven(trimLeadingZero(ensureLeading0x(signature.r.toString('hex')))), - s: makeEven(trimLeadingZero(ensureLeading0x(signature.s.toString('hex')))), - } -} - -export function stringNumberOrBNToHex( - num?: number | string | ReturnType -): Hex { - if (typeof num === 'string' || typeof num === 'number' || num === undefined) { - return stringNumberToHex(num) - } else { - return makeEven(`0x` + num.toString(16)) as Hex - } -} -function stringNumberToHex(num?: number | string): Hex { - const auxNumber = Number(num) - if (num === '0x' || num === undefined || auxNumber === 0) { - return '0x' - } - return makeEven(Web3.utils.numberToHex(num)) as Hex -} -export function rlpEncodedTx(tx: CeloTx): RLPEncodedTx { - assertSerializableTX(tx) - const transaction = inputCeloTxFormatter(tx) - transaction.to = Bytes.fromNat(tx.to || '0x').toLowerCase() - transaction.nonce = Number(((tx.nonce as any) !== '0x' ? tx.nonce : 0) || 0) - transaction.data = Bytes.fromNat(tx.data || '0x').toLowerCase() - transaction.value = stringNumberOrBNToHex(tx.value) - transaction.gas = stringNumberOrBNToHex(tx.gas) - transaction.chainId = tx.chainId || 1 - // Celo Specific - transaction.feeCurrency = Bytes.fromNat(tx.feeCurrency || '0x').toLowerCase() - transaction.gatewayFeeRecipient = Bytes.fromNat(tx.gatewayFeeRecipient || '0x').toLowerCase() - transaction.gatewayFee = stringNumberOrBNToHex(tx.gatewayFee) - - // Legacy - transaction.gasPrice = stringNumberOrBNToHex(tx.gasPrice) - // EIP1559 / CIP42 - transaction.maxFeePerGas = stringNumberOrBNToHex(tx.maxFeePerGas) - transaction.maxPriorityFeePerGas = stringNumberOrBNToHex(tx.maxPriorityFeePerGas) - - let rlpEncode: Hex - if (isCIP64(tx)) { - // https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0064.md - // 0x7b || rlp([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, accessList, feeCurrency, signatureYParity, signatureR, signatureS]). - rlpEncode = RLP.encode([ - stringNumberToHex(transaction.chainId), - stringNumberToHex(transaction.nonce), - transaction.maxPriorityFeePerGas || '0x', - transaction.maxFeePerGas || '0x', - transaction.gas || '0x', - transaction.to || '0x', - transaction.value || '0x', - transaction.data || '0x', - transaction.accessList || [], - transaction.feeCurrency || '0x', - ]) - delete transaction.gatewayFee - delete transaction.gatewayFeeRecipient - delete transaction.gasPrice - return { transaction, rlpEncode: concatHex([TxTypeToPrefix.cip64, rlpEncode]), type: 'cip64' } - } else if (isCIP42(tx)) { - // There shall be a typed transaction with the code 0x7c that has the following format: - // 0x7c || rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, feecurrency, gatewayFeeRecipient, gatewayfee, destination, amount, data, access_list, signature_y_parity, signature_r, signature_s]). - // This will be in addition to the type 0x02 transaction as specified in EIP-1559. - rlpEncode = RLP.encode([ - stringNumberToHex(transaction.chainId), - stringNumberToHex(transaction.nonce), - transaction.maxPriorityFeePerGas || '0x', - transaction.maxFeePerGas || '0x', - transaction.gas || '0x', - transaction.feeCurrency || '0x', - transaction.gatewayFeeRecipient || '0x', - transaction.gatewayFee || '0x', - transaction.to || '0x', - transaction.value || '0x', - transaction.data || '0x', - transaction.accessList || [], - ]) - delete transaction.gasPrice - return { transaction, rlpEncode: concatHex([TxTypeToPrefix.cip42, rlpEncode]), type: 'cip42' } - } else if (isEIP1559(tx)) { - // https://eips.ethereum.org/EIPS/eip-1559 - // 0x02 || rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, destination, amount, data, access_list, signature_y_parity, signature_r, signature_s]). - rlpEncode = RLP.encode([ - stringNumberToHex(transaction.chainId), - stringNumberToHex(transaction.nonce), - transaction.maxPriorityFeePerGas || '0x', - transaction.maxFeePerGas || '0x', - transaction.gas || '0x', - transaction.to || '0x', - transaction.value || '0x', - transaction.data || '0x', - transaction.accessList || [], - ]) - delete transaction.feeCurrency - delete transaction.gatewayFee - delete transaction.gatewayFeeRecipient - delete transaction.gasPrice - return { - transaction, - rlpEncode: concatHex([TxTypeToPrefix.eip1559, rlpEncode]), - type: 'eip1559', - } - } else { - // This order should match the order in Geth. - // https://github.com/celo-org/celo-blockchain/blob/027dba2e4584936cc5a8e8993e4e27d28d5247b8/core/types/transaction.go#L65 - rlpEncode = RLP.encode([ - stringNumberToHex(transaction.nonce), - transaction.gasPrice, - transaction.gas, - transaction.feeCurrency, - transaction.gatewayFeeRecipient, - transaction.gatewayFee, - transaction.to, - transaction.value, - transaction.data, - stringNumberToHex(transaction.chainId), - '0x', - '0x', - ]) - return { transaction, rlpEncode, type: 'celo-legacy' } - } -} - -enum TxTypeToPrefix { - 'celo-legacy' = '', - cip42 = '0x7c', - cip64 = '0x7b', - eip1559 = '0x02', -} - -function concatTypePrefixHex( - rawTransaction: string, - txType: EncodedTransaction['tx']['type'] -): Hex { - const prefix = TxTypeToPrefix[txType] - if (prefix) { - return concatHex([prefix, rawTransaction]) - } - return rawTransaction as Hex -} - -function assertSerializableTX(tx: CeloTx) { - if (!tx.gas) { - throw new Error('"gas" is missing') - } - - // ensure at least gasPrice or maxFeePerGas and maxPriorityFeePerGas are set - if ( - !isPresent(tx.gasPrice) && - (!isPresent(tx.maxFeePerGas) || !isPresent(tx.maxPriorityFeePerGas)) - ) { - throw new Error('"gasPrice" or "maxFeePerGas" and "maxPriorityFeePerGas" are missing') - } - - // ensure that gasPrice and maxFeePerGas are not set at the same time - if ( - isPresent(tx.gasPrice) && - (isPresent(tx.maxFeePerGas) || isPresent(tx.maxPriorityFeePerGas)) - ) { - throw new Error( - 'when "maxFeePerGas" or "maxPriorityFeePerGas" are set, "gasPrice" must not be set' - ) - } - - if (isNullOrUndefined(tx.nonce) || isNullOrUndefined(tx.chainId)) { - throw new Error( - 'One of the values "chainId" or "nonce" couldn\'t be fetched: ' + - JSON.stringify({ chainId: tx.chainId, nonce: tx.nonce }) - ) - } - - if (isLessThanZero(tx.nonce) || isLessThanZero(tx.gas) || isLessThanZero(tx.chainId)) { - throw new Error('Gas, nonce or chainId is less than than 0') - } - isPriceToLow(tx) -} - -export function isPriceToLow(tx: CeloTx) { - const prices = [tx.gasPrice, tx.maxFeePerGas, tx.maxPriorityFeePerGas].filter( - (price) => price !== undefined - ) - const isLow = false - for (const price of prices) { - if (isLessThanZero(price)) { - throw new Error('GasPrice or maxFeePerGas or maxPriorityFeePerGas is less than than 0') - } - } - - return isLow -} - -function isEIP1559(tx: CeloTx): boolean { - return isPresent(tx.maxFeePerGas) && isPresent(tx.maxPriorityFeePerGas) -} - -function isCIP64(tx: CeloTx) { - return ( - isEIP1559(tx) && - isPresent(tx.feeCurrency) && - !isPresent(tx.gatewayFeeRecipient) && - !isPresent(tx.gatewayFeeRecipient) - ) -} - -function isCIP42(tx: CeloTx): boolean { - return ( - isEIP1559(tx) && - (isPresent(tx.feeCurrency) || isPresent(tx.gatewayFeeRecipient) || isPresent(tx.gatewayFee)) - ) -} - -function concatHex(values: string[]): Hex { - return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}` -} - -function isLessThanZero(value: CeloTx['gasPrice']) { - if (isNullOrUndefined(value)) { - return true - } - switch (typeof value) { - case 'string': - case 'number': - return Number(value) < 0 - default: - return value?.lt(Web3.utils.toBN(0)) || false - } -} - -export async function encodeTransaction( - rlpEncoded: RLPEncodedTx, - signature: { v: number; r: Buffer; s: Buffer } -): Promise { - const sanitizedSignature = signatureFormatter(signature, rlpEncoded.type) - const v = sanitizedSignature.v - const r = sanitizedSignature.r - const s = sanitizedSignature.s - const decodedTX = prefixAwareRLPDecode(rlpEncoded.rlpEncode, rlpEncoded.type) - // for legacy tx we need to slice but for new ones we do not want to do that - const rawTx = (rlpEncoded.type === 'celo-legacy' ? decodedTX.slice(0, 9) : decodedTX).concat([ - v, - r, - s, - ]) - - // After signing, the transaction is encoded again and type prefix added - const rawTransaction = concatTypePrefixHex(RLP.encode(rawTx), rlpEncoded.type) - const hash = getHashFromEncoded(rawTransaction) - - const baseTX = { - nonce: rlpEncoded.transaction.nonce!.toString(), - gas: rlpEncoded.transaction.gas!.toString(), - to: rlpEncoded.transaction.to!.toString(), - value: rlpEncoded.transaction.value!.toString(), - input: rlpEncoded.transaction.data!, - v, - r, - s, - hash, - } - let tx: Partial = baseTX - if (rlpEncoded.type === 'eip1559' || rlpEncoded.type === 'cip42') { - tx = { - ...tx, - // @ts-expect-error -- just a matter of how this tx is built - maxFeePerGas: rlpEncoded.transaction.maxFeePerGas!.toString(), - maxPriorityFeePerGas: rlpEncoded.transaction.maxPriorityFeePerGas!.toString(), - accessList: parseAccessList(rlpEncoded.transaction.accessList || []), - } - } - if (rlpEncoded.type === 'cip42' || rlpEncoded.type === 'celo-legacy') { - tx = { - ...tx, - // @ts-expect-error -- just a matter of how this tx is built - feeCurrency: rlpEncoded.transaction.feeCurrency!.toString(), - gatewayFeeRecipient: rlpEncoded.transaction.gatewayFeeRecipient!.toString(), - gatewayFee: rlpEncoded.transaction.gatewayFee!.toString(), - } - } - if (rlpEncoded.type === 'celo-legacy') { - tx = { - ...tx, - // @ts-expect-error -- just a matter of how this tx is built - gasPrice: rlpEncoded.transaction.gasPrice!.toString(), - } - } - - const result: EncodedTransaction & { type: TransactionTypes } = { - tx: tx as EncodedTransaction['tx'], - raw: rawTransaction, - type: rlpEncoded.type, - } - return result -} -// new types have prefix but legacy does not -function prefixAwareRLPDecode(rlpEncode: string, type: TransactionTypes): string[] { - return type === 'celo-legacy' ? RLP.decode(rlpEncode) : RLP.decode(`0x${rlpEncode.slice(4)}`) -} - -function correctLengthOf(type: TransactionTypes, includeSig: boolean = true) { - switch (type) { - case 'cip64': { - return includeSig ? 13 : 10 - } - case 'cip42': - return includeSig ? 15 : 12 - case 'celo-legacy': - case 'eip1559': - return 12 - } -} -// Based on the return type of ensureLeading0x this was not a Buffer -export function extractSignature(rawTx: string) { - const type = determineTXType(rawTx) - const rawValues = prefixAwareRLPDecode(rawTx, type) - const length = rawValues.length - if (correctLengthOf(type) !== length) { - throw new Error( - `@extractSignature: provided transaction has ${length} elements but ${type} txs with a signature have ${correctLengthOf( - type - )} ${JSON.stringify(rawValues)}` - ) - } - return extractSignatureFromDecoded(rawValues) -} - -function extractSignatureFromDecoded(rawValues: string[]) { - // signature is always (for the tx we support so far) the last three elements of the array in order v, r, s, - const v = rawValues.at(-3) - let r = rawValues.at(-2) - let s = rawValues.at(-1) - // https://github.com/wagmi-dev/viem/blob/993321689b3e2220976504e7e170fe47731297ce/src/utils/transaction/parseTransaction.ts#L281 - // Account.recover cannot handle canonicalized signatures - // A canonicalized signature may have the first byte removed if its value is 0 - r = ensureLeading0x(trimLeading0x(r as string).padStart(64, '0')) - s = ensureLeading0x(trimLeading0x(s as string).padStart(64, '0')) - - return { - v, - r, - s, - } -} - -// Recover transaction and sender address from a raw transaction. -// This is used for testing. -export function recoverTransaction(rawTx: string): [CeloTx, string] { - if (!rawTx.startsWith('0x')) { - throw new Error('rawTx must start with 0x') - } - - switch (determineTXType(rawTx)) { - case 'cip64': - return recoverTransactionCIP64(rawTx as Hex) - case 'cip42': - return recoverTransactionCIP42(rawTx as Hex) - case 'eip1559': - return recoverTransactionEIP1559(rawTx as Hex) - default: - const rawValues = RLP.decode(rawTx) - debug('signing-utils@recoverTransaction: values are %s', rawValues) - const recovery = Bytes.toNumber(rawValues[9]) - // tslint:disable-next-line:no-bitwise - const chainId = Bytes.fromNumber((recovery - 35) >> 1) - const celoTx: CeloTx = { - type: 'celo-legacy', - nonce: rawValues[0].toLowerCase() === '0x' ? 0 : parseInt(rawValues[0], 16), - gasPrice: rawValues[1].toLowerCase() === '0x' ? 0 : parseInt(rawValues[1], 16), - gas: rawValues[2].toLowerCase() === '0x' ? 0 : parseInt(rawValues[2], 16), - feeCurrency: rawValues[3], - gatewayFeeRecipient: rawValues[4], - gatewayFee: rawValues[5], - to: rawValues[6], - value: rawValues[7], - data: rawValues[8], - chainId, - } - const { r, v, s } = extractSignatureFromDecoded(rawValues) - const signature = Account.encodeSignature([v, r, s]) - const extraData = recovery < 35 ? [] : [chainId, '0x', '0x'] - const signingData = rawValues.slice(0, 9).concat(extraData) - const signingDataHex = RLP.encode(signingData) - const signer = Account.recover(getHashFromEncoded(signingDataHex), signature) - return [celoTx, signer] - } -} - -// inspired by @ethereumjs/tx -function getPublicKeyofSignerFromTx(transactionArray: string[], type: TransactionTypes) { - // this needs to be 10 for cip64, 12 for cip42 and eip1559 - const base = transactionArray.slice(0, correctLengthOf(type, false)) - const message = concatHex([TxTypeToPrefix[type], RLP.encode(base).slice(2)]) - const msgHash = keccak256(hexToBytes(message)) - - const { v, r, s } = extractSignatureFromDecoded(transactionArray) - try { - return ecrecover( - toBuffer(msgHash), - v === '0x' || v === undefined ? BigInt(0) : BigInt(1), - toBuffer(r), - toBuffer(s) - ) - } catch (e: any) { - throw new Error(e) - } -} - -export function getSignerFromTxEIP2718TX(serializedTransaction: string): string { - const transactionArray: any[] = RLP.decode(`0x${serializedTransaction.slice(4)}`) - const signer = getPublicKeyofSignerFromTx( - transactionArray, - determineTXType(serializedTransaction) - ) - return toChecksumAddress(Address.fromPublicKey(signer).toString()) -} - -function determineTXType(serializedTransaction: string): TransactionTypes { - const prefix = serializedTransaction.slice(0, 4) - - if (prefix === TxTypeToPrefix.eip1559) { - return 'eip1559' - } else if (prefix === TxTypeToPrefix.cip42) { - return 'cip42' - } else if (prefix === TxTypeToPrefix.cip64) { - return 'cip64' - } - return 'celo-legacy' -} - -function vrsForRecovery(vRaw: string, r: string, s: string) { - const v = vRaw === '0x' || hexToNumber(vRaw) === 0 ? Y_PARITY_EIP_2098 : Y_PARITY_EIP_2098 + 1 - return { - v, - r, - s, - yParity: v === Y_PARITY_EIP_2098 ? 0 : 1, - } as const -} - -function recoverTransactionCIP42(serializedTransaction: Hex): [CeloTxWithSig, string] { - const transactionArray: any[] = prefixAwareRLPDecode(serializedTransaction, 'cip42') - debug('signing-utils@recoverTransactionCIP42: values are %s', transactionArray) - if (transactionArray.length !== 15 && transactionArray.length !== 12) { - throw new Error( - `Invalid transaction length for type CIP42: ${transactionArray.length} instead of 15 or 12. array: ${transactionArray}` - ) - } - const [ - chainId, - nonce, - maxPriorityFeePerGas, - maxFeePerGas, - gas, - feeCurrency, - gatewayFeeRecipient, - gatewayFee, - to, - value, - data, - accessList, - vRaw, - r, - s, - ] = transactionArray - - const celoTX: CeloTxWithSig = { - type: 'cip42', - nonce: nonce.toLowerCase() === '0x' ? 0 : parseInt(nonce, 16), - maxPriorityFeePerGas: - maxPriorityFeePerGas.toLowerCase() === '0x' ? 0 : parseInt(maxPriorityFeePerGas, 16), - maxFeePerGas: maxFeePerGas.toLowerCase() === '0x' ? 0 : parseInt(maxFeePerGas, 16), - gas: gas.toLowerCase() === '0x' ? 0 : parseInt(gas, 16), - feeCurrency, - gatewayFeeRecipient, - gatewayFee, - to, - value: value.toLowerCase() === '0x' ? 0 : parseInt(value, 16), - data, - chainId: chainId.toLowerCase() === '0x' ? 0 : parseInt(chainId, 16), - accessList: parseAccessList(accessList), - ...vrsForRecovery(vRaw, r, s), - } - - const signer = - transactionArray.length === 15 ? getSignerFromTxEIP2718TX(serializedTransaction) : 'unsigned' - return [celoTX, signer] -} - -function recoverTransactionCIP64(serializedTransaction: Hex): [CeloTxWithSig, string] { - const transactionArray: any[] = prefixAwareRLPDecode(serializedTransaction, 'cip64') - debug('signing-utils@recoverTransactionCIP64: values are %s', transactionArray) - if (transactionArray.length !== 13 && transactionArray.length !== 10) { - throw new Error( - `Invalid transaction length for type CIP64: ${transactionArray.length} instead of 13 or 10. array: ${transactionArray}` - ) - } - const [ - chainId, - nonce, - maxPriorityFeePerGas, - maxFeePerGas, - gas, - to, - value, - data, - accessList, - feeCurrency, - vRaw, - r, - s, - ] = transactionArray - - const celoTX: CeloTxWithSig = { - type: 'cip64', - nonce: nonce.toLowerCase() === '0x' ? 0 : parseInt(nonce, 16), - maxPriorityFeePerGas: - maxPriorityFeePerGas.toLowerCase() === '0x' ? 0 : parseInt(maxPriorityFeePerGas, 16), - maxFeePerGas: maxFeePerGas.toLowerCase() === '0x' ? 0 : parseInt(maxFeePerGas, 16), - gas: gas.toLowerCase() === '0x' ? 0 : parseInt(gas, 16), - feeCurrency, - to, - value: value.toLowerCase() === '0x' ? 0 : parseInt(value, 16), - data, - chainId: chainId.toLowerCase() === '0x' ? 0 : parseInt(chainId, 16), - accessList: parseAccessList(accessList), - ...vrsForRecovery(vRaw, r, s), - } - - const signer = - transactionArray.length === 13 ? getSignerFromTxEIP2718TX(serializedTransaction) : 'unsigned' - return [celoTX, signer] -} - -function recoverTransactionEIP1559(serializedTransaction: Hex): [CeloTxWithSig, string] { - const transactionArray: any[] = prefixAwareRLPDecode(serializedTransaction, 'eip1559') - debug('signing-utils@recoverTransactionEIP1559: values are %s', transactionArray) - - const [ - chainId, - nonce, - maxPriorityFeePerGas, - maxFeePerGas, - gas, - to, - value, - data, - accessList, - vRaw, - r, - s, - ] = transactionArray - - const celoTx: CeloTxWithSig = { - type: 'eip1559', - nonce: nonce.toLowerCase() === '0x' ? 0 : parseInt(nonce, 16), - gas: gas.toLowerCase() === '0x' ? 0 : parseInt(gas, 16), - maxPriorityFeePerGas: - maxPriorityFeePerGas.toLowerCase() === '0x' ? 0 : parseInt(maxPriorityFeePerGas, 16), - maxFeePerGas: maxFeePerGas.toLowerCase() === '0x' ? 0 : parseInt(maxFeePerGas, 16), - to, - value: value.toLowerCase() === '0x' ? 0 : parseInt(value, 16), - data, - chainId: chainId.toLowerCase() === '0x' ? 0 : parseInt(chainId, 16), - accessList: parseAccessList(accessList), - ...vrsForRecovery(vRaw, r, s), - } - const web3Account = new Accounts() - const signer = web3Account.recoverTransaction(serializedTransaction) - - return [celoTx, signer] -} - -export function recoverMessageSigner(signingDataHex: string, signedData: string): string { - const dataBuff = toBuffer(signingDataHex) - const msgHashBuff = hashPersonalMessage(dataBuff) - const signature = fromRpcSig(signedData) - - const publicKey = ecrecover(msgHashBuff, signature.v, signature.r, signature.s) - const address = pubToAddress(publicKey, true) - return ensureLeading0x(address.toString('hex')) -} - -export function verifyEIP712TypedDataSigner( - typedData: EIP712TypedData, - signedData: string, - expectedAddress: string -): boolean { - const dataHex = ethUtil.bufferToHex(generateTypedDataHash(typedData)) - return verifySignatureWithoutPrefix(dataHex, signedData, expectedAddress) -} - -export function verifySignatureWithoutPrefix( - messageHash: string, - signature: string, - signer: string -) { - try { - parseSignatureWithoutPrefix(messageHash, signature, signer) - return true - } catch (error) { - return false - } -} - -export function decodeSig(sig: any) { - const [v, r, s] = Account.decodeSignature(sig) - - return { - v: parseInt(v, 16), - r: toBuffer(r) as Buffer, - s: toBuffer(s) as Buffer, - } -} diff --git a/packages/sdk/wallets/wallet-base/src/wallet-base.ts b/packages/sdk/wallets/wallet-base/src/wallet-base.ts deleted file mode 100644 index acab8d7fab4..00000000000 --- a/packages/sdk/wallets/wallet-base/src/wallet-base.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { isHexString, normalizeAddressWith0x } from '@celo/base/lib/address' -import { Address, CeloTx, EncodedTransaction, ReadOnlyWallet, Signer } from '@celo/connect' -import { EIP712TypedData } from '@celo/utils/lib/sign-typed-data-utils' -import * as ethUtil from '@ethereumjs/util' -import { chainIdTransformationForSigning, encodeTransaction, rlpEncodedTx } from './signing-utils' - -type addInMemoryAccount = (privateKey: string) => void -type addRemoteAccount = (privateKey: string, passphrase: string) => Promise - -export interface Wallet extends ReadOnlyWallet { - addAccount: addInMemoryAccount | addRemoteAccount -} - -export interface UnlockableWallet extends Wallet { - unlockAccount: (address: string, passphrase: string, duration: number) => Promise - isAccountUnlocked: (address: string) => boolean -} - -export abstract class WalletBase implements ReadOnlyWallet { - // By creating the Signers in advance we can have a common pattern across wallets - // Each implementation is responsible for populating this map through addSigner - private accountSigners = new Map() - - /** - * Gets a list of accounts that have been registered - */ - getAccounts(): Address[] { - return Array.from(this.accountSigners.keys()) - } - - /** - * Removes the account with the given address. Needs to be implemented by subclass, otherwise throws error - * @param address The address of the account to be removed - */ - removeAccount(_address: string) { - throw new Error('removeAccount is not supported for this wallet') - } - - /** - * Returns true if account has been registered - * @param address Account to check - */ - hasAccount(address?: Address): boolean { - if (address) { - const normalizedAddress = normalizeAddressWith0x(address) - return this.accountSigners.has(normalizedAddress) - } else { - return false - } - } - - /** - * Adds the account-signer set to the internal map - * @param address Account address - * @param signer Account signer - */ - protected addSigner(address: Address, signer: TSigner) { - const normalizedAddress = normalizeAddressWith0x(address) - this.accountSigners.set(normalizedAddress, signer) - } - - /** - * Removes the account-signer - * @param address Account address - */ - protected removeSigner(address: Address) { - const normalizedAddress = normalizeAddressWith0x(address) - this.accountSigners.delete(normalizedAddress) - } - - /** - * Gets the signer based on the 'from' field in the tx body - * @param txParams Transaction to sign - */ - async signTransaction(txParams: CeloTx): Promise { - if (!txParams) { - throw new Error('No transaction object given!') - } - const rlpEncoded = rlpEncodedTx(txParams) - const addToV = - rlpEncoded.type === 'celo-legacy' ? chainIdTransformationForSigning(txParams.chainId!) : 27 - - // Get the signer from the 'from' field - const fromAddress = txParams.from!.toString() - const signer = this.getSigner(fromAddress) - const signature = await signer!.signTransaction(addToV, rlpEncoded) - - return encodeTransaction(rlpEncoded, signature) - } - - /** - * Sign a personal Ethereum signed message. - * @param address Address of the account to sign with - * @param data Hex string message to sign - * @return Signature hex string (order: rsv) - */ - async signPersonalMessage(address: Address, data: string): Promise { - if (!isHexString(data)) { - throw Error('wallet@signPersonalMessage: Expected data has to be a hex string ') - } - - const signer = this.getSigner(address) - const sig = await signer.signPersonalMessage(data) - - return ethUtil.toRpcSig(BigInt(sig.v), sig.r, sig.s) - } - - /** - * Sign an EIP712 Typed Data message. - * @param address Address of the account to sign with - * @param typedData the typed data object - * @return Signature hex string (order: rsv) - */ - async signTypedData(address: Address, typedData: EIP712TypedData): Promise { - if (typedData === undefined) { - throw Error('wallet@signTypedData: TypedData Missing') - } - - const signer = this.getSigner(address) - const sig = await signer.signTypedData(typedData) - - return ethUtil.toRpcSig(BigInt(sig.v), sig.r, sig.s) - } - - protected getSigner(address: string): TSigner { - const normalizedAddress = normalizeAddressWith0x(address) - if (!this.accountSigners.has(normalizedAddress)) { - throw new Error(`Could not find address ${normalizedAddress}`) - } - return this.accountSigners.get(normalizedAddress)! - } - - async decrypt(address: string, ciphertext: Buffer) { - const signer = this.getSigner(address) - return signer.decrypt(ciphertext) - } - - /** - * Computes the shared secret (an ECDH key exchange object) between two accounts - */ - computeSharedSecret(address: Address, publicKey: string): Promise { - const signer = this.getSigner(address) - return signer.computeSharedSecret(publicKey) - } -} diff --git a/packages/sdk/wallets/wallet-base/tsconfig.json b/packages/sdk/wallets/wallet-base/tsconfig.json deleted file mode 100644 index 51debe8913d..00000000000 --- a/packages/sdk/wallets/wallet-base/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src", "types"], - "exclude": ["**/*.test.ts"], - "references": [{ "path": "../../utils" }] -} diff --git a/packages/sdk/wallets/wallet-base/tslint.json b/packages/sdk/wallets/wallet-base/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/wallets/wallet-base/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/wallets/wallet-base/typedoc.json b/packages/sdk/wallets/wallet-base/typedoc.json deleted file mode 100644 index 02ce31e3548..00000000000 --- a/packages/sdk/wallets/wallet-base/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../../docs/sdk/docs/wallet-base", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-aws/.gitignore b/packages/sdk/wallets/wallet-hsm-aws/.gitignore deleted file mode 100644 index 34a5edcc227..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -lib/ -.env \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-aws/.npmignore b/packages/sdk/wallets/wallet-hsm-aws/.npmignore deleted file mode 100644 index d8d8e42b865..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/.npmignore +++ /dev/null @@ -1,24 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-aws/CHANGELOG.md b/packages/sdk/wallets/wallet-hsm-aws/CHANGELOG.md deleted file mode 100644 index b70e5f9ca40..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/CHANGELOG.md +++ /dev/null @@ -1,43 +0,0 @@ -# @celo/wallet-hsm-aws - -## 5.1.1 - -### Patch Changes - -- @celo/utils@5.0.6 -- @celo/wallet-base@5.1.1 -- @celo/wallet-hsm@5.1.1 -- @celo/wallet-remote@5.1.1 - -## 5.1.1-beta.0 - -### Patch Changes - -- @celo/utils@5.0.6-beta.0 -- @celo/wallet-base@5.1.1-beta.0 -- @celo/wallet-hsm@5.1.1-beta.0 -- @celo/wallet-remote@5.1.1-beta.0 - -## 5.1.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/wallet-remote@5.1.0 - - @celo/wallet-base@5.1.0 - - @celo/wallet-hsm@5.1.0 - - @celo/utils@5.0.5 - -## 5.1.0-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/wallet-remote@5.1.0-beta.0 - - @celo/wallet-base@5.1.0-beta.0 - - @celo/wallet-hsm@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 diff --git a/packages/sdk/wallets/wallet-hsm-aws/README.MD b/packages/sdk/wallets/wallet-hsm-aws/README.MD deleted file mode 100644 index c8b7995710a..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/README.MD +++ /dev/null @@ -1 +0,0 @@ -Wallet-hsm-aws allows you to easily interact with a cloud HSM wallet built on AWS KMS. \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-aws/jest.config.js b/packages/sdk/wallets/wallet-hsm-aws/jest.config.js deleted file mode 100644 index 2681a75d5a6..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/wallets/wallet-hsm-aws/package.json b/packages/sdk/wallets/wallet-hsm-aws/package.json deleted file mode 100644 index 62792cdf3fd..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "@celo/wallet-hsm-aws", - "version": "5.1.1", - "description": "AWS HSM wallet implementation", - "author": "Celo", - "license": "Apache-2.0", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/wallets/", - "homepage": "https://docs.celo.org", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@celo/utils": "^5.0.6", - "@celo/wallet-base": "^5.1.1", - "@celo/wallet-remote": "^5.1.1", - "@celo/wallet-hsm": "^5.1.1", - "@types/debug": "^4.1.5", - "@types/secp256k1": "^4.0.0", - "aws-sdk": "^2.705.0", - "eth-lib": "^0.2.8", - "@ethereumjs/util": "8.0.5", - "bignumber.js": "^9.0.0", - "debug": "^4.1.1", - "secp256k1": "^4.0.0" - }, - "devDependencies": { - "@celo/connect": "^5.1.1", - "elliptic": "^6.5.4", - "dotenv": "^8.2.0", - "web3": "1.10.0" - }, - "engines": { - "node": ">=8.14.2" - }, - "resolutions": { - "secp256k1": "^4.0.0" - } -} \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts b/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts deleted file mode 100644 index 4264a8c89c2..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-signer.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { RLPEncodedTx, Signer } from '@celo/connect' -import { ensureLeading0x, trimLeading0x } from '@celo/utils/lib/address' -import { EIP712TypedData, generateTypedDataHash } from '@celo/utils/lib/sign-typed-data-utils' -import { getHashFromEncoded } from '@celo/wallet-base' -import { - bigNumberToBuffer, - bufferToBigNumber, - makeCanonical, - parseBERSignature, - recoverKeyIndex, - Signature, - sixtyFour, - thirtyTwo, -} from '@celo/wallet-hsm' -import * as ethUtil from '@ethereumjs/util' -import { KMS } from 'aws-sdk' -import { BigNumber } from 'bignumber.js' - -const SigningAlgorithm = 'ECDSA_SHA_256' - -export class AwsHsmSigner implements Signer { - private kms: KMS - private keyId: string - private publicKey: BigNumber - - constructor(kms: KMS, keyId: string, publicKey: BigNumber) { - this.kms = kms - this.keyId = keyId - this.publicKey = publicKey - } - - private async findCanonicalSignature(buffer: Buffer): Promise<{ S: BigNumber; R: BigNumber }> { - let S: BigNumber - let R: BigNumber - - const { Signature: signature } = await this.kms - .sign({ - KeyId: this.keyId, - MessageType: 'DIGEST', - Message: buffer, - SigningAlgorithm, - }) - .promise() - const { r, s } = parseBERSignature(signature as Buffer) - - R = bufferToBigNumber(r) - S = bufferToBigNumber(s) - S = makeCanonical(S) - - return { S: S!, R: R! } - } - - private async sign(buffer: Buffer): Promise { - const { R, S } = await this.findCanonicalSignature(buffer) - const rBuff = bigNumberToBuffer(R, thirtyTwo) - const sBuff = bigNumberToBuffer(S, thirtyTwo) - const recoveryParam = recoverKeyIndex( - Buffer.concat([rBuff, sBuff], sixtyFour), - this.publicKey, - buffer - ) - - return { - r: rBuff, - s: sBuff, - v: recoveryParam, - } - } - - async signTransaction(addToV: number, encodedTx: RLPEncodedTx): Promise { - const hash = getHashFromEncoded(encodedTx.rlpEncode) - const bufferedMessage = Buffer.from(trimLeading0x(hash), 'hex') - const { v, r, s } = await this.sign(bufferedMessage) - - return { - v: v + addToV, - r, - s, - } - } - - async signPersonalMessage(data: string): Promise { - const dataBuff = ethUtil.toBuffer(ensureLeading0x(data)) - const msgHashBuff = ethUtil.hashPersonalMessage(dataBuff) as Buffer - const { v, r, s } = await this.sign(msgHashBuff) - - return { - v: v + 27, - r, - s, - } - } - - async signTypedData(typedData: EIP712TypedData): Promise { - const typedDataHashBuff = generateTypedDataHash(typedData) - const { v, r, s } = await this.sign(typedDataHashBuff) - - return { - v: v + 27, - r, - s, - } - } - - getNativeKey(): string { - return this.keyId - } - - decrypt(_ciphertext: Buffer) { - throw new Error('Decryption operation is not supported on this signer') - // To make the compiler happy - return Promise.resolve(_ciphertext) - } - - computeSharedSecret(_publicKey: string) { - throw new Error('Not implemented') - return Promise.resolve(Buffer.from([])) - } -} diff --git a/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.test.ts b/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.test.ts deleted file mode 100644 index 20532907712..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.test.ts +++ /dev/null @@ -1,306 +0,0 @@ -import { CeloTx, EncodedTransaction } from '@celo/connect' -import { - ensureLeading0x, - normalizeAddressWith0x, - privateKeyToAddress, - trimLeading0x, -} from '@celo/utils/lib/address' -import { verifySignature } from '@celo/utils/lib/signatureUtils' -import { recoverTransaction, verifyEIP712TypedDataSigner } from '@celo/wallet-base' -import { asn1FromPublicKey } from '@celo/wallet-hsm' -import * as ethUtil from '@ethereumjs/util' -import { BigNumber } from 'bignumber.js' -import Web3 from 'web3' -import { AwsHsmWallet } from './aws-hsm-wallet' -require('dotenv').config() - -export const PRIVATE_KEY1 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' -export const ACCOUNT_ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY1)) -export const PRIVATE_KEY2 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fdeccc' -export const ACCOUNT_ADDRESS2 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY2)) - -export const PRIVATE_KEY_NEVER = - '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890ffffff' -export const ACCOUNT_ADDRESS_NEVER = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY_NEVER)) - -export const CHAIN_ID = 44378 - -export const TYPED_DATA = { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - Person: [ - { name: 'name', type: 'string' }, - { name: 'wallet', type: 'address' }, - ], - Mail: [ - { name: 'from', type: 'Person' }, - { name: 'to', type: 'Person' }, - { name: 'contents', type: 'string' }, - ], - }, - primaryType: 'Mail', - domain: { - name: 'Ether Mail', - version: '1', - chainId: 1, - verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', - }, - message: { - from: { - name: 'Cow', - wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', - }, - to: { - name: 'Bob', - wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB', - }, - contents: 'Hello, Bob!', - }, -} - -const USING_MOCK = typeof process.env.AWS_HSM_KEY_ID === 'undefined' -const MOCK_KEY_ID = '1d6db902-9a45-4dd5-bd1e-7250b2306f18' -const AWS_HSM_KEY_ID = USING_MOCK ? MOCK_KEY_ID : process.env.AWS_HSM_KEY_ID - -const key1 = PRIVATE_KEY1 - -const keys: Map = new Map([[MOCK_KEY_ID, key1]]) -const listKeysResponse = { - Keys: Array.from(keys.keys()).map((id) => ({ - KeyId: id, - Enabled: true, - })), - Truncated: false, -} - -describe('AwsHsmWallet class', () => { - let wallet: AwsHsmWallet - let knownAddress: string - const otherAddress: string = ACCOUNT_ADDRESS2 - - beforeEach(async () => { - wallet = new AwsHsmWallet() - if (USING_MOCK) { - jest.spyOn(wallet, 'generateKmsClient').mockImplementation((_transport: any) => { - return { - listKeys: () => ({ - promise: () => Promise.resolve(listKeysResponse), - }), - describeKey: ({ KeyId }: { KeyId: string }) => ({ - promise: () => - Promise.resolve({ - KeyMetadata: { - AWSAccountId: 'AWSAccountId', - KeyId, - Enabled: true, - Description: '', - KeyUsage: 'SIGN_VERIFY', - KeyState: 'Enabled', - Origin: 'AWS_KMS', - KeyManager: 'CUSTOMER', - CustomerMasterKeySpec: 'ECC_SECG_P256K1', - SigningAlgorithms: ['ECDSA_SHA_256'], - }, - }), - }), - getPublicKey: ({ KeyId }: { KeyId: string }) => ({ - promise: async () => { - const isGuid = - /[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}/ - if (!KeyId.match(isGuid)) { - throw new Error(`Invalid keyId ${KeyId}`) - } - if (!keys.has(KeyId)) { - throw new Error(`Key 'arn:aws:kms:123:key/${KeyId}' does not exist`) - } - const privateKey = keys.get(KeyId) - const pubKey = ethUtil.privateToPublic(ethUtil.toBuffer(privateKey)) - const temp = new BigNumber(ensureLeading0x(pubKey.toString('hex'))) - const asn1Key = asn1FromPublicKey(temp) - return { PublicKey: new Uint8Array(asn1Key) } - }, - }), - sign: ({ KeyId, Message }: { KeyId: string; Message: Buffer }) => ({ - promise: () => { - const privateKey = trimLeading0x(keys.get(KeyId)!) - if (privateKey) { - const pkBuffer = Buffer.from(privateKey, 'hex') - // NOTE: elliptic is disabled elsewhere in this library to prevent - // accidental signing of truncated messages. - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const ec = new EC('secp256k1') - const signature = ec.sign(Message, pkBuffer, { canonical: true }) - return { Signature: Buffer.from(signature.toDER()) } - } - throw new Error(`Unable to locate key: ${KeyId}`) - }, - }), - } - }) - } - - await wallet.init() - }) - - test('hasAccount should return false for keys that are not present', async () => { - expect(await wallet.hasAccount('this is not a valid private key')).toBeFalsy() - }) - - test('hasAccount should return true for keys that are present', async () => { - // Valid key should be present - const address = await wallet.getAddressFromKeyId(AWS_HSM_KEY_ID!) - expect(await wallet.hasAccount(address)).toBeTruthy() - }) - - test('throws on invalid key id', async () => { - try { - await wallet.getAddressFromKeyId('invalid') - throw new Error('expected error to have been thrown') - } catch (e: any) { - expect(e.message).toBe('Invalid keyId invalid') - } - }) - - describe('signing', () => { - let celoTransaction: CeloTx - const unknownKey: string = '00000000-0000-0000-0000-000000000000' - const unknownAddress = ACCOUNT_ADDRESS_NEVER - - describe('using an unknown key', () => { - beforeEach(async () => { - celoTransaction = { - from: unknownAddress, - to: otherAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - test('fails getting address from key', async () => { - try { - await wallet.getAddressFromKeyId(unknownKey) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toMatch( - new RegExp(`Key 'arn:aws:kms:.*:key/${unknownKey}' does not exist`) - ) - } - }) - - test('fails calling signTransaction', async () => { - try { - await wallet.signTransaction(celoTransaction) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`Could not find address ${unknownAddress}`) - } - }) - - test('fails calling signPersonalMessage', async () => { - const hexStr: string = '0xa1' - try { - await wallet.signPersonalMessage(unknownAddress, hexStr) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`Could not find address ${unknownAddress}`) - } - }) - - test('fails calling signTypedData', async () => { - try { - await wallet.signTypedData(unknownAddress, TYPED_DATA) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`Could not find address ${unknownAddress}`) - } - }) - }) - - describe('using a known key', () => { - const knownKey: string = AWS_HSM_KEY_ID! - beforeEach(async () => { - knownAddress = await wallet.getAddressFromKeyId(knownKey) - celoTransaction = { - from: knownAddress, - to: otherAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - describe('when calling signTransaction', () => { - test('succeeds', async () => { - const signedTx: EncodedTransaction = await wallet.signTransaction(celoTransaction) - expect(signedTx).not.toBeUndefined() - }) - test('with same signer', async () => { - const signedTx: EncodedTransaction = await wallet.signTransaction(celoTransaction) - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe(normalizeAddressWith0x(knownAddress)) - }) - // https://github.com/ethereum/go-ethereum/blob/38aab0aa831594f31d02c9f02bfacc0bef48405d/rlp/decode.go#L664 - test('signature with 0x00 prefix is canonicalized', async () => { - // This tx is carefully constructed to produce an S value with the first byte as 0x00 - const celoTransactionZeroPrefix = { - from: await wallet.getAddressFromKeyId(knownKey), - to: ACCOUNT_ADDRESS2, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 65, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - const signedTx: EncodedTransaction = await wallet.signTransaction( - celoTransactionZeroPrefix - ) - expect(signedTx.tx.s.startsWith('0x00')).toBeFalsy() - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe(normalizeAddressWith0x(knownAddress)) - }) - }) - - describe('when calling signPersonalMessage', () => { - test('succeeds', async () => { - const hexStr: string = ACCOUNT_ADDRESS1 - const signedMessage = await wallet.signPersonalMessage(knownAddress, hexStr) - expect(signedMessage).not.toBeUndefined() - const valid = verifySignature(hexStr, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }) - }) - - describe('when calling signTypedData', () => { - test('succeeds', async () => { - const signedMessage = await wallet.signTypedData(knownAddress, TYPED_DATA) - expect(signedMessage).not.toBeUndefined() - const valid = verifyEIP712TypedDataSigner(TYPED_DATA, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }) - }) - }) - }) -}) diff --git a/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.ts b/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.ts deleted file mode 100644 index a0fb3c1d2e8..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/src/aws-hsm-wallet.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { Address, ReadOnlyWallet } from '@celo/connect' -import { - bigNumberToBuffer, - bufferToBigNumber, - getAddressFromPublicKey, - publicKeyFromAsn1, - publicKeyPrefix, - sixtyFour, -} from '@celo/wallet-hsm' -import { RemoteWallet } from '@celo/wallet-remote' -import { KMS } from 'aws-sdk' -import { BigNumber } from 'bignumber.js' -import debugFactory from 'debug' -import { AwsHsmSigner } from './aws-hsm-signer' - -const debug = debugFactory('kit:wallet:aws-hsm-wallet') - -const defaultCredentials: KMS.ClientConfiguration = { - region: 'eu-central-1', - apiVersion: '2014-11-01', -} - -/** - * A Cloud HSM wallet built on AWS KMS - * https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/KMS.html - * When using the default credentials, it's expected to set the - * aws_access_key_id and aws_secret_access_key in ~/.aws/credentials - */ -export class AwsHsmWallet extends RemoteWallet implements ReadOnlyWallet { - private kms: KMS | undefined - private credentials: KMS.ClientConfiguration - - constructor(awsCredentials?: KMS.ClientConfiguration) { - super() - this.credentials = awsCredentials || defaultCredentials - } - - protected async loadAccountSigners(): Promise> { - if (!this.kms) { - this.kms = this.generateKmsClient() - } - const { Keys } = await this.kms.listKeys().promise() - const addressToSigner = new Map() - for (const { KeyId } of Keys!) { - if (!KeyId) { - throw new Error(`Missing KeyId in KMS response object ${Keys!}`) - } - try { - const { KeyMetadata } = await this.kms.describeKey({ KeyId }).promise() - if (!KeyMetadata?.Enabled) { - continue - } - - const publicKey = await this.getPublicKeyFromKeyId(KeyId) - const address = getAddressFromPublicKey(publicKey) - addressToSigner.set(address, new AwsHsmSigner(this.kms, KeyId, publicKey)) - } catch (e: any) { - // Safely ignore non-secp256k1 keys - if (e.name === 'UnsupportedOperationException') { - debug(`Ignoring non-secp256k1 key ${KeyId}`) - } else if (e.name === 'AccessDeniedException') { - debug(`Ignoring key that user does not have DescribeKey access for: ${KeyId}`) - } else { - throw e - } - } - } - return addressToSigner - } - - private generateKmsClient() { - return new KMS(this.credentials) - } - - private async getPublicKeyFromKeyId(keyId: string): Promise { - if (!this.kms) { - throw new Error('AwsHsmWallet needs to be initialised first') - } - const { PublicKey } = await this.kms.getPublicKey({ KeyId: keyId }).promise() - const pubKey = publicKeyFromAsn1(Buffer.from(PublicKey as Uint8Array)) - const pkbuff = bigNumberToBuffer(pubKey, sixtyFour) - const pubKeyPrefix = Buffer.from(new Uint8Array([publicKeyPrefix])) - const rawPublicKey = Buffer.concat([pubKeyPrefix, pkbuff]) - return bufferToBigNumber(rawPublicKey) - } - - /** - * Returns the EVM address for the given key - * Useful for initially getting the 'from' field given a keyName - * @param keyName Azure KeyVault key name - */ - async getAddressFromKeyId(keyId: string): Promise
{ - const publicKey = await this.getPublicKeyFromKeyId(keyId) - return getAddressFromPublicKey(publicKey) - } -} diff --git a/packages/sdk/wallets/wallet-hsm-aws/src/index.ts b/packages/sdk/wallets/wallet-hsm-aws/src/index.ts deleted file mode 100644 index 7e16c140870..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './aws-hsm-signer' -export * from './aws-hsm-wallet' diff --git a/packages/sdk/wallets/wallet-hsm-aws/tsconfig.json b/packages/sdk/wallets/wallet-hsm-aws/tsconfig.json deleted file mode 100644 index e267672350c..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src"], - "references": [{ "path": "../../utils" }] -} diff --git a/packages/sdk/wallets/wallet-hsm-aws/tslint.json b/packages/sdk/wallets/wallet-hsm-aws/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/wallets/wallet-hsm-aws/typedoc.json b/packages/sdk/wallets/wallet-hsm-aws/typedoc.json deleted file mode 100644 index 2886cc0d696..00000000000 --- a/packages/sdk/wallets/wallet-hsm-aws/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../../docs/sdk/docs/wallet-hsm-aws", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-azure/.gitignore b/packages/sdk/wallets/wallet-hsm-azure/.gitignore deleted file mode 100644 index 34a5edcc227..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -lib/ -.env \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-azure/.npmignore b/packages/sdk/wallets/wallet-hsm-azure/.npmignore deleted file mode 100644 index d8d8e42b865..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/.npmignore +++ /dev/null @@ -1,24 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-azure/CHANGELOG.md b/packages/sdk/wallets/wallet-hsm-azure/CHANGELOG.md deleted file mode 100644 index 4e6e4533e04..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/CHANGELOG.md +++ /dev/null @@ -1,56 +0,0 @@ -# @celo/wallet-hsm-azure - -## 5.1.1 - -### Patch Changes - -- Updated dependencies [679ef0c60] -- Updated dependencies [97d5ccf43] - - @celo/connect@5.1.1 - - @celo/base@6.0.0 - - @celo/utils@5.0.6 - - @celo/wallet-base@5.1.1 - - @celo/wallet-hsm@5.1.1 - - @celo/wallet-remote@5.1.1 - -## 5.1.1-beta.0 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - - @celo/connect@5.1.1-beta.0 - - @celo/utils@5.0.6-beta.0 - - @celo/wallet-base@5.1.1-beta.0 - - @celo/wallet-hsm@5.1.1-beta.0 - - @celo/wallet-remote@5.1.1-beta.0 - -## 5.1.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0 - - @celo/wallet-remote@5.1.0 - - @celo/wallet-base@5.1.0 - - @celo/wallet-hsm@5.1.0 - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.1.0-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0-beta.0 - - @celo/wallet-remote@5.1.0-beta.0 - - @celo/wallet-base@5.1.0-beta.0 - - @celo/wallet-hsm@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/wallets/wallet-hsm-azure/README.md b/packages/sdk/wallets/wallet-hsm-azure/README.md deleted file mode 100644 index f6731fd589e..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/README.md +++ /dev/null @@ -1 +0,0 @@ -Wallet-hsm-azure is a Azure Key Vault implementation of a RemoteWallet. \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-azure/jest.config.js b/packages/sdk/wallets/wallet-hsm-azure/jest.config.js deleted file mode 100644 index 2681a75d5a6..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/wallets/wallet-hsm-azure/package.json b/packages/sdk/wallets/wallet-hsm-azure/package.json deleted file mode 100644 index db8d45af7c7..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "@celo/wallet-hsm-azure", - "version": "5.1.1", - "description": "Azure HSM wallet implementation", - "author": "Celo", - "license": "Apache-2.0", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/wallets/", - "homepage": "https://docs.celo.org", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@azure/identity": "^1.1.0", - "@azure/keyvault-keys": "^4.1.0", - "@azure/keyvault-secrets": "^4.1.0", - "@celo/base": "^6.0.0", - "@celo/utils": "^5.0.6", - "@celo/wallet-base": "^5.1.1", - "@celo/wallet-remote": "^5.1.1", - "@celo/wallet-hsm": "^5.1.1", - "@celo/connect": "^5.1.1", - "@types/secp256k1": "^4.0.0", - "eth-lib": "^0.2.8", - "@ethereumjs/util": "8.0.5", - "bignumber.js": "^9.0.0", - "debug": "^4.1.1", - "secp256k1": "^4.0.0" - }, - "devDependencies": { - "dotenv": "^8.2.0", - "elliptic": "^6.5.4", - "web3": "1.10.0" - }, - "engines": { - "node": ">=8.14.2" - } -} \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts b/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts deleted file mode 100644 index b26486dc205..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-signer.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { ensureLeading0x, trimLeading0x } from '@celo/base/lib/address' -import { RLPEncodedTx, Signer } from '@celo/connect' -import { EIP712TypedData, generateTypedDataHash } from '@celo/utils/lib/sign-typed-data-utils' -import { getHashFromEncoded } from '@celo/wallet-base' -import * as ethUtil from '@ethereumjs/util' -import { AzureKeyVaultClient } from './azure-key-vault-client' - -/** - * Signs the EVM transaction using an HSM key in Azure Key Vault - */ -export class AzureHSMSigner implements Signer { - private static keyVaultClient: AzureKeyVaultClient - private keyName: string - - constructor(keyVaultClient: AzureKeyVaultClient, keyName: string) { - if (!AzureHSMSigner.keyVaultClient) { - AzureHSMSigner.keyVaultClient = keyVaultClient - } - - this.keyName = keyName - } - - async signTransaction( - addToV: number, - encodedTx: RLPEncodedTx - ): Promise<{ v: number; r: Buffer; s: Buffer }> { - const hash = getHashFromEncoded(encodedTx.rlpEncode) - const bufferedMessage = Buffer.from(trimLeading0x(hash), 'hex') - const signature = await AzureHSMSigner.keyVaultClient.signMessage(bufferedMessage, this.keyName) - const sigV = addToV + signature.v - - return { - v: sigV, - r: signature.r, - s: signature.s, - } - } - - async signPersonalMessage(data: string): Promise<{ v: number; r: Buffer; s: Buffer }> { - const dataBuff = ethUtil.toBuffer(ensureLeading0x(data)) - const msgHashBuff = ethUtil.hashPersonalMessage(dataBuff) - const signature = await AzureHSMSigner.keyVaultClient.signMessage( - Buffer.from(msgHashBuff), - this.keyName - ) - // Recovery ID should be a byte prefix - // https://bitcoin.stackexchange.com/questions/38351/ecdsa-v-r-s-what-is-v - const sigV = signature.v + 27 - - return { - v: sigV, - r: signature.r, - s: signature.s, - } - } - - async signTypedData(typedData: EIP712TypedData): Promise<{ v: number; r: Buffer; s: Buffer }> { - const dataBuff = generateTypedDataHash(typedData) - const signature = await AzureHSMSigner.keyVaultClient.signMessage(dataBuff, this.keyName) - - // Recovery ID should be a byte prefix - // https://bitcoin.stackexchange.com/questions/38351/ecdsa-v-r-s-what-is-v - const sigV = signature.v + 27 - return { - v: sigV, - r: signature.r, - s: signature.s, - } - } - - getNativeKey(): string { - return this.keyName - } - - decrypt(_ciphertext: Buffer) { - throw new Error('Decryption operation is not supported on this signer') - // To make the compiler happy - return Promise.resolve(_ciphertext) - } - - computeSharedSecret(_publicKey: string) { - throw new Error('Not implemented') - return Promise.resolve(Buffer.from([])) - } -} diff --git a/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.test.ts b/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.test.ts deleted file mode 100644 index 36c39eaa0a4..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.test.ts +++ /dev/null @@ -1,307 +0,0 @@ -import { CeloTx, EncodedTransaction } from '@celo/connect' -import { - Address, - ensureLeading0x, - normalizeAddressWith0x, - privateKeyToAddress, - trimLeading0x, -} from '@celo/utils/lib/address' -import { verifySignature } from '@celo/utils/lib/signatureUtils' -import { recoverTransaction, verifyEIP712TypedDataSigner } from '@celo/wallet-base' -import { publicKeyPrefix, Signature } from '@celo/wallet-hsm' -import * as ethUtil from '@ethereumjs/util' -import { BigNumber } from 'bignumber.js' -import Web3 from 'web3' -import { AzureHSMWallet } from './azure-hsm-wallet' - -// Env var should hold service principal credentials -// https://www.npmjs.com/package/@azure/keyvault-keys -require('dotenv').config() - -const USING_MOCK = - typeof process.env.AZURE_KEY_NAME === 'undefined' || - process.env.AZURE_KEY_NAME === '' -const AZURE_KEY_NAME = USING_MOCK ? 'secp' : process.env.AZURE_KEY_NAME -const AZURE_VAULT_NAME = USING_MOCK ? 'mockVault' : process.env.AZURE_VAULT_NAME -const PRIVATE_KEY1 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' -const ACCOUNT_ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY1)) -const PRIVATE_KEY2 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fdeccc' -const ACCOUNT_ADDRESS2 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY2)) -const PRIVATE_KEY_NEVER = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890ffffff' -const ACCOUNT_ADDRESS_NEVER = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY_NEVER)) -const CHAIN_ID = 44378 - -const keyVaultAddresses: Map = new Map([ - [ - 'secp', - { - address: ACCOUNT_ADDRESS1, - privateKey: PRIVATE_KEY1, - }, - ], - [ - 'secp2', - { - address: ACCOUNT_ADDRESS2, - privateKey: PRIVATE_KEY2, - }, - ], -]) - -// Sample data from the official EIP-712 example: -// https://github.com/ethereum/EIPs/blob/master/assets/eip-712/Example.js -const TYPED_DATA = { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - Person: [ - { name: 'name', type: 'string' }, - { name: 'wallet', type: 'address' }, - ], - Mail: [ - { name: 'from', type: 'Person' }, - { name: 'to', type: 'Person' }, - { name: 'contents', type: 'string' }, - ], - }, - primaryType: 'Mail', - domain: { - name: 'Ether Mail', - version: '1', - chainId: 1, - verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', - }, - message: { - from: { - name: 'Cow', - wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', - }, - to: { - name: 'Bob', - wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB', - }, - contents: 'Hello, Bob!', - }, -} - -describe('AzureHSMWallet class', () => { - let wallet: AzureHSMWallet - - // validate env file - beforeEach(() => { - // Use mock client if env vars not specified - if (!USING_MOCK) { - // Ensure all env vars are specified - expect(process.env.AZURE_CLIENT_ID).toBeDefined() - expect(process.env.AZURE_CLIENT_SECRET).toBeDefined() - expect(process.env.AZURE_TENANT_ID).toBeDefined() - expect(process.env.AZURE_VAULT_NAME).toBeDefined() - expect(process.env.AZURE_KEY_NAME).toBeDefined() - } - - wallet = new AzureHSMWallet(AZURE_VAULT_NAME!) - - if (USING_MOCK) { - jest - .spyOn(wallet, 'generateNewKeyVaultClient') - .mockImplementation((_transport: any) => { - return { - getKeys: async (): Promise => { - return Array.from(keyVaultAddresses.keys()) - }, - getPublicKey: async (keyName: string): Promise => { - if (!keyVaultAddresses.has(keyName)) { - throw new Error(`A key with (name/id) ${keyName} was not found in this key vault`) - } - const privKey = keyVaultAddresses.get(keyName)!.privateKey - const pubKey = Buffer.concat([ - Buffer.from(new Uint8Array([publicKeyPrefix])), - ethUtil.privateToPublic(ethUtil.toBuffer(privKey)), - ]) - return new BigNumber(ensureLeading0x(pubKey.toString('hex'))) - }, - signMessage: async (message: Buffer, keyName: string): Promise => { - if (keyVaultAddresses.has(keyName)) { - const trimmedKey = trimLeading0x(keyVaultAddresses.get(keyName)!.privateKey) - const pkBuffer = Buffer.from(trimmedKey, 'hex') - const signature = ethUtil.ecsign(message, pkBuffer) - // Azure HSM doesn't add the byte prefix (+27) while ecsign does - // Subtract 27 to properly mock the HSM signer - return new Signature(Number(signature.v) - 27, signature.r, signature.s) - } - throw new Error(`Unable to locate key: ${keyName}`) - }, - } - }) - } - }) - - describe('after initializing', () => { - beforeEach(async () => { - await wallet.init() - }) - test('hasAccount should return false for keys that are not present', async () => { - // Invalid key should not be present - expect(await wallet.hasAccount('this is not a valid private key')).toBeFalsy() - }) - - test('hasAccount should return true for keys that are present', async () => { - // Valid key should be present - const address = await wallet.getAddressFromKeyName(AZURE_KEY_NAME!) - expect(await wallet.hasAccount(address)).toBeTruthy() - }) - - describe('with an account', () => { - describe('signing', () => { - describe('using an unknown key', () => { - let celoTransaction: CeloTx - const unknownKey: string = 'invalidKey' - const unknownAddress = ACCOUNT_ADDRESS_NEVER - - beforeEach(() => { - celoTransaction = { - from: unknownAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: ACCOUNT_ADDRESS_NEVER, - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - test('fails getting address from key', async () => { - try { - await wallet.getAddressFromKeyName(unknownKey) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toContain( - `A key with (name/id) ${unknownKey} was not found in this key vault` - ) - } - }) - - test('fails calling signTransaction', async () => { - try { - await wallet.signTransaction(celoTransaction) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`Could not find address ${unknownAddress}`) - } - }) - - test('fails calling signPersonalMessage', async () => { - const hexStr: string = '0xa1' - try { - await wallet.signPersonalMessage(unknownAddress, hexStr) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`Could not find address ${unknownAddress}`) - } - }) - - test('fails calling signTypedData', async () => { - try { - await wallet.signTypedData(unknownAddress, TYPED_DATA) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`Could not find address ${unknownAddress}`) - } - }) - }) - - describe('using a known key', () => { - let celoTransaction: CeloTx - const knownKey: string = AZURE_KEY_NAME! - let knownAddress: Address - const otherAddress: string = ACCOUNT_ADDRESS2 - - beforeEach(async () => { - knownAddress = await wallet.getAddressFromKeyName(knownKey) - celoTransaction = { - from: knownAddress, - to: otherAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - describe('when calling signTransaction', () => { - test('succeeds', async () => { - const signedTx: EncodedTransaction = await wallet.signTransaction(celoTransaction) - expect(signedTx).not.toBeUndefined() - }) - - test('with same signer', async () => { - const signedTx: EncodedTransaction = await wallet.signTransaction(celoTransaction) - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe( - normalizeAddressWith0x(knownAddress) - ) - }) - - // https://github.com/ethereum/go-ethereum/blob/38aab0aa831594f31d02c9f02bfacc0bef48405d/rlp/decode.go#L664 - test('signature with 0x00 prefix is canonicalized', async () => { - // This tx is carefully constructed to produce an S value with the first byte as 0x00 - const celoTransactionZeroPrefix = { - from: await wallet.getAddressFromKeyName(knownKey), - to: ACCOUNT_ADDRESS2, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 65, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - - const signedTx: EncodedTransaction = await wallet.signTransaction( - celoTransactionZeroPrefix - ) - expect(signedTx.tx.s.startsWith('0x00')).toBeFalsy() - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe( - normalizeAddressWith0x(knownAddress) - ) - }) - }) - - describe('when calling signPersonalMessage', () => { - test('succeeds', async () => { - const hexStr: string = ACCOUNT_ADDRESS1 - const signedMessage = await wallet.signPersonalMessage(knownAddress, hexStr) - expect(signedMessage).not.toBeUndefined() - const valid = verifySignature(hexStr, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }) - }) - - describe('when calling signTypedData', () => { - test('succeeds', async () => { - const signedMessage = await wallet.signTypedData(knownAddress, TYPED_DATA) - expect(signedMessage).not.toBeUndefined() - const valid = verifyEIP712TypedDataSigner(TYPED_DATA, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }) - }) - }) - }) - }) - }) -}) diff --git a/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.ts b/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.ts deleted file mode 100644 index 557cf849350..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/src/azure-hsm-wallet.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { ReadOnlyWallet } from '@celo/connect' -import { Address, publicKeyToAddress } from '@celo/utils/lib/address' -import { RemoteWallet } from '@celo/wallet-remote' -import debugFactory from 'debug' -import { AzureHSMSigner } from './azure-hsm-signer' -import { AzureKeyVaultClient } from './azure-key-vault-client' - -const debug = debugFactory('kit:wallet:aws-hsm-wallet') - -// Azure Key Vault implementation of a RemoteWallet -export class AzureHSMWallet extends RemoteWallet implements ReadOnlyWallet { - private keyVaultClient: AzureKeyVaultClient | undefined - - constructor(private readonly vaultName: string) { - super() - } - - protected async loadAccountSigners(): Promise> { - if (!this.keyVaultClient) { - this.keyVaultClient = this.generateNewKeyVaultClient(this.vaultName) - } - const keys = await this.keyVaultClient.getKeys() - const addressToSigner = new Map() - for (const key of keys) { - try { - const address = await this.getAddressFromKeyName(key) - addressToSigner.set(address, new AzureHSMSigner(this.keyVaultClient, key)) - } catch (e: any) { - // Safely ignore non-secp256k1 keys - if (!e.message.includes('Invalid secp256k1')) { - throw e - } else { - debug(`Ignoring non-secp256k1 key ${key}`) - } - } - } - return addressToSigner - } - - // Extracted for testing purpose - private generateNewKeyVaultClient(vaultName: string) { - return new AzureKeyVaultClient(vaultName) - } - - /** - * Returns the EVM address for the given key - * Useful for initially getting the 'from' field given a keyName - * @param keyName Azure KeyVault key name - */ - async getAddressFromKeyName(keyName: string): Promise
{ - if (!this.keyVaultClient) { - throw new Error('AzureHSMWallet needs to be initialized first') - } - const publicKey = await this.keyVaultClient!.getPublicKey(keyName) - return publicKeyToAddress(publicKey.toString(16)) - } -} diff --git a/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts b/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts deleted file mode 100644 index 02d80182f85..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/src/azure-key-vault-client.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { DefaultAzureCredential, TokenCredential } from '@azure/identity' -import { CryptographyClient, KeyClient, KeyVaultKey } from '@azure/keyvault-keys' -import { SecretClient } from '@azure/keyvault-secrets' -import { - bigNumberToBuffer, - bufferToBigNumber, - makeCanonical, - publicKeyPrefix, - recoverKeyIndex, - Signature, - sixtyFour, - thirtyTwo, -} from '@celo/wallet-hsm' -import { BigNumber } from 'bignumber.js' - -type SupportedCurve = 'P-256K' | 'SECP256K1' -type SigningAlgorithm = 'ECDSA256' | 'ES256K' - -const SUPPORTED_CURVES: readonly SupportedCurve[] = ['P-256K', 'SECP256K1'] as const -const SIGNING_ALGORITHM_FOR: Record = { - 'P-256K': 'ES256K', - SECP256K1: 'ECDSA256', -} - -const isSupportedCurve = (curveName: string): curveName is SupportedCurve => { - return (SUPPORTED_CURVES as string[]).indexOf(curveName) > -1 -} - -/** - * Provides an abstraction on Azure Key Vault for performing signing operations - */ -export class AzureKeyVaultClient { - private readonly vaultName: string - // Unique URI of the Azure Key Vault - private readonly vaultUri: string - private readonly credential: TokenCredential - private readonly keyClient: KeyClient - private cryptographyClientSet: Map = new Map< - string, - CryptographyClient - >() - private readonly secretClient: SecretClient - - constructor(vaultName: string, credential?: TokenCredential) { - this.vaultName = vaultName - this.vaultUri = `https://${this.vaultName}.vault.azure.net` - // DefaultAzureCredential supports service principal or managed identity - // If using a service principal, you must set the appropriate environment vars - this.credential = credential || new DefaultAzureCredential() - this.keyClient = new KeyClient(this.vaultUri, this.credential) - this.secretClient = new SecretClient(this.vaultUri, this.credential) - } - - public async getKeys(): Promise { - const keyNames = new Array() - for await (const keyProperties of this.keyClient.listPropertiesOfKeys()) { - keyNames.push(keyProperties.name) - } - return keyNames - } - - public async getPublicKey(keyName: string): Promise { - const signingKey = await this.getKey(keyName) - - const pubKeyPrefix = Buffer.from(new Uint8Array([publicKeyPrefix])) - const rawPublicKey = Buffer.concat([ - pubKeyPrefix, - Buffer.from(signingKey.key!.x!), - Buffer.from(signingKey.key!.y!), - ]) - const publicKey = bufferToBigNumber(rawPublicKey) - return publicKey - } - - public async getKeyId(keyName: string): Promise { - if (!(await this.hasKey(keyName))) { - throw new Error(`Unable to locate key: ${keyName}`) - } - return (await this.getKey(keyName)).id! - } - - public async signMessage(message: Buffer, keyName: string): Promise { - if (!(await this.hasKey(keyName))) { - throw new Error(`Unable to locate key: ${keyName}`) - } - const curve = await this.getKeyCurve(keyName) - if (!isSupportedCurve(curve)) { - throw new Error(`Key curve ${curve} is not supported, must be one of: ${SUPPORTED_CURVES}`) - } - const signingAlgorithm = SIGNING_ALGORITHM_FOR[curve] - const cryptographyClient = await this.getCryptographyClient(keyName) - const signResult = await cryptographyClient.sign( - // @ts-ignore-next-line (ECDSA256 is not included in the client enum but is valid) - signingAlgorithm, - new Uint8Array(message) - ) - // The output of this will be a 64 byte array. - // The first 32 are the value for R and the rest is S - if ( - typeof signResult === 'undefined' || - typeof signResult.result === 'undefined' || - signResult.result.length !== sixtyFour - ) { - throw new Error(`Invalid signature returned from Azure: ${signResult}`) - } - const rawSignature = signResult.result - - // Canonicalize signature - const R = bufferToBigNumber(Buffer.from(rawSignature.slice(0, thirtyTwo))) - let S = bufferToBigNumber(Buffer.from(rawSignature.slice(thirtyTwo, sixtyFour))) - S = makeCanonical(S) - - const rBuff = bigNumberToBuffer(R, thirtyTwo) - const sBuff = bigNumberToBuffer(S, thirtyTwo) - const canonicalizedSignature = Buffer.concat([rBuff, sBuff]) - const publicKey = await this.getPublicKey(keyName) - - // Azure doesn't provide the recovery key in the signature - const recoveryParam = recoverKeyIndex(canonicalizedSignature, publicKey, message) - return new Signature(recoveryParam, rBuff, sBuff) - } - - public async hasKey(keyName: string): Promise { - try { - await this.keyClient.getKey(keyName) - } catch (e: any) { - if (e.message.includes('this is not a valid private key')) { - return false - } - throw e - } - return true - } - - public async getSecret(secretName: string): Promise { - const secret = await this.secretClient.getSecret(secretName) - if (!secret.value) { - throw new Error(`Could not locate secret ${secretName} in vault ${this.vaultName}`) - } - return secret.value - } - - private async getKey(keyName: string): Promise { - try { - const signingKey = await this.keyClient.getKey(keyName) - - if ( - typeof signingKey?.id === 'undefined' || - typeof signingKey?.key?.x === 'undefined' || - typeof signingKey?.key?.y === 'undefined' - ) { - throw new Error(`Invalid key data returned from Azure: ${signingKey}`) - } - - return signingKey - } catch (e: any) { - if (e.message.includes('Key not found')) { - throw new Error(`Key ${keyName} not found in KeyVault ${this.vaultName}`) - } - throw new Error(`Unexpected KeyVault error ${e.message}`) - } - } - - private async getKeyCurve(keyName: string): Promise { - const key = await this.getKey(keyName) - if (key.key === undefined || key.key.crv === undefined) { - throw new Error(`Key or curve is undefined`) - } - - return key.key.crv - } - - /** - * Provides the CryptographyClient for the requested key - * Creates a new client if it doesn't already exist - */ - private async getCryptographyClient(keyName: string): Promise { - if (!this.cryptographyClientSet.has(keyName)) { - const keyId = await this.getKeyId(keyName) - this.cryptographyClientSet.set(keyName, new CryptographyClient(keyId, this.credential)) - } - - return this.cryptographyClientSet.get(keyName)! - } -} diff --git a/packages/sdk/wallets/wallet-hsm-azure/src/index.ts b/packages/sdk/wallets/wallet-hsm-azure/src/index.ts deleted file mode 100644 index 95b56f0109b..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './azure-hsm-signer' -export * from './azure-hsm-wallet' -export * from './azure-key-vault-client' diff --git a/packages/sdk/wallets/wallet-hsm-azure/tsconfig.json b/packages/sdk/wallets/wallet-hsm-azure/tsconfig.json deleted file mode 100644 index e267672350c..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src"], - "references": [{ "path": "../../utils" }] -} diff --git a/packages/sdk/wallets/wallet-hsm-azure/tslint.json b/packages/sdk/wallets/wallet-hsm-azure/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/wallets/wallet-hsm-azure/typedoc.json b/packages/sdk/wallets/wallet-hsm-azure/typedoc.json deleted file mode 100644 index 626a12ef237..00000000000 --- a/packages/sdk/wallets/wallet-hsm-azure/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../../docs/sdk/docs/wallet-hsm-azure", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-gcp/.env.example b/packages/sdk/wallets/wallet-hsm-gcp/.env.example deleted file mode 100644 index ac4727af8e6..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -GOOGLE_APPLICATION_CREDENTIALS= -GCP_VERSION_NAME= diff --git a/packages/sdk/wallets/wallet-hsm-gcp/.gitignore b/packages/sdk/wallets/wallet-hsm-gcp/.gitignore deleted file mode 100644 index ece2b3953be..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -lib/ -.env -.serviceAccountKey.json diff --git a/packages/sdk/wallets/wallet-hsm-gcp/.npmignore b/packages/sdk/wallets/wallet-hsm-gcp/.npmignore deleted file mode 100644 index 45e506bacd1..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/.npmignore +++ /dev/null @@ -1,17 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-gcp/CHANGELOG.md b/packages/sdk/wallets/wallet-hsm-gcp/CHANGELOG.md deleted file mode 100644 index 5ff75ef330a..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/CHANGELOG.md +++ /dev/null @@ -1,43 +0,0 @@ -# @celo/wallet-hsm-gcp - -## 5.1.1 - -### Patch Changes - -- @celo/utils@5.0.6 -- @celo/wallet-base@5.1.1 -- @celo/wallet-hsm@5.1.1 -- @celo/wallet-remote@5.1.1 - -## 5.1.1-beta.0 - -### Patch Changes - -- @celo/utils@5.0.6-beta.0 -- @celo/wallet-base@5.1.1-beta.0 -- @celo/wallet-hsm@5.1.1-beta.0 -- @celo/wallet-remote@5.1.1-beta.0 - -## 5.1.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/wallet-remote@5.1.0 - - @celo/wallet-base@5.1.0 - - @celo/wallet-hsm@5.1.0 - - @celo/utils@5.0.5 - -## 5.1.0-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/wallet-remote@5.1.0-beta.0 - - @celo/wallet-base@5.1.0-beta.0 - - @celo/wallet-hsm@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 diff --git a/packages/sdk/wallets/wallet-hsm-gcp/jest.config.js b/packages/sdk/wallets/wallet-hsm-gcp/jest.config.js deleted file mode 100644 index 2681a75d5a6..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/wallets/wallet-hsm-gcp/package.json b/packages/sdk/wallets/wallet-hsm-gcp/package.json deleted file mode 100644 index ca88f6398b0..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "@celo/wallet-hsm-gcp", - "version": "5.1.1", - "description": "GCP HSM wallet implementation", - "author": "Celo", - "license": "Apache-2.0", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc && ts-node ../../utils/scripts/linkdocs.ts wallet-hsm-gcp", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@celo/utils": "^5.0.6", - "@celo/wallet-base": "^5.1.1", - "@celo/wallet-remote": "^5.1.1", - "@celo/wallet-hsm": "^5.1.1", - "@google-cloud/kms": "~2.9.0", - "@types/debug": "^4.1.5", - "@types/secp256k1": "^4.0.0", - "eth-lib": "^0.2.8", - "@ethereumjs/util": "8.0.5", - "bignumber.js": "^9.0.0", - "debug": "^4.1.1", - "secp256k1": "^4.0.0" - }, - "devDependencies": { - "@celo/connect": "^5.1.1", - "elliptic": "^6.5.4", - "dotenv": "^8.2.0", - "web3": "1.10.0" - }, - "engines": { - "node": ">=8.14.2" - }, - "resolutions": { - "secp256k1": "^4.0.0" - } -} \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-signer.ts b/packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-signer.ts deleted file mode 100644 index 99fb4fa0a64..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-signer.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { RLPEncodedTx, Signer } from '@celo/connect' -import { ensureLeading0x, trimLeading0x } from '@celo/utils/lib/address' -import { EIP712TypedData, generateTypedDataHash } from '@celo/utils/lib/sign-typed-data-utils' -import { getHashFromEncoded } from '@celo/wallet-base' -import { - bigNumberToBuffer, - bufferToBigNumber, - makeCanonical, - parseBERSignature, - recoverKeyIndex, - Signature, - sixtyFour, - thirtyTwo, -} from '@celo/wallet-hsm' -import * as ethUtil from '@ethereumjs/util' -import { KeyManagementServiceClient } from '@google-cloud/kms' -import { BigNumber } from 'bignumber.js' - -export class GcpHsmSigner implements Signer { - private client: KeyManagementServiceClient - private versionName: string - private publicKey: BigNumber - - constructor(client: KeyManagementServiceClient, versionName: string, publicKey: BigNumber) { - this.client = client - this.versionName = versionName - this.publicKey = publicKey - } - - private async findCanonicalSignature(buffer: Buffer): Promise<{ S: BigNumber; R: BigNumber }> { - let S: BigNumber - let R: BigNumber - - const [signResponse] = await this.client.asymmetricSign({ - name: this.versionName, - digest: { - sha256: buffer, - }, - }) - const { r, s } = parseBERSignature(signResponse.signature as Buffer) - - R = bufferToBigNumber(r) - S = bufferToBigNumber(s) - S = makeCanonical(S) - - return { S: S!, R: R! } - } - - private async sign(buffer: Buffer): Promise { - const { R, S } = await this.findCanonicalSignature(buffer) - const rBuff = bigNumberToBuffer(R, thirtyTwo) - const sBuff = bigNumberToBuffer(S, thirtyTwo) - const recoveryParam = recoverKeyIndex( - Buffer.concat([rBuff, sBuff], sixtyFour), - this.publicKey, - buffer - ) - - return { - r: rBuff, - s: sBuff, - v: recoveryParam, - } - } - - async signTransaction(addToV: number, encodedTx: RLPEncodedTx): Promise { - const hash = getHashFromEncoded(encodedTx.rlpEncode) - const bufferedMessage = Buffer.from(trimLeading0x(hash), 'hex') - const { v, r, s } = await this.sign(bufferedMessage) - - return { - v: v + addToV, - r, - s, - } - } - - async signPersonalMessage(data: string): Promise { - const dataBuff = ethUtil.toBuffer(ensureLeading0x(data)) - const msgHashBuff = ethUtil.hashPersonalMessage(dataBuff) as Buffer - const { v, r, s } = await this.sign(msgHashBuff) - - return { - v: v + 27, - r, - s, - } - } - - async signTypedData(typedData: EIP712TypedData): Promise { - const typedDataHashBuff = generateTypedDataHash(typedData) - const { v, r, s } = await this.sign(typedDataHashBuff) - - return { - v: v + 27, - r, - s, - } - } - - getNativeKey(): string { - return this.versionName - } - - decrypt(_ciphertext: Buffer) { - throw new Error('Decryption operation is not supported on this signer') - // To make the compiler happy - return Promise.resolve(_ciphertext) - } - - computeSharedSecret(_publicKey: string) { - throw new Error('Not implemented') - return Promise.resolve(Buffer.from([])) - } -} diff --git a/packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-wallet.test.ts b/packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-wallet.test.ts deleted file mode 100644 index cc8f7b84e1f..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-wallet.test.ts +++ /dev/null @@ -1,293 +0,0 @@ -import { CeloTx, EncodedTransaction } from '@celo/connect' -import { - ensureLeading0x, - normalizeAddressWith0x, - privateKeyToAddress, - trimLeading0x, -} from '@celo/utils/lib/address' -import { verifySignature } from '@celo/utils/lib/signatureUtils' -import { recoverTransaction, verifyEIP712TypedDataSigner } from '@celo/wallet-base' -import { asn1FromPublicKey } from '@celo/wallet-hsm' -import * as ethUtil from '@ethereumjs/util' -import { BigNumber } from 'bignumber.js' -// NOTE: elliptic is disabled elsewhere in this library to prevent -// accidental signing of truncated messages. -// tslint:disable-next-line:import-blacklist -import { ec as EC } from 'elliptic' -import Web3 from 'web3' -import { GcpHsmWallet } from './gcp-hsm-wallet' -require('dotenv').config() - -// Note: A lot of this test class was copied from the wallet-hsm-aws test since they work very similarly. - -export const PRIVATE_KEY1 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' -export const ACCOUNT_ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY1)) -export const PRIVATE_KEY2 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fdeccc' -export const ACCOUNT_ADDRESS2 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY2)) - -export const PRIVATE_KEY_NEVER = - '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890ffffff' -export const ACCOUNT_ADDRESS_NEVER = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY_NEVER)) - -export const CHAIN_ID = 44378 - -export const TYPED_DATA = { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - Person: [ - { name: 'name', type: 'string' }, - { name: 'wallet', type: 'address' }, - ], - Mail: [ - { name: 'from', type: 'Person' }, - { name: 'to', type: 'Person' }, - { name: 'contents', type: 'string' }, - ], - }, - primaryType: 'Mail', - domain: { - name: 'Ether Mail', - version: '1', - chainId: 1, - verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', - }, - message: { - from: { - name: 'Cow', - wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', - }, - to: { - name: 'Bob', - wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB', - }, - contents: 'Hello, Bob!', - }, -} - -const USING_MOCK = typeof process.env.GCP_VERSION_NAME === 'undefined' -const MOCK_VERSION_NAME = '1d6db902-9a45-4dd5-bd1e-7250b2306f18' -const GCP_VERSION_NAME = USING_MOCK ? MOCK_VERSION_NAME : process.env.GCP_VERSION_NAME! - -const key1 = PRIVATE_KEY1 -const ec = new EC('secp256k1') - -const keys: Map = new Map([[MOCK_VERSION_NAME, key1]]) - -describe('GcpHsmWallet class', () => { - let wallet: GcpHsmWallet - let knownAddress: string - const otherAddress: string = ACCOUNT_ADDRESS2 - - beforeEach(async () => { - wallet = new GcpHsmWallet(GCP_VERSION_NAME) - if (USING_MOCK) { - jest.spyOn(wallet, 'generateKmsClient').mockImplementation((_transport: any) => { - return { - getPublicKey: async ({ name: versionName }: { name: string }) => { - if (!keys.has(versionName)) { - throw new Error( - `3 INVALID_ARGUMENT: Resource name '${versionName}' does not match pattern some_pattern` - ) - } - const privateKey = keys.get(versionName) - const pubKey = ethUtil.privateToPublic(ethUtil.toBuffer(privateKey)) - const temp = new BigNumber(ensureLeading0x(pubKey.toString('hex'))) - const asn1Key = asn1FromPublicKey(temp) - const prefix = '-----BEGIN PUBLIC KEY-----\n' - const postfix = '-----END PUBLIC KEY-----\n' - const pem = - prefix + - asn1Key - .toString('base64') - .match(/.{0,64}/g)! - .join('\n') + - postfix - return [{ pem }] - }, - asymmetricSign: async ({ - name, - digest, - }: { - name: string - digest: { sha256: Buffer } - }) => { - const privateKey = trimLeading0x(keys.get(name)!) - if (privateKey) { - const pkBuffer = Buffer.from(privateKey, 'hex') - const signature = ec.sign(digest.sha256, pkBuffer, { canonical: true }) - return [{ signature: Buffer.from(signature.toDER()) }] - } - throw new Error(`Unable to locate key: ${name}`) - }, - } - }) - } - - await wallet.init() - }) - - test('hasAccount should return false for keys that are not present', async () => { - expect(await wallet.hasAccount('this is not a valid private key')).toBeFalsy() - }) - - test('hasAccount should return true for keys that are present', async () => { - // Valid key should be present - const address = await wallet.getAddressFromVersionName(GCP_VERSION_NAME) - expect(await wallet.hasAccount(address)).toBeTruthy() - }) - - test('throws on invalid key id', async () => { - try { - await wallet.getAddressFromVersionName('invalid') - throw new Error('expected error to have been thrown') - } catch (e: any) { - expect(e.message).toContain( - "3 INVALID_ARGUMENT: Resource name 'invalid' does not match pattern" - ) - } - }) - - describe('signing', () => { - let celoTransaction: CeloTx - const unknownKey: string = '00000000-0000-0000-0000-000000000000' - const unknownAddress = ACCOUNT_ADDRESS_NEVER - - describe('using an unknown key', () => { - beforeEach(async () => { - celoTransaction = { - from: unknownAddress, - to: otherAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - test('fails getting address from key', async () => { - try { - await wallet.getAddressFromVersionName(unknownKey) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toMatch( - new RegExp( - `3 INVALID_ARGUMENT: Resource name '${unknownKey}' does not match pattern .*` - ) - ) - } - }) - - test('fails calling signTransaction', async () => { - try { - await wallet.signTransaction(celoTransaction) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`Could not find address ${unknownAddress}`) - } - }) - - test('fails calling signPersonalMessage', async () => { - const hexStr: string = '0xa1' - try { - await wallet.signPersonalMessage(unknownAddress, hexStr) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`Could not find address ${unknownAddress}`) - } - }) - - test('fails calling signTypedData', async () => { - try { - await wallet.signTypedData(unknownAddress, TYPED_DATA) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`Could not find address ${unknownAddress}`) - } - }) - }) - - describe('using a known key', () => { - const knownKey: string = GCP_VERSION_NAME! - beforeEach(async () => { - knownAddress = await wallet.getAddressFromVersionName(knownKey) - celoTransaction = { - from: knownAddress, - to: otherAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - describe('when calling signTransaction', () => { - test('succeeds', async () => { - const signedTx: EncodedTransaction = await wallet.signTransaction(celoTransaction) - expect(signedTx).not.toBeUndefined() - }) - test('with same signer', async () => { - const signedTx: EncodedTransaction = await wallet.signTransaction(celoTransaction) - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe(normalizeAddressWith0x(knownAddress)) - }) - // https://github.com/ethereum/go-ethereum/blob/38aab0aa831594f31d02c9f02bfacc0bef48405d/rlp/decode.go#L664 - test('signature with 0x00 prefix is canonicalized', async () => { - // This tx is carefully constructed to produce an S value with the first byte as 0x00 - const celoTransactionZeroPrefix = { - from: await wallet.getAddressFromVersionName(knownKey), - to: ACCOUNT_ADDRESS2, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 65, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - const signedTx: EncodedTransaction = await wallet.signTransaction( - celoTransactionZeroPrefix - ) - expect(signedTx.tx.s.startsWith('0x00')).toBeFalsy() - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe(normalizeAddressWith0x(knownAddress)) - }) - }) - - describe('when calling signPersonalMessage', () => { - test('succeeds', async () => { - const hexStr: string = ACCOUNT_ADDRESS1 - const signedMessage = await wallet.signPersonalMessage(knownAddress, hexStr) - expect(signedMessage).not.toBeUndefined() - const valid = verifySignature(hexStr, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }) - }) - - describe('when calling signTypedData', () => { - test('succeeds', async () => { - const signedMessage = await wallet.signTypedData(knownAddress, TYPED_DATA) - expect(signedMessage).not.toBeUndefined() - const valid = verifyEIP712TypedDataSigner(TYPED_DATA, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }) - }) - }) - }) -}) diff --git a/packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-wallet.ts b/packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-wallet.ts deleted file mode 100644 index a8567f25b94..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/src/gcp-hsm-wallet.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Address, ReadOnlyWallet } from '@celo/connect' -import { - bigNumberToBuffer, - bufferToBigNumber, - getAddressFromPublicKey, - publicKeyFromAsn1, - publicKeyPrefix, - sixtyFour, -} from '@celo/wallet-hsm' -import { RemoteWallet } from '@celo/wallet-remote' -import { KeyManagementServiceClient } from '@google-cloud/kms' -import { BigNumber } from 'bignumber.js' -import { GcpHsmSigner } from './gcp-hsm-signer' - -/** - * A Cloud HSM wallet built on GCP. - */ -export class GcpHsmWallet extends RemoteWallet implements ReadOnlyWallet { - private client: KeyManagementServiceClient | undefined - - constructor(private readonly versionName: string) { - super() - } - - private generateKmsClient() { - return new KeyManagementServiceClient() - } - - protected async loadAccountSigners(): Promise> { - if (!this.client) { - this.client = this.generateKmsClient() - } - const addressToSigner = new Map() - try { - const publicKey = await this.getPublicKeyFromVersionName(this.versionName) - const address = getAddressFromPublicKey(publicKey) - addressToSigner.set(address, new GcpHsmSigner(this.client, this.versionName, publicKey)) - } catch (e) { - console.error('Error loading account', e) - throw e - } - return addressToSigner - } - - private async getPublicKeyFromVersionName(versionName: string): Promise { - if (!this.client) { - throw new Error('GcpHsmWallet needs to be initialised first') - } - const [pk] = await this.client.getPublicKey({ name: versionName }) - if (!pk.pem) { - throw new Error('PublicKey pem is not defined') - } - const derEncodedPk = this.pemToDerEncode(pk.pem) - const pubKey = publicKeyFromAsn1(Buffer.from(derEncodedPk, 'base64')) - const pkbuff = bigNumberToBuffer(pubKey, sixtyFour) - const pubKeyPrefix = Buffer.from(new Uint8Array([publicKeyPrefix])) - const rawPublicKey = Buffer.concat([pubKeyPrefix, pkbuff]) - return bufferToBigNumber(rawPublicKey) - } - - /** - * Converts key from PEM to DER encoding. - * - * DER (Distinguished Encoding Rules) is a binary encoding for X.509 certificates and private keys. - * Unlike PEM, DER-encoded files do not contain plain text statements such as -----BEGIN CERTIFICATE----- - * - * https://www.ssl.com/guide/pem-der-crt-and-cer-x-509-encodings-and-conversions/#:~:text=DER%20(Distinguished%20Encoding%20Rules)%20is,commonly%20seen%20in%20Java%20contexts. - */ - private pemToDerEncode(pem: string): string { - return pem.split('\n').slice(1, -2).join('').trim() - } - - /** - * Returns the EVM address for the given key - * Useful for initially getting the 'from' field given a keyName - * @param versionName GCP version name for the HSM - */ - async getAddressFromVersionName(versionName: string): Promise
{ - const publicKey = await this.getPublicKeyFromVersionName(versionName) - return getAddressFromPublicKey(publicKey) - } -} diff --git a/packages/sdk/wallets/wallet-hsm-gcp/src/index.ts b/packages/sdk/wallets/wallet-hsm-gcp/src/index.ts deleted file mode 100644 index 5ef8a3b99f1..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './gcp-hsm-signer' -export * from './gcp-hsm-wallet' diff --git a/packages/sdk/wallets/wallet-hsm-gcp/tsconfig.json b/packages/sdk/wallets/wallet-hsm-gcp/tsconfig.json deleted file mode 100644 index e267672350c..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src"], - "references": [{ "path": "../../utils" }] -} diff --git a/packages/sdk/wallets/wallet-hsm-gcp/tslint.json b/packages/sdk/wallets/wallet-hsm-gcp/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/wallets/wallet-hsm-gcp/typedoc.json b/packages/sdk/wallets/wallet-hsm-gcp/typedoc.json deleted file mode 100644 index 86412dd4ba5..00000000000 --- a/packages/sdk/wallets/wallet-hsm-gcp/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "theme": "gitbook", - "out": "../../../docs/developer-resources/wallet-hsm-gcp/reference", - "gitRevision": "master" - } \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm/.gitignore b/packages/sdk/wallets/wallet-hsm/.gitignore deleted file mode 100644 index c3af857904e..00000000000 --- a/packages/sdk/wallets/wallet-hsm/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lib/ diff --git a/packages/sdk/wallets/wallet-hsm/.npmignore b/packages/sdk/wallets/wallet-hsm/.npmignore deleted file mode 100644 index d8d8e42b865..00000000000 --- a/packages/sdk/wallets/wallet-hsm/.npmignore +++ /dev/null @@ -1,24 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm/CHANGELOG.md b/packages/sdk/wallets/wallet-hsm/CHANGELOG.md deleted file mode 100644 index 3ad1558f74f..00000000000 --- a/packages/sdk/wallets/wallet-hsm/CHANGELOG.md +++ /dev/null @@ -1,31 +0,0 @@ -# @celo/wallet-hsm - -## 5.1.1 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0 - -## 5.1.1-beta.0 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - -## 5.1.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/base@5.0.5 - -## 5.1.0-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [53bbd4958] - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/wallets/wallet-hsm/README.md b/packages/sdk/wallets/wallet-hsm/README.md deleted file mode 100644 index 8860bea611b..00000000000 --- a/packages/sdk/wallets/wallet-hsm/README.md +++ /dev/null @@ -1 +0,0 @@ -Wallet-hsm provides signature utilities for using HSMs. diff --git a/packages/sdk/wallets/wallet-hsm/package.json b/packages/sdk/wallets/wallet-hsm/package.json deleted file mode 100644 index 4b57747ee96..00000000000 --- a/packages/sdk/wallets/wallet-hsm/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "@celo/wallet-hsm", - "version": "5.1.1", - "description": "HSM wallet implementation utils", - "author": "Celo", - "license": "Apache-2.0", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/wallets/", - "homepage": "https://docs.celo.org", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand --passWithNoTests", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@celo/base": "^6.0.0", - "@types/asn1js": "^0.0.2", - "@types/secp256k1": "^4.0.0", - "@types/debug": "^4.1.5", - "eth-lib": "^0.2.8", - "@ethereumjs/util": "8.0.5", - "asn1js": "^2.0.26", - "bignumber.js": "^9.0.0", - "elliptic": "^6.5.4", - "secp256k1": "^4.0.0" - }, - "devDependencies": { - "dotenv": "^8.2.0" - }, - "engines": { - "node": ">=8.14.2" - } -} \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-hsm/src/ber-utils.ts b/packages/sdk/wallets/wallet-hsm/src/ber-utils.ts deleted file mode 100644 index 1577ca345c1..00000000000 --- a/packages/sdk/wallets/wallet-hsm/src/ber-utils.ts +++ /dev/null @@ -1,57 +0,0 @@ -import * as asn1 from 'asn1js' -import { BigNumber } from 'bignumber.js' -import { bigNumberToBuffer, bufferToBigNumber } from './signature-utils' - -export const toArrayBuffer = (b: Buffer): ArrayBuffer => { - return b.buffer.slice(b.byteOffset, b.byteOffset + b.byteLength) -} - -export function publicKeyFromAsn1(b: Buffer): BigNumber { - const { result } = asn1.fromBER(toArrayBuffer(b)) - const values = (result as asn1.Sequence).valueBlock.value - if (values.length < 2) { - throw new Error('Cannot get public key from Asn1: invalid sequence') - } - const value = values[1] as asn1.BitString - return bufferToBigNumber(Buffer.from(value.valueBlock.valueHex.slice(1))) -} - -/** - * This is used only for mocking - * Creates an asn1 key to emulate KMS response - */ -export function asn1FromPublicKey(bn: BigNumber): Buffer { - const pkbuff = bigNumberToBuffer(bn, 64) - const sequence = new asn1.Sequence() - const values = sequence.valueBlock.value - for (const i of [0, 1]) { - values.push( - new asn1.Integer({ - value: i, - }) - ) - } - const value = values[1] as asn1.BitString - // Adding a dummy padding byte - const padding = Buffer.from(new Uint8Array([0x00])) - value.valueBlock.valueHex = Buffer.concat([padding, pkbuff]) - return Buffer.from(sequence.toBER(false)) -} - -/** - * AWS returns DER encoded signatures but DER is valid BER - */ -export function parseBERSignature(b: Buffer): { r: Buffer; s: Buffer } { - const { result } = asn1.fromBER(toArrayBuffer(b)) - - const parts = (result as asn1.Sequence).valueBlock.value as asn1.BitString[] - if (parts.length < 2) { - throw new Error('Invalid signature parsed') - } - const [part1, part2] = parts - - return { - r: Buffer.from(part1.valueBlock.valueHex), - s: Buffer.from(part2.valueBlock.valueHex), - } -} diff --git a/packages/sdk/wallets/wallet-hsm/src/index.ts b/packages/sdk/wallets/wallet-hsm/src/index.ts deleted file mode 100644 index 6ad69860083..00000000000 --- a/packages/sdk/wallets/wallet-hsm/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './ber-utils' -export * from './signature-utils' diff --git a/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts b/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts deleted file mode 100644 index fdcbb2c6073..00000000000 --- a/packages/sdk/wallets/wallet-hsm/src/signature-utils.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Address, ensureLeading0x } from '@celo/base/lib/address' -import * as ethUtil from '@ethereumjs/util' -import { BigNumber } from 'bignumber.js' -import { ecdsaRecover } from 'secp256k1' - -// 0x04 prefix indicates that the key is not compressed -// https://tools.ietf.org/html/rfc5480#section-2.2 -export const publicKeyPrefix: number = 0x04 -export const sixtyFour: number = 64 -export const thirtyTwo: number = 32 - -/** - * If the signature is in the "bottom" of the curve, it is non-canonical - * Non-canonical signatures are illegal in Ethereum and therefore the S value - * must be transposed to the lower intersection - * https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki#Low_S_values_in_signatures - */ -export const makeCanonical = (S: BigNumber): BigNumber => { - // tslint:disable-next-line:import-blacklist - const EC = require('elliptic').ec - const secp256k1Curve = new EC('secp256k1') - const curveN = bufferToBigNumber(secp256k1Curve.curve.n) - const isCanonical = S.comparedTo(curveN.dividedBy(2)) <= 0 - if (!isCanonical) { - return curveN.minus(S) - } - return S -} - -export const bufferToBigNumber = (input: Buffer): BigNumber => { - return new BigNumber(ensureLeading0x(input.toString('hex'))) -} - -export const bigNumberToBuffer = (input: BigNumber, lengthInBytes: number): Buffer => { - let hex = input.toString(16) - const hexLength = lengthInBytes * 2 // 2 hex characters per byte. - if (hex.length < hexLength) { - hex = '0'.repeat(hexLength - hex.length) + hex - } - return ethUtil.toBuffer(ensureLeading0x(hex)) as Buffer -} - -export class Signature { - public v: number - public r: Buffer - public s: Buffer - - constructor(v: number, r: Buffer, s: Buffer) { - this.v = v - this.r = r - this.s = s - } -} - -/** - * Attempts each recovery key to find a match - */ -export function recoverKeyIndex( - signature: Uint8Array, - publicKey: BigNumber, - hash: Uint8Array -): number { - for (let i = 0; i < 4; i++) { - const compressed = false - // Force types to be Uint8Array - const signatureArray = new Uint8Array(signature) - const hashArray = new Uint8Array(hash) - const recoveredPublicKeyByteArr = ecdsaRecover(signatureArray, i, hashArray, compressed) - const publicKeyBuff = Buffer.from(recoveredPublicKeyByteArr) - const recoveredPublicKey = bufferToBigNumber(publicKeyBuff) - if (publicKey.eq(recoveredPublicKey)) { - return i - } - } - throw new Error('Unable to generate recovery key from signature.') -} - -export function getAddressFromPublicKey(publicKey: BigNumber): Address { - const pkBuffer = ethUtil.toBuffer(ensureLeading0x(publicKey.toString(16))) - if (!ethUtil.isValidPublic(pkBuffer, true)) { - throw new Error(`Invalid secp256k1 public key ${publicKey}`) - } - const address = ethUtil.pubToAddress(pkBuffer, true) - return ensureLeading0x(address.toString('hex')) -} diff --git a/packages/sdk/wallets/wallet-hsm/tsconfig.json b/packages/sdk/wallets/wallet-hsm/tsconfig.json deleted file mode 100644 index 20bf8927c7a..00000000000 --- a/packages/sdk/wallets/wallet-hsm/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, -} diff --git a/packages/sdk/wallets/wallet-hsm/tslint.json b/packages/sdk/wallets/wallet-hsm/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/wallets/wallet-hsm/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/wallets/wallet-hsm/typedoc.json b/packages/sdk/wallets/wallet-hsm/typedoc.json deleted file mode 100644 index 49f9c1ab97f..00000000000 --- a/packages/sdk/wallets/wallet-hsm/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../../docs/sdk/docs/wallet-hsm", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-ledger/.gitignore b/packages/sdk/wallets/wallet-ledger/.gitignore deleted file mode 100644 index c3af857904e..00000000000 --- a/packages/sdk/wallets/wallet-ledger/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lib/ diff --git a/packages/sdk/wallets/wallet-ledger/.npmignore b/packages/sdk/wallets/wallet-ledger/.npmignore deleted file mode 100644 index d8d8e42b865..00000000000 --- a/packages/sdk/wallets/wallet-ledger/.npmignore +++ /dev/null @@ -1,24 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-ledger/CHANGELOG.md b/packages/sdk/wallets/wallet-ledger/CHANGELOG.md deleted file mode 100644 index b66a9c0fbd7..00000000000 --- a/packages/sdk/wallets/wallet-ledger/CHANGELOG.md +++ /dev/null @@ -1,52 +0,0 @@ -# @celo/wallet-ledger - -## 5.1.1 - -### Patch Changes - -- Updated dependencies [679ef0c60] -- Updated dependencies [97d5ccf43] - - @celo/connect@5.1.1 - - @celo/base@6.0.0 - - @celo/utils@5.0.6 - - @celo/wallet-base@5.1.1 - - @celo/wallet-remote@5.1.1 - -## 5.1.1-beta.0 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - - @celo/connect@5.1.1-beta.0 - - @celo/utils@5.0.6-beta.0 - - @celo/wallet-base@5.1.1-beta.0 - - @celo/wallet-remote@5.1.1-beta.0 - -## 5.1.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0 - - @celo/wallet-remote@5.1.0 - - @celo/wallet-base@5.1.0 - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.1.0-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0-beta.0 - - @celo/wallet-remote@5.1.0-beta.0 - - @celo/wallet-base@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/wallets/wallet-ledger/README.MD b/packages/sdk/wallets/wallet-ledger/README.MD deleted file mode 100644 index 3756d700f6f..00000000000 --- a/packages/sdk/wallets/wallet-ledger/README.MD +++ /dev/null @@ -1 +0,0 @@ -Wallet-ledger provides utilities for interacting with a Ledger hardware wallet. \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-ledger/jest.config.js b/packages/sdk/wallets/wallet-ledger/jest.config.js deleted file mode 100644 index 2681a75d5a6..00000000000 --- a/packages/sdk/wallets/wallet-ledger/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/wallets/wallet-ledger/package.json b/packages/sdk/wallets/wallet-ledger/package.json deleted file mode 100644 index 1846f095035..00000000000 --- a/packages/sdk/wallets/wallet-ledger/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "@celo/wallet-ledger", - "version": "5.1.1", - "description": "Ledger wallet implementation", - "author": "Celo", - "license": "Apache-2.0", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/wallets/", - "homepage": "https://docs.celo.org", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@celo/base": "^6.0.0", - "@celo/utils": "^5.0.6", - "@celo/wallet-base": "^5.1.1", - "@celo/wallet-remote": "^5.1.1", - "@celo/connect": "^5.1.1", - "@ethereumjs/util": "8.0.5", - "@ledgerhq/hw-app-eth": "~5.11.0", - "@ledgerhq/errors": "^5.50.0", - "@ledgerhq/hw-transport": "~5.11.0", - "debug": "^4.1.1", - "eth-lib": "^0.2.8", - "ethereum-cryptography": "1.2.0" - }, - "devDependencies": { - "@ledgerhq/hw-transport-node-hid": "^6.27.4", - "web3": "1.10.0" - }, - "engines": { - "node": ">=8.14.2" - } -} diff --git a/packages/sdk/wallets/wallet-ledger/src/data.ts b/packages/sdk/wallets/wallet-ledger/src/data.ts deleted file mode 100644 index caae060343c..00000000000 --- a/packages/sdk/wallets/wallet-ledger/src/data.ts +++ /dev/null @@ -1 +0,0 @@ -export = 'AAAAaARDRUxPRx7ON1DaI3+TuOM5xTaYm4l4pDgAAAASAACk7DBFAiEA5rECRg94+fCoIvoG9/5qWh62zl2C6Y+aFuuZrFe4CtcCIEJbRrkL3gqwT/Jj+7L3neazgpVCCTZZ3HX9JXXg5vleAAAAaARjVVNEdl3oFoRYYedaJfyhIrtomLixKCoAAAASAACk7DBFAiEApwQFHNBKXp+V2jq8BMD2y/5AwC9bhPQ2H4hT/vMl/B4CIFalOVtBFGREUKMU/F5vDlJLeQrTn6GQeDertpB2FpMvAAAAaARjRVVS2HY8uidqNzjm3oW0s79f3tbWynMAAAASAACk7DBFAiEAh2UeP1+SI2Ed5SiAjpJF6MkMrVa94gUwjJztyBlzhWMCIHfaOrEsxdxAGx+P+hxuSNO4zcw6KRLfJkkuic1V/CrHAAAAagZiIENFTE/dyb5X9VP+dXUtYWBrlMvX4CZO+AAAABIAAPNwMEUCIQCi62KsBfuNcfX0MriiRZ7a5DKERhtIz7sZ1SqBT7ruhgIgVrfmavyWzxzDW4AQeHn++A4qPjB1pQKoHvNXo8Hf1SMAAABpBmIgY1VTRGJJKmRKWI/ZBCcL7QatUrmr/qGuAAAAEgAA83AwRAIgGDYx4oB/gkYUqLeXqvEZXx9nOxVHzTe2ajyd2wnehxgCICQBe/rBPcXiaQJj3pdoXxroct/hV6r3G2G7y79EOEAPAAAAaQZiIGNFVVL57OMBJHrSziGJSUGDCiRw9Od0ygAAABIAAPNwMEQCIEdcFWP+HxEUoF1sCGVd34QGS0hL5cVUdrWdqVm3bYTgAiBCMA+Rg3Ubc3xla/35wzZesPlbeSMEPcr4uqL+8PeydwAAAGoGYSBDRUxP8ZSv31CwPmm9fQV8GqnhDJlU5MkAAAASAACu8zBFAiEAk/o0FBus2/QCrunFGEyoneQIRaMRC+y5L6Dvar8MU/kCIByJt2ziRhDG3AAbyXBIuJfZQujSHFcSJL3xF0xIlcPdAAAAaQZhIGNVU0SHQGn6HrFtRNYi8uDKJe6hcjabwQAAABIAAK7zMEQCIClrH2xgE3WMbD+hgQ7t5SiAcVG5WiUZ655voqCszKEoAiA/cO8UVgNY891MNJ5yeDk8w47WO0E1DQecrK71LR8g8gAAAGoGYSBjRVVSEMiSpuxDpT5F0LkWtLfTg7G3jA8AAAASAACu8zBFAiEAgpktbB1ZxyAwMJwKTSbZ30n8zgRuW0twbXoZxlsUAswCIHek4l4CIbjVMG2HVr0Ml9/8kA4F9dr69JBMaoSUkdKl' diff --git a/packages/sdk/wallets/wallet-ledger/src/index.ts b/packages/sdk/wallets/wallet-ledger/src/index.ts deleted file mode 100644 index bf98abf2b6a..00000000000 --- a/packages/sdk/wallets/wallet-ledger/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './ledger-signer' -export * from './ledger-wallet' diff --git a/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts b/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts deleted file mode 100644 index a49f39223d8..00000000000 --- a/packages/sdk/wallets/wallet-ledger/src/ledger-signer.ts +++ /dev/null @@ -1,200 +0,0 @@ -import { ensureLeading0x, trimLeading0x } from '@celo/base/lib/address' -import { RLPEncodedTx, Signer } from '@celo/connect' -import { EIP712TypedData, structHash } from '@celo/utils/lib/sign-typed-data-utils' -import * as ethUtil from '@ethereumjs/util' -import { TransportStatusError } from '@ledgerhq/errors' -import debugFactory from 'debug' -import { transportErrorFriendlyMessage } from './ledger-utils' -import { AddressValidation } from './ledger-wallet' -import { compareLedgerAppVersions, tokenInfoByAddressAndChainId } from './tokens' - -const debug = debugFactory('kit:wallet:ledger') -const CELO_APP_ACCEPTS_CONTRACT_DATA_FROM_VERSION = '1.0.2' - -/** - * Signs the EVM transaction with a Ledger device - */ -export class LedgerSigner implements Signer { - private ledger: any - private derivationPath: string - private validated: boolean = false - private ledgerAddressValidation: AddressValidation - private appConfiguration: { arbitraryDataEnabled: number; version: string } - - constructor( - ledger: any, - derivationPath: string, - ledgerAddressValidation: AddressValidation, - appConfiguration: { arbitraryDataEnabled: number; version: string } = { - arbitraryDataEnabled: 0, - version: '0.0.0', - } - ) { - this.ledger = ledger - this.derivationPath = derivationPath - this.ledgerAddressValidation = ledgerAddressValidation - this.appConfiguration = appConfiguration - } - - getNativeKey(): string { - return this.derivationPath - } - - async signTransaction( - addToV: number, - encodedTx: RLPEncodedTx - ): Promise<{ v: number; r: Buffer; s: Buffer }> { - try { - const validatedDerivationPath = await this.getValidatedDerivationPath() - await this.checkForKnownToken(encodedTx) - const signature = await this.ledger!.signTransaction( - validatedDerivationPath, - trimLeading0x(encodedTx.rlpEncode) // the ledger requires the rlpEncode without the leading 0x - ) - // EIP155 support. check/recalc signature v value. - const rv = parseInt(signature.v, 16) - // tslint:disable-next-line: no-bitwise - if (rv !== addToV && (rv & addToV) !== rv) { - addToV += 1 // add signature v bit. - } - signature.v = addToV.toString(10) - return { - v: signature.v, - r: ethUtil.toBuffer(ensureLeading0x(signature.r)) as Buffer, - s: ethUtil.toBuffer(ensureLeading0x(signature.s)) as Buffer, - } - } catch (error: any) { - if (error instanceof TransportStatusError) { - // The Ledger fails if it doesn't know the feeCurrency - if (error.statusCode === 27264 && error.statusText === 'INCORRECT_DATA') { - debug('Possible invalid feeCurrency field') - throw new Error( - 'ledger-signer@signTransaction: Incorrect Data. Verify that the feeCurrency is a valid one' - ) - } else { - transportErrorFriendlyMessage(error) - } - } - throw error - } - } - - async signPersonalMessage(data: string): Promise<{ v: number; r: Buffer; s: Buffer }> { - try { - // Ledger's signPersonalMessage adds the 'Ethereum' header - const signature = await this.ledger!.signPersonalMessage( - await this.getValidatedDerivationPath(), - trimLeading0x(data) - ) - - return { - v: signature.v, - r: ethUtil.toBuffer(ensureLeading0x(signature.r)) as Buffer, - s: ethUtil.toBuffer(ensureLeading0x(signature.s)) as Buffer, - } - } catch (error) { - if (error instanceof TransportStatusError) { - transportErrorFriendlyMessage(error) - } - throw error - } - } - - async signTypedData(typedData: EIP712TypedData): Promise<{ v: number; r: Buffer; s: Buffer }> { - try { - const domainSeparator = structHash('EIP712Domain', typedData.domain, typedData.types) - const hashStructMessage = structHash( - typedData.primaryType, - typedData.message, - typedData.types - ) - - const sig = await this.ledger!.signEIP712HashedMessage( - await this.getValidatedDerivationPath(), - domainSeparator, - hashStructMessage - ) - - return { - v: parseInt(sig.v, 10), - r: ethUtil.toBuffer(ensureLeading0x(sig.r)) as Buffer, - s: ethUtil.toBuffer(ensureLeading0x(sig.s)) as Buffer, - } - } catch (error) { - if (error instanceof TransportStatusError) { - transportErrorFriendlyMessage(error) - } - throw error - } - } - - private async getValidatedDerivationPath(): Promise { - if (this.validationRequired()) { - await this.ledger!.getAddress(this.derivationPath, true) - this.validated = true - } - return this.derivationPath - } - - private validationRequired(): boolean { - switch (this.ledgerAddressValidation) { - case AddressValidation.never: { - return false - } - case AddressValidation.everyTransaction: { - return true - } - case AddressValidation.firstTransactionPerAddress: { - return !this.validated - } - case AddressValidation.initializationOnly: { - // Already initialized, so no need to validate in this state - return false - } - default: { - throw new Error('ledger-signer@validationRequired: invalid ledgerValidation value') - } - } - } - - /** - * Display ERC20 info on ledger if contract is well known - * @param rlpEncoded Encoded transaction - */ - private async checkForKnownToken(rlpEncoded: RLPEncodedTx) { - if ( - compareLedgerAppVersions( - this.appConfiguration.version, - CELO_APP_ACCEPTS_CONTRACT_DATA_FROM_VERSION - ) >= 0 - ) { - const tokenInfo = tokenInfoByAddressAndChainId( - rlpEncoded.transaction.to!, - rlpEncoded.transaction.chainId! - ) - if (tokenInfo) { - await this.ledger!.provideERC20TokenInformation(tokenInfo) - } - if (rlpEncoded.transaction.feeCurrency && rlpEncoded.transaction.feeCurrency !== '0x') { - const feeTokenInfo = tokenInfoByAddressAndChainId( - rlpEncoded.transaction.feeCurrency!, - rlpEncoded.transaction.chainId! - ) - if (feeTokenInfo) { - await this.ledger!.provideERC20TokenInformation(feeTokenInfo) - } - } - } - } - - decrypt(_ciphertext: Buffer) { - throw new Error('Decryption operation is not supported on this signer') - // To make the compiler happy - return Promise.resolve(_ciphertext) - } - - computeSharedSecret(_publicKey: string) { - throw new Error('Not implemented') - return Promise.resolve(Buffer.from([])) - } -} diff --git a/packages/sdk/wallets/wallet-ledger/src/ledger-utils.ts b/packages/sdk/wallets/wallet-ledger/src/ledger-utils.ts deleted file mode 100644 index a165994a6ab..00000000000 --- a/packages/sdk/wallets/wallet-ledger/src/ledger-utils.ts +++ /dev/null @@ -1,14 +0,0 @@ -import debugFactory from 'debug' - -const debug = debugFactory('kit:wallet:ledger') - -export function transportErrorFriendlyMessage(error: any) { - debug('Possible connection lost with the ledger') - debug(`Error message: ${error.message}`) - if (error.statusCode === 26368 || error.statusCode === 26628 || error.message === 'NoDevice') { - throw new Error( - `Possible connection lost with the ledger. Check if still on and connected. ${error.message}` - ) - } - throw error -} diff --git a/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.test.ts b/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.test.ts deleted file mode 100644 index 9bd6b4aeeda..00000000000 --- a/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.test.ts +++ /dev/null @@ -1,526 +0,0 @@ -import { ensureLeading0x, normalizeAddressWith0x, trimLeading0x } from '@celo/base/lib/address' -import { CeloTx, EncodedTransaction } from '@celo/connect' -import { privateKeyToAddress } from '@celo/utils/lib/address' -import { verifySignature } from '@celo/utils/lib/signatureUtils' -import { - chainIdTransformationForSigning, - getHashFromEncoded, - recoverTransaction, - verifyEIP712TypedDataSigner, -} from '@celo/wallet-base' -import * as ethUtil from '@ethereumjs/util' -import TransportNodeHid from '@ledgerhq/hw-transport-node-hid' -// @ts-ignore-next-line eth-lib types not found -import { account as Account } from 'eth-lib' -import { keccak256 } from 'ethereum-cryptography/keccak' -import Web3 from 'web3' -import { AddressValidation, LedgerWallet } from './ledger-wallet' - -// Update this variable when testing using a physical device -const USE_PHYSICAL_LEDGER = false -// Increase timeout to give developer time to respond on device -const TEST_TIMEOUT_IN_MS = USE_PHYSICAL_LEDGER ? 30 * 1000 : 1 * 1000 - -const PRIVATE_KEY1 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' -const ACCOUNT_ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY1)) -const PRIVATE_KEY2 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fdeccc' -const ACCOUNT_ADDRESS2 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY2)) -const PRIVATE_KEY3 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fffff1' -const ACCOUNT_ADDRESS3 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY3)) -const PRIVATE_KEY4 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fffff2' -const ACCOUNT_ADDRESS4 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY4)) -const PRIVATE_KEY5 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fffff3' -const ACCOUNT_ADDRESS5 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY5)) -const PRIVATE_KEY_NEVER = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890ffffff' -const ACCOUNT_ADDRESS_NEVER = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY_NEVER)) - -const ledgerAddresses: { [myKey: string]: { address: string; privateKey: string } } = { - "44'/52752'/0'/0/0": { - address: ACCOUNT_ADDRESS1, - privateKey: PRIVATE_KEY1, - }, - "44'/52752'/0'/0/1": { - address: ACCOUNT_ADDRESS2, - privateKey: PRIVATE_KEY2, - }, - "44'/52752'/0'/0/2": { - address: ACCOUNT_ADDRESS3, - privateKey: PRIVATE_KEY3, - }, - "44'/52752'/0'/0/3": { - address: ACCOUNT_ADDRESS4, - privateKey: PRIVATE_KEY4, - }, - "44'/52752'/0'/0/4": { - address: ACCOUNT_ADDRESS5, - privateKey: PRIVATE_KEY5, - }, -} - -const CHAIN_ID = 44378 - -// Sample data from the official EIP-712 example: -// https://github.com/ethereum/EIPs/blob/master/assets/eip-712/Example.js -const TYPED_DATA = { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - Person: [ - { name: 'name', type: 'string' }, - { name: 'wallet', type: 'address' }, - ], - Mail: [ - { name: 'from', type: 'Person' }, - { name: 'to', type: 'Person' }, - { name: 'contents', type: 'string' }, - ], - }, - primaryType: 'Mail', - domain: { - name: 'Ether Mail', - version: '1', - chainId: 1, - verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', - }, - message: { - from: { - name: 'Cow', - wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', - }, - to: { - name: 'Bob', - wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB', - }, - contents: 'Hello, Bob!', - }, -} - -function mockLedger(wallet: LedgerWallet, mockForceValidation: () => void) { - jest.spyOn(wallet, 'generateNewLedger').mockImplementation((_transport: any) => { - return { - getAddress: async (derivationPath: string, forceValidation?: boolean) => { - if (forceValidation) { - mockForceValidation() - } - if (ledgerAddresses[derivationPath]) { - return { address: ledgerAddresses[derivationPath].address, derivationPath } - } - return {} - }, - signTransaction: async (derivationPath: string, data: string) => { - if (ledgerAddresses[derivationPath]) { - const hash = getHashFromEncoded(ensureLeading0x(data)) - const signature = Account.makeSigner(chainIdTransformationForSigning(CHAIN_ID))( - hash, - ledgerAddresses[derivationPath].privateKey - ) - const [v, r, s] = Account.decodeSignature(signature) - return { v, r, s } - } - throw new Error('Invalid Path') - }, - signPersonalMessage: async (derivationPath: string, data: string) => { - if (ledgerAddresses[derivationPath]) { - const dataBuff = ethUtil.toBuffer(ensureLeading0x(data)) - const msgHashBuff = ethUtil.hashPersonalMessage(dataBuff) - - const trimmedKey = trimLeading0x(ledgerAddresses[derivationPath].privateKey) - const pkBuffer = Buffer.from(trimmedKey, 'hex') - const signature = ethUtil.ecsign(msgHashBuff, pkBuffer) - return { - v: signature.v, - r: signature.r.toString('hex'), - s: signature.s.toString('hex'), - } - } - throw new Error('Invalid Path') - }, - signEIP712HashedMessage: async ( - derivationPath: string, - domainSeparator: Buffer, - structHash: Buffer - ) => { - const messageHash = keccak256( - Buffer.concat([Buffer.from('1901', 'hex'), domainSeparator, structHash]) - ) as Buffer - - const trimmedKey = trimLeading0x(ledgerAddresses[derivationPath].privateKey) - const pkBuffer = Buffer.from(trimmedKey, 'hex') - const signature = ethUtil.ecsign(messageHash, pkBuffer) - return { - v: signature.v, - r: signature.r.toString('hex'), - s: signature.s.toString('hex'), - } - }, - getAppConfiguration: async () => { - return { arbitraryDataEnabled: 1, version: '0.0.0' } - }, - } - }) -} - -describe('LedgerWallet class', () => { - let wallet: LedgerWallet - let hardwareWallet: LedgerWallet - let knownAddress = ACCOUNT_ADDRESS1 - let otherAddress = ACCOUNT_ADDRESS2 - const unknownAddress = ACCOUNT_ADDRESS_NEVER - let mockForceValidation: any - - beforeEach(async () => { - jest.setTimeout(TEST_TIMEOUT_IN_MS) - - if (USE_PHYSICAL_LEDGER) { - try { - // Use physical ledger if present - // Recreation of the connection will fail, therefore we use a single object - if (!hardwareWallet) { - const transport = await TransportNodeHid.open('') - hardwareWallet = new LedgerWallet(undefined, undefined, transport) - } - } catch (e) { - throw new Error( - 'Failed to connect to ledger. Ensure the Celo app is open and not already connected with a separate client' - ) - } - } - wallet = new LedgerWallet() - mockForceValidation = jest.fn((): void => { - // do nothing - }) - mockLedger(wallet, mockForceValidation) - }) - - describe('without initializing', () => { - let celoTransaction: CeloTx - beforeAll(() => { - celoTransaction = { - from: knownAddress, - to: knownAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - test('fails calling getAccounts', () => { - try { - wallet.getAccounts() - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe('wallet needs to be initialized first') - } - }) - - test('fails calling hasAccount', () => { - try { - wallet.hasAccount(ACCOUNT_ADDRESS1) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe('wallet needs to be initialized first') - } - }) - - test('fails calling signTransaction', async () => { - await expect(wallet.signTransaction(celoTransaction)).rejects.toThrowError() - }) - - test('fails calling signPersonalMessage', async () => { - await expect(wallet.signPersonalMessage(ACCOUNT_ADDRESS1, 'test')).rejects.toThrowError() - }) - - test('fails calling signTypedData', async () => { - await expect(wallet.signTypedData(ACCOUNT_ADDRESS1, TYPED_DATA)).rejects.toThrowError() - }) - }) - - describe('after initializing', () => { - beforeEach(async () => { - if (USE_PHYSICAL_LEDGER) { - wallet = hardwareWallet - } - await wallet.init() - if (USE_PHYSICAL_LEDGER) { - knownAddress = wallet.getAccounts()[0] - otherAddress = wallet.getAccounts()[1] - } - }, TEST_TIMEOUT_IN_MS) - - test('starts 5 accounts', () => { - expect(wallet.getAccounts().length).toBe(5) - }) - - test('returns true if it has the accounts', () => { - expect(wallet.hasAccount(knownAddress)).toBeTruthy() - }) - - test('returns false if it has the accounts', () => { - expect(wallet.hasAccount(ACCOUNT_ADDRESS_NEVER)).toBeFalsy() - }) - - describe('with an account', () => { - let celoTransaction: CeloTx - beforeEach(() => { - celoTransaction = { - from: unknownAddress, - to: unknownAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - describe('signing', () => { - describe('using an unknown address', () => { - test('fails calling signTransaction', async () => { - await expect(wallet.signTransaction(celoTransaction)).rejects.toThrowError() - }) - - test( - 'fails calling signPersonalMessage', - async () => { - const hexStr: string = '0xa1' - await expect( - wallet.signPersonalMessage(unknownAddress, hexStr) - ).rejects.toThrowError() - }, - TEST_TIMEOUT_IN_MS - ) - - test( - 'fails calling signTypedData', - async () => { - await expect(wallet.signTypedData(unknownAddress, TYPED_DATA)).rejects.toThrowError() - }, - TEST_TIMEOUT_IN_MS - ) - }) - - describe('using a known address', () => { - describe('when calling signTransaction', () => { - beforeEach(() => { - celoTransaction = { - from: knownAddress, - to: otherAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - test( - 'succeeds', - async () => { - await expect(wallet.signTransaction(celoTransaction)).resolves.not.toBeUndefined() - }, - TEST_TIMEOUT_IN_MS - ) - - test( - 'with same signer', - async () => { - const signedTx: EncodedTransaction = await wallet.signTransaction(celoTransaction) - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe( - normalizeAddressWith0x(knownAddress) - ) - }, - TEST_TIMEOUT_IN_MS - ) - - // https://github.com/ethereum/go-ethereum/blob/38aab0aa831594f31d02c9f02bfacc0bef48405d/rlp/decode.go#L664 - test( - 'signature with 0x00 prefix is canonicalized', - async () => { - // This tx is carefully constructed to produce an S value with the first byte as 0x00 - const celoTransactionZeroPrefix = { - from: knownAddress, - to: otherAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 65, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: ACCOUNT_ADDRESS_NEVER, - gatewayFee: '0x5678', - data: '0xabcdef', - } - - const signedTx: EncodedTransaction = await wallet.signTransaction( - celoTransactionZeroPrefix - ) - expect(signedTx.tx.s.startsWith('0x00')).toBeFalsy() - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe( - normalizeAddressWith0x(knownAddress) - ) - }, - TEST_TIMEOUT_IN_MS - ) - }) - }) - - describe('when calling signPersonalMessage', () => { - test( - 'succeeds', - async () => { - const hexStr: string = ACCOUNT_ADDRESS1 - const signedMessage = await wallet.signPersonalMessage(knownAddress, hexStr) - expect(signedMessage).not.toBeUndefined() - const valid = verifySignature(hexStr, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }, - TEST_TIMEOUT_IN_MS - ) - }) - - describe('when calling signTypedData', () => { - test( - 'succeeds', - async () => { - const signedMessage = await wallet.signTypedData(knownAddress, TYPED_DATA) - expect(signedMessage).not.toBeUndefined() - const valid = verifyEIP712TypedDataSigner(TYPED_DATA, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }, - TEST_TIMEOUT_IN_MS - ) - }) - }) - }) - }) - - /** - * These tests are entirely mocked for now - */ - describe('asking for addresses validations', () => { - beforeEach(() => { - knownAddress = ACCOUNT_ADDRESS1 - otherAddress = ACCOUNT_ADDRESS2 - }) - - describe('never', () => { - beforeEach(() => { - wallet = new LedgerWallet(undefined, undefined, {}, AddressValidation.never) - mockForceValidation = jest.fn((): void => { - // do nothing - }) - mockLedger(wallet, mockForceValidation) - }) - - it("won't validate", async () => { - await wallet.init() - expect(mockForceValidation.mock.calls.length).toBe(0) - await wallet.signPersonalMessage(knownAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(0) - }) - }) - - describe('only in the initialization', () => { - beforeEach(() => { - wallet = new LedgerWallet(undefined, undefined, {}, AddressValidation.initializationOnly) - mockForceValidation = jest.fn((): void => { - // do nothing - }) - mockLedger(wallet, mockForceValidation) - }) - - it('will validate the addresses only in the initialization', async () => { - await wallet.init() - expect(mockForceValidation.mock.calls.length).toBe(5) - await wallet.signPersonalMessage(knownAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(5) - }) - }) - - describe('every transaction', () => { - beforeEach(() => { - wallet = new LedgerWallet(undefined, undefined, {}, AddressValidation.everyTransaction) - mockForceValidation = jest.fn((): void => { - // do nothing - }) - mockLedger(wallet, mockForceValidation) - }) - - it('will validate every transaction', async () => { - await wallet.init() - expect(mockForceValidation.mock.calls.length).toBe(0) - await wallet.signPersonalMessage(knownAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(1) - await wallet.signPersonalMessage(knownAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(2) - }) - }) - - describe('once per address', () => { - beforeEach(() => { - wallet = new LedgerWallet( - undefined, - undefined, - {}, - AddressValidation.firstTransactionPerAddress - ) - mockForceValidation = jest.fn((): void => { - // do nothing - }) - mockLedger(wallet, mockForceValidation) - }) - - it('will validate only in the first transaction of the address', async () => { - await wallet.init() - expect(mockForceValidation.mock.calls.length).toBe(0) - await wallet.signPersonalMessage(knownAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(1) - await wallet.signPersonalMessage(knownAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(1) - await wallet.signPersonalMessage(otherAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(2) - await wallet.signPersonalMessage(otherAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(2) - }) - }) - - describe('by default (acts as firstTransactionPerAddress)', () => { - beforeEach(() => { - wallet = new LedgerWallet() - mockForceValidation = jest.fn((): void => { - // do nothing - }) - mockLedger(wallet, mockForceValidation) - }) - - it('will validate only in the first transaction of the address', async () => { - await wallet.init() - expect(mockForceValidation.mock.calls.length).toBe(0) - await wallet.signPersonalMessage(knownAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(1) - await wallet.signPersonalMessage(knownAddress, ACCOUNT_ADDRESS_NEVER) - expect(mockForceValidation.mock.calls.length).toBe(1) - }) - }) - }) -}) diff --git a/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts b/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts deleted file mode 100644 index 0ac4d7aa5d4..00000000000 --- a/packages/sdk/wallets/wallet-ledger/src/ledger-wallet.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { CELO_DERIVATION_PATH_BASE } from '@celo/base/lib/account' -import { zeroRange } from '@celo/base/lib/collections' -import { Address, CeloTx, EncodedTransaction, ReadOnlyWallet } from '@celo/connect' -import { RemoteWallet } from '@celo/wallet-remote' -import { TransportError, TransportStatusError } from '@ledgerhq/errors' -import Ledger from '@ledgerhq/hw-app-eth' -import debugFactory from 'debug' -import { LedgerSigner } from './ledger-signer' -import { transportErrorFriendlyMessage } from './ledger-utils' - -export const CELO_BASE_DERIVATION_PATH = `${CELO_DERIVATION_PATH_BASE.slice(2)}/0` -const ADDRESS_QTY = 5 - -// Validates an address using the Ledger -export enum AddressValidation { - // Validates every address required only when the ledger is initialized - initializationOnly, - // Validates the address every time a transaction is made - everyTransaction, - // Validates the address the first time a transaction is made for that specific address - firstTransactionPerAddress, - // Never validates the addresses - never, -} - -export async function newLedgerWalletWithSetup( - transport: any, - derivationPathIndexes?: number[], - baseDerivationPath?: string, - ledgerAddressValidation?: AddressValidation -): Promise { - const wallet = new LedgerWallet( - derivationPathIndexes, - baseDerivationPath, - transport, - ledgerAddressValidation - ) - await wallet.init() - return wallet -} - -const debug = debugFactory('kit:wallet:ledger') - -export class LedgerWallet extends RemoteWallet implements ReadOnlyWallet { - private ledger: any - - /** - * @param derivationPathIndexes number array of "address_index" for the base derivation path. - * Default: Array[0..9]. - * Example: [3, 99, 53] will retrieve the derivation paths of - * [`${baseDerivationPath}/3`, `${baseDerivationPath}/99`, `${baseDerivationPath}/53`] - * @param baseDerivationPath base derivation path. Default: "44'/52752'/0'/0" - * @param transport Transport to connect the ledger device - */ - constructor( - readonly derivationPathIndexes: number[] = zeroRange(ADDRESS_QTY), - readonly baseDerivationPath: string = CELO_BASE_DERIVATION_PATH, - readonly transport: any = {}, - readonly ledgerAddressValidation: AddressValidation = AddressValidation.firstTransactionPerAddress - ) { - super() - const invalidDPs = derivationPathIndexes.some( - (value) => !(Number.isInteger(value) && value >= 0) - ) - if (invalidDPs) { - throw new Error('ledger-wallet: Invalid address index') - } - } - - signTransaction(txParams: CeloTx): Promise { - // CeloLedger does not support maxFeePerGas and maxPriorityFeePerGas yet - txParams.gasPrice = txParams.gasPrice ?? txParams.maxFeePerGas - if (txParams.maxFeePerGas || txParams.maxPriorityFeePerGas) { - console.info( - 'maxFeePerGas and maxPriorityFeePerGas are not supported on Ledger yet. Automatically using gasPrice instead.' - ) - delete txParams.maxFeePerGas - delete txParams.maxPriorityFeePerGas - } - return super.signTransaction(txParams) - } - - protected async loadAccountSigners(): Promise> { - if (!this.ledger) { - this.ledger = this.generateNewLedger(this.transport) - } - debug('Fetching addresses from the ledger') - let addressToSigner = new Map() - try { - addressToSigner = await this.retrieveAccounts() - } catch (error) { - if (error instanceof TransportStatusError || error instanceof TransportError) { - transportErrorFriendlyMessage(error) - } - throw error - } - return addressToSigner - } - - // Extracted for testing purpose - private generateNewLedger(transport: any) { - return new Ledger(transport) - } - - private async retrieveAccounts(): Promise> { - const addressToSigner = new Map() - const appConfiguration = await this.retrieveAppConfiguration() - const validationRequired = this.ledgerAddressValidation === AddressValidation.initializationOnly - - // Each address must be retrieved synchronously, (ledger lock) - for (const value of this.derivationPathIndexes) { - const derivationPath = `${this.baseDerivationPath}/${value}` - const addressInfo = await this.ledger!.getAddress(derivationPath, validationRequired) - addressToSigner.set( - addressInfo.address, - new LedgerSigner( - this.ledger, - derivationPath, - this.ledgerAddressValidation, - appConfiguration - ) - ) - } - return addressToSigner - } - - private async retrieveAppConfiguration(): Promise<{ - arbitraryDataEnabled: number - version: string - }> { - const appConfiguration = await this.ledger!.getAppConfiguration() - if (!appConfiguration.arbitraryDataEnabled) { - console.warn( - 'Beware, your ledger does not allow the use of contract data. Some features may not work correctly, including token transfers. You can enable it from the ledger app settings.' - ) - } - return appConfiguration - } -} diff --git a/packages/sdk/wallets/wallet-ledger/src/tokens.ts b/packages/sdk/wallets/wallet-ledger/src/tokens.ts deleted file mode 100644 index 4e242a7d601..00000000000 --- a/packages/sdk/wallets/wallet-ledger/src/tokens.ts +++ /dev/null @@ -1,99 +0,0 @@ -// Copied from '@ledgerhq/hw-app-eth/erc20' because we need to change the path of the blob and support for address+chainId -import { Address, normalizeAddressWith0x } from '@celo/base/lib/address' -import blob from './data' - -/** - * Retrieve the token information by a given contract address and chainId if any - */ -export const tokenInfoByAddressAndChainId = ( - contract: Address, - chainId: number -): TokenInfo | null | undefined => get().byContractKey(generateContractKey(contract, chainId)) - -/** - * list all the ERC20 tokens informations - */ -export const list = (): TokenInfo[] => get().list() - -export interface TokenInfo { - contractAddress: Address - ticker: string - decimals: number - chainId: number - signature: Buffer - data: Buffer -} - -/** - * @return - * -1: version1 < version2, - * 0: version1 == version2, - * 1: version1 > version2 - */ -export function compareLedgerAppVersions(version1: string, version2: string): number { - const numberV1 = stringVersionToNumber(version1) - const numberV2 = stringVersionToNumber(version2) - return numberV1 < numberV2 ? -1 : numberV1 === numberV2 ? 0 : 1 -} - -function stringVersionToNumber(version: string): number { - const parts = version.split('.') - return parts.reduce((accum, part) => (accum + Number(part)) * 1000, 0) -} - -export interface API { - byContractKey: (arg0: string) => TokenInfo | null | undefined - list: () => TokenInfo[] -} - -function generateContractKey(contract: Address, chainId: number): string { - return [normalizeAddressWith0x(contract), chainId].join('-') -} - -// this internal get() will lazy load and cache the data from the erc20 data blob -const get: () => API = (() => { - let cache: API - return () => { - if (cache) { - return cache - } - const buf = Buffer.from(blob, 'base64') - const byContract: { [id: string]: TokenInfo } = {} - const entries: TokenInfo[] = [] - let i = 0 - while (i < buf.length) { - const length = buf.readUInt32BE(i) - i += 4 - const item = buf.slice(i, i + length) - let j = 0 - const tickerLength = item.readUInt8(j) - j += 1 - const ticker = item.slice(j, j + tickerLength).toString('ascii') - j += tickerLength - const contractAddress: string = normalizeAddressWith0x(item.slice(j, j + 20).toString('hex')) - j += 20 - const decimals = item.readUInt32BE(j) - j += 4 - const chainId = item.readUInt32BE(j) - j += 4 - const signature = item.slice(j) - const entry: TokenInfo = { - ticker, - contractAddress, - decimals, - chainId, - signature, - data: item, - } - entries.push(entry) - byContract[generateContractKey(contractAddress, chainId)] = entry - i += length - } - const api = { - list: () => entries, - byContractKey: (id: string) => byContract[id], - } - cache = api - return api - } -})() diff --git a/packages/sdk/wallets/wallet-ledger/tokens-all-networks.json b/packages/sdk/wallets/wallet-ledger/tokens-all-networks.json deleted file mode 100644 index ec8adbd55b3..00000000000 --- a/packages/sdk/wallets/wallet-ledger/tokens-all-networks.json +++ /dev/null @@ -1,46 +0,0 @@ -[{ - "ticker": "CELO", - "address": "471ece3750da237f93b8e339c536989b8978a438", - "decimals": 18, - "chainId": 42220 -},{ - "ticker": "cUSD", - "address": "765de816845861e75a25fca122bb6898b8b1282a", - "decimals": 18, - "chainId": 42220 -},{ - "ticker": "cEUR", - "address": "D8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73", - "decimals": 18, - "chainId": 42220 -},{ - "ticker": "b CELO", - "address": "dDc9bE57f553fe75752D61606B94CBD7e0264eF8", - "decimals": 18, - "chainId": 62320 -},{ - "ticker": "b cUSD", - "address": "62492A644A588FD904270BeD06ad52B9abfEA1aE", - "decimals": 18, - "chainId": 62320 -},{ - "ticker": "b cEUR", - "address": "f9ecE301247aD2CE21894941830A2470f4E774ca", - "decimals": 18, - "chainId": 62320 -},{ - "ticker": "a CELO", - "address": "F194afDf50B03e69Bd7D057c1Aa9e10c9954E4C9", - "decimals": 18, - "chainId": 44787 -},{ - "ticker": "a cUSD", - "address": "874069Fa1Eb16D44d622F2e0Ca25eeA172369bC1", - "decimals": 18, - "chainId": 44787 - },{ - "ticker": "a cEUR", - "address": "10c892A6EC43a53E45D0B916B4b7D383B1b78C0F", - "decimals": 18, - "chainId": 44787 -}] \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-ledger/tsconfig.json b/packages/sdk/wallets/wallet-ledger/tsconfig.json deleted file mode 100644 index e6a754088ba..00000000000 --- a/packages/sdk/wallets/wallet-ledger/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src", "types"], - "references": [{ "path": "../../utils" }] -} diff --git a/packages/sdk/wallets/wallet-ledger/tslint.json b/packages/sdk/wallets/wallet-ledger/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/wallets/wallet-ledger/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/wallets/wallet-ledger/typedoc.json b/packages/sdk/wallets/wallet-ledger/typedoc.json deleted file mode 100644 index 78d2626e4f5..00000000000 --- a/packages/sdk/wallets/wallet-ledger/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../../docs/sdk/docs/wallet-ledger", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-ledger/types/hw-app-eth.d.ts b/packages/sdk/wallets/wallet-ledger/types/hw-app-eth.d.ts deleted file mode 100644 index 22f71893d46..00000000000 --- a/packages/sdk/wallets/wallet-ledger/types/hw-app-eth.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module '@ledgerhq/errors' -declare module '@ledgerhq/hw-app-eth' -declare module '@ledgerhq/hw-transport' -declare module '@ledgerhq/hw-transport-node-hid' diff --git a/packages/sdk/wallets/wallet-local/.gitignore b/packages/sdk/wallets/wallet-local/.gitignore deleted file mode 100644 index c3af857904e..00000000000 --- a/packages/sdk/wallets/wallet-local/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lib/ diff --git a/packages/sdk/wallets/wallet-local/.npmignore b/packages/sdk/wallets/wallet-local/.npmignore deleted file mode 100644 index e905e75e2ab..00000000000 --- a/packages/sdk/wallets/wallet-local/.npmignore +++ /dev/null @@ -1,25 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-local/CHANGELOG.md b/packages/sdk/wallets/wallet-local/CHANGELOG.md deleted file mode 100644 index 2bb6a1787cb..00000000000 --- a/packages/sdk/wallets/wallet-local/CHANGELOG.md +++ /dev/null @@ -1,50 +0,0 @@ -# @celo/wallet-local - -## 5.1.1 - -### Patch Changes - -- Updated dependencies [679ef0c60] - - @celo/connect@5.1.1 - - @celo/utils@5.0.6 - - @celo/wallet-base@5.1.1 - -## 5.1.1-beta.0 - -### Patch Changes - -- @celo/connect@5.1.1-beta.0 -- @celo/utils@5.0.6-beta.0 -- @celo/wallet-base@5.1.1-beta.0 - -## 5.1.0 - -### Minor Changes - -- 53bbd4958: Add cip64 support for feeCurrency Transactions. Note this is the replacement for the deprecated cip42 and legacy tx types https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip/0064.md - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0 - - @celo/wallet-base@5.1.0 - - @celo/utils@5.0.5 - -## 5.1.0-beta.0 - -### Minor Changes - -- 53bbd4958: Add cip64 support for feeCurrency Transactions. Note this is the replacement for the deprecated cip42 and legacy tx types https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip/0064.md - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0-beta.0 - - @celo/wallet-base@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 diff --git a/packages/sdk/wallets/wallet-local/Readme.MD b/packages/sdk/wallets/wallet-local/Readme.MD deleted file mode 100644 index 0cf94e41bc8..00000000000 --- a/packages/sdk/wallets/wallet-local/Readme.MD +++ /dev/null @@ -1 +0,0 @@ -Wallet-localprovides utilities for locally managing wallet by importing a private key string. \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-local/jest.config.js b/packages/sdk/wallets/wallet-local/jest.config.js deleted file mode 100644 index 2681a75d5a6..00000000000 --- a/packages/sdk/wallets/wallet-local/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/wallets/wallet-local/package.json b/packages/sdk/wallets/wallet-local/package.json deleted file mode 100644 index f97ba481b5a..00000000000 --- a/packages/sdk/wallets/wallet-local/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "@celo/wallet-local", - "version": "5.1.1", - "description": "Local wallet implementation", - "author": "Celo", - "license": "Apache-2.0", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/wallets/", - "homepage": "https://docs.celo.org", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@celo/utils": "^5.0.6", - "@celo/connect": "^5.1.1", - "@celo/wallet-base": "^5.1.1", - "eth-lib": "^0.2.8", - "@ethereumjs/util": "8.0.5" - }, - "devDependencies": { - "web3": "1.10.0", - "viem": "~1.5.4" - }, - "engines": { - "node": ">=8.14.2" - } -} diff --git a/packages/sdk/wallets/wallet-local/src/index.ts b/packages/sdk/wallets/wallet-local/src/index.ts deleted file mode 100644 index 8d0d26bf273..00000000000 --- a/packages/sdk/wallets/wallet-local/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './local-signer' -export * from './local-wallet' diff --git a/packages/sdk/wallets/wallet-local/src/local-signer.ts b/packages/sdk/wallets/wallet-local/src/local-signer.ts deleted file mode 100644 index 0f24c8241a3..00000000000 --- a/packages/sdk/wallets/wallet-local/src/local-signer.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { RLPEncodedTx, Signer } from '@celo/connect' -import { ensureLeading0x, trimLeading0x } from '@celo/utils/lib/address' -import { computeSharedSecret as computeECDHSecret } from '@celo/utils/lib/ecdh' -import { Decrypt } from '@celo/utils/lib/ecies' -import { EIP712TypedData, generateTypedDataHash } from '@celo/utils/lib/sign-typed-data-utils' -import { decodeSig, getHashFromEncoded } from '@celo/wallet-base' -import * as ethUtil from '@ethereumjs/util' -// @ts-ignore eth-lib types not found -import { account as Account } from 'eth-lib' - -/** - * Signs the EVM transaction using the provided private key - */ -export class LocalSigner implements Signer { - private privateKey: string - - constructor(privateKey: string) { - this.privateKey = privateKey - } - - getNativeKey(): string { - return this.privateKey - } - - async signTransaction( - addToV: number, - encodedTx: RLPEncodedTx - ): Promise<{ v: number; r: Buffer; s: Buffer }> { - const hash = getHashFromEncoded(encodedTx.rlpEncode) - const signature = Account.makeSigner(addToV)(hash, this.privateKey) - return decodeSig(signature) - } - - async signPersonalMessage(data: string): Promise<{ v: number; r: Buffer; s: Buffer }> { - // ecsign needs a privateKey without 0x - const trimmedKey = trimLeading0x(this.privateKey) - const pkBuffer = Buffer.from(trimmedKey, 'hex') - - const dataBuff = ethUtil.toBuffer(ensureLeading0x(data)) - const msgHashBuff = ethUtil.hashPersonalMessage(dataBuff) - - const sig = ethUtil.ecsign(msgHashBuff, pkBuffer) - return { - v: Number(sig.v), - r: Buffer.from(sig.r), - s: Buffer.from(sig.s), - } - } - - async signTypedData(typedData: EIP712TypedData): Promise<{ v: number; r: Buffer; s: Buffer }> { - const dataBuff = generateTypedDataHash(typedData) - const trimmedKey = trimLeading0x(this.privateKey) - const pkBuffer = Buffer.from(trimmedKey, 'hex') - - const sig = ethUtil.ecsign(dataBuff, pkBuffer) - return { - v: Number(sig.v), - r: Buffer.from(sig.r), - s: Buffer.from(sig.s), - } - } - - decrypt(ciphertext: Buffer) { - const decryptedPlaintext = Decrypt( - Buffer.from(trimLeading0x(this.privateKey), 'hex'), - ciphertext - ) - return Promise.resolve(decryptedPlaintext) - } - - computeSharedSecret(publicKey: string): Promise { - return Promise.resolve(computeECDHSecret(this.privateKey, publicKey)) - } -} diff --git a/packages/sdk/wallets/wallet-local/src/local-wallet.test.ts b/packages/sdk/wallets/wallet-local/src/local-wallet.test.ts deleted file mode 100644 index 692c7c9a277..00000000000 --- a/packages/sdk/wallets/wallet-local/src/local-wallet.test.ts +++ /dev/null @@ -1,523 +0,0 @@ -import { StrongAddress } from '@celo/base/lib/address' -import { CeloTx, EncodedTransaction, Hex } from '@celo/connect' -import { - normalizeAddressWith0x, - privateKeyToAddress, - privateKeyToPublicKey, - trimLeading0x, -} from '@celo/utils/lib/address' -import { Encrypt } from '@celo/utils/lib/ecies' -import { verifySignature } from '@celo/utils/lib/signatureUtils' -import { recoverTransaction, verifyEIP712TypedDataSigner } from '@celo/wallet-base' -import { TransactionSerializableEIP1559, parseTransaction } from 'viem' -import { privateKeyToAccount } from 'viem/accounts' -import Web3 from 'web3' -import { LocalWallet } from './local-wallet' - -const CHAIN_ID = 44378 - -// Sample data from the official EIP-712 example: -// https://github.com/ethereum/EIPs/blob/master/assets/eip-712/Example.js -const TYPED_DATA = { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - Person: [ - { name: 'name', type: 'string' }, - { name: 'wallet', type: 'address' }, - ], - Mail: [ - { name: 'from', type: 'Person' }, - { name: 'to', type: 'Person' }, - { name: 'contents', type: 'string' }, - ], - }, - primaryType: 'Mail', - domain: { - name: 'Ether Mail', - version: '1', - chainId: 1, - verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', - }, - message: { - from: { - name: 'Cow', - wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', - }, - to: { - name: 'Bob', - wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB', - }, - contents: 'Hello, Bob!', - }, -} - -const PRIVATE_KEY1 = '1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' -const PUBLIC_KEY1 = privateKeyToPublicKey(PRIVATE_KEY1) -const ACCOUNT_ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY1)) -const PRIVATE_KEY2 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fdeccc' -const ACCOUNT_ADDRESS2 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY2)) - -const FEE_ADDRESS = ACCOUNT_ADDRESS1 -const CURRENCY_ADDRESS = ACCOUNT_ADDRESS2 - -describe('Local wallet class', () => { - let wallet: LocalWallet - - beforeEach(() => { - wallet = new LocalWallet() - }) - - test('starts with no accounts', () => { - expect(wallet.getAccounts().length).toBe(0) - }) - - test('fails if you add an invalid private key', () => { - try { - wallet.addAccount('this is not a valid private key') - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe('Expected 32 bytes of private key') - } - }) - - test('succeeds if you add an private key without 0x', () => { - wallet.addAccount(PRIVATE_KEY1) - expect(wallet.hasAccount(ACCOUNT_ADDRESS1)).toBeTruthy() - }) - - test('succeeds if you add an private key with 0x', () => { - wallet.addAccount(PRIVATE_KEY2) - expect(wallet.hasAccount(ACCOUNT_ADDRESS2)).toBeTruthy() - }) - - describe('with an account', () => { - const knownAddress = ACCOUNT_ADDRESS1 - const otherAddress = ACCOUNT_ADDRESS2 - - beforeEach(() => { - wallet.addAccount(PRIVATE_KEY1) - }) - - test('all address can be retrieved', () => { - expect(wallet.getAccounts()).toMatchObject([ACCOUNT_ADDRESS1]) - }) - - describe('signing', () => { - describe('using an unknown address', () => { - let celoTransaction: CeloTx - const unknownAddress: string = ACCOUNT_ADDRESS2 - - beforeEach(() => { - celoTransaction = { - from: unknownAddress, - to: unknownAddress, - chainId: 2, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: CURRENCY_ADDRESS, - gatewayFeeRecipient: FEE_ADDRESS, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - test('fails calling signTransaction', async () => { - await expect( - wallet.signTransaction(celoTransaction) - ).rejects.toThrowErrorMatchingInlineSnapshot( - `"Could not find address 0x588e4b68193001e4d10928660ab4165b813717c0"` - ) - }) - - test('fails calling signPersonalMessage', async () => { - const hexStr: string = '0xa1' - await expect( - wallet.signPersonalMessage(unknownAddress, hexStr) - ).rejects.toThrowErrorMatchingInlineSnapshot( - `"Could not find address 0x588e4b68193001e4d10928660ab4165b813717c0"` - ) - }) - - test('fails calling signTypedData', async () => { - await expect( - wallet.signTypedData(unknownAddress, TYPED_DATA) - ).rejects.toThrowErrorMatchingInlineSnapshot( - `"Could not find address 0x588e4b68193001e4d10928660ab4165b813717c0"` - ) - }) - }) - - describe('using a known address', () => { - describe('when calling signTransaction', () => { - let celoTransactionWithGasPrice: CeloTx - - beforeEach(() => { - celoTransactionWithGasPrice = { - from: knownAddress, - to: otherAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: FEE_ADDRESS, - gatewayFee: '0x5678', - data: '0xabcdef' as const, - } - }) - - test('succeeds with legacy', async () => { - await expect(wallet.signTransaction(celoTransactionWithGasPrice)).resolves - .toMatchInlineSnapshot(` - { - "raw": "0xf88480630a80941be31a94361a391bbafb2a4ccd704f57dc04d4bb82567894588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdef83015ad8a09e121a99dc0832a9f4d1d71500b3c8a69a3c064d437c225d6292577ffcc45a71a02c5efa3c4b58953c35968e42d11d3882dacacf45402ee802824268b7cd60daff", - "tx": { - "feeCurrency": "0x", - "gas": "0x0a", - "gasPrice": "0x63", - "gatewayFee": "0x5678", - "gatewayFeeRecipient": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "hash": "0xd24898ee3f68caa01fe065784453db7360bf783060fcbd18033f9d254ab8b082", - "input": "0xabcdef", - "nonce": "0", - "r": "0x9e121a99dc0832a9f4d1d71500b3c8a69a3c064d437c225d6292577ffcc45a71", - "s": "0x2c5efa3c4b58953c35968e42d11d3882dacacf45402ee802824268b7cd60daff", - "to": "0x588e4b68193001e4d10928660ab4165b813717c0", - "v": "0x015ad8", - "value": "0x0de0b6b3a7640000", - }, - "type": "celo-legacy", - } - `) - }) - - test('succeeds with eip1559', async () => { - const transaction1559 = { - ...celoTransactionWithGasPrice, - gasPrice: undefined, - feeCurrency: undefined, - maxFeePerGas: '99', - maxPriorityFeePerGas: '99', - } - await expect(wallet.signTransaction(transaction1559)).resolves.toMatchInlineSnapshot(` - { - "raw": "0x7cf88682ad5a8063630a80941be31a94361a391bbafb2a4ccd704f57dc04d4bb82567894588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdefc001a0cfa1e1b30d1e4617ce80922d853c5e8b54b21f5ed6604438f90280ef2f0b7fd0a06fd8eee02fbdd421136fb45e6851ce72b5d87a2c06b2e136ef1a062df9256f4e", - "tx": { - "accessList": [], - "feeCurrency": "0x", - "gas": "0x0a", - "gatewayFee": "0x5678", - "gatewayFeeRecipient": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "hash": "0x29327536ba9901fde64b1b86882fd173517b41cd8bc8245e3761847d9b231c6d", - "input": "0xabcdef", - "maxFeePerGas": "0x63", - "maxPriorityFeePerGas": "0x63", - "nonce": "0", - "r": "0xcfa1e1b30d1e4617ce80922d853c5e8b54b21f5ed6604438f90280ef2f0b7fd0", - "s": "0x6fd8eee02fbdd421136fb45e6851ce72b5d87a2c06b2e136ef1a062df9256f4e", - "to": "0x588e4b68193001e4d10928660ab4165b813717c0", - "v": "0x01", - "value": "0x0de0b6b3a7640000", - }, - "type": "cip42", - } - `) - }) - - test('matches behavior of viem 1559', async () => { - const account = privateKeyToAccount(PRIVATE_KEY2) - const wallet2 = new LocalWallet() - // wallet 1 uses a private key that does not start with 0x which doesnt work for viem - wallet2.addAccount(PRIVATE_KEY2) - - const transaction1559 = { - ...celoTransactionWithGasPrice, - from: ACCOUNT_ADDRESS2, - to: otherAddress, - gasPrice: undefined, - feeCurrency: undefined, - gatewayFeeRecipient: undefined, - gatewayFee: undefined, - maxFeePerGas: '99', - maxPriorityFeePerGas: '99', - data: celoTransactionWithGasPrice.data as Hex, - } - const transaction1559Viem: TransactionSerializableEIP1559 = { - ...transaction1559, - type: 'eip1559', - gas: BigInt(transaction1559.gas as string), - to: transaction1559.to as StrongAddress, - value: BigInt(transaction1559.value as string), - maxFeePerGas: BigInt(transaction1559.maxFeePerGas as string), - maxPriorityFeePerGas: BigInt(transaction1559.maxPriorityFeePerGas as string), - accessList: undefined, - chainId: celoTransactionWithGasPrice.chainId as number, - } - const signedTransaction = await wallet2.signTransaction(transaction1559) - const viemSignedTransaction = await account.signTransaction(transaction1559Viem) - - expect(parseTransaction(signedTransaction.raw)).toEqual( - parseTransaction(viemSignedTransaction) - ) - expect(recoverTransaction(signedTransaction.raw)).toEqual( - recoverTransaction(viemSignedTransaction) - ) - expect(signedTransaction.raw).toEqual(viemSignedTransaction) - }) - test('succeeds with cip64', async () => { - const recoverTransactionCIP64 = { - ...celoTransactionWithGasPrice, - gasPrice: undefined, - gatewayFee: undefined, - gatewayFeeRecipient: undefined, - maxFeePerGas: '99', - maxPriorityFeePerGas: '99', - feeCurrency: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', - } - await expect(wallet.signTransaction(recoverTransactionCIP64)).resolves - .toMatchInlineSnapshot(` - { - "raw": "0x7bf88282ad5a8063630a94588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdefc094cd2a3d9f938e13cd947ec05abc7fe734df8dd82680a091b5504a59e529e7efa42dbb97fbc3311a91d035c873a94ab0789441fc989f84a02e8254d6b3101b63417e5d496833bc84f4832d4a8bf8a2b83e291d8f38c0f62d", - "tx": { - "gas": "0x0a", - "hash": "0x645afc1d19fe805c0c0956e70d5415487bf073741d7b297ccb7e7040c6ce5df6", - "input": "0xabcdef", - "nonce": "0", - "r": "0x91b5504a59e529e7efa42dbb97fbc3311a91d035c873a94ab0789441fc989f84", - "s": "0x2e8254d6b3101b63417e5d496833bc84f4832d4a8bf8a2b83e291d8f38c0f62d", - "to": "0x588e4b68193001e4d10928660ab4165b813717c0", - "v": "0x", - "value": "0x0de0b6b3a7640000", - }, - "type": "cip64", - } - `) - }) - - test('succeeds with cip42', async () => { - const transaction42 = { - ...celoTransactionWithGasPrice, - gasPrice: undefined, - maxFeePerGas: '99', - maxPriorityFeePerGas: '99', - gatewayFee: '0x5678', - feeCurrency: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', - } - await expect(wallet.signTransaction(transaction42)).resolves.toMatchInlineSnapshot(` - { - "raw": "0x7cf89a82ad5a8063630a94cd2a3d9f938e13cd947ec05abc7fe734df8dd826941be31a94361a391bbafb2a4ccd704f57dc04d4bb82567894588e4b68193001e4d10928660ab4165b813717c0880de0b6b3a764000083abcdefc080a0c610507b2ac3cff80dd7017419021196807d605efce0970c18cde48db33c27d1a01799477e0f601f554f0ee6f7ac21490602124801e9f7a99d9605249b90f03112", - "tx": { - "accessList": [], - "feeCurrency": "0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826", - "gas": "0x0a", - "gatewayFee": "0x5678", - "gatewayFeeRecipient": "0x1be31a94361a391bbafb2a4ccd704f57dc04d4bb", - "hash": "0x7afcef8db391ff574b7f9c9205399b8ab094fc9fc8afbfb881204cbaaf093365", - "input": "0xabcdef", - "maxFeePerGas": "0x63", - "maxPriorityFeePerGas": "0x63", - "nonce": "0", - "r": "0xc610507b2ac3cff80dd7017419021196807d605efce0970c18cde48db33c27d1", - "s": "0x1799477e0f601f554f0ee6f7ac21490602124801e9f7a99d9605249b90f03112", - "to": "0x588e4b68193001e4d10928660ab4165b813717c0", - "v": "0x", - "value": "0x0de0b6b3a7640000", - }, - "type": "cip42", - } - `) - }) - - test('with same signer', async () => { - const signedTx: EncodedTransaction = await wallet.signTransaction( - celoTransactionWithGasPrice - ) - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe( - normalizeAddressWith0x(knownAddress) - ) - }) - - // https://github.com/ethereum/go-ethereum/blob/38aab0aa831594f31d02c9f02bfacc0bef48405d/rlp/decode.go#L664 - test('signature with 0x00 prefix is canonicalized', async () => { - // This tx is carefully constructed to produce an S value with the first byte as 0x00 - const celoTransactionZeroPrefix = { - from: ACCOUNT_ADDRESS1, - to: ACCOUNT_ADDRESS2, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 65, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: FEE_ADDRESS, - gatewayFee: '0x5678', - data: '0xabcdef', - } - - const signedTx: EncodedTransaction = await wallet.signTransaction( - celoTransactionZeroPrefix - ) - expect(signedTx.tx.s.startsWith('0x00')).toBeFalsy() - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe( - normalizeAddressWith0x(knownAddress) - ) - }) - }) - describe('when using signTransaction with type CIP42/64', () => { - let celoTransactionBase: CeloTx - let feeCurrency = '0x10c892a6ec43a53e45d0b916b4b7d383b1b78c0f' - let maxFeePerGas = '0x100000000' - let maxPriorityFeePerGas = '0x100000000' - - beforeEach(() => { - celoTransactionBase = { - gas: '1000000000', - from: knownAddress, - to: otherAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - data: '0xabcdef', - } - }) - describe('when feeCurrency and maxPriorityFeePerGas and maxFeePerGas are set but no gatewayfees', () => { - it('signs as a CIP64 tx', async () => { - const transaction: CeloTx = { - ...celoTransactionBase, - gatewayFee: undefined, - gatewayFeeRecipient: undefined, - feeCurrency, - maxFeePerGas, - maxPriorityFeePerGas, - } - const signedTx: EncodedTransaction = await wallet.signTransaction(transaction) - expect(signedTx.raw).toMatch(/^0x7b/) - }) - }) - describe('when feeCurrency and gatewayFee and maxPriorityFeePerGas and maxFeePerGas are set', () => { - it('signs as a CIP42 tx', async () => { - const transaction: CeloTx = { - ...celoTransactionBase, - gatewayFee: '0x1331', - gatewayFeeRecipient: FEE_ADDRESS, - feeCurrency, - maxFeePerGas, - maxPriorityFeePerGas, - } - const signedTx: EncodedTransaction = await wallet.signTransaction(transaction) - expect(signedTx.raw).toMatch(/^0x7c/) - }) - }) - describe('when feeCurrency and maxFeePerGas but not maxPriorityFeePerGas are set', () => { - it('throws error', async () => { - const transaction: CeloTx = { - ...celoTransactionBase, - feeCurrency, - maxFeePerGas, - maxPriorityFeePerGas: undefined, - } - expect(() => - wallet.signTransaction(transaction) - ).rejects.toThrowErrorMatchingInlineSnapshot( - `""gasPrice" or "maxFeePerGas" and "maxPriorityFeePerGas" are missing"` - ) - }) - }) - - describe('when feeCurrency and maxPriorityFeePerGas but not maxFeePerGas are set', () => { - it('throws error', async () => { - const transaction: CeloTx = { - ...celoTransactionBase, - feeCurrency, - maxFeePerGas: undefined, - maxPriorityFeePerGas, - } - expect(() => - wallet.signTransaction(transaction) - ).rejects.toThrowErrorMatchingInlineSnapshot( - `""gasPrice" or "maxFeePerGas" and "maxPriorityFeePerGas" are missing"` - ) - }) - }) - - describe('when gas and one of maxPriorityFeePerGas or maxFeePerGas are set', () => { - it('throws explaining only one kind of gas fee can be set', async () => { - const transaction: CeloTx = { - ...celoTransactionBase, - maxFeePerGas, - maxPriorityFeePerGas, - gasPrice: '0x100000000', - } - expect(async () => await wallet.signTransaction(transaction)).rejects.toThrowError( - 'when "maxFeePerGas" or "maxPriorityFeePerGas" are set, "gasPrice" must not be set' - ) - }) - }) - - describe('when maxPriorityFeePerGas / maxFeePerGas are set but not feeCurrency', () => { - it('signs as a EIP1559 tx', async () => { - const transaction: CeloTx = { - ...celoTransactionBase, - maxFeePerGas, - maxPriorityFeePerGas, - } - const signedTx: EncodedTransaction = await wallet.signTransaction(transaction) - expect(signedTx.raw).toMatch(/^0x02/) - }) - }) - }) - - describe('when calling signPersonalMessage', () => { - test('succeeds', async () => { - const hexStr: string = ACCOUNT_ADDRESS1 - const signedMessage = await wallet.signPersonalMessage(knownAddress, hexStr) - expect(signedMessage).not.toBeUndefined() - const valid = verifySignature(hexStr, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }) - }) - - describe('when calling signTypedData', () => { - test('succeeds', async () => { - const signedMessage = await wallet.signTypedData(knownAddress, TYPED_DATA) - expect(signedMessage).not.toBeUndefined() - const valid = verifyEIP712TypedDataSigner(TYPED_DATA, signedMessage, knownAddress) - expect(valid).toBeTruthy() - }) - }) - }) - }) - - describe('decryption', () => { - describe('using an unknown address', () => { - test('fails calling decrypt', async () => { - await expect( - wallet.decrypt(ACCOUNT_ADDRESS2, Buffer.from('anything')) - ).rejects.toThrowError() - }) - }) - - describe('using a known address', () => { - test('properly decrypts the ciphertext', async () => { - const plaintext = 'test_plaintext' - const ciphertext = Encrypt( - Buffer.from(trimLeading0x(PUBLIC_KEY1), 'hex'), - Buffer.from(plaintext) - ) - const decryptedPlaintext = await wallet.decrypt(ACCOUNT_ADDRESS1, ciphertext) - expect(decryptedPlaintext.toString()).toEqual(plaintext) - }) - }) - }) - }) -}) diff --git a/packages/sdk/wallets/wallet-local/src/local-wallet.ts b/packages/sdk/wallets/wallet-local/src/local-wallet.ts deleted file mode 100644 index caeb542ef9b..00000000000 --- a/packages/sdk/wallets/wallet-local/src/local-wallet.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Address, normalizeAddressWith0x, privateKeyToAddress } from '@celo/utils/lib/address' -import { Wallet, WalletBase } from '@celo/wallet-base' -import { LocalSigner } from './local-signer' - -export class LocalWallet extends WalletBase implements Wallet { - /** - * Register the private key as signer account - * @param privateKey account private key - */ - addAccount(privateKey: string): void { - // Prefix 0x here or else the signed transaction produces dramatically different signer!!! - privateKey = normalizeAddressWith0x(privateKey) - const accountAddress = normalizeAddressWith0x(privateKeyToAddress(privateKey)) - if (this.hasAccount(accountAddress)) { - return - } - this.addSigner(accountAddress, new LocalSigner(privateKey)) - } - - /** - * Remove the account - * @param address Adddress of the account to remove - */ - removeAccount(address: Address) { - this.removeSigner(address) - } -} diff --git a/packages/sdk/wallets/wallet-local/src/signing.test.ts b/packages/sdk/wallets/wallet-local/src/signing.test.ts deleted file mode 100644 index ccd53ceb861..00000000000 --- a/packages/sdk/wallets/wallet-local/src/signing.test.ts +++ /dev/null @@ -1,251 +0,0 @@ -import { - Callback, - CeloTx, - Connection, - JsonRpcPayload, - JsonRpcResponse, - Provider, -} from '@celo/connect' -import { privateKeyToAddress } from '@celo/utils/lib/address' -import { recoverTransaction } from '@celo/wallet-base' -import debugFactory from 'debug' -import Web3 from 'web3' -import { LocalWallet } from './local-wallet' - -const debug = debugFactory('kit:txtest:sign') - -// Random private keys -const PRIVATE_KEY1 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' -const ACCOUNT_ADDRESS1 = privateKeyToAddress(PRIVATE_KEY1) -const PRIVATE_KEY2 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fdeccc' -const ACCOUNT_ADDRESS2 = privateKeyToAddress(PRIVATE_KEY2) - -debug(`Private key 1: ${PRIVATE_KEY1}`) -debug(`Account Address 1: ${ACCOUNT_ADDRESS1}`) -debug(`Private key 2: ${PRIVATE_KEY2}`) -debug(`Account Address 2: ${ACCOUNT_ADDRESS2}`) - -// These tests verify the signTransaction WITHOUT the ParamsPopulator -describe('Transaction Utils', () => { - // only needed for the eth_coinbase rcp call - let connection: Connection - let web3: Web3 - const mockProvider: Provider = { - send: (payload: JsonRpcPayload, callback: Callback): void => { - if (payload.method === 'eth_coinbase') { - const response: JsonRpcResponse = { - jsonrpc: payload.jsonrpc, - id: Number(payload.id), - result: '0xc94770007dda54cF92009BFF0dE90c06F603a09f', - } - callback(null, response) - } else if (payload.method === 'eth_gasPrice') { - const response: JsonRpcResponse = { - jsonrpc: payload.jsonrpc, - id: Number(payload.id), - result: '0x09184e72a000', - } - callback(null, response) - } else { - callback(new Error(payload.method)) - } - }, - } - - const setupConnection = async () => { - web3 = new Web3() - web3.setProvider(mockProvider as any) - connection = new Connection(web3) - connection.wallet = new LocalWallet() - } - async function verifyLocalSigning(celoTransaction: CeloTx): Promise { - let recoveredSigner: string | undefined - let recoveredTransaction: CeloTx | undefined - let signedTransaction: { raw: string; tx: any } | undefined - beforeAll(async () => { - signedTransaction = await web3.eth.signTransaction(celoTransaction) - const recovery = recoverTransaction(signedTransaction.raw) - recoveredTransaction = recovery[0] - recoveredSigner = recovery[1] - }) - - afterAll(async () => { - signedTransaction = undefined - recoveredTransaction = undefined - recoveredSigner = undefined - }) - - test('Signer matches recovered signer', async () => { - expect(recoveredSigner?.toLowerCase()).toEqual(celoTransaction.from!.toString().toLowerCase()) - }) - - test('Checking nonce', async () => { - if (celoTransaction.nonce != null) { - expect(recoveredTransaction?.nonce).toEqual(parseInt(celoTransaction.nonce.toString(), 16)) - } - }) - - test('Checking gas', async () => { - if (celoTransaction.gas != null) { - expect(recoveredTransaction?.gas).toEqual(parseInt(celoTransaction.gas.toString(), 16)) - } - }) - test('Checking gas price', async () => { - if (celoTransaction.gasPrice != null) { - expect(recoveredTransaction?.gasPrice).toEqual( - parseInt(celoTransaction.gasPrice.toString(), 16) - ) - } - }) - test('Checking maxFeePerGas', async () => { - if (celoTransaction.maxFeePerGas != null) { - expect(recoveredTransaction?.maxFeePerGas).toEqual( - parseInt(celoTransaction.maxFeePerGas.toString(), 16) - ) - } - }) - test('Checking maxPriorityFeePerGas', async () => { - if (celoTransaction.maxPriorityFeePerGas != null) { - expect(recoveredTransaction?.maxPriorityFeePerGas).toEqual( - parseInt(celoTransaction.maxPriorityFeePerGas.toString(), 16) - ) - } - }) - test('Checking feeCurrency', async () => { - if (celoTransaction.feeCurrency != null) { - expect(recoveredTransaction?.feeCurrency!.toLowerCase()).toEqual( - celoTransaction.feeCurrency.toLowerCase() - ) - } - }) - test('gatewayFeeRecipient', async () => { - if ( - celoTransaction.gatewayFeeRecipient !== undefined && - celoTransaction.gatewayFeeRecipient !== null - ) { - expect(recoveredTransaction?.gatewayFeeRecipient?.toLowerCase()).toEqual( - celoTransaction.gatewayFeeRecipient.toLowerCase() - ) - } - }) - test('Checking gateway fee value', async () => { - if (celoTransaction.gatewayFee !== undefined && celoTransaction.gatewayFee !== null) { - expect(recoveredTransaction?.gatewayFee).toEqual(celoTransaction.gatewayFee.toString()) - } - }) - test('Checking data', async () => { - if (celoTransaction.data != null) { - expect(recoveredTransaction?.data!.toLowerCase()).toEqual( - celoTransaction.data.toLowerCase() - ) - } - }) - } - - async function verifyLocalSigningInAllPermutations(from: string, to: string): Promise { - const amountInWei: string = Web3.utils.toWei('1', 'ether') - const nonce = 0 - const badNonce = 100 - const gas = 10000 - const gasPrice = 99000000000 - const feeCurrency = ACCOUNT_ADDRESS1 - const gatewayFeeRecipient = ACCOUNT_ADDRESS2 - const gatewayFee = '0x5678' - const data = '0xabcdef' - const chainId = 1 - - // tslint:disable:no-bitwise - // Test all possible combinations for rigor. - for (let i = 0; i < 16; i++) { - const celoTransaction: CeloTx = { - from, - to, - value: amountInWei, - nonce, - gasPrice: i % 2 === 0 ? gasPrice : undefined, - maxFeePerGas: i % 2 === 1 ? gasPrice : undefined, - maxPriorityFeePerGas: i % 2 === 1 ? gasPrice : undefined, - chainId, - gas, - feeCurrency: i % 3 === 0 ? feeCurrency : undefined, - gatewayFeeRecipient: i % 7 === 0 ? gatewayFeeRecipient : undefined, - gatewayFee: i % 7 === 0 ? gatewayFee : undefined, - data: i & 8 ? data : undefined, - } - describe(transactionDescription(celoTransaction), () => { - verifyLocalSigning(celoTransaction) - }) - } - - function transactionDescription(celoTransaction: CeloTx) { - const description: string[] = [] - if (celoTransaction.gasPrice != undefined) { - description.push(`Testing Legacy with gas price ${celoTransaction.gasPrice}`) - } else if ( - celoTransaction.gatewayFeeRecipient !== undefined || - celoTransaction.gatewayFee !== undefined - ) { - description.push('Testing CIP42 with') - } else if (celoTransaction.feeCurrency != undefined) { - description.push('Testing CIP64 with') - } else { - description.push(`Testing EIP1559 with maxFeePerGas ${celoTransaction.maxFeePerGas}`) - } - if (celoTransaction.data != undefined) { - description.push(`data: ${celoTransaction.data}`) - } - - if (celoTransaction.feeCurrency != undefined) { - description.push(`fee currency: ${celoTransaction.feeCurrency}`) - } - - if (celoTransaction.gatewayFeeRecipient != undefined) { - description.push(`gateway fee recipient: ${celoTransaction.gatewayFeeRecipient}`) - } - if (celoTransaction.gatewayFee != undefined) { - description.push(`gateway fee: ${celoTransaction.gatewayFee}`) - } - - return description.join(' ') - } - - // A special case. - // An incorrect nonce will only work, if no implicit calls to estimate gas are required. - describe('Testing with bad nonce', () => { - verifyLocalSigning({ from, to, nonce: badNonce, gas, gasPrice, chainId }) - }) - } - - describe('Signer Testing with single local account and pay gas in CELO', () => { - describe('Test1 should be able to sign and get the signer back with single local account', () => { - beforeAll(async () => { - await setupConnection() - connection.addAccount(PRIVATE_KEY1) - }) - verifyLocalSigningInAllPermutations(ACCOUNT_ADDRESS1, ACCOUNT_ADDRESS2) - afterAll(() => connection.stop()) - }) - }) - - describe('Signer Testing with multiple local accounts', () => { - describe('Test2 should be able to sign with first account and get the signer back with multiple local accounts', () => { - beforeAll(async () => { - await setupConnection() - connection.addAccount(PRIVATE_KEY1) - connection.addAccount(PRIVATE_KEY2) - }) - verifyLocalSigningInAllPermutations(ACCOUNT_ADDRESS1, ACCOUNT_ADDRESS2) - afterAll(() => connection.stop()) - }) - - describe('Test3 should be able to sign with second account and get the signer back with multiple local accounts', () => { - beforeAll(async () => { - await setupConnection() - connection.addAccount(PRIVATE_KEY1) - connection.addAccount(PRIVATE_KEY2) - }) - verifyLocalSigningInAllPermutations(ACCOUNT_ADDRESS2, ACCOUNT_ADDRESS1) - afterAll(() => connection.stop()) - }) - }) -}) diff --git a/packages/sdk/wallets/wallet-local/tsconfig.json b/packages/sdk/wallets/wallet-local/tsconfig.json deleted file mode 100644 index b37d430f5cc..00000000000 --- a/packages/sdk/wallets/wallet-local/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src"], - "exclude": ["**/*.test.ts"], - "references": [{ "path": "../../utils" }] -} diff --git a/packages/sdk/wallets/wallet-local/tslint.json b/packages/sdk/wallets/wallet-local/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/wallets/wallet-local/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/wallets/wallet-local/typedoc.json b/packages/sdk/wallets/wallet-local/typedoc.json deleted file mode 100644 index 8fcefab6c2d..00000000000 --- a/packages/sdk/wallets/wallet-local/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../../docs/sdk/docs/wallet-local", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-remote/.gitignore b/packages/sdk/wallets/wallet-remote/.gitignore deleted file mode 100644 index c3af857904e..00000000000 --- a/packages/sdk/wallets/wallet-remote/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lib/ diff --git a/packages/sdk/wallets/wallet-remote/.npmignore b/packages/sdk/wallets/wallet-remote/.npmignore deleted file mode 100644 index e905e75e2ab..00000000000 --- a/packages/sdk/wallets/wallet-remote/.npmignore +++ /dev/null @@ -1,25 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-remote/CHANGELOG.md b/packages/sdk/wallets/wallet-remote/CHANGELOG.md deleted file mode 100644 index 5dfe86e8817..00000000000 --- a/packages/sdk/wallets/wallet-remote/CHANGELOG.md +++ /dev/null @@ -1,42 +0,0 @@ -# @celo/wallet-remote - -## 5.1.1 - -### Patch Changes - -- Updated dependencies [679ef0c60] - - @celo/connect@5.1.1 - - @celo/utils@5.0.6 - - @celo/wallet-base@5.1.1 - -## 5.1.1-beta.0 - -### Patch Changes - -- @celo/connect@5.1.1-beta.0 -- @celo/utils@5.0.6-beta.0 -- @celo/wallet-base@5.1.1-beta.0 - -## 5.1.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0 - - @celo/wallet-base@5.1.0 - - @celo/utils@5.0.5 - -## 5.1.0-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0-beta.0 - - @celo/wallet-base@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 diff --git a/packages/sdk/wallets/wallet-remote/README.md b/packages/sdk/wallets/wallet-remote/README.md deleted file mode 100644 index 94a316b6828..00000000000 --- a/packages/sdk/wallets/wallet-remote/README.md +++ /dev/null @@ -1 +0,0 @@ -Wallet-remote provides utilities for interacting with remote wallets. This is useful for interacting with wallets on secure remote servers. diff --git a/packages/sdk/wallets/wallet-remote/jest.config.js b/packages/sdk/wallets/wallet-remote/jest.config.js deleted file mode 100644 index 2681a75d5a6..00000000000 --- a/packages/sdk/wallets/wallet-remote/jest.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], -} diff --git a/packages/sdk/wallets/wallet-remote/package.json b/packages/sdk/wallets/wallet-remote/package.json deleted file mode 100644 index 76e4feba1bf..00000000000 --- a/packages/sdk/wallets/wallet-remote/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "@celo/wallet-remote", - "version": "5.1.1", - "description": "Remote wallet implementation", - "author": "Celo", - "license": "Apache-2.0", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/wallets/", - "homepage": "https://docs.celo.org", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@celo/connect": "^5.1.1", - "@celo/utils": "^5.0.6", - "@celo/wallet-base": "^5.1.1", - "@ethereumjs/util": "8.0.5", - "@types/debug": "^4.1.5", - "eth-lib": "^0.2.8" - }, - "devDependencies": { - "web3": "1.10.0" - }, - "engines": { - "node": ">=8.14.2" - } -} diff --git a/packages/sdk/wallets/wallet-remote/src/index.ts b/packages/sdk/wallets/wallet-remote/src/index.ts deleted file mode 100644 index a51174bf284..00000000000 --- a/packages/sdk/wallets/wallet-remote/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './remote-wallet' diff --git a/packages/sdk/wallets/wallet-remote/src/remote-wallet.test.ts b/packages/sdk/wallets/wallet-remote/src/remote-wallet.test.ts deleted file mode 100644 index 61af701b224..00000000000 --- a/packages/sdk/wallets/wallet-remote/src/remote-wallet.test.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { Address, CeloTx, Signer } from '@celo/connect' -import { normalizeAddressWith0x, privateKeyToAddress } from '@celo/utils/lib/address' -import Web3 from 'web3' -import { RemoteWallet } from './remote-wallet' - -export const PRIVATE_KEY1 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' -export const ACCOUNT_ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY1)) - -export const CHAIN_ID = 44378 - -// Sample data from the official EIP-712 example: -// https://github.com/ethereum/EIPs/blob/master/assets/eip-712/Example.js -export const TYPED_DATA = { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - Person: [ - { name: 'name', type: 'string' }, - { name: 'wallet', type: 'address' }, - ], - Mail: [ - { name: 'from', type: 'Person' }, - { name: 'to', type: 'Person' }, - { name: 'contents', type: 'string' }, - ], - }, - primaryType: 'Mail', - domain: { - name: 'Ether Mail', - version: '1', - chainId: 1, - verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', - }, - message: { - from: { - name: 'Cow', - wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', - }, - to: { - name: 'Bob', - wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB', - }, - contents: 'Hello, Bob!', - }, -} - -class RemoteWalletImpl extends RemoteWallet { - protected async loadAccountSigners(): Promise> { - return new Map() - } -} - -describe('RemoteWallet', () => { - let wallet: RemoteWalletImpl - - // validate env file - beforeEach(() => { - wallet = new RemoteWalletImpl() - }) - - describe('without initializing', () => { - const knownAddress = ACCOUNT_ADDRESS1 - let celoTransaction: CeloTx - beforeEach(() => { - celoTransaction = { - from: knownAddress, - to: knownAddress, - chainId: CHAIN_ID, - value: Web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: ACCOUNT_ADDRESS1, - gatewayFeeRecipient: ACCOUNT_ADDRESS1, - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - test('fails calling getAccounts', () => { - try { - wallet.getAccounts() - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe('wallet needs to be initialized first') - } - }) - - test('fails calling hasAccount', () => { - try { - wallet.hasAccount(ACCOUNT_ADDRESS1) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe('wallet needs to be initialized first') - } - }) - - test('fails calling signTransaction', async () => { - await expect(wallet.signTransaction(celoTransaction)).rejects.toThrowError() - }) - - test('fails calling signPersonalMessage', async () => { - await expect(wallet.signPersonalMessage(ACCOUNT_ADDRESS1, 'test')).rejects.toThrowError() - }) - - test('fails calling signTypedData', async () => { - await expect(wallet.signTypedData(ACCOUNT_ADDRESS1, TYPED_DATA)).rejects.toThrowError() - }) - }) -}) diff --git a/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts b/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts deleted file mode 100644 index c1f7451cfaa..00000000000 --- a/packages/sdk/wallets/wallet-remote/src/remote-wallet.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { Address, CeloTx, EncodedTransaction, ReadOnlyWallet, Signer } from '@celo/connect' -import { sleep } from '@celo/utils/lib/async' -import { EIP712TypedData } from '@celo/utils/lib/sign-typed-data-utils' -import { WalletBase } from '@celo/wallet-base' - -/** - * Abstract class representing a remote wallet that requires async initialization - */ -export abstract class RemoteWallet - extends WalletBase - implements ReadOnlyWallet -{ - private setupFinished = false - private setupLocked = false - private INIT_TIMEOUT_IN_MS = 10 * 1000 - - /** - * Discovers wallet accounts and caches results in memory - * Idempotent to ensure multiple calls are benign - */ - async init() { - if (this.setupLocked || this.setupFinished) { - await this.initCompleted() - return - } - try { - this.setupLocked = true - const accountSigners = await this.loadAccountSigners() - accountSigners.forEach((signer, address) => { - this.addSigner(address, signer) - }) - this.setupFinished = true - } finally { - this.setupLocked = false - } - } - - /** - * Monitor the initialization state until it reaches completion or time out - */ - private async initCompleted() { - let initTimeout = this.INIT_TIMEOUT_IN_MS - const sleepIntervalInMs = 1 * 1000 - while (initTimeout > 0) { - initTimeout -= sleepIntervalInMs - if (this.setupFinished) { - return - } - await sleep(sleepIntervalInMs) - } - throw new Error('Initialization took too long. Ensure the wallet signer is available') - } - - /** - * Discover accounts and store mapping in accountSigners - */ - protected abstract loadAccountSigners(): Promise> - - /** - * Get a list of accounts in the remote wallet - */ - getAccounts(): Address[] { - this.initializationRequired() - return super.getAccounts() - } - - /** - * Returns true if account is in the remote wallet - * @param address Account to check - */ - hasAccount(address?: Address): boolean { - this.initializationRequired() - return super.hasAccount(address) - } - - /** - * Signs the EVM transaction using the signer pulled from the from field - * @param txParams EVM transaction - */ - async signTransaction(txParams: CeloTx): Promise { - this.initializationRequired() - return super.signTransaction(txParams) - } - - /** - * @param address Address of the account to sign with - * @param data Hex string message to sign - * @return Signature hex string (order: rsv) - */ - async signPersonalMessage(address: Address, data: string): Promise { - this.initializationRequired() - return super.signPersonalMessage(address, data) - } - - /** - * @param address Address of the account to sign with - * @param typedData the typed data object - * @return Signature hex string (order: rsv) - */ - async signTypedData(address: Address, typedData: EIP712TypedData): Promise { - this.initializationRequired() - return super.signTypedData(address, typedData) - } - - protected initializationRequired() { - if (!this.setupFinished) { - throw new Error('wallet needs to be initialized first') - } - } - - public isSetupFinished = () => this.setupFinished -} diff --git a/packages/sdk/wallets/wallet-remote/tsconfig.json b/packages/sdk/wallets/wallet-remote/tsconfig.json deleted file mode 100644 index 20bf8927c7a..00000000000 --- a/packages/sdk/wallets/wallet-remote/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, -} diff --git a/packages/sdk/wallets/wallet-remote/tslint.json b/packages/sdk/wallets/wallet-remote/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/wallets/wallet-remote/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/wallets/wallet-remote/typedoc.json b/packages/sdk/wallets/wallet-remote/typedoc.json deleted file mode 100644 index 040f8c25063..00000000000 --- a/packages/sdk/wallets/wallet-remote/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../../docs/sdk/docs/wallet-remote", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-rpc/.gitignore b/packages/sdk/wallets/wallet-rpc/.gitignore deleted file mode 100644 index c3af857904e..00000000000 --- a/packages/sdk/wallets/wallet-rpc/.gitignore +++ /dev/null @@ -1 +0,0 @@ -lib/ diff --git a/packages/sdk/wallets/wallet-rpc/.npmignore b/packages/sdk/wallets/wallet-rpc/.npmignore deleted file mode 100644 index e905e75e2ab..00000000000 --- a/packages/sdk/wallets/wallet-rpc/.npmignore +++ /dev/null @@ -1,25 +0,0 @@ -/.devchain/ -/.devchain.tar.gz -/coverage/ -/node_modules/ -/src/ -/tmp/ -/.tmp/ - -/tslint.json -/tsconfig.* -/jest.config.* -*.tgz - -/src - -/lib/**/*.test.* -/lib/test-utils - - -# exclude ts files and sourcemaps -*.map -*.ts - -# include the .d.ts files -!lib/**/*.d.ts \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-rpc/CHANGELOG.md b/packages/sdk/wallets/wallet-rpc/CHANGELOG.md deleted file mode 100644 index 89137828700..00000000000 --- a/packages/sdk/wallets/wallet-rpc/CHANGELOG.md +++ /dev/null @@ -1,52 +0,0 @@ -# @celo/wallet-rpc - -## 5.1.1 - -### Patch Changes - -- Updated dependencies [679ef0c60] -- Updated dependencies [97d5ccf43] - - @celo/connect@5.1.1 - - @celo/base@6.0.0 - - @celo/utils@5.0.6 - - @celo/wallet-base@5.1.1 - - @celo/wallet-remote@5.1.1 - -## 5.1.1-beta.0 - -### Patch Changes - -- Updated dependencies [97d5ccf43] - - @celo/base@6.0.0-beta.0 - - @celo/connect@5.1.1-beta.0 - - @celo/utils@5.0.6-beta.0 - - @celo/wallet-base@5.1.1-beta.0 - - @celo/wallet-remote@5.1.1-beta.0 - -## 5.1.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0 - - @celo/wallet-remote@5.1.0 - - @celo/wallet-base@5.1.0 - - @celo/utils@5.0.5 - - @celo/base@5.0.5 - -## 5.1.0-beta.0 - -### Patch Changes - -- 53bbd4958: Note celo sdk packages will no longer be fix bumped (ie will not share the same version always) and will now use ^range when depending on each other -- Updated dependencies [d48c68afc] -- Updated dependencies [53bbd4958] -- Updated dependencies [53bbd4958] - - @celo/connect@5.1.0-beta.0 - - @celo/wallet-remote@5.1.0-beta.0 - - @celo/wallet-base@5.1.0-beta.0 - - @celo/utils@5.0.5-beta.0 - - @celo/base@5.0.5-beta.0 diff --git a/packages/sdk/wallets/wallet-rpc/README.md b/packages/sdk/wallets/wallet-rpc/README.md deleted file mode 100644 index ffe83873e75..00000000000 --- a/packages/sdk/wallets/wallet-rpc/README.md +++ /dev/null @@ -1 +0,0 @@ -Wallet-rpc provides utilities for performing wallet functions via RPC. \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-rpc/jest.config.js b/packages/sdk/wallets/wallet-rpc/jest.config.js deleted file mode 100644 index 16600517d9b..00000000000 --- a/packages/sdk/wallets/wallet-rpc/jest.config.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - preset: 'ts-jest', - testEnvironment: 'node', - testMatch: ['/src/**/?(*.)+(spec|test).ts?(x)'], - globalSetup: '/src/test-utils/ganache.setup.ts', - globalTeardown: '/src/test-utils/ganache.teardown.ts', -} diff --git a/packages/sdk/wallets/wallet-rpc/package.json b/packages/sdk/wallets/wallet-rpc/package.json deleted file mode 100644 index 5988c46d95d..00000000000 --- a/packages/sdk/wallets/wallet-rpc/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "@celo/wallet-rpc", - "version": "5.1.1", - "description": "Geth RPC wallet implementation", - "author": "Celo", - "license": "Apache-2.0", - "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/sdk/wallets/", - "homepage": "https://docs.celo.org", - "main": "./lib/index.js", - "types": "./lib/index.d.ts", - "keywords": [ - "celo", - "blockchain", - "sdk" - ], - "scripts": { - "build": "tsc -b .", - "clean": "tsc -b . --clean", - "docs": "typedoc", - "test": "jest --runInBand", - "lint": "tslint -c tslint.json --project .", - "prepublishOnly": "yarn build" - }, - "dependencies": { - "@types/bn.js": "^5.1.0", - "@celo/base": "^6.0.0", - "@celo/connect": "^5.1.1", - "@celo/utils": "^5.0.6", - "@celo/wallet-base": "^5.1.1", - "@celo/wallet-remote": "^5.1.1", - "bignumber.js": "^9.0.0", - "debug": "^4.1.1" - }, - "devDependencies": { - "@celo/dev-utils": "0.0.1", - "@celo/contractkit": "^6.0.0", - "bn.js": "^5.1.0", - "web3": "1.10.0" - }, - "engines": { - "node": ">=8.14.2" - } -} \ No newline at end of file diff --git a/packages/sdk/wallets/wallet-rpc/src/index.ts b/packages/sdk/wallets/wallet-rpc/src/index.ts deleted file mode 100644 index 01527583439..00000000000 --- a/packages/sdk/wallets/wallet-rpc/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './rpc-signer' -export * from './rpc-wallet' diff --git a/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts b/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts deleted file mode 100644 index d59a7cb965a..00000000000 --- a/packages/sdk/wallets/wallet-rpc/src/rpc-signer.ts +++ /dev/null @@ -1,180 +0,0 @@ -import { ensureLeading0x, normalizeAddressWith0x, trimLeading0x } from '@celo/base/lib/address' -import { CeloTx, EncodedTransaction, RpcCaller, Signer } from '@celo/connect' -import { EIP712TypedData } from '@celo/utils/lib/sign-typed-data-utils' -import { decodeSig } from '@celo/wallet-base' -import BigNumber from 'bignumber.js' -import type BN from 'bn.js' - -const INCORRECT_PASSWORD_ERROR = 'could not decrypt key with given password' -const currentTimeInSeconds = () => Math.floor(Date.now() / 1000) - -const toRpcHex = (val: string | number | BN | undefined) => { - if (typeof val === 'number' || val instanceof BigNumber) { - return ensureLeading0x(val.toString(16)) - } else if (typeof val === 'string') { - return ensureLeading0x(val) - } else { - return '0x0' - } -} - -// TODO(yorke): move this into rpc-caller and generate typings from RPC spec -enum RpcSignerEndpoint { - ImportAccount = 'personal_importRawKey', - UnlockAccount = 'personal_unlockAccount', - SignTransaction = 'eth_signTransaction', - SignBytes = 'eth_sign', - SignTypedData = 'eth_signTypedData', - Decrypt = 'personal_decrypt', -} - -// tslint:disable-next-line: interface-over-type-literal -type RpcSignerEndpointInputs = { - personal_importRawKey: [string, string] - personal_unlockAccount: [string, string, number] - eth_signTransaction: [any] // RpcTx doesn't match Tx because of nonce as string instead of number - eth_sign: [string, string] - eth_signTypedData: [string, EIP712TypedData] - personal_decrypt: [string, string] -} - -// tslint:disable-next-line: interface-over-type-literal -type RpcSignerEndpointResult = { - personal_importRawKey: string - personal_unlockAccount: boolean - eth_signTransaction: EncodedTransaction - eth_sign: string - eth_signTypedData: string - personal_decrypt: string -} - -/** - * Implements the signer interface on top of the JSON-RPC interface. - */ -export class RpcSigner implements Signer { - /** - * Construct a new instance of the RPC signer - * - * @param rpc RPC caller instance - * @param account Account address derived from the private key to be called in init - * @param unlockBufferSeconds Number of seconds to shrink the unlocked duration by to account for - * latency and timing inconsistencies on the node - * @param unlockTime Timestamp in seconds when the signer was last unlocked - * @param unlockDuration Number of seconds that the signer was last unlocked for - * - */ - constructor( - protected rpc: RpcCaller, - protected account: string, - protected unlockBufferSeconds = 5, - protected unlockTime?: number, - protected unlockDuration?: number - ) {} - - init = (privateKey: string, passphrase: string) => - this.callAndCheckResponse(RpcSignerEndpoint.ImportAccount, [ - ensureLeading0x(privateKey), - passphrase, - ]) - - async signRawTransaction(tx: CeloTx) { - if (normalizeAddressWith0x(tx.from! as string) !== this.account) { - throw new Error(`RpcSigner cannot sign tx with 'from' ${tx.from}`) - } - // see geth SendTxArgs type - // https://github.com/celo-org/celo-blockchain/blob/fc20d6921478cda68fc88797078f20053bae8866/internal/ethapi/api.go#L1241C6-L1241C20 - const rpcTx = { - ...tx, - nonce: toRpcHex(tx.nonce), - value: toRpcHex(tx.value), - gas: toRpcHex(tx.gas), - gatewayFee: toRpcHex(tx.gatewayFee), - ...(tx.gasPrice - ? { - gasPrice: toRpcHex(tx.gasPrice), - } - : { - maxPriorityFeePerGas: toRpcHex(tx.maxPriorityFeePerGas), - maxFeePerGas: toRpcHex(tx.maxFeePerGas), - }), - } - return this.callAndCheckResponse(RpcSignerEndpoint.SignTransaction, [rpcTx]) - } - - async signTransaction(): Promise<{ v: number; r: Buffer; s: Buffer }> { - throw new Error('signTransaction unimplemented; use signRawTransaction') - } - - async signTypedData(typedData: EIP712TypedData): Promise<{ v: number; r: Buffer; s: Buffer }> { - const result = await this.callAndCheckResponse(RpcSignerEndpoint.SignTypedData, [ - this.account, - typedData, - ]) - - return decodeSig(result) - } - - async signPersonalMessage(data: string): Promise<{ v: number; r: Buffer; s: Buffer }> { - const result = await this.callAndCheckResponse(RpcSignerEndpoint.SignBytes, [ - this.account, - data, - ]) - return decodeSig(result) - } - - getNativeKey = () => this.account - - async unlock(passphrase: string, duration: number): Promise { - try { - await this.callAndCheckResponse(RpcSignerEndpoint.UnlockAccount, [ - this.account, - passphrase, - duration, - ]) - } catch (error: any) { - // The callAndCheckResponse will throw an error if the passphrase is incorrect - if (error?.message?.toLowerCase()?.includes(INCORRECT_PASSWORD_ERROR)) { - return false - } - - // Re-throw otherwise - throw error - } - - this.unlockTime = currentTimeInSeconds() - this.unlockDuration = duration - return true - } - - isUnlocked() { - if (this.unlockDuration === undefined || this.unlockTime === undefined) { - return false - } - return this.unlockTime + this.unlockDuration - this.unlockBufferSeconds > currentTimeInSeconds() - } - - private async callAndCheckResponse( - endpoint: T, - params: RpcSignerEndpointInputs[T] - ): Promise { - const response = await this.rpc.call(endpoint, params) - if (response.error) { - throw new Error(`RpcSigner@${endpoint} failed with \n'${(response.error as any).message}'`) - } - return response.result! as RpcSignerEndpointResult[typeof endpoint] - } - - async decrypt(ciphertext: Buffer) { - const resp = await this.callAndCheckResponse(RpcSignerEndpoint.Decrypt, [ - this.account, - ensureLeading0x(ciphertext.toString('hex')), - ]) - - return Buffer.from(trimLeading0x(resp), 'hex') - } - - computeSharedSecret(_publicKey: string) { - throw new Error('Not implemented') - return Promise.resolve(Buffer.from([])) - } -} diff --git a/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.test.ts b/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.test.ts deleted file mode 100644 index 8f25fe84d25..00000000000 --- a/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.test.ts +++ /dev/null @@ -1,261 +0,0 @@ -import { CeloTx, Connection, Provider } from '@celo/connect' -import { testWithGanache } from '@celo/dev-utils/lib/ganache-test' -import { normalizeAddressWith0x, privateKeyToAddress } from '@celo/utils/lib/address' -import { verifySignature } from '@celo/utils/lib/signatureUtils' -import { recoverTransaction, verifyEIP712TypedDataSigner } from '@celo/wallet-base' -import net from 'net' -import Web3 from 'web3' -import { RpcWallet } from './rpc-wallet' - -export const CHAIN_ID = 44378 - -// Sample data from the official EIP-712 example: -// https://github.com/ethereum/EIPs/blob/master/assets/eip-712/Example.js -export const TYPED_DATA = { - types: { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - Person: [ - { name: 'name', type: 'string' }, - { name: 'wallet', type: 'address' }, - ], - Mail: [ - { name: 'from', type: 'Person' }, - { name: 'to', type: 'Person' }, - { name: 'contents', type: 'string' }, - ], - }, - primaryType: 'Mail', - domain: { - name: 'Ether Mail', - version: '1', - chainId: 1, - verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', - }, - message: { - from: { - name: 'Cow', - wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', - }, - to: { - name: 'Bob', - wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB', - }, - contents: 'Hello, Bob!', - }, -} - -export const PRIVATE_KEY1 = '1234567890abcdef1234567890abcdef1234567890abcdef1234567890abbdef' -export const ACCOUNT_ADDRESS1 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY1)) -export const PRIVATE_KEY2 = '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890fdeccc' -export const ACCOUNT_ADDRESS2 = normalizeAddressWith0x(privateKeyToAddress(PRIVATE_KEY2)) - -const PASSPHRASE = 'ce10' -const DURATION = 10000 - -// ./build/bin/geth --datadir=./envs/alfajoresstaging --syncmode=lightest --rpcapi=net,eth,web3,personal --networkid=1101 -describe.skip('rpc-wallet', () => { - it('should work against local geth ipc', async () => { - const ipcUrl = '/Users/yorhodes/celo/blockchain/envs/alfajoresstaging/geth.ipc' - const ipcProvider = new Web3.providers.IpcProvider(ipcUrl, net) - const wallet = new RpcWallet(ipcProvider) - await wallet.init() - - const account = await wallet.addAccount(PRIVATE_KEY1, PASSPHRASE) - await wallet.unlockAccount(account, PASSPHRASE, DURATION) - - const tx = { - from: ACCOUNT_ADDRESS1, - to: ACCOUNT_ADDRESS2, - value: 1000, - } - - const result = await wallet.signTransaction(tx) - // tslint:disable:no-console - console.log(result) - - const connection = new Connection(new Web3(ipcUrl), wallet) - const txResult = await connection.sendSignedTransaction(result.raw) - // tslint:disable:no-console - console.log(txResult) - }) -}) - -testWithGanache('rpc-wallet', (web3) => { - const provider = web3.currentProvider - const rpcWallet = new RpcWallet(provider as Provider) - - describe('with ganache web3 provider', () => { - let ganacheAccounts: string[] - beforeAll(async () => { - await rpcWallet.init() - ganacheAccounts = await web3.eth.getAccounts() - ganacheAccounts = ganacheAccounts.map(normalizeAddressWith0x) - }) - - test('initalizes with provider accounts', async () => { - const accounts = rpcWallet.getAccounts() - expect(accounts).toEqual(ganacheAccounts) - }) - - test('fails if you add an invalid private key', async () => { - try { - await rpcWallet.addAccount('this is not a valid private key', PASSPHRASE) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe('Expected 32 bytes of private key') - } - }) - - test('succeeds if you add a private key without 0x', async () => { - await rpcWallet.addAccount(PRIVATE_KEY1, PASSPHRASE) - expect(rpcWallet.hasAccount(ACCOUNT_ADDRESS1)).toBeTruthy() - }) - - test('fails if you add a private key twice', async () => { - try { - await rpcWallet.addAccount(PRIVATE_KEY1, PASSPHRASE) - throw new Error('Expected exception to be thrown') - } catch (e: any) { - expect(e.message).toBe(`RpcWallet: account already exists`) - } - }) - - test('succeeds if you add a private key with 0x', async () => { - await rpcWallet.addAccount(PRIVATE_KEY2, PASSPHRASE) - expect(rpcWallet.hasAccount(ACCOUNT_ADDRESS2)).toBeTruthy() - }) - - describe('with added accounts', () => { - test('all addresses can be retrieved', () => { - expect(rpcWallet.getAccounts()).toEqual( - ganacheAccounts.concat([ACCOUNT_ADDRESS1, ACCOUNT_ADDRESS2]) - ) - }) - - describe('unlocking', () => { - test('fails if you use an invalid passphrase', async () => { - try { - await rpcWallet.unlockAccount(ACCOUNT_ADDRESS1, 'wrong_passphrase', DURATION) - } catch (e: any) { - expect(e.message).toContain('could not decrypt key with given passphrase') - } - }) - - test('succeeds if you use the correct passphrase', async () => { - await rpcWallet.unlockAccount(ACCOUNT_ADDRESS1, PASSPHRASE, DURATION) - const unlocked = rpcWallet.isAccountUnlocked(ACCOUNT_ADDRESS1) - expect(unlocked).toBeTruthy() - }) - }) - - describe('signing', () => { - describe('using an unlocked address', () => { - beforeAll(async () => { - await rpcWallet.unlockAccount(ACCOUNT_ADDRESS1, PASSPHRASE, DURATION) - }) - - describe('when calling signTransaction', () => { - let celoTransaction: CeloTx - - beforeEach(() => { - celoTransaction = { - from: ACCOUNT_ADDRESS1, - to: ACCOUNT_ADDRESS2, - chainId: CHAIN_ID, - value: web3.utils.toWei('1', 'ether'), - nonce: 0, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: '0x1234', - gatewayFee: '0x5678', - data: '0xabcdef', - } - }) - - test('succeeds with old school pricing', async () => { - await expect( - rpcWallet.signTransaction(celoTransaction) - ).resolves.toMatchInlineSnapshot( - `"0xf86b8081991094588e4b68193001e4d10928660ab4165b813717c08a0100000000000000000083abcdef25a073bb7eaa60c810af1fad0f68fa15d4714f9990d0202b62797f6134493ec9f6fba046c13e92017228c2c8f0fae74ddd735021817f2f9757cd66debed078daf4070e"` - ) - }) - - test('succeeds with with FeeMarketFields', async () => { - const feeMarketTransaction = { - ...celoTransaction, - gasPrice: undefined, - maxFeePerGas: '1500000000', - maxPriorityFeePerGas: '1500000000', - } - await expect( - rpcWallet.signTransaction(feeMarketTransaction) - ).resolves.toMatchInlineSnapshot( - `"0xf86a80801094588e4b68193001e4d10928660ab4165b813717c08a0100000000000000000083abcdef26a05e9c1e7690d05f3e1433c824fbd948643ff6c618e347ea8c23a6363f3b17cdffa072dc1c22d6147be7b4b7b3cf51eb73b8bedd7940d7b668dcd7ef688a2354a631"` - ) - }) - - // TODO(yorke): enable once fixed: https://github.com/celo-org/celo-monorepo/issues/4077 - test.skip('with same signer', async () => { - const signedTx = await rpcWallet.signTransaction(celoTransaction) - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe( - normalizeAddressWith0x(ACCOUNT_ADDRESS1) - ) - }) - - // https://github.com/ethereum/go-ethereum/blob/38aab0aa831594f31d02c9f02bfacc0bef48405d/rlp/decode.go#L664 - test.skip('signature with 0x00 prefix is canonicalized', async () => { - // This tx is carefully constructed to produce an S value with the first byte as 0x00 - const celoTransactionZeroPrefix = { - from: ACCOUNT_ADDRESS1, - to: ACCOUNT_ADDRESS2, - chainId: CHAIN_ID, - value: web3.utils.toWei('1', 'ether'), - nonce: 65, - gas: '10', - gasPrice: '99', - feeCurrency: '0x', - gatewayFeeRecipient: '0x1234', - gatewayFee: '0x5678', - data: '0xabcdef', - } - - const signedTx = await rpcWallet.signTransaction(celoTransactionZeroPrefix) - expect(signedTx.tx.s.startsWith('0x00')).toBeFalsy() - const [, recoveredSigner] = recoverTransaction(signedTx.raw) - expect(normalizeAddressWith0x(recoveredSigner)).toBe( - normalizeAddressWith0x(ACCOUNT_ADDRESS1) - ) - }) - }) - - // ganache - describe.skip('when calling signPersonalMessage', () => { - test('succeeds', async () => { - const hexStr: string = ACCOUNT_ADDRESS2 - const signedMessage = await rpcWallet.signPersonalMessage(ACCOUNT_ADDRESS1, hexStr) - expect(signedMessage).not.toBeUndefined() - const valid = verifySignature(hexStr, signedMessage, ACCOUNT_ADDRESS1) - expect(valid).toBeTruthy() - }) - }) - - describe.skip('when calling signTypedData', () => { - test('succeeds', async () => { - const signedMessage = await rpcWallet.signTypedData(ACCOUNT_ADDRESS1, TYPED_DATA) - expect(signedMessage).not.toBeUndefined() - const valid = verifyEIP712TypedDataSigner(TYPED_DATA, signedMessage, ACCOUNT_ADDRESS1) - expect(valid).toBeTruthy() - }) - }) - }) - }) - }) - }) -}) diff --git a/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts b/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts deleted file mode 100644 index a12713c0765..00000000000 --- a/packages/sdk/wallets/wallet-rpc/src/rpc-wallet.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { ensureLeading0x, normalizeAddressWith0x } from '@celo/base/lib/address' -import { CeloTx, HttpRpcCaller, Provider, RpcCaller } from '@celo/connect' -import { privateKeyToAddress } from '@celo/utils/lib/address' -import { UnlockableWallet } from '@celo/wallet-base' -import { RemoteWallet } from '@celo/wallet-remote' -import { RpcSigner } from './rpc-signer' - -export enum RpcWalletErrors { - FetchAccounts = 'RpcWallet: failed to fetch accounts from server', - AccountAlreadyExists = 'RpcWallet: account already exists', -} - -/* - * WARNING: This class should only be used with well-permissioned providers (ie IPC) - * to avoid sensitive user 'privateKey' and 'passphrase' information being exposed - */ -export class RpcWallet extends RemoteWallet implements UnlockableWallet { - protected readonly rpc: RpcCaller - - constructor(protected _provider: Provider) { - super() - this.rpc = new HttpRpcCaller(_provider) - } - - async loadAccountSigners(): Promise> { - const addressToSigner = new Map() - const resp = await this.rpc.call('eth_accounts', []) - if (resp.error) { - throw new Error(RpcWalletErrors.FetchAccounts) - } - const accounts: string[] = resp.result! - accounts.forEach((account) => { - addressToSigner.set(account, new RpcSigner(this.rpc, account)) - }) - return addressToSigner - } - - async addAccount(privateKey: string, passphrase: string): Promise { - const address = normalizeAddressWith0x(privateKeyToAddress(ensureLeading0x(privateKey))) - if (this.hasAccount(address)) { - throw new Error(RpcWalletErrors.AccountAlreadyExists) - } - const signer = new RpcSigner(this.rpc, address) - const resultantAddress = await signer.init(privateKey, passphrase) - this.addSigner(resultantAddress, signer) - return resultantAddress - } - - async unlockAccount(address: string, passphrase: string, duration: number) { - const signer = this.getSigner(address) - return signer.unlock(passphrase, duration) - } - - isAccountUnlocked(address: string) { - const signer = this.getSigner(address) - return signer.isUnlocked() - } - - /** - * Gets the signer based on the 'from' field in the tx body - * @param txParams Transaction to sign - * @dev overrides WalletBase.signTransaction - */ - async signTransaction(txParams: CeloTx) { - // Get the signer from the 'from' field - const fromAddress = txParams.from!.toString() - const signer = this.getSigner(fromAddress) - return signer.signRawTransaction(txParams) - } -} diff --git a/packages/sdk/wallets/wallet-rpc/src/test-utils/ganache.setup.ts b/packages/sdk/wallets/wallet-rpc/src/test-utils/ganache.setup.ts deleted file mode 100644 index 882f0ca73eb..00000000000 --- a/packages/sdk/wallets/wallet-rpc/src/test-utils/ganache.setup.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { emptySetup } from '@celo/dev-utils/lib/ganache-setup' -import { waitForPortOpen } from '@celo/dev-utils/lib/network' - -export default async function setup() { - // tslint:disable:no-console - console.log('\nstarting ganache...') - await emptySetup({}) - await waitForPortOpen('localhost', 8545, 60) - // tslint:disable:no-console - console.log('...ganache started') -} diff --git a/packages/sdk/wallets/wallet-rpc/src/test-utils/ganache.teardown.ts b/packages/sdk/wallets/wallet-rpc/src/test-utils/ganache.teardown.ts deleted file mode 100644 index c37e9bb00a0..00000000000 --- a/packages/sdk/wallets/wallet-rpc/src/test-utils/ganache.teardown.ts +++ /dev/null @@ -1,2 +0,0 @@ -import teardown from '@celo/dev-utils/lib/ganache-teardown' -export default teardown diff --git a/packages/sdk/wallets/wallet-rpc/tsconfig.json b/packages/sdk/wallets/wallet-rpc/tsconfig.json deleted file mode 100644 index 5e02869e36b..00000000000 --- a/packages/sdk/wallets/wallet-rpc/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "@celo/typescript/tsconfig.library.json", - "compilerOptions": { - "rootDir": "src", - "outDir": "lib" - }, - "include": ["src", "src/test-utils"], - "references": [{ "path": "../../utils" }] -} diff --git a/packages/sdk/wallets/wallet-rpc/tslint.json b/packages/sdk/wallets/wallet-rpc/tslint.json deleted file mode 100644 index 2c11b3bf4e1..00000000000 --- a/packages/sdk/wallets/wallet-rpc/tslint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": ["@celo/typescript/tslint.json"], - "rules": { - "no-global-arrow-functions": false, - "member-ordering": false, - "max-classes-per-file": false - } -} diff --git a/packages/sdk/wallets/wallet-rpc/typedoc.json b/packages/sdk/wallets/wallet-rpc/typedoc.json deleted file mode 100644 index a3c280e7b93..00000000000 --- a/packages/sdk/wallets/wallet-rpc/typedoc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "mode": "modules", - "exclude": ["**/*+(index|.test).ts"], - "excludeNotExported": true, - "excludePrivate": true, - "excludeProtected": true, - "includeDeclarations": false, - "ignoreCompilerErrors": true, - "hideGenerator": "true", - "out": "../../../docs/sdk/docs/wallet-rpc", - "gitRevision": "master", - "readme": "none" - } \ No newline at end of file diff --git a/readthedocs.yml b/readthedocs.yml deleted file mode 100644 index 93dd078312e..00000000000 --- a/readthedocs.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: 2 - -mkdocs: - configuration: packages/docs/sdk/mkdocs.yml - fail_on_warning: true - -# Optionally declare the Python requirements required to build your docs -python: - install: - - requirements: packages/docs/sdk/requirements.txt diff --git a/scripts/beta-mode.sh b/scripts/beta-mode.sh deleted file mode 100644 index 45b70fa1fc8..00000000000 --- a/scripts/beta-mode.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -# Beta Workflow steps -# 0. Enter any random branch name -echo "Enter a new arbitrary branch name" -read branch_name -# 1. create a prerelease/random branch -git branch prerelease/$branch_name -# 2. check it out -git checkout prerelease/$branch_name -# 3. enter pre mode (beta) -yarn cs pre enter beta -# 4. commit -git add .changeset/pre.json -git commit -am "enter beta mode" -# 5. push -git push origin prerelease/$branch_name -# 6. githhub action will automatically trigger and open a Version packages (beta) PR against the prerelease/random branch -echo "Commit to this prerelease/$branch_name and push up will trigger the github action to open a Version packages (beta) PR" -# 7. merge that PR to publish or Push up more commits to update -echo "Merge the Version Packages (beta) PR to publish a beta" -# a. if you do merge/publish you will need to add more changesets to initiate a new beta being published -# 8. repeat 7 if wanted -# 9. when ready to exit pre mode. `yarn beta-exit` -echo "when complete with beta mode, run `yarn beta-exit`" -echo "IMPORTANT: once you exit pre mode you should open a PR to merge your branch into main." -echo "DONT MERGE the Version Packages PR which is not Beta into prerelease/$branch_name branch" -# 11. open PR for prerelease into main -# NOTE: if you want to exit pre mode and not publish a beta, you can run `yarn beta-exit --no-publish -# TODO right now if you merge the changeset-prerelease Version Packages PR into its BASE it might be possible to end up in a state where pre mode is exited and you merge version packages in and end up pubblishing a regular package -exit 0 \ No newline at end of file diff --git a/scripts/deprecate-sdks.ts b/scripts/deprecate-sdks.ts deleted file mode 100644 index 094b6ec2f65..00000000000 --- a/scripts/deprecate-sdks.ts +++ /dev/null @@ -1,81 +0,0 @@ -import * as fs from 'fs' -import * as path from 'path' -import * as prompt from 'prompt' -import * as colors from 'colors' -import * as child_process from 'child_process' -import * as semver from 'semver' - -type PackageJson = { - name: string - version: string - dependencies: { [key: string]: string } - devDependencies: { [key: string]: string } -} - -const dontOpen = ['node_modules', 'src', 'lib'] - -;(async function () { - prompt.start() - const prompts = [ - { - name: 'version', - description: colors.green('Which sdk version do you want to deprecate?'), - }, - { - name: 'message', - description: colors.green('Reason for deprecation:'), - }, - ] - const { version, message } = (await prompt.get(prompts)) as { version: string; message: string } - if (!semver.valid(version)) { - console.error(colors.red('Invalid version')) - process.exit(1) - } - const sdkPackagePaths = findPackagePaths(path.join(__dirname, '..', 'packages', 'sdk')) - const sdkJsons: PackageJson[] = sdkPackagePaths.map((path) => - JSON.parse(fs.readFileSync(path).toString()) - ) - const otpPrompt = [ - { - name: 'newOtp', - description: colors.green(`Enter 2FA code`), - }, - ] - - let otp = '' - for (const sdkJson of sdkJsons) { - let { newOtp } = (await prompt.get(otpPrompt)) as { newOtp: string } - if (!newOtp) { - newOtp = otp - } else { - otp = newOtp - } - const buffer = child_process.execSync(`npm info ${sdkJson.name} versions --json`) - const versions = JSON.parse(buffer.toString()) as string[] - if (!versions.includes(version)) { - console.log(colors.yellow(`Version ${version} does not exist for ${sdkJson.name}.`)) - } else { - try { - child_process.execSync( - `npm deprecate ${sdkJson.name}@${version} '${message}' --otp ${newOtp}` - ) - console.log(colors.green(`${sdkJson.name}@${version} deprecated with message ${message}`)) - } catch (e) { - console.error(colors.red(`${sdkJson.name} failed to deprecate version ${version}.`)) - console.error(e) - } - } - } -})() - -function findPackagePaths(dir: string): string[] { - return fs.readdirSync(dir, { withFileTypes: true }).reduce((packageJsons, dirent) => { - if (dirent.isDirectory() && !dontOpen.includes(dirent.name)) { - return [...packageJsons, ...findPackagePaths(`${dir}/${dirent.name}`)] - } - if (dirent.name === 'package.json') { - return [...packageJsons, path.join(dir, dirent.name)] - } - return packageJsons - }, []) -} diff --git a/scripts/hooks/prereleasecheck.sh b/scripts/hooks/prereleasecheck.sh deleted file mode 100644 index e83235a11a4..00000000000 --- a/scripts/hooks/prereleasecheck.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -BRANCH="$(git rev-parse --abbrev-ref HEAD)" - -# Ensure that its not possible to commit to a prerelease branch without a pre.json file -if [[ $BRANCH == prerelease* ]]; then - echo "checking for pre.json" - PRE_FILE=.changeset/pre.json - if test -f "$PRE_FILE"; then - echo "$PRE_FILE exists." - else - echo "$PRE_FILE does not exist. Run yarn beta-enter to create it." - exit 1 - fi -fi \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 0065c47e7ba..7d31ab5a8a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -267,11 +267,6 @@ ethers "~4.0.4" lodash "^4.17.21" -"@adraffy/ens-normalize@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.0.tgz#223572538f6bea336750039bb43a4016dcc8182d" - integrity sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ== - "@adraffy/ens-normalize@1.9.4": version "1.9.4" resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.9.4.tgz#aae21cb858bbb0411949d5b7b3051f4209043f62" @@ -393,180 +388,6 @@ dependencies: xss "^1.0.8" -"@azure/abort-controller@^1.0.0", "@azure/abort-controller@^1.0.4": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.1.0.tgz#788ee78457a55af8a1ad342acb182383d2119249" - integrity sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw== - dependencies: - tslib "^2.2.0" - -"@azure/core-auth@^1.3.0", "@azure/core-auth@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.4.0.tgz#6fa9661c1705857820dbc216df5ba5665ac36a9e" - integrity sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ== - dependencies: - "@azure/abort-controller" "^1.0.0" - tslib "^2.2.0" - -"@azure/core-client@^1.0.0", "@azure/core-client@^1.3.0", "@azure/core-client@^1.5.0": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.7.2.tgz#e1e0670c9a5086dd62fd0080d2fd8b426babad9e" - integrity sha512-ye5554gnVnXdfZ64hptUtETgacXoRWxYv1JF5MctoAzTSH5dXhDPZd9gOjDPyWMcLIk58pnP5+p5vGX6PYn1ag== - dependencies: - "@azure/abort-controller" "^1.0.0" - "@azure/core-auth" "^1.4.0" - "@azure/core-rest-pipeline" "^1.9.1" - "@azure/core-tracing" "^1.0.0" - "@azure/core-util" "^1.0.0" - "@azure/logger" "^1.0.0" - tslib "^2.2.0" - -"@azure/core-http-compat@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@azure/core-http-compat/-/core-http-compat-1.3.0.tgz#bf3d8ae1e310103f2b82550f36fd2a99c9b4d3f4" - integrity sha512-ZN9avruqbQ5TxopzG3ih3KRy52n8OAbitX3fnZT5go4hzu0J+KVPSzkL+Wt3hpJpdG8WIfg1sBD1tWkgUdEpBA== - dependencies: - "@azure/abort-controller" "^1.0.4" - "@azure/core-client" "^1.3.0" - "@azure/core-rest-pipeline" "^1.3.0" - -"@azure/core-lro@^2.2.0": - version "2.5.2" - resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.5.2.tgz#712439f12b39ade7576f55780a4e005472c67b19" - integrity sha512-tucUutPhBwCPu6v16KEFYML81npEL6gnT+iwewXvK5ZD55sr0/Vw2jfQETMiKVeARRrXHB2QQ3SpxxGi1zAUWg== - dependencies: - "@azure/abort-controller" "^1.0.0" - "@azure/core-util" "^1.2.0" - "@azure/logger" "^1.0.0" - tslib "^2.2.0" - -"@azure/core-paging@^1.1.1": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.5.0.tgz#5a5b09353e636072e6a7fc38f7879e11d0afb15f" - integrity sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw== - dependencies: - tslib "^2.2.0" - -"@azure/core-rest-pipeline@^1.1.0", "@azure/core-rest-pipeline@^1.3.0", "@azure/core-rest-pipeline@^1.8.0", "@azure/core-rest-pipeline@^1.9.1": - version "1.10.3" - resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.10.3.tgz#7603afd71ff3c290351dbeeab2c814832e47b8ef" - integrity sha512-AMQb0ttiGJ0MIV/r+4TVra6U4+90mPeOveehFnrqKlo7dknPJYdJ61wOzYJXJjDxF8LcCtSogfRelkq+fCGFTw== - dependencies: - "@azure/abort-controller" "^1.0.0" - "@azure/core-auth" "^1.4.0" - "@azure/core-tracing" "^1.0.1" - "@azure/core-util" "^1.3.0" - "@azure/logger" "^1.0.0" - form-data "^4.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - tslib "^2.2.0" - -"@azure/core-tracing@1.0.0-preview.12": - version "1.0.0-preview.12" - resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.0.0-preview.12.tgz#f53ff452c0742ad981c244f97d93d37ca2b5e139" - integrity sha512-nvo2Wc4EKZGN6eFu9n3U7OXmASmL8VxoPIH7xaD6OlQqi44bouF0YIi9ID5rEsKLiAU59IYx6M297nqWVMWPDg== - dependencies: - "@opentelemetry/api" "^1.0.0" - tslib "^2.2.0" - -"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.0.1.tgz#352a38cbea438c4a83c86b314f48017d70ba9503" - integrity sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw== - dependencies: - tslib "^2.2.0" - -"@azure/core-util@^1.0.0", "@azure/core-util@^1.2.0", "@azure/core-util@^1.3.0": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.3.1.tgz#e830b99231e2091a2dc9ed652fff1cda69ba6582" - integrity sha512-pjfOUAb+MPLODhGuXot/Hy8wUgPD0UTqYkY3BiYcwEETrLcUCVM1t0roIvlQMgvn1lc48TGy5bsonsFpF862Jw== - dependencies: - "@azure/abort-controller" "^1.0.0" - tslib "^2.2.0" - -"@azure/identity@^1.1.0": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@azure/identity/-/identity-1.5.2.tgz#09da6aa8e14f2dace3dd8f66de7d7d56bfee5db7" - integrity sha512-vqyeRbd2i0h9F4mqW5JbkP1xfabqKQ21l/81osKhpOQ2LtwaJW6nw4+0PsVYnxcbPHFCIZt6EWAk74a3OGYZJA== - dependencies: - "@azure/core-auth" "^1.3.0" - "@azure/core-client" "^1.0.0" - "@azure/core-rest-pipeline" "^1.1.0" - "@azure/core-tracing" "1.0.0-preview.12" - "@azure/logger" "^1.0.0" - "@azure/msal-node" "1.0.0-beta.6" - "@types/stoppable" "^1.1.0" - axios "^0.21.1" - events "^3.0.0" - jws "^4.0.0" - msal "^1.0.2" - open "^7.0.0" - qs "^6.7.0" - stoppable "^1.1.0" - tslib "^2.0.0" - uuid "^8.3.0" - optionalDependencies: - keytar "^7.3.0" - -"@azure/keyvault-keys@^4.1.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@azure/keyvault-keys/-/keyvault-keys-4.7.0.tgz#a117935fc3a87ff2f9a5393352a96814c2f33c01" - integrity sha512-HScWdORbRCKi1vdKI6EChe/t/P/zV7jcGZWfj18BOyeensk5d1/Ynfx1t6xfAy5zUIQvAWVU97hXdCznDpULbQ== - dependencies: - "@azure/abort-controller" "^1.0.0" - "@azure/core-auth" "^1.3.0" - "@azure/core-client" "^1.5.0" - "@azure/core-http-compat" "^1.3.0" - "@azure/core-lro" "^2.2.0" - "@azure/core-paging" "^1.1.1" - "@azure/core-rest-pipeline" "^1.8.0" - "@azure/core-tracing" "^1.0.0" - "@azure/core-util" "^1.0.0" - "@azure/logger" "^1.0.0" - tslib "^2.2.0" - -"@azure/keyvault-secrets@^4.1.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@azure/keyvault-secrets/-/keyvault-secrets-4.7.0.tgz#a9b7aa460cd3e6a47f6a7eb0027f45f23df8eb45" - integrity sha512-YvlFXRQ+SI5NT4GtSFbb6HGo6prW3yzDab8tr6vga2/SjDQew3wJsCAAr/xwZz6XshFXCYEX26CDKmPf+SJKJg== - dependencies: - "@azure/abort-controller" "^1.0.0" - "@azure/core-auth" "^1.3.0" - "@azure/core-client" "^1.5.0" - "@azure/core-http-compat" "^1.3.0" - "@azure/core-lro" "^2.2.0" - "@azure/core-paging" "^1.1.1" - "@azure/core-rest-pipeline" "^1.8.0" - "@azure/core-tracing" "^1.0.0" - "@azure/core-util" "^1.0.0" - "@azure/logger" "^1.0.0" - tslib "^2.2.0" - -"@azure/logger@^1.0.0": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.4.tgz#28bc6d0e5b3c38ef29296b32d35da4e483593fa1" - integrity sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg== - dependencies: - tslib "^2.2.0" - -"@azure/msal-common@^4.0.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@azure/msal-common/-/msal-common-4.5.1.tgz#f35af8b634ae24aebd0906deb237c0db1afa5826" - integrity sha512-/i5dXM+QAtO+6atYd5oHGBAx48EGSISkXNXViheliOQe+SIFMDo3gSq3lL54W0suOSAsVPws3XnTaIHlla0PIQ== - dependencies: - debug "^4.1.1" - -"@azure/msal-node@1.0.0-beta.6": - version "1.0.0-beta.6" - resolved "https://registry.yarnpkg.com/@azure/msal-node/-/msal-node-1.0.0-beta.6.tgz#da6bc3a3a861057c85586055960e069f162548ee" - integrity sha512-ZQI11Uz1j0HJohb9JZLRD8z0moVcPks1AFW4Q/Gcl67+QvH4aKEJti7fjCcipEEZYb/qzLSO8U6IZgPYytsiJQ== - dependencies: - "@azure/msal-common" "^4.0.0" - axios "^0.21.1" - jsonwebtoken "^8.5.1" - uuid "^8.3.0" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" @@ -587,7 +408,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== -"@babel/core@^7.0.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3": +"@babel/core@^7.11.6", "@babel/core@^7.12.3": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659" integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== @@ -902,13 +723,6 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/runtime@^7.20.1": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" - integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== - dependencies: - regenerator-runtime "^0.14.0" - "@babel/runtime@^7.6.3", "@babel/runtime@^7.9.2": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" @@ -978,10 +792,10 @@ resolved "https://registry.yarnpkg.com/@celo/abis/-/abis-10.0.0.tgz#2c1002f2e82b29ca22cec70c988bf90d26fadc68" integrity sha512-DC8UAEz89+1yEQqKzkxOWLYGUv/XWaqPAOkU0lKuQzhvN25ndP3fitawQl53WYn8i3ZPfRWfLO4w75l//tDSbg== -"@celo/base@^5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@celo/base/-/base-5.0.5.tgz#b4102faba080ce536411b7987259d9ca152b6e6d" - integrity sha512-S6kXYibYH3iQ5rNbzqziWXnafr21b4UOxeLLMmx/ubYLHLX5lkCdZnSXBhQAiH5k2jhGSUg4H+VQNj5RqWL/JA== +"@celo/base@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@celo/base/-/base-6.0.0.tgz#23811b0bc8730a0d13fa90df55a7ec0e90d370cd" + integrity sha512-z29p7glyh69R4tKSbZuomEvnAihmzgQKxmGoqt/4S6zSx6uOjTILUlhqlcDl2Wbkd+V0h85ft14nui2HXY2Lsg== "@celo/bls12377js@0.1.1": version "0.1.1" @@ -991,22 +805,29 @@ "@stablelib/blake2xs" "0.10.4" big-integer "^1.6.44" -"@celo/celo-devchain@^6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@celo/celo-devchain/-/celo-devchain-6.0.3.tgz#ccf1c9c02a1b40ff7b1ab2f180ec5829fb40b2c8" - integrity sha512-k282qgIJzKzTBcBqmarR8pq91SF/G85MuHI7iHEDNYNyHZKrZENjLoQ+V3zoqeLE67NQrVgRYNPGpJ2KCCzB9g== +"@celo/connect@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@celo/connect/-/connect-5.1.1.tgz#3abdc925f2c7d871a6ed35ce8c19f31e52e4b64b" + integrity sha512-Pw8xyIT0TpHe7O+HdYPiWigX8Cmin033FzNPLOqkCDszj393utNsufyEGqYgUKLQZuh4IqUW40yVNX/qwwkG9A== dependencies: - commander "^10.0.0" - ganache "npm:@celo/ganache@7.8.0-unofficial.0" - node-fetch "^3.3.0" - targz "^1.0.1" - tmp "^0.2.1" + "@celo/base" "^6.0.0" + "@celo/utils" "^5.0.6" + "@ethereumjs/util" "8.0.5" + "@types/debug" "^4.1.5" + "@types/utf8" "^2.1.6" + bignumber.js "^9.0.0" + debug "^4.1.1" + utf8 "3.0.0" + web3-core "1.10.0" + web3-eth "1.10.0" + web3-eth-contract "1.10.0" -"@celo/contractkit@^5.1.0": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@celo/contractkit/-/contractkit-5.2.1.tgz#55c98e0498c3f0b1a16abe0ebd0a7947931c7a9f" - integrity sha512-cqLZdJtstZNnZcD6yUzhAvLgwGJ1XNNT6gu+9ZG740Pda3maFtXzfSo1Sbg2aQ6U5ESCX3FqyWgWXg5EXr9TlA== +"@celo/contractkit@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@celo/contractkit/-/contractkit-6.0.0.tgz#2e9e33a9a29d5a7f6aacc369430719205e48d98a" + integrity sha512-vjIWC2Csuk5wFP9DX4d4/AYN5FHa3cuKlPV3hfB3WlR7HbCXUD8nwuEJi871cId1AvlYk0YZ9X6Kkr3MSYt8rw== dependencies: + "@celo/abis" "10.0.0" "@celo/base" "^6.0.0" "@celo/connect" "^5.1.1" "@celo/utils" "^5.0.6" @@ -1022,58 +843,90 @@ web3 "1.10.0" web3-core-helpers "1.10.0" -"@celo/identity@^5.1.1": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@celo/identity/-/identity-5.1.1.tgz#e56cea67d820c7deae147e50b353f3c76b3e6d4d" - integrity sha512-udds/CV2NfG9JxvWqzU/1d/eHNyPEfLj4suLysermRL2liyf2k38DYUNiEcvhzJ/WCJnc/lwUL6EABoWaNPDRQ== - dependencies: - "@celo/base" "^5.0.5" - "@celo/contractkit" "^5.1.0" - "@celo/odis-identifiers" "^1.0.0" - "@celo/phone-number-privacy-common" "^3.1.1" - "@celo/utils" "^5.0.5" - "@types/debug" "^4.1.10" - bignumber.js "^9.1.2" - blind-threshold-bls "npm:@celo/blind-threshold-bls@1.0.0-beta" - cross-fetch "3.1.4" - debug "^4.1.1" +"@celo/cryptographic-utils@^5.0.6": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@celo/cryptographic-utils/-/cryptographic-utils-5.0.6.tgz#a7fa3a147d21cfc1706fd25e1daf4a2ac972ee4b" + integrity sha512-XawBsIt9rQQTt4r8YVvfPjioFu4ParHeQrYSq//53MWkJx3T6JsGCb6YQOIk/+RZ17SxpCUI+LL307Yl9kxTmg== + dependencies: + "@celo/base" "^6.0.0" + "@celo/bls12377js" "0.1.1" + "@celo/utils" "^5.0.6" + "@ethereumjs/util" "8.0.5" + "@types/bn.js" "^5.1.0" + "@types/elliptic" "^6.4.9" + "@types/node" "^18.7.16" + "@types/randombytes" "^2.0.0" + bigi "^1.4.2" + bip32 "^3.1.0" + bip39 "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2" + buffer-reverse "^1.0.1" elliptic "^6.5.4" ethereum-cryptography "1.2.0" - fp-ts "2.1.1" - io-ts "2.0.1" + randombytes "^2.0.1" + tiny-secp256k1 "2.2.1" + +"@celo/explorer@^5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@celo/explorer/-/explorer-5.0.7.tgz#4f21a500c62408e89cf6860d11498f3e3a93419c" + integrity sha512-seLl8/rnFCbYyNIO9arg42Z5GeOu+uyPOKcvEIDky9/N3GSWb0PJPJU/ba8xvYj5Mlp62nwgwVoCyK/iH329ug== + dependencies: + "@celo/base" "^6.0.0" + "@celo/connect" "^5.1.1" + "@celo/contractkit" "^6.0.0" + "@celo/utils" "^5.0.6" + "@types/debug" "^4.1.5" + bignumber.js "9.0.0" + cross-fetch "3.0.6" + debug "^4.1.1" + +"@celo/governance@^5.0.7": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@celo/governance/-/governance-5.0.8.tgz#04bc768dcba5d4589829bf2904355376dd5c5d71" + integrity sha512-9rV+tUtPWI8pwjJY6TFC5gmf7xzvjfkXiWcf0FpLEnkyIi+GRK5g6eV8bsIBtjIp/OPUC9XRTKHTo2ZqiPjYTw== + dependencies: + "@celo/abis" "10.0.0" + "@celo/base" "^6.0.0" + "@celo/connect" "^5.1.1" + "@celo/contractkit" "^6.0.0" + "@celo/explorer" "^5.0.7" + "@celo/utils" "^5.0.6" + "@ethereumjs/util" "8.0.5" + "@types/debug" "^4.1.5" + "@types/inquirer" "^6.5.0" + bignumber.js "^9.0.0" + debug "^4.1.1" + ethereum-cryptography "1.2.0" + inquirer "^7.0.5" + +"@celo/network-utils@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@celo/network-utils/-/network-utils-5.0.5.tgz#5d096b435cd93ea1083951966b4f349bdb82b3d4" + integrity sha512-9+0Pr3OLSS3O1baxbUSW+HfCWcctPEfwuccvuVqdLiXqcuP5Usx8IDi3XAkEQcvGQ1RS097FqZqM6t8u+Npqgw== + dependencies: + "@types/debug" "^4.1.5" + cross-fetch "3.0.6" + debug "^4.1.1" "@celo/odis-identifiers@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@celo/odis-identifiers/-/odis-identifiers-1.0.0.tgz#9bafbb77d989f1f1064f293a54d64af3298f0e91" integrity sha512-ZcBMGrr+DRX7FqNO0dWZpOVnYi5xWUxGaDtSeWnFQH9JwQ37ZmXQLEyraDXHx3gTgVEl+xSgCfJUnc1+w88PSQ== -"@celo/phone-number-privacy-common@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@celo/phone-number-privacy-common/-/phone-number-privacy-common-3.1.1.tgz#c068c223886271858c1bca95540144be417ac919" - integrity sha512-xitDmlcUZcXdjEfCft73Rry+ZlY9OZYrc2mY7OagjqWeEVTaR5TdclpfvTt6OgF0TgcCCi5pGMy1wptnOx2/VA== - dependencies: - "@celo/base" "^5.0.5" - "@celo/contractkit" "^5.1.0" - "@celo/utils" "^5.0.5" - "@opentelemetry/api" "^1.6.0" - "@opentelemetry/auto-instrumentations-node" "^0.39.4" - "@opentelemetry/propagator-ot-trace" "^0.27.0" - "@opentelemetry/sdk-metrics" "^1.17.1" - "@opentelemetry/sdk-node" "^0.44.0" - "@opentelemetry/sdk-trace-web" "^1.17.1" - "@opentelemetry/semantic-conventions" "^1.17.1" - "@types/bunyan" "1.8.10" - bignumber.js "^9.1.2" - bunyan "1.8.15" - bunyan-debug-stream "2.0.0" - bunyan-gke-stackdriver "0.1.2" - dotenv "^8.2.0" - elliptic "^6.5.4" - express "^4.17.6" +"@celo/phone-utils@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@celo/phone-utils/-/phone-utils-6.0.0.tgz#f11e09a4f8890e3b143278dc5f3bdc6b78340da7" + integrity sha512-NZOCNLGSZf3uOa7wWnGgTlutPa063eYbW41YgfViuSXGujd7LrEktqKVZAzzRrAktcMcvN4to4SNX9Jl9A8xJA== + dependencies: + "@celo/base" "^6.0.0" + "@celo/utils" "^5.0.6" + "@types/country-data" "^0.0.0" + "@types/google-libphonenumber" "^7.4.23" + "@types/node" "^18.7.16" + country-data "^0.0.31" fp-ts "2.1.1" + google-libphonenumber "^3.2.27" io-ts "2.0.1" - is-base64 "^1.1.0" - node-fetch "^2.6.9" + web3-utils "^1.10.0" "@celo/typechain-target-web3-v1-celo@^1.0.0": version "1.0.0" @@ -1082,6 +935,55 @@ dependencies: typechain "^4.0.3" +"@celo/utils@^5.0.6": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@celo/utils/-/utils-5.0.6.tgz#26d57dbbb524f3452c73af7ad5eb46ffff4a767b" + integrity sha512-bOnHZC72VeKtBRMoityH8GQbgOfIhLTzya+yV5taZsvPZM2vewc+ZHhrEVAh5OBeGjQOr4E2hExawaI3WQy5bQ== + dependencies: + "@celo/base" "^6.0.0" + "@ethereumjs/util" "8.0.5" + "@types/bn.js" "^5.1.0" + "@types/elliptic" "^6.4.9" + "@types/node" "^18.7.16" + bignumber.js "^9.0.0" + bn.js "4.11.9" + elliptic "^6.5.4" + ethereum-cryptography "1.2.0" + fp-ts "2.1.1" + io-ts "2.0.1" + rlp "^2.2.4" + web3-eth-abi "1.10.0" + web3-utils "1.10.0" + +"@celo/wallet-base@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@celo/wallet-base/-/wallet-base-5.1.1.tgz#569cea9d76fef1d89e8912e4a9a677038604600d" + integrity sha512-tDA8ZlXluqUfRlRBenVw4vlNAIfwqunmCkcWfO5SYecH5jb1P9eOmnhqZKfFjBDwD+LbJXjVGs3voiRQZvHXyQ== + dependencies: + "@celo/base" "^6.0.0" + "@celo/connect" "^5.1.1" + "@celo/utils" "^5.0.6" + "@ethereumjs/rlp" "^5.0.0" + "@ethereumjs/util" "8.0.5" + "@types/debug" "^4.1.5" + bignumber.js "^9.0.0" + debug "^4.1.1" + eth-lib "^0.2.8" + ethereum-cryptography "^2.1.2" + web3 "1.10.0" + web3-eth-accounts "1.10.0" + +"@celo/wallet-local@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@celo/wallet-local/-/wallet-local-5.1.1.tgz#e0601bb8880b9f22d605891835b98d83e191d34d" + integrity sha512-dvo4XSmhk5e3Uv6rCTD9b9sQpIXFn7LTFJUwWOjrSNNtGlffU2QRAHMRBUVStxGig6JR9G/W25jPNb+tZD46/g== + dependencies: + "@celo/connect" "^5.1.1" + "@celo/utils" "^5.0.6" + "@celo/wallet-base" "^5.1.1" + "@ethereumjs/util" "8.0.5" + eth-lib "^0.2.8" + "@chainsafe/as-sha256@^0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" @@ -1103,206 +1005,6 @@ "@chainsafe/persistent-merkle-tree" "^0.4.2" case "^1.6.3" -"@changesets/apply-release-plan@^6.1.4": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@changesets/apply-release-plan/-/apply-release-plan-6.1.4.tgz#09293256090737ecd2f683842d6d732034a5e3c8" - integrity sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/config" "^2.3.1" - "@changesets/get-version-range-type" "^0.3.2" - "@changesets/git" "^2.0.0" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - detect-indent "^6.0.0" - fs-extra "^7.0.1" - lodash.startcase "^4.4.0" - outdent "^0.5.0" - prettier "^2.7.1" - resolve-from "^5.0.0" - semver "^7.5.3" - -"@changesets/assemble-release-plan@^5.2.4": - version "5.2.4" - resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-5.2.4.tgz#d42fd63f4297a2e630e8e0a49f07d4ff5f5ef7bc" - integrity sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.6" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - semver "^7.5.3" - -"@changesets/changelog-git@^0.1.14": - version "0.1.14" - resolved "https://registry.yarnpkg.com/@changesets/changelog-git/-/changelog-git-0.1.14.tgz#852caa7727dcf91497c131d05bc2cd6248532ada" - integrity sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA== - dependencies: - "@changesets/types" "^5.2.1" - -"@changesets/cli@^2.26.2": - version "2.26.2" - resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.26.2.tgz#8914dd6ef3ea425a7d5935f6c35a8b7ccde54e45" - integrity sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/apply-release-plan" "^6.1.4" - "@changesets/assemble-release-plan" "^5.2.4" - "@changesets/changelog-git" "^0.1.14" - "@changesets/config" "^2.3.1" - "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.6" - "@changesets/get-release-plan" "^3.0.17" - "@changesets/git" "^2.0.0" - "@changesets/logger" "^0.0.5" - "@changesets/pre" "^1.0.14" - "@changesets/read" "^0.5.9" - "@changesets/types" "^5.2.1" - "@changesets/write" "^0.2.3" - "@manypkg/get-packages" "^1.1.3" - "@types/is-ci" "^3.0.0" - "@types/semver" "^7.5.0" - ansi-colors "^4.1.3" - chalk "^2.1.0" - enquirer "^2.3.0" - external-editor "^3.1.0" - fs-extra "^7.0.1" - human-id "^1.0.2" - is-ci "^3.0.1" - meow "^6.0.0" - outdent "^0.5.0" - p-limit "^2.2.0" - preferred-pm "^3.0.0" - resolve-from "^5.0.0" - semver "^7.5.3" - spawndamnit "^2.0.0" - term-size "^2.1.0" - tty-table "^4.1.5" - -"@changesets/config@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@changesets/config/-/config-2.3.1.tgz#3d4a1dc866c3623375180b30f69fccdf0e3efebf" - integrity sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w== - dependencies: - "@changesets/errors" "^0.1.4" - "@changesets/get-dependents-graph" "^1.3.6" - "@changesets/logger" "^0.0.5" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - fs-extra "^7.0.1" - micromatch "^4.0.2" - -"@changesets/errors@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@changesets/errors/-/errors-0.1.4.tgz#f79851746c43679a66b383fdff4c012f480f480d" - integrity sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q== - dependencies: - extendable-error "^0.1.5" - -"@changesets/get-dependents-graph@^1.3.6": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@changesets/get-dependents-graph/-/get-dependents-graph-1.3.6.tgz#5e19e7b0bfbc7dc38e1986eaaa7016ff377ed888" - integrity sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q== - dependencies: - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - chalk "^2.1.0" - fs-extra "^7.0.1" - semver "^7.5.3" - -"@changesets/get-release-plan@^3.0.17": - version "3.0.17" - resolved "https://registry.yarnpkg.com/@changesets/get-release-plan/-/get-release-plan-3.0.17.tgz#8aabced2795ffeae864696b60ee3031f8a94c5f3" - integrity sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/assemble-release-plan" "^5.2.4" - "@changesets/config" "^2.3.1" - "@changesets/pre" "^1.0.14" - "@changesets/read" "^0.5.9" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - -"@changesets/get-version-range-type@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@changesets/get-version-range-type/-/get-version-range-type-0.3.2.tgz#8131a99035edd11aa7a44c341cbb05e668618c67" - integrity sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg== - -"@changesets/git@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@changesets/git/-/git-2.0.0.tgz#8de57649baf13a86eb669a25fa51bcad5cea517f" - integrity sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/errors" "^0.1.4" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - is-subdir "^1.1.1" - micromatch "^4.0.2" - spawndamnit "^2.0.0" - -"@changesets/logger@^0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@changesets/logger/-/logger-0.0.5.tgz#68305dd5a643e336be16a2369cb17cdd8ed37d4c" - integrity sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw== - dependencies: - chalk "^2.1.0" - -"@changesets/parse@^0.3.16": - version "0.3.16" - resolved "https://registry.yarnpkg.com/@changesets/parse/-/parse-0.3.16.tgz#f8337b70aeb476dc81745ab3294022909bc4a84a" - integrity sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg== - dependencies: - "@changesets/types" "^5.2.1" - js-yaml "^3.13.1" - -"@changesets/pre@^1.0.14": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@changesets/pre/-/pre-1.0.14.tgz#9df73999a4d15804da7381358d77bb37b00ddf0f" - integrity sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/errors" "^0.1.4" - "@changesets/types" "^5.2.1" - "@manypkg/get-packages" "^1.1.3" - fs-extra "^7.0.1" - -"@changesets/read@^0.5.9": - version "0.5.9" - resolved "https://registry.yarnpkg.com/@changesets/read/-/read-0.5.9.tgz#a1b63a82b8e9409738d7a0f9cc39b6d7c28cbab0" - integrity sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/git" "^2.0.0" - "@changesets/logger" "^0.0.5" - "@changesets/parse" "^0.3.16" - "@changesets/types" "^5.2.1" - chalk "^2.1.0" - fs-extra "^7.0.1" - p-filter "^2.1.0" - -"@changesets/types@^4.0.1": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@changesets/types/-/types-4.1.0.tgz#fb8f7ca2324fd54954824e864f9a61a82cb78fe0" - integrity sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw== - -"@changesets/types@^5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@changesets/types/-/types-5.2.1.tgz#a228c48004aa8a93bce4be2d1d31527ef3bf21f6" - integrity sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg== - -"@changesets/write@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@changesets/write/-/write-0.2.3.tgz#baf6be8ada2a67b9aba608e251bfea4fdc40bc63" - integrity sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw== - dependencies: - "@babel/runtime" "^7.20.1" - "@changesets/types" "^5.2.1" - fs-extra "^7.0.1" - human-id "^1.0.2" - prettier "^2.7.1" - "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -2043,13 +1745,6 @@ retry-request "^4.0.0" teeny-request "^3.11.3" -"@google-cloud/kms@~2.9.0": - version "2.9.0" - resolved "https://registry.yarnpkg.com/@google-cloud/kms/-/kms-2.9.0.tgz#3f7e51a3e30795a69ded4ea4f96609a59b503001" - integrity sha512-AWzkMdpQewBMhsdu3Os5UNvYsgJU8y6uSDtXFK36llmk7DeZbqRFpDviGkSImOIOOJgz1Spu1WN61veKZW9yTQ== - dependencies: - google-gax "^2.24.1" - "@google-cloud/monitoring@0.7.1": version "0.7.1" resolved "https://registry.yarnpkg.com/@google-cloud/monitoring/-/monitoring-0.7.1.tgz#9afd2c8b237f01675dcaea8c5c7b3de9b58e24ad" @@ -2236,14 +1931,6 @@ dependencies: semver "^5.5.0" -"@grpc/grpc-js@^1.7.1": - version "1.9.7" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.7.tgz#7d0e29bc162287bee2523901c9bc9320d8402397" - integrity sha512-yMaA/cIsRhGzW3ymCNpdlPcInXcovztlgu/rirThj2b87u3RzWUszliOqZ/pldy7yhmJPS8uwog+kZSTa4A0PQ== - dependencies: - "@grpc/proto-loader" "^0.7.8" - "@types/node" ">=12.12.47" - "@grpc/grpc-js@~1.6.0": version "1.6.12" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.6.12.tgz#20f710d8a8c5c396b2ae9530ba6c06b984614fdf" @@ -2282,87 +1969,6 @@ protobufjs "^7.0.0" yargs "^16.2.0" -"@grpc/proto-loader@^0.7.8": - version "0.7.10" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" - integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== - dependencies: - lodash.camelcase "^4.3.0" - long "^5.0.0" - protobufjs "^7.2.4" - yargs "^17.7.2" - -"@hapi/b64@5.x.x": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@hapi/b64/-/b64-5.0.0.tgz#b8210cbd72f4774985e78569b77e97498d24277d" - integrity sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/boom@9.x.x", "@hapi/boom@^9.0.0": - version "9.1.4" - resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" - integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== - dependencies: - "@hapi/hoek" "9.x.x" - -"@hapi/bourne@2.x.x": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.1.0.tgz#66aff77094dc3080bd5df44ec63881f2676eb020" - integrity sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q== - -"@hapi/cryptiles@5.x.x": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/cryptiles/-/cryptiles-5.1.0.tgz#655de4cbbc052c947f696148c83b187fc2be8f43" - integrity sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA== - dependencies: - "@hapi/boom" "9.x.x" - -"@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" - integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== - -"@hapi/iron@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@hapi/iron/-/iron-6.0.0.tgz#ca3f9136cda655bdd6028de0045da0de3d14436f" - integrity sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw== - dependencies: - "@hapi/b64" "5.x.x" - "@hapi/boom" "9.x.x" - "@hapi/bourne" "2.x.x" - "@hapi/cryptiles" "5.x.x" - "@hapi/hoek" "9.x.x" - -"@hapi/podium@^4.1.3": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@hapi/podium/-/podium-4.1.3.tgz#91e20838fc2b5437f511d664aabebbb393578a26" - integrity sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g== - dependencies: - "@hapi/hoek" "9.x.x" - "@hapi/teamwork" "5.x.x" - "@hapi/validate" "1.x.x" - -"@hapi/teamwork@5.x.x": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@hapi/teamwork/-/teamwork-5.1.1.tgz#4d2ba3cac19118a36c44bf49a3a47674de52e4e4" - integrity sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg== - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@hapi/validate@1.x.x": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@hapi/validate/-/validate-1.1.3.tgz#f750a07283929e09b51aa16be34affb44e1931ad" - integrity sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@hutson/parse-repository-url@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" @@ -2655,7 +2261,7 @@ dependencies: invariant "2" -"@ledgerhq/devices@^5.11.0", "@ledgerhq/devices@^5.51.1": +"@ledgerhq/devices@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" integrity sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA== @@ -2665,26 +2271,11 @@ rxjs "6" semver "^7.3.5" -"@ledgerhq/devices@^8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.1.tgz#4c475f6ae249daf00ef08f5098924206233f3179" - integrity sha512-8uuyR8DGowYBLatur+MyJtRJ8RYDWSFFqGnNmgBBdlRG6VPf9vjhrFZlmYqukWesPwkZNZstP475W4TS+j6EFw== - dependencies: - "@ledgerhq/errors" "^6.12.4" - "@ledgerhq/logs" "^6.10.1" - rxjs "6" - semver "^7.3.5" - -"@ledgerhq/errors@^5.11.0", "@ledgerhq/errors@^5.50.0": +"@ledgerhq/errors@^5.50.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== -"@ledgerhq/errors@^6.12.4": - version "6.12.4" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.12.4.tgz#1c2f75dc3dee91b069f3446be484fa28676d1b45" - integrity sha512-qi5poMrcIuFuivdzRjjQsNp7rRwUA5v3eo6D4yEy+l+w8wT4d4JtQ5u1TbrlGfFHfgLq7Lv6dsvh2ooLyWTyfg== - "@ledgerhq/hw-app-eth@^5.53.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.53.0.tgz#5df2d7427db9f387099d0cc437e9730101d7c404" @@ -2697,14 +2288,6 @@ bignumber.js "^9.0.1" ethers "^5.2.0" -"@ledgerhq/hw-app-eth@~5.11.0": - version "5.11.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.11.0.tgz#5db6abe0ddf5b5266ed09868de12021f59c1a33e" - integrity sha512-qgpPwZzM8UMHYMC5+9xYV2O+8kgkDAl9+38w9JiBksaGmUFqcS4najsB1nj6AWf2rGEuXdKMb2WEYRskVypJrA== - dependencies: - "@ledgerhq/errors" "^5.11.0" - "@ledgerhq/hw-transport" "^5.11.0" - "@ledgerhq/hw-transport-node-hid-noevents@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.51.1.tgz#71f37f812e448178ad0bcc2258982150d211c1ab" @@ -2716,17 +2299,6 @@ "@ledgerhq/logs" "^5.50.0" node-hid "2.1.1" -"@ledgerhq/hw-transport-node-hid-noevents@^6.27.13": - version "6.27.13" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.27.13.tgz#96f3667a18ea3602160af5d08db677ae0b8e3bb7" - integrity sha512-Lq85zoc95eb5npudlgTARVrB57jbk8oZ8KuyVOovNm1AjR0OrYfl0iCqw49h+SL/UFWWVyBisLg6IOYCpj1SNQ== - dependencies: - "@ledgerhq/devices" "^8.0.1" - "@ledgerhq/errors" "^6.12.4" - "@ledgerhq/hw-transport" "^6.28.2" - "@ledgerhq/logs" "^6.10.1" - node-hid "^2.1.2" - "@ledgerhq/hw-transport-node-hid@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.51.1.tgz#fe8eb81e18929663540698c80905952cdbe542d5" @@ -2741,20 +2313,6 @@ node-hid "2.1.1" usb "^1.7.0" -"@ledgerhq/hw-transport-node-hid@^6.27.4": - version "6.27.13" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.27.13.tgz#741644d7b8761f682b36eda36e1bf7876357efda" - integrity sha512-j4c1UOMylX9cE9ebTh+qqMfzZDJpK8WZ7/kalxdY/MHWQcO+F2XAMvEqdZOaMjSIhI0vbgL/OoEvO2nxGFhObA== - dependencies: - "@ledgerhq/devices" "^8.0.1" - "@ledgerhq/errors" "^6.12.4" - "@ledgerhq/hw-transport" "^6.28.2" - "@ledgerhq/hw-transport-node-hid-noevents" "^6.27.13" - "@ledgerhq/logs" "^6.10.1" - lodash "^4.17.21" - node-hid "^2.1.2" - usb "^1.7.0" - "@ledgerhq/hw-transport-webusb@^5.53.1": version "5.53.1" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-5.53.1.tgz#3df8c401417571e3bcacc378d8aca587214b05ae" @@ -2765,7 +2323,7 @@ "@ledgerhq/hw-transport" "^5.51.1" "@ledgerhq/logs" "^5.50.0" -"@ledgerhq/hw-transport@^5.11.0", "@ledgerhq/hw-transport@^5.51.1": +"@ledgerhq/hw-transport@^5.51.1": version "5.51.1" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz#8dd14a8e58cbee4df0c29eaeef983a79f5f22578" integrity sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw== @@ -2774,34 +2332,11 @@ "@ledgerhq/errors" "^5.50.0" events "^3.3.0" -"@ledgerhq/hw-transport@^6.28.2": - version "6.28.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.28.2.tgz#483f9a39403ee63b03d452e30bfe8189dcca5785" - integrity sha512-2LxQdZnhSzu394brKuUZIWfuT2YAyNI3glRMf8+yHx3wUFqi10v8NzII99SHDyT8tN3Ovzmq+hbGHvrR2PqYRA== - dependencies: - "@ledgerhq/devices" "^8.0.1" - "@ledgerhq/errors" "^6.12.4" - events "^3.3.0" - -"@ledgerhq/hw-transport@~5.11.0": - version "5.11.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.11.0.tgz#f5c45a34d9b68d81fd2f6641b49815527720364b" - integrity sha512-z56iwv0DZZu20T5q9sNMHFQNVuRKYqzCuNFhY9woWSpmOQkyVHCRiEgOQbN5h6kVri6fkfPkDzqqcsYjJlnT9g== - dependencies: - "@ledgerhq/devices" "^5.11.0" - "@ledgerhq/errors" "^5.11.0" - events "^3.1.0" - "@ledgerhq/logs@^5.50.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@ledgerhq/logs@^6.10.1": - version "6.10.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.10.1.tgz#5bd16082261d7364eabb511c788f00937dac588d" - integrity sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w== - "@lerna/add@5.6.2": version "5.6.2" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-5.6.2.tgz#d0e25fd4900b6f8a9548f940cc016ce8a3e2d2ba" @@ -3486,48 +3021,11 @@ npmlog "^6.0.2" write-file-atomic "^4.0.1" -"@manypkg/find-root@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@manypkg/find-root/-/find-root-1.1.0.tgz#a62d8ed1cd7e7d4c11d9d52a8397460b5d4ad29f" - integrity sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA== - dependencies: - "@babel/runtime" "^7.5.5" - "@types/node" "^12.7.1" - find-up "^4.1.0" - fs-extra "^8.1.0" - -"@manypkg/get-packages@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@manypkg/get-packages/-/get-packages-1.1.3.tgz#e184db9bba792fa4693de4658cfb1463ac2c9c47" - integrity sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A== - dependencies: - "@babel/runtime" "^7.5.5" - "@changesets/types" "^4.0.1" - "@manypkg/find-root" "^1.1.0" - fs-extra "^8.1.0" - globby "^11.0.0" - read-yaml-file "^1.1.0" - "@metamask/safe-event-emitter@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@noble/curves@1.0.0", "@noble/curves@~1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.0.0.tgz#e40be8c7daf088aaf291887cbc73f43464a92932" - integrity sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw== - dependencies: - "@noble/hashes" "1.3.0" - "@noble/curves@1.1.0", "@noble/curves@~1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d" @@ -3547,11 +3045,6 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== -"@noble/hashes@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" - integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== - "@noble/hashes@1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" @@ -3580,11 +3073,6 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - "@nodelib/fs.walk@^1.2.3": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" @@ -3797,277 +3285,6 @@ dependencies: nx "15.9.2" -"@oclif/color@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@oclif/color/-/color-0.1.2.tgz#28b07e2850d9ce814d0b587ce3403b7ad8f7d987" - integrity sha512-M9o+DOrb8l603qvgz1FogJBUGLqcMFL1aFg2ZEL0FbXJofiNTLOWIeB4faeZTLwE6dt0xH9GpCVpzksMMzGbmA== - dependencies: - ansi-styles "^3.2.1" - chalk "^3.0.0" - strip-ansi "^5.2.0" - supports-color "^5.4.0" - tslib "^1" - -"@oclif/command@1.8.11": - version "1.8.11" - resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.8.11.tgz#926919fe8ddb7ab778fef8a8f2951c975f35e0c2" - integrity sha512-2fGLMvi6J5+oNxTaZfdWPMWY8oW15rYj0V8yLzmZBAEjfzjLqLIzJE9IlNccN1zwRqRHc1bcISSRDdxJ56IS/Q== - dependencies: - "@oclif/config" "^1.18.2" - "@oclif/errors" "^1.3.5" - "@oclif/parser" "^3.8.6" - "@oclif/plugin-help" "3.2.14" - debug "^4.1.1" - semver "^7.3.2" - -"@oclif/command@^1.4.29", "@oclif/command@^1.4.31", "@oclif/command@^1.5.4", "@oclif/command@^1.6.0", "@oclif/command@^1.8.14", "@oclif/command@^1.8.15", "@oclif/command@^1.8.6", "@oclif/command@^1.8.9": - version "1.8.23" - resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.8.23.tgz#b27e6b35b48c692eba53a35db7be736cdf5e4411" - integrity sha512-H78+YbPKw9VankmlFizkHPP81UpoPC2x0MrTdU5/kzy0CCyTBmSGAxaUsiNi9tK7wKxMXOUbCYkk9MHr99zBaw== - dependencies: - "@oclif/config" "^1.18.2" - "@oclif/errors" "^1.3.6" - "@oclif/help" "^1.0.1" - "@oclif/parser" "^3.8.10" - debug "^4.1.1" - semver "^7.4.0" - -"@oclif/config@1.18.2": - version "1.18.2" - resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.18.2.tgz#5bfe74a9ba6a8ca3dceb314a81bd9ce2e15ebbfe" - integrity sha512-cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA== - dependencies: - "@oclif/errors" "^1.3.3" - "@oclif/parser" "^3.8.0" - debug "^4.1.1" - globby "^11.0.1" - is-wsl "^2.1.1" - tslib "^2.0.0" - -"@oclif/config@1.18.6": - version "1.18.6" - resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.18.6.tgz#37367026b3110a2f04875509b1920a8ee4489f21" - integrity sha512-OWhCpdu4QqggOPX1YPZ4XVmLLRX+lhGjXV6RNA7sogOwLqlEmSslnN/lhR5dkhcWZbKWBQH29YCrB3LDPRu/IA== - dependencies: - "@oclif/errors" "^1.3.6" - "@oclif/parser" "^3.8.9" - debug "^4.3.4" - globby "^11.1.0" - is-wsl "^2.1.1" - tslib "^2.3.1" - -"@oclif/config@^1.17.1", "@oclif/config@^1.18.2", "@oclif/config@^1.6.0", "@oclif/config@^1.6.22", "@oclif/config@^1.8.7": - version "1.18.8" - resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.18.8.tgz#efaccbd0381f90a98fa69c9131e14c5a91fc0659" - integrity sha512-FetS52+emaZQui0roFSdbBP8ddBkIezEoH2NcjLJRjqkMGdE9Z1V+jsISVqTYXk2KJ1gAI0CHDXFjJlNBYbJBg== - dependencies: - "@oclif/errors" "^1.3.6" - "@oclif/parser" "^3.8.10" - debug "^4.3.4" - globby "^11.1.0" - is-wsl "^2.1.1" - tslib "^2.5.0" - -"@oclif/dev-cli@^1.23.0": - version "1.26.10" - resolved "https://registry.yarnpkg.com/@oclif/dev-cli/-/dev-cli-1.26.10.tgz#d8df3a79009b68552f5e7f249d1d19ca52278382" - integrity sha512-dJ+II9rVXckzFvG+82PbfphMTnoqiHvsuAAbcHrLdZWPBnFAiDKhNYE0iHnA/knAC4VGXhogsrAJ3ERT5d5r2g== - dependencies: - "@oclif/command" "^1.8.15" - "@oclif/config" "^1.18.2" - "@oclif/errors" "^1.3.5" - "@oclif/plugin-help" "3.2.18" - cli-ux "5.6.7" - debug "^4.1.1" - find-yarn-workspace-root "^2.0.0" - fs-extra "^8.1" - github-slugger "^1.2.1" - lodash "^4.17.11" - normalize-package-data "^3.0.0" - qqjs "^0.3.10" - tslib "^2.0.3" - -"@oclif/errors@1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@oclif/errors/-/errors-1.3.5.tgz#a1e9694dbeccab10fe2fe15acb7113991bed636c" - integrity sha512-OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ== - dependencies: - clean-stack "^3.0.0" - fs-extra "^8.1" - indent-string "^4.0.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -"@oclif/errors@1.3.6", "@oclif/errors@^1.2.2", "@oclif/errors@^1.3.3", "@oclif/errors@^1.3.5", "@oclif/errors@^1.3.6": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@oclif/errors/-/errors-1.3.6.tgz#e8fe1fc12346cb77c4f274e26891964f5175f75d" - integrity sha512-fYaU4aDceETd89KXP+3cLyg9EHZsLD3RxF2IU9yxahhBpspWjkWi3Dy3bTgcwZ3V47BgxQaGapzJWDM33XIVDQ== - dependencies: - clean-stack "^3.0.0" - fs-extra "^8.1" - indent-string "^4.0.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -"@oclif/help@^1.0.0", "@oclif/help@^1.0.1": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@oclif/help/-/help-1.0.5.tgz#0a370d0340fcf167ec3cb7a4f3074ebb3db8a94a" - integrity sha512-77ZXqVXcd+bQ6EafN56KbL4PbNtZM/Lq4GQElekNav+CPIgPNKT3AtMTQrc0fWke6bb/BTLB+1Fu1gWgx643jQ== - dependencies: - "@oclif/config" "1.18.6" - "@oclif/errors" "1.3.6" - chalk "^4.1.2" - indent-string "^4.0.0" - lodash "^4.17.21" - string-width "^4.2.0" - strip-ansi "^6.0.0" - widest-line "^3.1.0" - wrap-ansi "^6.2.0" - -"@oclif/linewrap@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@oclif/linewrap/-/linewrap-1.0.0.tgz#aedcb64b479d4db7be24196384897b5000901d91" - integrity sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw== - -"@oclif/parser@^3.8.0", "@oclif/parser@^3.8.10", "@oclif/parser@^3.8.6", "@oclif/parser@^3.8.9": - version "3.8.10" - resolved "https://registry.yarnpkg.com/@oclif/parser/-/parser-3.8.10.tgz#7b1048566e1d3f45ed09ca92b2e30f09bd9647e1" - integrity sha512-J4l/NcnfbIU84+NNdy6bxq9yJt4joFWNvpk59hq+uaQPUNtjmNJDVGuRvf6GUOxHNgRsVK1JRmd/Ez+v7Z9GqQ== - dependencies: - "@oclif/errors" "^1.3.6" - "@oclif/linewrap" "^1.0.0" - chalk "^4.1.0" - tslib "^2.5.0" - -"@oclif/parser@^3.8.16": - version "3.8.17" - resolved "https://registry.yarnpkg.com/@oclif/parser/-/parser-3.8.17.tgz#e1ce0f29b22762d752d9da1c7abd57ad81c56188" - integrity sha512-l04iSd0xoh/16TGVpXb81Gg3z7tlQGrEup16BrVLsZBK6SEYpYHRJZnM32BwZrHI97ZSFfuSwVlzoo6HdsaK8A== - dependencies: - "@oclif/errors" "^1.3.6" - "@oclif/linewrap" "^1.0.0" - chalk "^4.1.0" - tslib "^2.6.2" - -"@oclif/plugin-autocomplete@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@oclif/plugin-autocomplete/-/plugin-autocomplete-0.1.5.tgz#b021b50db6d6b0d9e7d2227c58f43906578ae175" - integrity sha512-Afchpdd8FNfx9GaU/1D9IzyfiXvjfGybgzQ6G4GTFvPO0/hLdkXX3YyYq+SnxE6/bCrhg4pleiB+GuJACmmkEA== - dependencies: - "@oclif/command" "^1.4.31" - "@oclif/config" "^1.6.22" - chalk "^2.4.1" - cli-ux "^4.4.0" - debug "^3.1.0" - fs-extra "^6.0.1" - moment "^2.22.1" - -"@oclif/plugin-commands@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@oclif/plugin-commands/-/plugin-commands-1.3.0.tgz#ba95e2c7f7c50345b806aa3728fe7868452d08a0" - integrity sha512-Qx9gJ7/aPBgo+Q/DHmGcWyxn2/0bjqmCwt/nO0lWuTZQIH3ZTqclTm68TMZLS4QnQyDGeeYK0GqZ5qJlrXD+SQ== - dependencies: - "@oclif/command" "^1.5.4" - "@oclif/config" "^1.8.7" - cli-ux "^5.4.5" - lodash "^4.17.11" - -"@oclif/plugin-help@3.2.14": - version "3.2.14" - resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-3.2.14.tgz#7149eb322d36abc6cbf09f205bad128141e7eba4" - integrity sha512-NP5qmE2YfcW3MmXjcrxiqKe9Hf3G0uK/qNc0zAMYKU4crFyIsWj7dBfQVFZSb28YXGioOOpjMzG1I7VMxKF38Q== - dependencies: - "@oclif/command" "^1.8.9" - "@oclif/config" "^1.18.2" - "@oclif/errors" "^1.3.5" - chalk "^4.1.2" - indent-string "^4.0.0" - lodash "^4.17.21" - string-width "^4.2.0" - strip-ansi "^6.0.0" - widest-line "^3.1.0" - wrap-ansi "^6.2.0" - -"@oclif/plugin-help@3.2.18": - version "3.2.18" - resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-3.2.18.tgz#f2bf6ba86719c174fc0e4c2149f73b46006bfdbd" - integrity sha512-5n5Pkz4L0duknIvFwx2Ko9Xda3miT6RZP8bgaaK3Q/9fzVBrhi4bOM0u05/OThI6V+3NsSdxYS2o1NLcXToWDg== - dependencies: - "@oclif/command" "^1.8.14" - "@oclif/config" "1.18.2" - "@oclif/errors" "1.3.5" - "@oclif/help" "^1.0.0" - chalk "^4.1.2" - indent-string "^4.0.0" - lodash "^4.17.21" - string-width "^4.2.0" - strip-ansi "^6.0.0" - widest-line "^3.1.0" - wrap-ansi "^6.2.0" - -"@oclif/plugin-help@^1.2.4": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-1.2.11.tgz#e6413a6009519230bc4c7e7fe45d8e139939e657" - integrity sha512-tuzhvxxRtfLnWa96klngXBi5IwHt9S/twedCbQhl9dYIKTFMHI1BcOQcPra6ylct+M+b9jhEF5sjWLv78tB6tw== - dependencies: - "@oclif/command" "^1.4.29" - chalk "^2.4.1" - indent-string "^3.2.0" - lodash.template "^4.4.0" - string-width "^2.1.1" - widest-line "^2.0.0" - wrap-ansi "^3.0.1" - -"@oclif/plugin-not-found@^1.2.4": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-1.2.6.tgz#7e354f7de6866477fe415c8fde357765876fe8ec" - integrity sha512-cfkDub79I9EpselfU/W8FTXhslrkOgfqjaa25tyGo99dAX5UVr6BWL2wbUobsU+rUcm4HN3byzdHDcqfu6hoAw== - dependencies: - "@oclif/color" "^0.1.2" - "@oclif/command" "1.8.11" - cli-ux "5.6.6" - fast-levenshtein "^3.0.0" - lodash "^4.17.21" - -"@oclif/plugin-plugins@^1.9.4": - version "1.10.11" - resolved "https://registry.yarnpkg.com/@oclif/plugin-plugins/-/plugin-plugins-1.10.11.tgz#f2d11dc164a3dd96392298670b4aafc04e89a44a" - integrity sha512-C9eHF10UkxwoAqRYrPW51YDuDOpDXASX4BEA++kTVcqhMQTKBQalmEJKw+gVnLl1YNmapse1ZSAcU1TrXjqykg== - dependencies: - "@oclif/color" "^0.1.2" - "@oclif/command" "^1.8.15" - "@oclif/errors" "^1.3.5" - chalk "^4.1.2" - cli-ux "^5.6.7" - debug "^4.3.3" - fs-extra "^9.0" - http-call "^5.3.0" - load-json-file "^5.3.0" - npm-run-path "^4.0.1" - semver "^7.3.2" - tslib "^2.0.0" - yarn "^1.21.1" - -"@oclif/plugin-warn-if-update-available@^1.7.0": - version "1.7.3" - resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-1.7.3.tgz#efe6676655fabbed2e90cc9e646e9da4c99bc8ae" - integrity sha512-q8q0NIneVCwIAJzglUMsl3EbXR/H5aPDk6g+qs7uF0tToxe07SWSONoNaKPzViwRWvYChMPjL77/rXyW1HVn4A== - dependencies: - "@oclif/command" "^1.8.6" - "@oclif/config" "^1.17.1" - "@oclif/errors" "^1.3.5" - chalk "^4.1.0" - debug "^4.1.0" - fs-extra "^9.0.1" - http-call "^5.2.2" - lodash "^4.17.21" - semver "^7.3.2" - -"@oclif/screen@^1.0.3", "@oclif/screen@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@oclif/screen/-/screen-1.0.4.tgz#b740f68609dfae8aa71c3a6cab15d816407ba493" - integrity sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw== - "@octokit/auth-token@^3.0.0": version "3.0.3" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.3.tgz#ce7e48a3166731f26068d7a7a7996b5da58cbe0c" @@ -4174,716 +3391,6 @@ dependencies: "@octokit/openapi-types" "^17.0.0" -"@opentelemetry/api-logs@0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.44.0.tgz#4bbb04e9043234c240b3a9129732281f1ceae759" - integrity sha512-OctojdKGmXHKAJa4/Ml+Nf7MD9jtYXvZyP64xTh0pNTmtgaTdWW3FURri2DdB/+l7YxRy0tYYZS3/tYEM1pj3w== - dependencies: - "@opentelemetry/api" "^1.0.0" - -"@opentelemetry/api@^1.0.0": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.4.1.tgz#ff22eb2e5d476fbc2450a196e40dd243cc20c28f" - integrity sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA== - -"@opentelemetry/api@^1.6.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.7.0.tgz#b139c81999c23e3c8d3c0a7234480e945920fc40" - integrity sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw== - -"@opentelemetry/auto-instrumentations-node@^0.39.4": - version "0.39.4" - resolved "https://registry.yarnpkg.com/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.39.4.tgz#c772201ba224e6ebffaaf17c9f2234e6e8343328" - integrity sha512-1bOMl+7qPe0RJeNaCo9UwNftl/cE0N81EEfxL0BJhPY4dHfCwQLMVoGpXrW8TxRy8ccjS1l1rwYIMnRHJseFqA== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/instrumentation-amqplib" "^0.33.2" - "@opentelemetry/instrumentation-aws-lambda" "^0.37.1" - "@opentelemetry/instrumentation-aws-sdk" "^0.36.1" - "@opentelemetry/instrumentation-bunyan" "^0.32.2" - "@opentelemetry/instrumentation-cassandra-driver" "^0.33.2" - "@opentelemetry/instrumentation-connect" "^0.32.2" - "@opentelemetry/instrumentation-cucumber" "^0.1.1" - "@opentelemetry/instrumentation-dataloader" "^0.5.2" - "@opentelemetry/instrumentation-dns" "^0.32.3" - "@opentelemetry/instrumentation-express" "^0.33.2" - "@opentelemetry/instrumentation-fastify" "^0.32.3" - "@opentelemetry/instrumentation-fs" "^0.8.2" - "@opentelemetry/instrumentation-generic-pool" "^0.32.3" - "@opentelemetry/instrumentation-graphql" "^0.35.2" - "@opentelemetry/instrumentation-grpc" "^0.44.0" - "@opentelemetry/instrumentation-hapi" "^0.33.1" - "@opentelemetry/instrumentation-http" "^0.44.0" - "@opentelemetry/instrumentation-ioredis" "^0.35.2" - "@opentelemetry/instrumentation-knex" "^0.32.2" - "@opentelemetry/instrumentation-koa" "^0.36.1" - "@opentelemetry/instrumentation-lru-memoizer" "^0.33.2" - "@opentelemetry/instrumentation-memcached" "^0.32.2" - "@opentelemetry/instrumentation-mongodb" "^0.37.1" - "@opentelemetry/instrumentation-mongoose" "^0.33.2" - "@opentelemetry/instrumentation-mysql" "^0.34.2" - "@opentelemetry/instrumentation-mysql2" "^0.34.2" - "@opentelemetry/instrumentation-nestjs-core" "^0.33.2" - "@opentelemetry/instrumentation-net" "^0.32.2" - "@opentelemetry/instrumentation-pg" "^0.36.2" - "@opentelemetry/instrumentation-pino" "^0.34.2" - "@opentelemetry/instrumentation-redis" "^0.35.2" - "@opentelemetry/instrumentation-redis-4" "^0.35.3" - "@opentelemetry/instrumentation-restify" "^0.34.1" - "@opentelemetry/instrumentation-router" "^0.33.2" - "@opentelemetry/instrumentation-socket.io" "^0.34.2" - "@opentelemetry/instrumentation-tedious" "^0.6.2" - "@opentelemetry/instrumentation-winston" "^0.32.2" - "@opentelemetry/resource-detector-alibaba-cloud" "^0.28.2" - "@opentelemetry/resource-detector-aws" "^1.3.2" - "@opentelemetry/resource-detector-container" "^0.3.2" - "@opentelemetry/resource-detector-gcp" "^0.29.2" - "@opentelemetry/resources" "^1.12.0" - "@opentelemetry/sdk-node" "^0.44.0" - -"@opentelemetry/context-async-hooks@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.17.1.tgz#4eba80bd66f8cd367e9ba94b5fec5f5acf5d7b25" - integrity sha512-up5I+RiQEkGrVEHtbAtmRgS+ZOnFh3shaDNHqZPBlGy+O92auL6yMmjzYpSKmJOGWowvs3fhVHePa8Exb5iHUg== - -"@opentelemetry/core@1.17.1", "@opentelemetry/core@^1.0.0", "@opentelemetry/core@^1.1.0", "@opentelemetry/core@^1.8.0": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.17.1.tgz#10c5e09c63aeb1836b34d80baf7113760fb19d96" - integrity sha512-I6LrZvl1FF97FQXPR0iieWQmKnGxYtMbWA1GrAXnLUR+B1Hn2m8KqQNEIlZAucyv00GBgpWkpllmULmZfG8P3g== - dependencies: - "@opentelemetry/semantic-conventions" "1.17.1" - -"@opentelemetry/core@1.18.1": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.18.1.tgz#d2e45f6bd6be4f00d20d18d4f1b230ec33805ae9" - integrity sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg== - dependencies: - "@opentelemetry/semantic-conventions" "1.18.1" - -"@opentelemetry/exporter-jaeger@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.17.1.tgz#efc44284b22b0ed0c4a5ba646c13902b980e52ee" - integrity sha512-NW4qm04q4bSmhU6es1AXBWt3itJ2gkrXbKLfwDleC+ZMp3bVV47stByDqhuJzic2f47Im+C733N9RMeBkyqKMQ== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/sdk-trace-base" "1.17.1" - "@opentelemetry/semantic-conventions" "1.17.1" - jaeger-client "^3.15.0" - -"@opentelemetry/exporter-trace-otlp-grpc@0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.44.0.tgz#67a2ea03ddfe1ef70384780eea1479bec0ee5e18" - integrity sha512-S1kT/9tVlgZDRYyVfCLYyWZoQTplPD9WcyX+qUPbhJTETORxzJVW9HN8mHwQsXaN7ngqwRLy5GW/nXHL8aqA0w== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.17.1" - "@opentelemetry/otlp-grpc-exporter-base" "0.44.0" - "@opentelemetry/otlp-transformer" "0.44.0" - "@opentelemetry/resources" "1.17.1" - "@opentelemetry/sdk-trace-base" "1.17.1" - -"@opentelemetry/exporter-trace-otlp-http@0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.44.0.tgz#1dfe24b87fa3e1f5edd2109da28d489029f90171" - integrity sha512-RkorGE6wf6PF5OjMUGBnbUDyaVgmN+vL7OgClJJUTxqbE7WqgbW8dkU04O+1mcB1znXZ1Aej1uDm0pS+eW/upA== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/otlp-exporter-base" "0.44.0" - "@opentelemetry/otlp-transformer" "0.44.0" - "@opentelemetry/resources" "1.17.1" - "@opentelemetry/sdk-trace-base" "1.17.1" - -"@opentelemetry/exporter-trace-otlp-proto@0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.44.0.tgz#5726749e76def507475ec47cfb67a2099d3a2ae7" - integrity sha512-yVW0FXxiLaQOyE3MGr6BtK7ml0DaJH4Qx3yvQYUd/hsJUSZBhYYw2TRaMsaW7XMpe1AvU81qt0l8uLYmcmcLJA== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/otlp-exporter-base" "0.44.0" - "@opentelemetry/otlp-proto-exporter-base" "0.44.0" - "@opentelemetry/otlp-transformer" "0.44.0" - "@opentelemetry/resources" "1.17.1" - "@opentelemetry/sdk-trace-base" "1.17.1" - -"@opentelemetry/exporter-zipkin@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.17.1.tgz#6d7537c0bc40ece73f8661420ef0c7322c0945cd" - integrity sha512-FaLZlIhdpxlZiKu/G8OvA+so4xoCL1hCo/JgNdeSxzI4GnJrmFFbZT6DXgUzXJO7F9Qw3KDE1cBFUHawLVz58g== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/resources" "1.17.1" - "@opentelemetry/sdk-trace-base" "1.17.1" - "@opentelemetry/semantic-conventions" "1.17.1" - -"@opentelemetry/instrumentation-amqplib@^0.33.2": - version "0.33.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.33.2.tgz#427ad7f417bb3f89d1b051a945c442387d1c6469" - integrity sha512-qAc9DMkyStlc45LgM+krSckYL4O5zi3uu1rk1QQL7Nn6q3LNNZV2c+fUPMf7hDf2OuK6VyVF0rqWYDSu/JDJ6Q== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-aws-lambda@^0.37.1": - version "0.37.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.37.1.tgz#991b747259536f1486c6f9367a0d2577192e77d1" - integrity sha512-tIz6SnvKXEjRId0yXcYNJL8CX5uY4Ou3yIkBeb1WSADLjNCp0NW1VaUM2pm8ksW3Nr3/0PY9S5T2yUBVr3yBIg== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/propagator-aws-xray" "^1.3.1" - "@opentelemetry/resources" "^1.8.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/aws-lambda" "8.10.122" - -"@opentelemetry/instrumentation-aws-sdk@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.36.1.tgz#e29dc3b8f00182cf200b8d787662d67969a21128" - integrity sha512-OpWI7erB1f3ncaLqyqhXrrR4bF2rK4la0z63WvX4SRlFBxOpLnVKj0RLdEbxnp7i+0zfEeC+Z4Sqt99MkKcDJA== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/propagation-utils" "^0.30.2" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-bunyan@^0.32.2": - version "0.32.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.32.2.tgz#24d2b1e574f71182a8a2286fb15cbf89bcca03cf" - integrity sha512-/sLChixYxFas7c5SbLLGUq2yKmU8c58IPlYNNqRSiT0epouqeBjxNUwQeizXl6Ba5+T/Yq7cwCVjh72CRb3tlA== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@types/bunyan" "1.8.9" - -"@opentelemetry/instrumentation-cassandra-driver@^0.33.2": - version "0.33.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.33.2.tgz#848566fe2c6602408a733ed254d62f272499babb" - integrity sha512-0tgIdRJk6tw8PIuRKM/pSQRwF1YGEaG+KxfT09Fxw0DBaxyoTgxgNzOHiYLx8zmoCzGTaLd79tHlrYWZRfXEGQ== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-connect@^0.32.2": - version "0.32.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.32.2.tgz#c81cacba090bca62c841b6536a7c05bb37b340a7" - integrity sha512-wNbExeTGoDTvMfraByTy7GaX+6Dc5DmQ49lZoWO5EBmrpsKBaL8l9XYCPNKOa3dEp28d9oJWyx+ixHQ2OhDLcA== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/connect" "3.4.36" - -"@opentelemetry/instrumentation-cucumber@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-cucumber/-/instrumentation-cucumber-0.1.1.tgz#4e16c7fc7b5bb5f9c2dd1290c1a19cc91b309c37" - integrity sha512-0yAymTJ84BlhMmE1tBs/PmA6MWpVMtjui+OwYxrYgF5rTTLu5QRcYe91KDDsSBDzaZ6MWtD/+Sgq5JWJysNfZQ== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-dataloader@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.5.2.tgz#c6807afd7115e6e038cc6e54aac225934d9236b6" - integrity sha512-OYzh714M8szDayFP21eSGUZqQQjgLr7d1skjtbhzT4TIBYe2X7EpPM+4Rmkef+eZsBkCmUk/ecfwAQC+nfAJGg== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - -"@opentelemetry/instrumentation-dns@^0.32.3": - version "0.32.3" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.32.3.tgz#62a31fa0201fbe83d5e3277e72bae6c7247d56ee" - integrity sha512-bBZW58MhfoIVCxKSeJexkbt1iclf0mgReJzKtldbU+pvD4OwSNLYmQ20OE+3YUKEX442CrjXI92Yg6ZF+EqKJQ== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - semver "^7.5.4" - -"@opentelemetry/instrumentation-express@^0.33.2": - version "0.33.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-express/-/instrumentation-express-0.33.2.tgz#e5bd14be5814e24b257cd093220d32d5e9261c5a" - integrity sha512-FR05iNosZL42haYang6vpmcuLfXLngJs/0gAgqXk8vwqGGwilOFak1PjoRdO4PAoso0FI+3zhV3Tz7jyDOmSyA== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/express" "4.17.18" - -"@opentelemetry/instrumentation-fastify@^0.32.3": - version "0.32.3" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.32.3.tgz#2c0640c986018d1a41dfff3d9c3bfe3b5b1cf62d" - integrity sha512-vRFVoEJXcu6nNpJ61H5syDb84PirOd4b3u8yl8Bcorrr6firGYBQH4pEIVB4PkQWlmi3sLOifqS3VAO2VRloEQ== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-fs@^0.8.2": - version "0.8.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.8.2.tgz#32ce79fc1afd415131318730b4ea3710ad56c9cf" - integrity sha512-LTIBkttNoycbo9EVgegnSCXU0V7mu3X7EzJNmceiaibMqcxZ6G3/ZE5uRIUVkqY+FTWOTXY5a7dJ9OTsSrMjag== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-generic-pool@^0.32.3": - version "0.32.3" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.32.3.tgz#4a5055927d1fac776eccf4204218086e4c070458" - integrity sha512-pJmmyKQzeROBtl0W+Gv1BHeVXixq8xdXtPy2IokEj33/sr++RfElixWMXRkar7suBkj9/c09a4fOj3fUrJJaYQ== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-graphql@^0.35.2": - version "0.35.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.35.2.tgz#67b0c173cff1191cfa66aa26f67c6752c365edf2" - integrity sha512-lJv7BbHFK0ExwogdQMtVHfnWhCBMDQEz8KYvhShXfRPiSStU5aVwa3TmT0O00KiJFpATSKJNZMv1iZNHbF6z1g== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - -"@opentelemetry/instrumentation-grpc@^0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.44.0.tgz#5305f015cfb58a413476620ebc9a189691dc6355" - integrity sha512-ddj0cmC9mdyOTF2dieslRWsXvCeamGM3KGpYyFwdXBKwPnVCD5Y8zSCSplqIgqIU7B8avPHaHlPU9Li2OxMQjw== - dependencies: - "@opentelemetry/instrumentation" "0.44.0" - "@opentelemetry/semantic-conventions" "1.17.1" - -"@opentelemetry/instrumentation-hapi@^0.33.1": - version "0.33.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.33.1.tgz#9327f15a0d075153f61d338400b3db618dd3902e" - integrity sha512-8gwPrIgppbj/prCTK31mGmcBvYESE5J2El6badbCvcUHg6ZSA/i8zo80NrJ6812imtD06Dvm6kfnK5UzlC+smQ== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/hapi__hapi" "20.0.13" - -"@opentelemetry/instrumentation-http@^0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.44.0.tgz#5a3e4b91073f737f054fe42ef591c39c5b3e6394" - integrity sha512-Nlvj3Y2n9q6uIcQq9f33HbcB4Dr62erSwYA37+vkorYnzI2j9PhxKitocRTZnbYsrymYmQJW9mdq/IAfbtVnNg== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/instrumentation" "0.44.0" - "@opentelemetry/semantic-conventions" "1.17.1" - semver "^7.5.2" - -"@opentelemetry/instrumentation-ioredis@^0.35.2": - version "0.35.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.35.2.tgz#4873f2e69fa337d9ce010a03548d21f6d210c258" - integrity sha512-D+KODK3ZzS9Be6zAzcoOyVd4Taf87CQ34jAX+FgrjtRlCxTuY6+p1eFhWNHWYS0EOcmdOcFcXxhszwp3/K1B4A== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/redis-common" "^0.36.1" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/ioredis4" "npm:@types/ioredis@^4.28.10" - -"@opentelemetry/instrumentation-knex@^0.32.2": - version "0.32.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.32.2.tgz#f85aea7dc077c2453bd30d2c7baf9422e63fb001" - integrity sha512-mEapkK4efIsCIGyuLcPpzA+dfPfw7w/kzS0zpm0Zm+tw1zjEGYoVubE0HzjmmexE4TOL6PzBSvF5FXOUXYH9XQ== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-koa@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.36.1.tgz#08186ac7759bcccf13e789445b6f16646c9a2e3f" - integrity sha512-wMbDk8qdU9MuOdz5GkHxxNCKPpiAu3RAU6Gf7Gj2ZmnDhxn1mCinaDm3Y2XyniRDzQu4+lFQszYTEdg84XcFYg== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/koa" "2.13.9" - "@types/koa__router" "12.0.1" - -"@opentelemetry/instrumentation-lru-memoizer@^0.33.2": - version "0.33.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.33.2.tgz#355bd161aa37a0aafb98f9abc1d998017c7c98e7" - integrity sha512-+IUW0QaB1mHrhXSMJfGgRVal0RgqW6CJ+J9uZJHhcQc2bCNnM2V2N4/pyDL2F7/6gb8bS0ku7dc8PF6LGlGCng== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - -"@opentelemetry/instrumentation-memcached@^0.32.2": - version "0.32.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.32.2.tgz#c90b0436f8c109e097255e2bc334e30f0661f1b9" - integrity sha512-g3BsNXvxQr1Vz4ZqIboJK2QOow+t9bNdn8NXyaqI1uZFxVhaIYQJmK0Wt76ueHJ48SVzC1gbqNsGFIak5KhQEg== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/memcached" "^2.2.6" - -"@opentelemetry/instrumentation-mongodb@^0.37.1": - version "0.37.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.37.1.tgz#5957565a74a4fe39fb72ab29f3b72a20223ef3df" - integrity sha512-UE+5B/MDfB5MUlJfjj8uo/fMnJPpqeUesJZ/loAWuCLCTDDyEJM7wnAvtH+2c4QoukkkIT1lDe5q9aiXwLEr5g== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/sdk-metrics" "^1.9.1" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-mongoose@^0.33.2": - version "0.33.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.33.2.tgz#99f235df66009e0b73953a58f3f6b9f28e6a31b1" - integrity sha512-JXhhn8vkGKbev6aBPkQ6dL5rDImQfucrub8mU7dknPPpCL850fSQ2qt2qLvyDXfawF5my6KWW0fkKJCeRA+ECw== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-mysql2@^0.34.2": - version "0.34.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.34.2.tgz#f59f03c3135a8b50bad9cb3d5b55403008a8d0ba" - integrity sha512-Ac/KAHHtTz087P7I6JapBs+ofNOM+RPTDGwSe1ddnTj0xTAO0F6ITmRC1firnMdzDidI/wI+vmgnWclCB81xKQ== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@opentelemetry/sql-common" "^0.40.0" - -"@opentelemetry/instrumentation-mysql@^0.34.2": - version "0.34.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.34.2.tgz#3372dc11010dce2f357a89a1e3f32359c4d34079" - integrity sha512-3OEhW1CB7b93PHIbQ5t8Aoj/dCqNWQBDBbyUXGy2zFbhEcJBVcLeBpy3w8VEjzNTfRC6cVwASuHRP0aLBIPNjQ== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/mysql" "2.15.22" - -"@opentelemetry/instrumentation-nestjs-core@^0.33.2": - version "0.33.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.33.2.tgz#fb87031097a96c761db0823c2eff8deba452abbf" - integrity sha512-jrX/355K+myc5V/EQFouqQzBfy5qj+SyVMHIKqVymOx/zWFCvz1p9ChNiPOKzl2il3o/P/aOqBUN/qnRaGowlw== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-net@^0.32.2": - version "0.32.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-net/-/instrumentation-net-0.32.2.tgz#bfc5d99d7e6805675079347d811e484d5e45eb83" - integrity sha512-dkm5tZ2NP4Pn3LLs8IfizEQfFBJ7qrqvwoHQA20Z4ZjjjfrPd1aHANCYGs0axh/VBT0IACdX6IZZq/0Lb3Ocfw== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-pg@^0.36.2": - version "0.36.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.36.2.tgz#45947d19bbafabf5b350a76350ef4523deac13a5" - integrity sha512-KUjI8OGi7kicml2Sd/PR/M8otZoZEdPArMfhznS6OQKit+RxFo0p5x6RVeka/cLQlmoc3eeGBizDeZetssbHgw== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@opentelemetry/sql-common" "^0.40.0" - "@types/pg" "8.6.1" - "@types/pg-pool" "2.0.4" - -"@opentelemetry/instrumentation-pino@^0.34.2": - version "0.34.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.34.2.tgz#f0cd996935430e4750c8aa83d23d8f56523e0edd" - integrity sha512-gGGeM2sRSulAtV2nAPMrRBm+nenyrKO3kyrORN+q2V4S8hx+6yze35+QQkU5uWk6N5/s5Y9bxqPcaNUt3jwprw== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - -"@opentelemetry/instrumentation-redis-4@^0.35.3": - version "0.35.3" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.35.3.tgz#6862cb3542c22b151b38d259d13225e3f442bc26" - integrity sha512-fWMqJpEGLcE1Z76CTwhZPaFU7EGBZ/pNFKCLdHALddvud/9AxKbxLIn73QGh7sLU8MwhCBkTbuipj5UAy8g8TA== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/redis-common" "^0.36.1" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-redis@^0.35.2": - version "0.35.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.35.2.tgz#1630f48ab90dc22c8bfd1ec3a7050bc9fea24b5b" - integrity sha512-KBwVMsoiMc2kAffnmG64rJDMEbmK3VT991s7kedipJsBT9jrcx4tXT/fdIwFk+helawXHbiI0ILlxzA8dVYz3g== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/redis-common" "^0.36.1" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-restify@^0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.34.1.tgz#a9fe79f714a9f26801ceb06a9b6745e24ce91719" - integrity sha512-lQwEieqPAnpKcNtINzsApmtj9Odvhu6bW5fZvSldSF2pzLOUb5Z9ZDjPnYlZyoWpwqlL8FLc9/LJ1BD4lSaGdA== - dependencies: - "@opentelemetry/core" "^1.8.0" - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-router@^0.33.2": - version "0.33.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-router/-/instrumentation-router-0.33.2.tgz#4914808c5baf1e47bc655649921de1e79ab1ab58" - integrity sha512-GNQMLkz24vc0ND/Su3/ytyAfVPtBYnbLbM2dscj8h3VHebUZPWcOGk/M6wsqDCpEbP5xUA56afEkWsbGzWtMxA== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-socket.io@^0.34.2": - version "0.34.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.34.2.tgz#a7f65a008fbd0af275c5934289238ef0955002b4" - integrity sha512-uway54Mx/MtZajA5jsq8TPhRpMK9QBTzjhyIdMGS2XV+gykL/JTFbeis6ewmRnLUAcBrmPcaxQnavEAkJ787AA== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/instrumentation-tedious@^0.6.2": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.6.2.tgz#fe08c0a2e3966bc9c2a47d6c24b53dc596592698" - integrity sha512-8/WwifQNuB/1bRWyqSCJPow/Gd6EubFpKbZJgOEIL1jk0Lk/ikpjI5zxqWbLIT2pUOi0Ihwvu5sTqgdY4oPz9Q== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - "@types/tedious" "^4.0.10" - -"@opentelemetry/instrumentation-winston@^0.32.2": - version "0.32.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.32.2.tgz#3e10fabbf7ab5496fec3fc8bcfc0227a5ba0a5ca" - integrity sha512-6+BMhSWaGxgezwOUuMH389V16fMgwFNmXAwh8zk0mjYHmWpyLzoJ+QV8AQ9WZFBQQnkpbbxfiFdiyO+NCvwBCg== - dependencies: - "@opentelemetry/instrumentation" "^0.44.0" - -"@opentelemetry/instrumentation@0.44.0", "@opentelemetry/instrumentation@^0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.44.0.tgz#194f16fc96671575b6bd73d3fadffb5aa4497e67" - integrity sha512-B6OxJTRRCceAhhnPDBshyQO7K07/ltX3quOLu0icEvPK9QZ7r9P1y0RQX8O5DxB4vTv4URRkxkg+aFU/plNtQw== - dependencies: - "@types/shimmer" "^1.0.2" - import-in-the-middle "1.4.2" - require-in-the-middle "^7.1.1" - semver "^7.5.2" - shimmer "^1.2.1" - -"@opentelemetry/otlp-exporter-base@0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.44.0.tgz#10563cbe3ed89d7c8d422b513b819026f00ba038" - integrity sha512-DKQqRrfVMe96aSLZiCgIesLcMLfnWH8d4bTpLB1JbU+SAQJ7nVCAfS9U36mjFCVhvNDD7gwfCNrxqFMCHq6FUw== - dependencies: - "@opentelemetry/core" "1.17.1" - -"@opentelemetry/otlp-grpc-exporter-base@0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.44.0.tgz#bbdd2bce685a2ac27234a76dd795e051dcd11d02" - integrity sha512-RsYW2+ikNDDXM9rY4gCA3lJOu53o4CzCsUJ9DV6r78k/Y0ckWw2GM7R4I6yOmMe4jilxEaHorI3oTJFLD8KYug== - dependencies: - "@grpc/grpc-js" "^1.7.1" - "@opentelemetry/core" "1.17.1" - "@opentelemetry/otlp-exporter-base" "0.44.0" - protobufjs "^7.2.3" - -"@opentelemetry/otlp-proto-exporter-base@0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.44.0.tgz#10caa329223a0b1f19c29d950bce6576aa84fe5c" - integrity sha512-vgQvWEkXNk8X4BW93+j054TZBVs1ryguXQjeoLeHV/dzopdGuAypI0xC5OtSr+eRftuyPqPl2DVp4tjRq4z4dw== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/otlp-exporter-base" "0.44.0" - protobufjs "^7.2.3" - -"@opentelemetry/otlp-transformer@0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.44.0.tgz#4f7eb2f6e4624b2110dfb3a5dda8cfebbd80225a" - integrity sha512-1/KC+aHM1oGEsXyNy7QoxpvErxGdzt26bg9VHyNb4TDILkUFdwrnywnxPc6lXZ6h/8T8Mt718UWOKjNHC514kQ== - dependencies: - "@opentelemetry/api-logs" "0.44.0" - "@opentelemetry/core" "1.17.1" - "@opentelemetry/resources" "1.17.1" - "@opentelemetry/sdk-logs" "0.44.0" - "@opentelemetry/sdk-metrics" "1.17.1" - "@opentelemetry/sdk-trace-base" "1.17.1" - -"@opentelemetry/propagation-utils@^0.30.2": - version "0.30.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagation-utils/-/propagation-utils-0.30.2.tgz#9a1d2491af3251d6dcd75ee6e90a510142af1f12" - integrity sha512-HMn33DQbehFvPW7PBzIajkRuoCGaSaa/vb8IyaXtRsX4aY8K9XqOiRwunN4bPo7rnh+KnRdKx0tO0In1zvdQ4w== - -"@opentelemetry/propagator-aws-xray@^1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.3.1.tgz#7fc77a95fe89c705442b0e5a4218422c2954cc07" - integrity sha512-6fDMzFlt5r6VWv7MUd0eOpglXPFqykW8CnOuUxJ1VZyLy6mV1bzBlzpsqEmhx1bjvZYvH93vhGkQZqrm95mlrQ== - dependencies: - "@opentelemetry/core" "^1.0.0" - -"@opentelemetry/propagator-b3@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.17.1.tgz#65dbddf3763db82632ddd7ad1735e597ab7b2dc4" - integrity sha512-XEbXYb81AM3ayJLlbJqITPIgKBQCuby45ZHiB9mchnmQOffh6ZJOmXONdtZAV7TWzmzwvAd28vGSUk57Aw/5ZA== - dependencies: - "@opentelemetry/core" "1.17.1" - -"@opentelemetry/propagator-jaeger@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.17.1.tgz#31cc43045a059d1ed3651b9f21d0fd6db817b02f" - integrity sha512-p+P4lf2pbqd3YMfZO15QCGsDwR2m1ke2q5+dq6YBLa/q0qiC2eq4cD/qhYBBed5/X4PtdamaVGHGsp+u3GXHDA== - dependencies: - "@opentelemetry/core" "1.17.1" - -"@opentelemetry/propagator-ot-trace@^0.27.0": - version "0.27.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-ot-trace/-/propagator-ot-trace-0.27.1.tgz#6718aefd6d0401726e2232fd7ad84515f2b34ca9" - integrity sha512-+Aeht0+1kv/7KAYxNVQFDczEgMQIhi+yO/QNBTxEUGWEQshxznqT2Knqd5nARY8IF3okFdkP4PJUFubYfjWSzw== - -"@opentelemetry/redis-common@^0.36.1": - version "0.36.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/redis-common/-/redis-common-0.36.1.tgz#79bca902603dd27862223a751be0f4bb0be54c2b" - integrity sha512-YjfNEr7DK1Ymc5H0bzhmqVvMcCs+PUEUerzrpTFdHfZxj3HpnnjZTIFKx/gxiL/sajQ8dxycjlreoYTVYKBXlw== - -"@opentelemetry/resource-detector-alibaba-cloud@^0.28.2": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-alibaba-cloud/-/resource-detector-alibaba-cloud-0.28.2.tgz#108a92ccef9220a11d4fe921b1039847913cd0e9" - integrity sha512-huG07F7Nu2gPTAkb4tSuA/KrNrJ8TfjmyOIPOL/CqXwZh5QD2876YvqM1tqh7gAhSPTSSpfH0ozxcQNmzzeo7g== - dependencies: - "@opentelemetry/resources" "^1.0.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/resource-detector-aws@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-aws/-/resource-detector-aws-1.3.2.tgz#0e1cf985cf75e2325e93eb4ce4b708995766c73b" - integrity sha512-RaBOD3mV69ukI43FZwrnOywAJe7M4405/dqdFRHv65rDLmYMBEUOLdrhqDk8uKJwaHAob2jyDBDCv48RnTZi5g== - dependencies: - "@opentelemetry/core" "^1.0.0" - "@opentelemetry/resources" "^1.0.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/resource-detector-container@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-container/-/resource-detector-container-0.3.2.tgz#3d3121b83a1974c246ee940645e39465e57269b5" - integrity sha512-pJXm9RXtQSq6PzXpLFC44sG2VhB/BDd7CRxGLS4ytdweBfdl6h2pIDL4CDQQSBc278JXmfslEFQ9K/fT/piXZw== - dependencies: - "@opentelemetry/resources" "^1.0.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - -"@opentelemetry/resource-detector-gcp@^0.29.2": - version "0.29.2" - resolved "https://registry.yarnpkg.com/@opentelemetry/resource-detector-gcp/-/resource-detector-gcp-0.29.2.tgz#f2c24e788ebae2f41e9acee0630674352f72798a" - integrity sha512-BdboAJA3RMRMs6wdGXMvyTCS/72S72Xs+QtdEqMeHViOoMgHidjQIkbj4cFlteUh5GrWM7aQeWgahd9vGZx3Pw== - dependencies: - "@opentelemetry/core" "^1.0.0" - "@opentelemetry/resources" "^1.0.0" - "@opentelemetry/semantic-conventions" "^1.0.0" - gcp-metadata "^5.0.0" - -"@opentelemetry/resources@1.17.1", "@opentelemetry/resources@^1.0.0", "@opentelemetry/resources@^1.12.0", "@opentelemetry/resources@^1.8.0": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.17.1.tgz#932f70f58c0e03fb1d38f0cba12672fd70804d99" - integrity sha512-M2e5emqg5I7qRKqlzKx0ROkcPyF8PbcSaWEdsm72od9txP7Z/Pl8PDYOyu80xWvbHAWk5mDxOF6v3vNdifzclA== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/semantic-conventions" "1.17.1" - -"@opentelemetry/resources@1.18.1": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.18.1.tgz#e27bdc4715bccc8cd4a72d4aca3995ad0a496fe7" - integrity sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA== - dependencies: - "@opentelemetry/core" "1.18.1" - "@opentelemetry/semantic-conventions" "1.18.1" - -"@opentelemetry/sdk-logs@0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.44.0.tgz#a46e0a013432f266fb7ef16d703c968898ae89c5" - integrity sha512-UN3ofh9Jj54gIgrSXNRWAoaH6iPvrrjed5YAtqO9cW65U+5QPzk1Rv95vjAcY9VTrmMWvuqgEK1CYObG6Hu4OQ== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/resources" "1.17.1" - -"@opentelemetry/sdk-metrics@1.17.1", "@opentelemetry/sdk-metrics@^1.9.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.17.1.tgz#9c4d13d845bcc82be8684050d9db7cce10f61580" - integrity sha512-eHdpsMCKhKhwznxvEfls8Wv3y4ZBWkkXlD3m7vtHIiWBqsMHspWSfie1s07mM45i/bBCf6YBMgz17FUxIXwmZA== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/resources" "1.17.1" - lodash.merge "^4.6.2" - -"@opentelemetry/sdk-metrics@^1.17.1": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.18.1.tgz#1dd334744a1e5d2eec27e9e9765c73cd2f43aef3" - integrity sha512-TEFgeNFhdULBYiCoHbz31Y4PDsfjjxRp8Wmdp6ybLQZPqMNEb+dRq+XN8Xw3ivIgTaf9gYsomgV5ensX99RuEQ== - dependencies: - "@opentelemetry/core" "1.18.1" - "@opentelemetry/resources" "1.18.1" - lodash.merge "^4.6.2" - -"@opentelemetry/sdk-node@^0.44.0": - version "0.44.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-node/-/sdk-node-0.44.0.tgz#a256c9a0658969273aaf25ab2b8daab149e4954f" - integrity sha512-MkMJcUcqjNV/A5/y6quedSO3CIDXY17jM8sxQa0Hwmx77+/QiXJkSe4Zv0ysf37mV5+8QEt4rsq7adKg+LtaEg== - dependencies: - "@opentelemetry/api-logs" "0.44.0" - "@opentelemetry/core" "1.17.1" - "@opentelemetry/exporter-jaeger" "1.17.1" - "@opentelemetry/exporter-trace-otlp-grpc" "0.44.0" - "@opentelemetry/exporter-trace-otlp-http" "0.44.0" - "@opentelemetry/exporter-trace-otlp-proto" "0.44.0" - "@opentelemetry/exporter-zipkin" "1.17.1" - "@opentelemetry/instrumentation" "0.44.0" - "@opentelemetry/resources" "1.17.1" - "@opentelemetry/sdk-logs" "0.44.0" - "@opentelemetry/sdk-metrics" "1.17.1" - "@opentelemetry/sdk-trace-base" "1.17.1" - "@opentelemetry/sdk-trace-node" "1.17.1" - "@opentelemetry/semantic-conventions" "1.17.1" - -"@opentelemetry/sdk-trace-base@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.17.1.tgz#8ede213df8b0c957028a869c66964e535193a4fd" - integrity sha512-pfSJJSjZj5jkCJUQZicSpzN8Iz9UKMryPWikZRGObPnJo6cUSoKkjZh6BM3j+D47G4olMBN+YZKYqkFM1L6zNA== - dependencies: - "@opentelemetry/core" "1.17.1" - "@opentelemetry/resources" "1.17.1" - "@opentelemetry/semantic-conventions" "1.17.1" - -"@opentelemetry/sdk-trace-base@1.18.1": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.18.1.tgz#256605d90b202002d5672305c66dbcf377132379" - integrity sha512-tRHfDxN5dO+nop78EWJpzZwHsN1ewrZRVVwo03VJa3JQZxToRDH29/+MB24+yoa+IArerdr7INFJiX/iN4gjqg== - dependencies: - "@opentelemetry/core" "1.18.1" - "@opentelemetry/resources" "1.18.1" - "@opentelemetry/semantic-conventions" "1.18.1" - -"@opentelemetry/sdk-trace-node@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.17.1.tgz#746c197ad54a8e0cdb24a4b257d33dc3a04493c1" - integrity sha512-J56DaG4cusjw5crpI7x9rv4bxDF27DtKYGxXJF56KIvopbNKpdck5ZWXBttEyqgAVPDwHMAXWDL1KchHzF0a3A== - dependencies: - "@opentelemetry/context-async-hooks" "1.17.1" - "@opentelemetry/core" "1.17.1" - "@opentelemetry/propagator-b3" "1.17.1" - "@opentelemetry/propagator-jaeger" "1.17.1" - "@opentelemetry/sdk-trace-base" "1.17.1" - semver "^7.5.2" - -"@opentelemetry/sdk-trace-web@^1.17.1": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.18.1.tgz#31a765a920b1ff466b3b51a3885823f47b076486" - integrity sha512-WN30vxy4NY8TqFWuICXaPXjBdy6A5kDhxOqp4NfhqXfpcWWT0GqSgv05Q42quWYOFgaulnmPRRJwxzAdhBliLQ== - dependencies: - "@opentelemetry/core" "1.18.1" - "@opentelemetry/sdk-trace-base" "1.18.1" - "@opentelemetry/semantic-conventions" "1.18.1" - -"@opentelemetry/semantic-conventions@1.17.1": - version "1.17.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.17.1.tgz#93d219935e967fbb9aa0592cc96b2c0ec817a56f" - integrity sha512-xbR2U+2YjauIuo42qmE8XyJK6dYeRMLJuOlUP5SO4auET4VtOHOzgkRVOq+Ik18N+Xf3YPcqJs9dZMiDddz1eQ== - -"@opentelemetry/semantic-conventions@1.18.1", "@opentelemetry/semantic-conventions@^1.17.1": - version "1.18.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.1.tgz#8e47caf57a84b1dcc1722b2025693348cdf443b4" - integrity sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA== - -"@opentelemetry/semantic-conventions@^1.0.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.12.0.tgz#19c959bdb900986e74939d4227e757aa16936b91" - integrity sha512-hO+bdeGOlJwqowUBoZF5LyP3ORUFOP1G0GRv8N45W/cztXbT2ZEXaAzfokRS9Xc9FWmYrDj32mF6SzH6wuoIyA== - -"@opentelemetry/sql-common@^0.40.0": - version "0.40.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sql-common/-/sql-common-0.40.0.tgz#8cbed0722354d62997c3b9e1adf0e16257be6b15" - integrity sha512-vSqRJYUPJVjMFQpYkQS3ruexCPSZJ8esne3LazLwtCPaPRvzZ7WG3tX44RouAn7w4wMp8orKguBqtt+ng2UTnw== - dependencies: - "@opentelemetry/core" "^1.1.0" - "@openzeppelin/contracts8@npm:@openzeppelin/contracts@^4.4.2": version "4.9.1" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.9.1.tgz#afa804d2c68398704b0175acc94d91a54f203645" @@ -5073,15 +3580,6 @@ "@noble/secp256k1" "~1.7.0" "@scure/base" "~1.1.0" -"@scure/bip32@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.0.tgz#6c8d980ef3f290987736acd0ee2e0f0d50068d87" - integrity sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q== - dependencies: - "@noble/curves" "~1.0.0" - "@noble/hashes" "~1.3.0" - "@scure/base" "~1.1.0" - "@scure/bip32@1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10" @@ -5108,14 +3606,6 @@ "@noble/hashes" "~1.2.0" "@scure/base" "~1.1.0" -"@scure/bip39@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.0.tgz#a207e2ef96de354de7d0002292ba1503538fc77b" - integrity sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg== - dependencies: - "@noble/hashes" "~1.3.0" - "@scure/base" "~1.1.0" - "@scure/bip39@1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" @@ -5124,23 +3614,6 @@ "@noble/hashes" "~1.3.0" "@scure/base" "~1.1.0" -"@sideway/address@^4.1.3": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" - integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" - integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - "@sinclair/typebox@^0.25.16": version "0.25.24" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" @@ -6079,13 +4552,6 @@ resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-7.2.1.tgz#bb16403c17754b0c4d5772d71d03b924a03d4c80" integrity sha512-YK8irIC+eMrrmtGx0H4ISn9GgzLd9dojZWJaMbjp1YHLl2VqqNFBNrL5Q3KjGf4VE3sf/4hmq6EhQZ7kZp1NoQ== -"@types/accepts@*": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.6.tgz#5e33830c8ed7b6025976738c88540df2e85b6d91" - integrity sha512-6+qlUg57yfE9OO63wnsJXLeq9cG3gSHBBIxNMOjNrbDRlDnm/NaR7RctfYcVCPq+j7d+MwOxqVEludH5+FKrlg== - dependencies: - "@types/node" "*" - "@types/accepts@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" @@ -6093,18 +4559,6 @@ dependencies: "@types/node" "*" -"@types/asn1js@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@types/asn1js/-/asn1js-0.0.2.tgz#f278a8af81861813d4fc9cd0a86c8b1ac5f16db3" - integrity sha512-xtLPq140WhPqvDZDpY70rTx4qTezHs+8htbhWQGuevBRQko8FRjFSO5WVTwXOwd3W5tQRxJ7eni30fDUP2q4wQ== - dependencies: - "@types/pvutils" "*" - -"@types/aws-lambda@8.10.122": - version "8.10.122" - resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.122.tgz#206c8d71b09325d26a458dba27db842afdc54df1" - integrity sha512-vBkIh9AY22kVOCEKo5CJlyCgmSWvasC+SWUxL/x/vOwRobMpI/HG1xp/Ae3AqmSiZeLUbOhW0FCD3ZjqqUxmXw== - "@types/babel__core@^7.1.14": version "7.20.0" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" @@ -6153,13 +4607,6 @@ "@types/connect" "*" "@types/node" "*" -"@types/bunyan@1.8.10": - version "1.8.10" - resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.10.tgz#60f2d297c3d29fd3b85c54f28a48b99d61686fe0" - integrity sha512-A82U/3EAdWX89f+dfysGiRvbeoLuRLV3i6SLg3HuNK4Yf+dHOqdbxT70vQUwvD3DOr2Dvpcv9dRX4ipTf0LpEg== - dependencies: - "@types/node" "*" - "@types/bunyan@1.8.8": version "1.8.8" resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.8.tgz#8d6d33f090f37c07e2a80af30ae728450a101008" @@ -6167,13 +4614,6 @@ dependencies: "@types/node" "*" -"@types/bunyan@1.8.9": - version "1.8.9" - resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.9.tgz#22d4517f3217b7c8f5a69bbc8c9f6df79779dcb5" - integrity sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw== - dependencies: - "@types/node" "*" - "@types/bytebuffer@^5.0.40": version "5.0.44" resolved "https://registry.yarnpkg.com/@types/bytebuffer/-/bytebuffer-5.0.44.tgz#553015fb34db1fc3eb3f7b232bff91c006c251a1" @@ -6216,16 +4656,6 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== -"@types/cli-table@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@types/cli-table/-/cli-table-0.3.1.tgz#a0ae06290284f7abebb90a2ddc0187de6d22e963" - integrity sha512-m3+6WWfSSl6zqoXy8uQQifbgqV7Gt6fsyWnHLgUWVtJQk75+OfUB+edSZ52YDj7leSiZtX7w1/E4w2x/Hb0orA== - -"@types/command-exists@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@types/command-exists/-/command-exists-1.2.0.tgz#d97e0ed10097090e4ab0367ed425b0312fad86f3" - integrity sha512-ugsxEJfsCuqMLSuCD4PIJkp5Uk2z6TCMRCgYVuhRo5cYQY3+1xXTQkSlPtkpGHuvWMjS2KTeVQXxkXRACMbM6A== - "@types/concat-stream@^1.6.0": version "1.6.1" resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" @@ -6240,28 +4670,6 @@ dependencies: "@types/node" "*" -"@types/connect@3.4.36": - version "3.4.36" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.36.tgz#e511558c15a39cb29bd5357eebb57bd1459cd1ab" - integrity sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w== - dependencies: - "@types/node" "*" - -"@types/content-disposition@*": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.7.tgz#3b98d4bf8c80640f93b042511acb5aad18139748" - integrity sha512-V9/5u21RHFR1zfdm3rQ6pJUKV+zSSVQt+yq16i1YhdivVzWgPEoKedc3GdT8aFjsqQbakdxuy3FnEdePUQOamQ== - -"@types/cookies@*": - version "0.7.9" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.9.tgz#d03e9af454b8e23718c9bf0d522649a64d5e67cf" - integrity sha512-SrGYvhKohd/WSOII0WpflC73RgdJhQoqpwq9q+n/qugNGiDSGYXfHy3QvB4+X+J/gYe27j2fSRnK4B+1A3nvsw== - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - "@types/cors@2.8.12": version "2.8.12" resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" @@ -6272,14 +4680,7 @@ resolved "https://registry.yarnpkg.com/@types/country-data/-/country-data-0.0.0.tgz#6f5563cae3d148780c5b6539803a29bd93f8f1a1" integrity sha512-lIxCk6G7AwmUagQ4gIQGxUBnvAq664prFD9nSAz6dgd1XmBXBtZABV/op+QsJsIyaP1GZsf/iXhYKHX3azSRCw== -"@types/debug@^4.1.10": - version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - dependencies: - "@types/ms" "*" - -"@types/debug@^4.1.4", "@types/debug@^4.1.5": +"@types/debug@^4.1.5": version "4.1.7" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== @@ -6333,25 +4734,6 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express-serve-static-core@^4.17.33": - version "4.17.33" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" - integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*": - version "4.17.20" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.20.tgz#e7c9b40276d29e38a4e3564d7a3d65911e2aa433" - integrity sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - "@types/express@4.17.14": version "4.17.14" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" @@ -6362,21 +4744,6 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/express@4.17.18": - version "4.17.18" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.18.tgz#efabf5c4495c1880df1bdffee604b143b29c4a95" - integrity sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/fetch-mock@^7.3.5": - version "7.3.5" - resolved "https://registry.yarnpkg.com/@types/fetch-mock/-/fetch-mock-7.3.5.tgz#7aee678c4e7c7e1a168bae8fdab5b8d712e377f6" - integrity sha512-sLecm9ohBdGIpYUP9rWk5/XIKY2xHMYTBJIcJuBBM8IJWnYoQ1DAj8F4OVjnfD0API1drlkWEV0LPNk+ACuhsg== - "@types/form-data@0.0.33": version "0.0.33" resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8" @@ -6384,29 +4751,13 @@ dependencies: "@types/node" "*" -"@types/fs-extra@^8.0.0", "@types/fs-extra@^8.1.0": +"@types/fs-extra@^8.1.0": version "8.1.2" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.2.tgz#7125cc2e4bdd9bd2fc83005ffdb1d0ba00cca61f" integrity sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg== dependencies: "@types/node" "*" -"@types/glob@*": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" - integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== - dependencies: - "@types/minimatch" "^5.1.2" - "@types/node" "*" - -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/google-libphonenumber@^7.4.23": version "7.4.23" resolved "https://registry.yarnpkg.com/@types/google-libphonenumber/-/google-libphonenumber-7.4.23.tgz#c44c9125d45f042943694d605fd8d8d796cafc3b" @@ -6419,39 +4770,6 @@ dependencies: "@types/node" "*" -"@types/hapi__catbox@*": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@types/hapi__catbox/-/hapi__catbox-10.2.5.tgz#4eb5e2fbb966acd2a3c2e86f935b7de95aceb7dd" - integrity sha512-vomIMP6dUDSbiasbPglH5LJvnnl8jFmRTjPgPl4l9Vi1L9fto3VXJQZtl8LzyIQUUoocyT5bmvWeYWsVgxAHQg== - -"@types/hapi__hapi@20.0.13": - version "20.0.13" - resolved "https://registry.yarnpkg.com/@types/hapi__hapi/-/hapi__hapi-20.0.13.tgz#ea8ce83c192f6e8106f6e76e40f795e7e36d0615" - integrity sha512-LP4IPfhIO5ZPVOrJo7H8c8Slc0WYTFAUNQX1U0LBPKyXioXhH5H2TawIgxKujIyOhbwoBbpvOsBf6o5+ToJIrQ== - dependencies: - "@hapi/boom" "^9.0.0" - "@hapi/iron" "^6.0.0" - "@hapi/podium" "^4.1.3" - "@types/hapi__catbox" "*" - "@types/hapi__mimos" "*" - "@types/hapi__shot" "*" - "@types/node" "*" - joi "^17.3.0" - -"@types/hapi__mimos@*": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@types/hapi__mimos/-/hapi__mimos-4.1.4.tgz#4f8a1c58345fc468553708d3cb508724aa081bd9" - integrity sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ== - dependencies: - "@types/mime-db" "*" - -"@types/hapi__shot@*": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@types/hapi__shot/-/hapi__shot-4.1.4.tgz#17d418537bc180ac042361d9a331892a31a61583" - integrity sha512-AhEirOGy2ajtdV9WE/JqPkGeCH8lpgcSEQxn0ZNJkTvxkOv5DfZEXGit3l5J9P1VoQFAAHGNLVGWI5IWCiQf9A== - dependencies: - "@types/node" "*" - "@types/hdkey@^0.7.0": version "0.7.1" resolved "https://registry.yarnpkg.com/@types/hdkey/-/hdkey-0.7.1.tgz#9bc63ebbe96b107b277b65ea7a95442a677d0d61" @@ -6459,26 +4777,11 @@ dependencies: "@types/node" "*" -"@types/http-assert@*": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.4.tgz#2ee41bf930d871a76cdbee5c385ccbb3604302e6" - integrity sha512-/6M9aaVk+avzCsrv1lt39AlFw4faCNI6aGll91Rxj38ZE5JI8AxApyQIRy+i1McjiJiuQ0sfuoMLxqq374ZIbA== - "@types/http-cache-semantics@*": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== -"@types/http-errors@*": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.3.tgz#c54e61f79b3947d040f150abd58f71efb422ff62" - integrity sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA== - -"@types/humanize-duration@^3.27.0": - version "3.27.2" - resolved "https://registry.yarnpkg.com/@types/humanize-duration/-/humanize-duration-3.27.2.tgz#b07c16ce606cf4d5839ac3bf06d0722dcdd425fe" - integrity sha512-KOGjfVAD8CHMgXL6z96f7eCNRFUENKa2BG87l7JsSg9ZA6lRFsipZ0faF4kKFqnzxirVgXmOnWqTLAKUog1h/g== - "@types/inquirer@^6.5.0": version "6.5.0" resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-6.5.0.tgz#b83b0bf30b88b8be7246d40e51d32fe9d10e09be" @@ -6487,20 +4790,6 @@ "@types/through" "*" rxjs "^6.4.0" -"@types/ioredis4@npm:@types/ioredis@^4.28.10": - version "4.28.10" - resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.28.10.tgz#40ceb157a4141088d1394bb87c98ed09a75a06ff" - integrity sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ== - dependencies: - "@types/node" "*" - -"@types/is-ci@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/is-ci/-/is-ci-3.0.3.tgz#6042f2fe12a16b2616deabb11d9a422f46a2ec03" - integrity sha512-FdHbjLiN2e8fk9QYQyVYZrK8svUDJpxSaSWLUga8EZS1RGAvvrqM9zbVARBtQuYPeLgnJxM2xloOswPwj1o2cQ== - dependencies: - ci-info "^3.1.0" - "@types/isomorphic-fetch@0.0.31": version "0.0.31" resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.31.tgz#ec120166ce22f0b134e8770f40c97cd076068fae" @@ -6538,11 +4827,6 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/keygrip@*": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.4.tgz#c4015f09e66633bdea5d26916810001272b1ac6a" - integrity sha512-/tjWYD8StMrINelsrHNmpXceo9s3/Y22AzePH1qCvXIgmz/aQp2YFFr6HqhNQVIOdcvaVyp5GS+yjHGuF7Rwsg== - "@types/keyv@^3.1.4": version "3.1.4" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" @@ -6550,64 +4834,6 @@ dependencies: "@types/node" "*" -"@types/koa-compose@*": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.7.tgz#7bbb084acc58836590eb11d3c2600c0ff695d3dc" - integrity sha512-smtvSL/oLICPuenxy73OmxKGh42VVfn2o2eutReH1yjij0LmxADBpGcAJbp4N+yJjPapPN7jAX9p7Ue0JMQ/Ag== - dependencies: - "@types/koa" "*" - -"@types/koa@*": - version "2.13.10" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.10.tgz#2c2a1cdf1252d654b05f444194328a3d23a880c4" - integrity sha512-weKc5IBeORLDGwD1FMgPjaZIg0/mtP7KxXAXEzPRCN78k274D9U2acmccDNPL1MwyV40Jj+hQQ5N2eaV6O0z8g== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/koa@2.13.9": - version "2.13.9" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.9.tgz#8d989ac17d7f033475fbe34c4f906c9287c2041a" - integrity sha512-tPX3cN1dGrMn+sjCDEiQqXH2AqlPoPd594S/8zxwUm/ZbPsQXKqHPUypr2gjCPhHUc+nDJLduhh5lXI/1olnGQ== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/koa__router@12.0.1": - version "12.0.1" - resolved "https://registry.yarnpkg.com/@types/koa__router/-/koa__router-12.0.1.tgz#e77b0c4081b1c56b004baf92afdd31766d5701f3" - integrity sha512-uqV+v6pCsfLZwK+Ar6XavKSZ6Cbsgw12bCEX9L0IKHj81LTWXcrayxJWkLtez5vOMQlq+ax+lZcuCyh9CgxYGw== - dependencies: - "@types/koa" "*" - -"@types/ledgerhq__hw-transport-node-hid@^4.22.2": - version "4.22.2" - resolved "https://registry.yarnpkg.com/@types/ledgerhq__hw-transport-node-hid/-/ledgerhq__hw-transport-node-hid-4.22.2.tgz#f3de58b9b49b461dd96e5bfb646328c242e70aca" - integrity sha512-b9dXYEZ8Iijv20LykEVhbThVzSjchMpvj8y/mSsCSP1n7Ncs+YqD8mjEV/bGTks9jAP8CdxhRqOGq+h47/4B9g== - dependencies: - "@types/ledgerhq__hw-transport" "*" - "@types/node" "*" - "@types/node-hid" "*" - -"@types/ledgerhq__hw-transport@*": - version "4.21.4" - resolved "https://registry.yarnpkg.com/@types/ledgerhq__hw-transport/-/ledgerhq__hw-transport-4.21.4.tgz#3a78a02d2b51d2b0dd8099412d5567d21118225c" - integrity sha512-vep+6yZnGv6owAthIY0w3f72w4dJIb4+yE5PCHveInTlZE9wukvU6Wc5Eig0OUUxcdhTazzeZx1xUaNVLqyQSg== - dependencies: - "@types/node" "*" - "@types/levelup@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-3.1.1.tgz#f7cc08f248f14cb6c92914e91bceb8761020e8f0" @@ -6643,18 +4869,6 @@ dependencies: decimal.js "^10.0.0" -"@types/memcached@^2.2.6": - version "2.2.9" - resolved "https://registry.yarnpkg.com/@types/memcached/-/memcached-2.2.9.tgz#dba55dadbd442573d5a12f1cd2cdd6bd64d86537" - integrity sha512-3WVct68tDdjQ0lkOim8PcULZCoPtpYeh41J6IoAV/cTjh0LXD2DThDGLaWRPLtmLoDQ6sO390hgfrcKwYUD52A== - dependencies: - "@types/node" "*" - -"@types/mime-db@*": - version "1.43.3" - resolved "https://registry.yarnpkg.com/@types/mime-db/-/mime-db-1.43.3.tgz#f7bec64a9a62ddded3371e82862c0516539710e8" - integrity sha512-vg0UsF1p1Qi/8iCARoie7F/Ng92zo7tQlL+sqE15GonkKVl55n/0vB6jSbrYTgDO0PSx9pKfGG1iZg9gJum3wA== - "@types/mime@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" @@ -6665,11 +4879,6 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== -"@types/minimatch@*", "@types/minimatch@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - "@types/minimatch@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" @@ -6707,13 +4916,6 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/mysql@2.15.22": - version "2.15.22" - resolved "https://registry.yarnpkg.com/@types/mysql/-/mysql-2.15.22.tgz#8705edb9872bf4aa9dbc004cd494e00334e5cdb4" - integrity sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ== - dependencies: - "@types/node" "*" - "@types/node-fetch@^2.5.7": version "2.6.3" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.3.tgz#175d977f5e24d93ad0f57602693c435c57ad7e80" @@ -6722,13 +4924,6 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node-hid@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/node-hid/-/node-hid-1.3.1.tgz#e84507a35a6f3ece3f6324c21ba9252405758b65" - integrity sha512-VPxuGDCoDxOUKrTZPSok7IEmiK4cVLfj8Csu09FtG5uF+eqf1HETERHXQkO02Rk6j6YiiHxp0/DA9R4llvhEzQ== - dependencies: - "@types/node" "*" - "@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^18.7.16": version "18.15.13" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" @@ -6754,7 +4949,7 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== -"@types/node@^12.12.6", "@types/node@^12.6.1", "@types/node@^12.7.1": +"@types/node@^12.12.6", "@types/node@^12.6.1": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== @@ -6791,40 +4986,6 @@ dependencies: "@types/node" "*" -"@types/pg-pool@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/pg-pool/-/pg-pool-2.0.4.tgz#b5c60f678094ff3acf3442628a7f708928fcf263" - integrity sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ== - dependencies: - "@types/pg" "*" - -"@types/pg@*": - version "8.10.7" - resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.10.7.tgz#2f172598272e581e72cba640026e5152b5a3d5c3" - integrity sha512-ksJqHipwYaSEHz9e1fr6H6erjoEdNNaOxwyJgPx9bNeaqOW3iWBQgVHfpwiSAoqGzchfc+ZyRLwEfeCcyYD3uQ== - dependencies: - "@types/node" "*" - pg-protocol "*" - pg-types "^4.0.1" - -"@types/pg@8.6.1": - version "8.6.1" - resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.1.tgz#099450b8dc977e8197a44f5229cedef95c8747f9" - integrity sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w== - dependencies: - "@types/node" "*" - pg-protocol "*" - pg-types "^2.2.0" - -"@types/pg@^7.14.3": - version "7.14.11" - resolved "https://registry.yarnpkg.com/@types/pg/-/pg-7.14.11.tgz#daf5555504a1f7af4263df265d91f140fece52e3" - integrity sha512-EnZkZ1OMw9DvNfQkn2MTJrwKmhJYDEs5ujWrPfvseWNoI95N8B4HzU/Ltrq5ZfYxDX/Zg8mTzwr6UAyTjjFvXA== - dependencies: - "@types/node" "*" - pg-protocol "^1.2.0" - pg-types "^2.2.0" - "@types/prettier@^1.13.2": version "1.19.1" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" @@ -6858,18 +5019,6 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/pvutils@*": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/pvutils/-/pvutils-1.0.1.tgz#f23c5c7915faedf4d281226579cf361127adea11" - integrity sha512-OwGyloDb4Gz7cKzFt1ZfHkNXbh1gxd5706hPF5ot4cvsa2EfbqY1tz2nWtu6xWDccNSZ16p/pi027gloQu4hsQ== - -"@types/qrcode@^1.3.4": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.0.tgz#6a98fe9a9a7b2a9a3167b6dde17eff999eabe40b" - integrity sha512-x5ilHXRxUPIMfjtM+1vf/GPTRWZ81nqscursm5gMznJeK9M0YnZ1c3bEvRLQ0zSSgedLx1J6MGL231ObQGGhaA== - dependencies: - "@types/node" "*" - "@types/qs@*", "@types/qs@^6.2.31": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" @@ -6933,20 +5082,12 @@ resolved "https://registry.yarnpkg.com/@types/revalidator/-/revalidator-0.3.8.tgz#86e0b03b49736000ad42ce6b002725e74c6805ff" integrity sha512-q6KSi3PklLGQ0CesZ/XuLwly4DXXlnJuucYOG9lrBqrP8rKiuPZThav2h2+pFjaheNpnT0qKK3i304QWIePeJw== -"@types/rimraf@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.2.tgz#a63d175b331748e5220ad48c901d7bbf1f44eef8" - integrity sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ== - dependencies: - "@types/glob" "*" - "@types/node" "*" - "@types/scheduler@*": version "0.16.3" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== -"@types/secp256k1@^4.0.0", "@types/secp256k1@^4.0.1": +"@types/secp256k1@^4.0.1": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== @@ -6963,11 +5104,6 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.8.tgz#508a27995498d7586dcecd77c25e289bfaf90c59" integrity sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now== -"@types/semver@^7.5.0": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" - integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== - "@types/send@*": version "0.17.1" resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" @@ -6984,11 +5120,6 @@ "@types/mime" "*" "@types/node" "*" -"@types/shimmer@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@types/shimmer/-/shimmer-1.0.4.tgz#8fa2317517280ecdd64078afc010809cb67c37b7" - integrity sha512-hsughtxFsdJ9+Gxd/qH8zHE+KT6YEAxx9hJLoSXhxTBKHMQ2NMhN23fRJ75M9RRn2hDMNn13H3gS1EktA9VgDA== - "@types/solidity-parser-antlr@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@types/solidity-parser-antlr/-/solidity-parser-antlr-0.2.3.tgz#bb2d9c6511bf483afe4fc3e2714da8a924e59e3f" @@ -6999,13 +5130,6 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== -"@types/stoppable@^1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/stoppable/-/stoppable-1.1.1.tgz#a6f1f280e29f8f3c743277534425e0a75041d2f9" - integrity sha512-b8N+fCADRIYYrGZOcmOR8ZNBOqhktWTB/bMUl5LvGtT201QKJZOOH5UsFyI3qtteM6ZAJbJqZoBcLqqxKIwjhw== - dependencies: - "@types/node" "*" - "@types/string-hash@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/string-hash/-/string-hash-1.1.1.tgz#4c336e61d1e13ce2d3efaaa5910005fd080e106b" @@ -7040,13 +5164,6 @@ dependencies: "@types/tar-fs" "*" -"@types/tedious@^4.0.10": - version "4.0.13" - resolved "https://registry.yarnpkg.com/@types/tedious/-/tedious-4.0.13.tgz#31fa5968083218c114b9259b1653ef84a5ddbaa9" - integrity sha512-eCADRqah0uHMUNVHJ/0Yz4drscJ5tZ+IQ/i+nDs7/nR8R6RqLhJaplklvMe3EsMraxOWmp4mTqYi0Xo6ik1DpQ== - dependencies: - "@types/node" "*" - "@types/through@*": version "0.0.30" resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" @@ -7083,13 +5200,6 @@ dependencies: web3 "*" -"@types/ws@^8.5.4": - version "8.5.8" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.8.tgz#13efec7bd439d0bdf2af93030804a94f163b1430" - integrity sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg== - dependencies: - "@types/node" "*" - "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -7114,11 +5224,6 @@ dependencies: "@types/yargs-parser" "*" -"@wagmi/chains@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@wagmi/chains/-/chains-1.6.0.tgz#eb992ad28dbaaab729b5bcab3e5b461e8a035656" - integrity sha512-5FRlVxse5P4ZaHG3GTvxwVANSmYJas1eQrTBHhjxVtqXoorm0aLmCHbhmN8Xo1yu09PaWKlleEvfE98yH4AgIw== - "@wagmi/cli@^1.0.1": version "1.5.2" resolved "https://registry.yarnpkg.com/@wagmi/cli/-/cli-1.5.2.tgz#11e767b8c5d1cfb5045b6ec63df6fa5001189bc4" @@ -7222,11 +5327,6 @@ abitype@0.8.7: resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.8.7.tgz#e4b3f051febd08111f486c0cc6a98fa72d033622" integrity sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w== -abitype@0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.3.tgz#294d25288ee683d72baf4e1fed757034e3c8c277" - integrity sha512-dz4qCQLurx97FQhnb/EIYTk/ldQ+oafEDUqC0VVIeQS1Q48/YWt/9YNfMmp9SLFqN41ktxny3c8aYxHjmFIB/w== - abitype@0.9.8: version "0.9.8" resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.9.8.tgz#1f120b6b717459deafd213dfbf3a3dd1bf10ae8c" @@ -7327,11 +5427,6 @@ accepts@^1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== - acorn-jsx@^5.0.0: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -7352,11 +5447,6 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== -acorn@^8.8.2: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== - add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" @@ -7367,7 +5457,7 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== -aes-js@^3.1.1, aes-js@^3.1.2: +aes-js@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== @@ -7442,11 +5532,6 @@ amdefine@>=0.0.4: resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg== -ansi-color@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" - integrity sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ== - ansi-colors@3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" @@ -7457,17 +5542,17 @@ ansi-colors@4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-colors@^4.1.1, ansi-colors@^4.1.3: +ansi-colors@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: +ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -7506,7 +5591,7 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.2.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -7535,11 +5620,6 @@ ansi-yellow@^0.1.1: dependencies: ansi-wrap "0.1.0" -ansicolors@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" - integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== - antlr4@4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.7.1.tgz#69984014f096e9e775f53dd9744bf994d8959773" @@ -7747,21 +5827,11 @@ arr-diff@^2.0.0: dependencies: arr-flatten "^1.0.1" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - array-back@^1.0.3, array-back@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" @@ -7804,43 +5874,16 @@ array-slice@^0.2.3: resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" integrity sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q== -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== - dependencies: - array-uniq "^1.0.1" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" integrity sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg== -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -array.prototype.flat@^1.2.3: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - array.prototype.map@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.5.tgz#6e43c2fee6c0fb5e4806da2dc92eb00970809e55" @@ -7863,19 +5906,6 @@ array.prototype.reduce@^1.0.5: es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" - arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -7916,13 +5946,6 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" -asn1js@^2.0.26: - version "2.4.0" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-2.4.0.tgz#9ca61dbdd7e4eb49b9ae95b36ab0615b77daff93" - integrity sha512-PvZC0FMyMut8aOnR2jAEGSkmRtHIUYPe9amUEnGjr9TdnUmsfoOkjrvUkOEU9mzpYBR1HyO9bF+8U1cLTMMHhQ== - dependencies: - pvutils "^1.1.3" - assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" @@ -7933,11 +5956,6 @@ assertion-error@^1.1.0: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -8013,11 +6031,6 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - atomically@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" @@ -8028,22 +6041,6 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -aws-sdk@^2.705.0: - version "2.1363.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1363.0.tgz#30c3b7fe999ee2ba1103a533ea27e1b0f5708e1f" - integrity sha512-M2MZZXehgi/EMQv5GlzRkn3TlhoOYHg2cYdSAAqhjv67WaEG50MjaQy5vRvfN1i8XvB24aJFJ5pCrx69TaCaIg== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.16.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - util "^0.12.4" - uuid "8.0.0" - xml2js "0.5.0" - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -8096,13 +6093,6 @@ axios@^0.18.0: follow-redirects "1.5.10" is-buffer "^2.0.2" -axios@^0.21.1: - version "0.21.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" - integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - dependencies: - follow-redirects "^1.14.0" - axios@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/axios/-/axios-0.25.0.tgz#349cfbb31331a9b4453190791760a8d35b093e0a" @@ -8210,14 +6200,6 @@ babel-preset-jest@^29.5.0: babel-plugin-jest-hoist "^29.5.0" babel-preset-current-node-syntax "^1.0.0" -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - backoff@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" @@ -8237,24 +6219,11 @@ base-x@^3.0.2, base-x@^3.0.8: dependencies: safe-buffer "^5.0.1" -base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1: +base64-js@^1.3.0, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -8285,13 +6254,6 @@ better-ajv-errors@^0.8.2: jsonpointer "^5.0.0" leven "^3.1.0" -better-path-resolve@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/better-path-resolve/-/better-path-resolve-1.0.0.tgz#13a35a1104cdd48a7b74bf8758f96a1ee613f99d" - integrity sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g== - dependencies: - is-windows "^1.0.0" - big-integer@1.6.36: version "1.6.36" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.36.tgz#78631076265d4ae3555c04f85e7d9d2f3a071a36" @@ -8317,7 +6279,7 @@ bigint-crypto-utils@^3.0.23: resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.2.2.tgz#e30a49ec38357c6981cd3da5aaa6480b1f752ee4" integrity sha512-U1RbE3aX9ayCUVcIPHuPDPKcK3SFOXf93J1UK/iHlJuQB7bhagPIX06/CLpLEsDThJ7KA4Dhrnzynl+d2weTiw== -bignumber.js@7.2.1, bignumber.js@9.0.0, bignumber.js@9.1.0, bignumber.js@^7.2.0, bignumber.js@^7.2.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.1.2, "bignumber.js@git+https://github.com/debris/bignumber.js#master", "bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", bignumber.js@~9.0.2: +bignumber.js@7.2.1, bignumber.js@9.0.0, bignumber.js@9.1.0, bignumber.js@^7.2.0, bignumber.js@^7.2.1, bignumber.js@^9.0.0, bignumber.js@^9.0.1, "bignumber.js@git+https://github.com/debris/bignumber.js#master", "bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", bignumber.js@~9.0.2: version "9.0.0" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== @@ -8358,7 +6320,7 @@ bip32@3.1.0, bip32@^3.1.0: typeforce "^1.11.5" wif "^2.0.6" -bip39@2.5.0, bip39@^2.2.0, bip39@^2.5.0, "bip39@https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2": +bip39@2.5.0, bip39@^2.2.0, bip39@^2.5.0, "bip39@git+https://github.com/bitcoinjs/bip39.git#d8ea080a18b40f301d4e2219a2991cd2417e83c2", "bip39@https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2": version "3.0.3" resolved "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2" dependencies: @@ -8510,22 +6472,6 @@ braces@^1.8.0, braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -8533,13 +6479,6 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -breakword@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/breakword/-/breakword-1.0.6.tgz#242506e7b871b7fad1bce8dc05cb0f2a129c12bd" - integrity sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw== - dependencies: - wcwidth "^1.0.1" - brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -8692,7 +6631,7 @@ buffer-fill@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== -buffer-from@1.1.2, buffer-from@^1.0.0, buffer-from@^1.1.1: +buffer-from@1.1.2, buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== @@ -8707,11 +6646,6 @@ buffer-to-arraybuffer@^0.0.5: resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== -buffer-writer@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" - integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== - buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -8724,15 +6658,6 @@ buffer-xor@^2.0.1: dependencies: safe-buffer "^5.1.1" -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - buffer@6.0.3, buffer@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" @@ -8741,7 +6666,7 @@ buffer@6.0.3, buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@^5.0.5, buffer@^5.2.1, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -8763,16 +6688,6 @@ bufferutil@^4.0.1: dependencies: node-gyp-build "^4.3.0" -bufrw@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" - integrity sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ== - dependencies: - ansi-color "^0.2.1" - error "^7.0.0" - hexer "^1.5.0" - xtend "^4.0.0" - builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -8805,14 +6720,6 @@ bunyan-debug-stream@2.0.0: colors "^1.0.3" exception-formatter "^1.0.4" -bunyan-debug-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/bunyan-debug-stream/-/bunyan-debug-stream-2.0.1.tgz#9bd7c7e30c7b2cf711317e9d37529b0464c3b164" - integrity sha512-MCEoqggU7NMt7f2O+PU8VkqfSkoQoa4lmN/OWhaRfqFRBF1Se2TOXQyLF6NxC+EtfrdthnquQe8jOe83fpEoGA== - dependencies: - colors "1.4.0" - exception-formatter "^1.0.4" - bunyan-gke-stackdriver@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/bunyan-gke-stackdriver/-/bunyan-gke-stackdriver-0.1.2.tgz#a47e3724bbb324b1ec0b7dc4350c4d7073aae66d" @@ -8828,16 +6735,6 @@ bunyan@1.8.12: mv "~2" safe-json-stringify "~1" -bunyan@1.8.15: - version "1.8.15" - resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz#8ce34ca908a17d0776576ca1b2f6cbd916e93b46" - integrity sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig== - optionalDependencies: - dtrace-provider "~0.8" - moment "^2.19.3" - mv "~2" - safe-json-stringify "~1" - byte-size@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" @@ -8884,21 +6781,6 @@ cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: tar "^6.1.11" unique-filename "^2.0.0" -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -8943,20 +6825,6 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@~1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -call-me-maybe@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" - integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== - caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -9045,14 +6913,6 @@ capital-case@^1.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" -cardinal@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" - integrity sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw== - dependencies: - ansicolors "~0.3.2" - redeyed "~2.1.0" - case@^1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/case/-/case-1.6.3.tgz#0a4386e3e9825351ca2e6216c60467ff5f1ea1c9" @@ -9135,14 +6995,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -9310,11 +7162,6 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.1.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - ci-info@^3.2.0: version "3.8.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" @@ -9349,26 +7196,11 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== -cjs-module-lexer@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== - class-is@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - classic-level@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" @@ -9385,13 +7217,6 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -clean-stack@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8" - integrity sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg== - dependencies: - escape-string-regexp "4.0.0" - cli-cursor@3.1.0, cli-cursor@^3.0.0, cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -9421,13 +7246,6 @@ cli-logger@^0.5.40: circular "^1.0.5" cli-util "~1.1.27" -cli-progress@^3.4.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.12.0.tgz#807ee14b66bcc086258e444ad0f19e7d42577942" - integrity sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A== - dependencies: - string-width "^4.2.3" - cli-regexp@~0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/cli-regexp/-/cli-regexp-0.1.2.tgz#6bcd93b09fb2ed1025d30a1155d5997954a53512" @@ -9458,13 +7276,6 @@ cli-table3@^0.5.0: optionalDependencies: colors "^1.1.2" -cli-table@^0.3.1: - version "0.3.11" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.11.tgz#ac69cdecbe81dccdba4889b9a18b7da312a9d3ee" - integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== - dependencies: - colors "1.0.3" - cli-util@~1.1.27: version "1.1.27" resolved "https://registry.yarnpkg.com/cli-util/-/cli-util-1.1.27.tgz#42d69e36a040a321fc9cf851c1513cadc5093054" @@ -9472,97 +7283,6 @@ cli-util@~1.1.27: dependencies: cli-regexp "~0.1.0" -cli-ux@5.6.6: - version "5.6.6" - resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-5.6.6.tgz#1424f5a9fbddcd796ad985b867a3de7f5a452090" - integrity sha512-4wUB34zoFklcZV0z5YiOM5IqVMMt9c3TK3QYRK3dqyk3XoRC0ybiWDWHfsMDjkKrzsVTw95rXn9NrzSHbae4pg== - dependencies: - "@oclif/command" "^1.8.9" - "@oclif/errors" "^1.3.5" - "@oclif/linewrap" "^1.0.0" - "@oclif/screen" "^1.0.4" - ansi-escapes "^4.3.0" - ansi-styles "^4.2.0" - cardinal "^2.1.1" - chalk "^4.1.0" - clean-stack "^3.0.0" - cli-progress "^3.4.0" - extract-stack "^2.0.0" - fs-extra "^8.1" - hyperlinker "^1.0.0" - indent-string "^4.0.0" - is-wsl "^2.2.0" - js-yaml "^3.13.1" - lodash "^4.17.21" - natural-orderby "^2.0.1" - object-treeify "^1.1.4" - password-prompt "^1.1.2" - semver "^7.3.2" - string-width "^4.2.0" - strip-ansi "^6.0.0" - supports-color "^8.1.0" - supports-hyperlinks "^2.1.0" - tslib "^2.0.0" - -cli-ux@5.6.7, cli-ux@^5.4.5, cli-ux@^5.4.9, cli-ux@^5.6.7: - version "5.6.7" - resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-5.6.7.tgz#32ef9e6cb2b457be834280cc799028a11c8235a8" - integrity sha512-dsKAurMNyFDnO6X1TiiRNiVbL90XReLKcvIq4H777NMqXGBxBws23ag8ubCJE97vVZEgWG2eSUhsyLf63Jv8+g== - dependencies: - "@oclif/command" "^1.8.15" - "@oclif/errors" "^1.3.5" - "@oclif/linewrap" "^1.0.0" - "@oclif/screen" "^1.0.4" - ansi-escapes "^4.3.0" - ansi-styles "^4.2.0" - cardinal "^2.1.1" - chalk "^4.1.0" - clean-stack "^3.0.0" - cli-progress "^3.4.0" - extract-stack "^2.0.0" - fs-extra "^8.1" - hyperlinker "^1.0.0" - indent-string "^4.0.0" - is-wsl "^2.2.0" - js-yaml "^3.13.1" - lodash "^4.17.21" - natural-orderby "^2.0.1" - object-treeify "^1.1.4" - password-prompt "^1.1.2" - semver "^7.3.2" - string-width "^4.2.0" - strip-ansi "^6.0.0" - supports-color "^8.1.0" - supports-hyperlinks "^2.1.0" - tslib "^2.0.0" - -cli-ux@^4.4.0: - version "4.9.3" - resolved "https://registry.yarnpkg.com/cli-ux/-/cli-ux-4.9.3.tgz#4c3e070c1ea23eef010bbdb041192e0661be84ce" - integrity sha512-/1owvF0SZ5Gn54cgrikJ0QskgTzeg30HGjkmjFoaHDJzAqFpuX1DBpFR8aLvsE1J5s9MgeYRENQK4BFwOag5VA== - dependencies: - "@oclif/errors" "^1.2.2" - "@oclif/linewrap" "^1.0.0" - "@oclif/screen" "^1.0.3" - ansi-escapes "^3.1.0" - ansi-styles "^3.2.1" - cardinal "^2.1.1" - chalk "^2.4.1" - clean-stack "^2.0.0" - extract-stack "^1.0.0" - fs-extra "^7.0.0" - hyperlinker "^1.0.0" - indent-string "^3.2.0" - is-wsl "^1.1.0" - lodash "^4.17.11" - password-prompt "^1.0.7" - semver "^5.6.0" - strip-ansi "^5.0.0" - supports-color "^5.5.0" - supports-hyperlinks "^1.0.1" - treeify "^1.1.0" - tslib "^1.9.3" - cli-width@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" @@ -9600,15 +7320,6 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -9704,14 +7415,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -9741,7 +7444,7 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -colors@1.0.3, colors@1.0.x: +colors@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== @@ -9771,7 +7474,7 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -command-exists@^1.2.8, command-exists@^1.2.9: +command-exists@^1.2.8: version "1.2.9" resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== @@ -9800,11 +7503,6 @@ commander@3.0.2, commander@^3.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - commander@^2.12.1, commander@^2.20.3, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -9843,7 +7541,7 @@ complex.js@2.0.11: resolved "https://registry.yarnpkg.com/complex.js/-/complex.js-2.0.11.tgz#09a873fbf15ffd8c18c9c2201ccef425c32b8bf1" integrity sha512-6IArJLApNtdg1P1dFtn3dnyzoZBEF0MwMnrfF1exSBRpZYoy4yieMkpZhQDC0uwctw48vii0CFVyHfpgZ/DfGw== -component-emitter@^1.2.0, component-emitter@^1.2.1: +component-emitter@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -9954,7 +7652,7 @@ content-hash@^2.5.2: multicodec "^0.5.5" multihashes "^0.4.15" -content-type@^1.0.4, content-type@~1.0.4, content-type@~1.0.5: +content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== @@ -10066,11 +7764,6 @@ cookiejar@^2.1.1: resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - core-js-compat@^3.25.1: version "3.30.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.1.tgz#961541e22db9c27fc48bfc13a3cafa8734171dfe" @@ -10083,12 +7776,7 @@ core-js-pure@^3.0.1: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.1.tgz#7d93dc89e7d47b8ef05d7e79f507b0e99ea77eec" integrity sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg== -core-js@^2.4.0: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-js@^3.0.0, core-js@^3.2.1: +core-js@^3.2.1: version "3.30.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.30.1.tgz#fc9c5adcc541d8e9fa3e381179433cbf795628ba" integrity sha512-ZNS5nbiSwDTq4hFosEDqm65izl2CWmLz0hARJMyNQBgkUZMIF51cQiMvIQKA6hvuaeWxQDP3hEedM1JZIgTldQ== @@ -10195,13 +7883,6 @@ cross-fetch@3.0.6: dependencies: node-fetch "2.6.1" -cross-fetch@3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" - integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== - dependencies: - node-fetch "2.6.1" - cross-fetch@^3.1.4: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" @@ -10209,15 +7890,6 @@ cross-fetch@^3.1.4: dependencies: node-fetch "2.6.7" -cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -10309,16 +7981,6 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== -csv-generate@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/csv-generate/-/csv-generate-3.4.3.tgz#bc42d943b45aea52afa896874291da4b9108ffff" - integrity sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw== - -csv-parse@^4.16.3: - version "4.16.3" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-4.16.3.tgz#7ca624d517212ebc520a36873c3478fa66efbaf7" - integrity sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg== - csv-parser@^2.0.0: version "2.3.5" resolved "https://registry.yarnpkg.com/csv-parser/-/csv-parser-2.3.5.tgz#6b3bf0907684914ff2c5abfbadab111a69eae5db" @@ -10334,21 +7996,6 @@ csv-stringify@^4.3.1: dependencies: lodash.get "~4.4.2" -csv-stringify@^5.6.5: - version "5.6.5" - resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-5.6.5.tgz#c6d74badda4b49a79bf4e72f91cce1e33b94de00" - integrity sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A== - -csv@^5.5.3: - version "5.5.3" - resolved "https://registry.yarnpkg.com/csv/-/csv-5.5.3.tgz#cd26c1e45eae00ce6a9b7b27dcb94955ec95207d" - integrity sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g== - dependencies: - csv-generate "^3.4.3" - csv-parse "^4.16.3" - csv-stringify "^5.6.5" - stream-transform "^2.1.3" - currency-symbol-map@~2: version "2.2.0" resolved "https://registry.yarnpkg.com/currency-symbol-map/-/currency-symbol-map-2.2.0.tgz#2b3c1872ff1ac2ce595d8273e58e1fff0272aea2" @@ -10406,7 +8053,7 @@ debounce-fn@^4.0.0: dependencies: mimic-fn "^3.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9, debug@^2.2.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -10427,7 +8074,7 @@ debug@3.2.6: dependencies: ms "^2.1.1" -debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -10632,15 +8279,6 @@ deferred-leveldown@~5.3.0: abstract-leveldown "~6.2.1" inherits "^2.0.3" -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -10654,28 +8292,6 @@ define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4, de has-property-descriptors "^1.0.0" object-keys "^1.1.1" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - defined@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" @@ -10758,11 +8374,6 @@ detect-libc@^1.0.2, detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== -detect-libc@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== - detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -10814,21 +8425,8 @@ diffie-hellman@^5.0.0: integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dijkstrajs@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" - integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== - -dir-glob@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" - integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== - dependencies: - arrify "^1.0.1" - path-type "^3.0.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" dir-glob@^3.0.1: version "3.0.1" @@ -10953,11 +8551,6 @@ dotenv@8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== -dotenv@^8.2.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" - integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== - dotenv@~10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" @@ -11171,14 +8764,6 @@ ends-with@^0.2.0: resolved "https://registry.yarnpkg.com/ends-with/-/ends-with-0.2.0.tgz#2f9da98d57a50cfda4571ce4339000500f4e6b8a" integrity sha512-lRppY4dK3VkqBdR242sKcAJeYc8Gf/DhoX9AWvWI2RzccmLnqBQfwm2k4oSDv5MPDjUqawCauXhZkyWxkVhRsg== -enquirer@^2.3.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" - integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== - dependencies: - ansi-colors "^4.1.1" - strip-ansi "^6.0.1" - enquirer@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -11225,21 +8810,6 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -error@7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - integrity sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw== - dependencies: - string-template "~0.2.1" - xtend "~4.0.0" - -error@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" - integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== - dependencies: - string-template "~0.2.1" - es-abstract@^1.17.0-next.1, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: version "1.21.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" @@ -11280,51 +8850,6 @@ es-abstract@^1.17.0-next.1, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstrac unbox-primitive "^1.0.2" which-typed-array "^1.1.9" -es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - es-array-method-boxes-properly@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" @@ -11354,13 +8879,6 @@ es-set-tostringtag@^2.0.1: has "^1.0.3" has-tostringtag "^1.0.0" -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -11561,7 +9079,7 @@ esprima@2.7.x, esprima@^2.7.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== -esprima@^4.0.0, esprima@~4.0.0: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -12017,20 +9535,6 @@ ethereumjs-wallet@^0.6.0, ethereumjs-wallet@^0.6.3: utf8 "^3.0.0" uuid "^3.3.2" -ethereumjs-wallet@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz#2c000504b4c71e8f3782dabe1113d192522e99b6" - integrity sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA== - dependencies: - aes-js "^3.1.2" - bs58check "^2.1.2" - ethereum-cryptography "^0.1.3" - ethereumjs-util "^7.1.2" - randombytes "^2.1.0" - scrypt-js "^3.0.1" - utf8 "^3.0.0" - uuid "^8.3.2" - ethers@4.0.0-beta.3: version "4.0.0-beta.3" resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.0-beta.3.tgz#15bef14e57e94ecbeb7f9b39dd0a4bd435bc9066" @@ -12139,12 +9643,7 @@ eventemitter3@^4.0.4: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== - -events@^3.0.0, events@^3.1.0, events@^3.3.0: +events@^3.0.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -12164,19 +9663,6 @@ exception-formatter@^1.0.4: dependencies: colors "^1.0.3" -execa@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" - integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== - dependencies: - cross-spawn "^6.0.0" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -12247,19 +9733,6 @@ expand-brackets@^0.1.1, expand-brackets@^0.1.4: dependencies: is-posix-bracket "^0.1.0" -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" @@ -12304,7 +9777,7 @@ export-files@^2.0.1: dependencies: lazy-cache "^1.0.3" -express@^4.14.0, express@^4.17.1, express@^4.17.6: +express@^4.14.0, express@^4.17.1: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== @@ -12348,32 +9821,19 @@ ext@^1.1.2: dependencies: type "^2.7.2" -extend-shallow@^2.0.0, extend-shallow@^2.0.1: +extend-shallow@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@^3.0.0, extend@^3.0.1, extend@^3.0.2, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extendable-error@^0.1.5: - version "0.1.7" - resolved "https://registry.yarnpkg.com/extendable-error/-/extendable-error-0.1.7.tgz#60b9adf206264ac920058a7395685ae4670c2b96" - integrity sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg== - -external-editor@^3.0.3, external-editor@^3.1.0: +external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== @@ -12389,20 +9849,6 @@ extglob@^0.3.0, extglob@^0.3.1: dependencies: is-extglob "^1.0.0" -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - extract-comments@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/extract-comments/-/extract-comments-1.1.0.tgz#b90bca033a056bd69b8ba1c6b6b120fc2ee95c18" @@ -12411,16 +9857,6 @@ extract-comments@^1.1.0: esprima-extract-comments "^1.1.0" parse-code-context "^1.0.0" -extract-stack@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-1.0.0.tgz#b97acaf9441eea2332529624b732fc5a1c8165fa" - integrity sha512-M5Ge0JIrn12EtIVpje2G+hI5X78hmX4UDzynZ7Vnp1MiPSqleEonmgr2Rh59eygEEgq3YJ1GDP96rnM8tnVg/Q== - -extract-stack@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/extract-stack/-/extract-stack-2.0.0.tgz#11367bc865bfcd9bc0db3123e5edb57786f11f9b" - integrity sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ== - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -12471,19 +9907,7 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^2.0.2: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-glob@^3.0.3, fast-glob@^3.2.9: +fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -12510,13 +9934,6 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-sta resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz#37b899ae47e1090e40e3fd2318e4d5f0142ca912" - integrity sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ== - dependencies: - fastest-levenshtein "^1.0.7" - fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" @@ -12539,11 +9956,6 @@ fast-url-parser@^1.1.3: dependencies: punycode "^1.3.2" -fastest-levenshtein@^1.0.7: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - fastq@^1.6.0: version "1.15.0" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -12580,37 +9992,6 @@ fetch-cookie@0.11.0: dependencies: tough-cookie "^2.3.3 || ^3.0.1 || ^4.0.0" -fetch-mock@9.10.4: - version "9.10.4" - resolved "https://registry.yarnpkg.com/fetch-mock/-/fetch-mock-9.10.4.tgz#e5f98c7d56d57b29caec55d928930150f39519ba" - integrity sha512-1ExE0cyv4+wHH/4NlSnh8tBBfVMUt6QFIRcuAGN7L4a0SAj7vOXh2z2G9XlEZS2qzgbj9ixDXFFE8gDmsCZ83g== - dependencies: - babel-runtime "^6.26.0" - core-js "^3.0.0" - debug "^4.1.1" - glob-to-regexp "^0.4.0" - is-subset "^0.1.1" - lodash.isequal "^4.5.0" - path-to-regexp "^2.2.1" - querystring "^0.2.0" - whatwg-url "^6.5.0" - -fetch-mock@^9.11.0: - version "9.11.0" - resolved "https://registry.yarnpkg.com/fetch-mock/-/fetch-mock-9.11.0.tgz#371c6fb7d45584d2ae4a18ee6824e7ad4b637a3f" - integrity sha512-PG1XUv+x7iag5p/iNHD4/jdpxL9FtVSqRMUQhPab4hVDt80T1MH5ehzVrL2IdXO9Q2iBggArFvPqjUbHFuI58Q== - dependencies: - "@babel/core" "^7.0.0" - "@babel/runtime" "^7.0.0" - core-js "^3.0.0" - debug "^4.1.1" - glob-to-regexp "^0.4.0" - is-subset "^0.1.1" - lodash.isequal "^4.5.0" - path-to-regexp "^2.2.1" - querystring "^0.2.0" - whatwg-url "^6.5.0" - figures@3.2.0, figures@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -12683,16 +10064,6 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -12745,7 +10116,7 @@ find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@5.0.0, find-up@^5.0.0: +find-up@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -12776,14 +10147,6 @@ find-up@^6.3.0: locate-path "^7.1.0" path-exists "^5.0.0" -find-yarn-workspace-root2@1.2.16: - version "1.2.16" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9" - integrity sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA== - dependencies: - micromatch "^4.0.2" - pkg-dir "^4.2.0" - find-yarn-workspace-root@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" @@ -12839,7 +10202,7 @@ follow-redirects@1.5.10: dependencies: debug "=3.1.0" -follow-redirects@^1.12.1, follow-redirects@^1.14.0, follow-redirects@^1.14.7, follow-redirects@^1.15.0: +follow-redirects@^1.12.1, follow-redirects@^1.14.7, follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -12861,7 +10224,7 @@ for-in@^0.1.3: resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" integrity sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g== -for-in@^1.0.1, for-in@^1.0.2: +for-in@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== @@ -12954,13 +10317,6 @@ fraction.js@4.0.12: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.12.tgz#0526d47c65a5fb4854df78bc77f7bec708d7b8c3" integrity sha512-8Z1K0VTG4hzYY7kA/1sj4/r1/RWLBD3xwReT/RCrUCbzPszjNQCCsy3ktkU/eaEqX3MYa4pY37a52eiBlPMlhA== -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -13023,16 +10379,7 @@ fs-extra@^5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" - integrity sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== @@ -13041,7 +10388,7 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^8.1, fs-extra@^8.1.0: +fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== @@ -13050,7 +10397,7 @@ fs-extra@^8.1, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0, fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: +fs-extra@^9.0.0, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -13099,11 +10446,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -13114,16 +10456,6 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" @@ -13183,7 +10515,7 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaxios@^1.0.2, gaxios@^1.0.4, gaxios@^1.2.1, gaxios@^1.2.2, gaxios@^1.5.0: +gaxios@^1.0.2, gaxios@^1.0.4, gaxios@^1.2.1, gaxios@^1.5.0: version "1.8.4" resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-1.8.4.tgz#e08c34fe93c0a9b67a52b7b9e7a64e6435f9a339" integrity sha512-BoENMnu1Gav18HcpV9IleMPZ9exM+AvUjrAOV4Mzs/vfz2Lu/ABv451iEXByKiMPn2M140uul1txXCg83sAENw== @@ -13204,16 +10536,6 @@ gaxios@^4.0.0: is-stream "^2.0.0" node-fetch "^2.6.7" -gaxios@^5.0.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.3.tgz#f7fa92da0fe197c846441e5ead2573d4979e9013" - integrity sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA== - dependencies: - extend "^3.0.2" - https-proxy-agent "^5.0.0" - is-stream "^2.0.0" - node-fetch "^2.6.9" - gcp-metadata@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-1.0.0.tgz#5212440229fa099fc2f7c2a5cdcb95575e9b2ca6" @@ -13230,14 +10552,6 @@ gcp-metadata@^4.2.0: gaxios "^4.0.0" json-bigint "^1.0.0" -gcp-metadata@^5.0.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.3.0.tgz#6f45eb473d0cb47d15001476b48b663744d25408" - integrity sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w== - dependencies: - gaxios "^5.0.0" - json-bigint "^1.0.0" - gcs-resumable-upload@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/gcs-resumable-upload/-/gcs-resumable-upload-1.1.0.tgz#2b06f5876dcf60f18a309343f79ed951aff01399" @@ -13298,16 +10612,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has "^1.0.3" has-symbols "^1.0.3" -get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -13390,11 +10694,6 @@ get-value@^1.1.5: lazy-cache "^0.2.4" noncharacters "^1.1.0" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -13456,11 +10755,6 @@ github-from-package@0.0.0: resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== -github-slugger@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" - integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== - glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -13529,14 +10823,6 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -13544,16 +10830,6 @@ glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== - -glob-to-regexp@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - glob@7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -13647,7 +10923,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.2.3: +glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -13728,21 +11004,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -globby@^11.0.0, globby@^11.0.1, globby@^11.0.2, globby@^11.1.0: +globby@^11.0.2: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -13765,19 +11027,6 @@ globby@^13.1.3: merge2 "^1.4.1" slash "^4.0.0" -globby@^8: - version "8.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" - integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== - dependencies: - array-union "^1.0.1" - dir-glob "2.0.0" - fast-glob "^2.0.2" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - google-auth-library@^3.0.0, google-auth-library@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-3.1.2.tgz#ff2f88cd5cd2118a57bd3d5ad3c093c8837fc350" @@ -13828,7 +11077,7 @@ google-gax@^0.25.0: semver "^6.0.0" walkdir "^0.3.2" -google-gax@^2.0.1, google-gax@^2.24.1: +google-gax@^2.0.1: version "2.30.5" resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-2.30.5.tgz#e836f984f3228900a8336f608c83d75f9cb73eff" integrity sha512-Jey13YrAN2hfpozHzbtrwEfEHdStJh1GwaQ2+Akh1k0Tv/EuNVSuBtHZoKSBm5wBMvNsxTsEIZ/152NrYyZgxQ== @@ -13876,26 +11125,6 @@ google-proto-files@^0.20.0: protobufjs "^6.8.0" walkdir "^0.3.0" -googleapis-common@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-0.7.2.tgz#a694f55d979cb7c2eac21a0e0439af12f9b418ba" - integrity sha512-9DEJIiO4nS7nw0VE1YVkEfXEj8x8MxsuB+yZIpOBULFSN9OIKcUU8UuKgSZFU4lJmRioMfngktrbkMwWJcUhQg== - dependencies: - gaxios "^1.2.2" - google-auth-library "^3.0.0" - pify "^4.0.0" - qs "^6.5.2" - url-template "^2.0.8" - uuid "^3.2.1" - -googleapis@^39.2.0: - version "39.2.0" - resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-39.2.0.tgz#5c81f721e9da2e80cb0b25821ed60d3bc200c3da" - integrity sha512-66X8TG1B33zAt177sG1CoKoYHPP/B66tEpnnSANGCqotMuY5gqSQO8G/0gqHZR2jRgc5CHSSNOJCnpI0SuDxMQ== - dependencies: - google-auth-library "^3.0.0" - googleapis-common "^0.7.0" - gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -13976,7 +11205,7 @@ got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -14050,7 +11279,7 @@ gtoken@^5.0.4: google-p12-pem "^3.1.3" jws "^4.0.0" -handlebars@^4.0.1, handlebars@^4.7.6, handlebars@^4.7.7: +handlebars@^4.0.1, handlebars@^4.7.7: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== @@ -14090,11 +11319,6 @@ has-flag@^1.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA== -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -14146,37 +11370,6 @@ has-unicode@^2.0.0, has-unicode@^2.0.1: resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has@^1.0.3, has@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -14214,13 +11407,6 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - hdkey@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-2.1.0.tgz#755b30b73f54e93c31919c1b2f19205a8e57cb92" @@ -14265,17 +11451,7 @@ header-case@^2.0.4: capital-case "^1.0.4" tslib "^2.0.3" -hexer@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" - integrity sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg== - dependencies: - ansi-color "^0.2.1" - minimist "^1.1.0" - process "^0.10.0" - xtend "^4.0.0" - -highlight.js@^10.2.0, highlight.js@^10.4.1: +highlight.js@^10.4.1: version "10.7.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== @@ -14357,18 +11533,6 @@ http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-call@^5.1.2, http-call@^5.2.2, http-call@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/http-call/-/http-call-5.3.0.tgz#4ded815b13f423de176eb0942d69c43b25b148db" - integrity sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w== - dependencies: - content-type "^1.0.4" - debug "^4.1.1" - is-retry-allowed "^1.1.0" - is-stream "^2.0.0" - parse-json "^4.0.0" - tunnel-agent "^0.6.0" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -14462,11 +11626,6 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -human-id@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/human-id/-/human-id-1.0.2.tgz#e654d4b2b0d8b07e45da9f6020d8af17ec0a5df3" - integrity sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -14482,11 +11641,6 @@ humanize-duration@^3.17.0: resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.28.0.tgz#f79770c0bec34d3bfd4899338cc40643bc04df72" integrity sha512-jMAxraOOmHuPbffLVDKkEKi/NeG8dMqP8lGRd6Tbf7JgAeG33jjgPWDbXXU7ypCI0o+oNKJFgbSB9FKVdWNI2A== -humanize-duration@^3.29.0: - version "3.30.0" - resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.30.0.tgz#9be623d331116583ff90aeb6ccfdc2e79d6d7372" - integrity sha512-NxpT0fhQTFuMTLnuu1Xp+ozNpYirQnbV3NlOjEKBYlE3uvMRu3LDuq8EPc3gVXxVYnchQfqVM4/+T9iwHPLLeA== - humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -14499,11 +11653,6 @@ husky@^8.0.0: resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== -hyperlinker@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e" - integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ== - iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -14525,12 +11674,7 @@ idna-uts46-hx@^2.3.1: dependencies: punycode "2.1.0" -ieee754@1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -14549,17 +11693,12 @@ ignore-walk@^5.0.1: dependencies: minimatch "^5.0.1" -ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.4, ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.0.4, ignore@^5.1.4, ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -14590,16 +11729,6 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-in-the-middle@1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.4.2.tgz#2a266676e3495e72c04bbaa5ec14756ba168391b" - integrity sha512-9WOz1Yh/cvO/p69sxRmhyQwrIGGSp7EIdcb+fFNVi7CzQGQB8U1/1XrKVSbEd/GNOAeM0peJtmi7+qphe7NvAw== - dependencies: - acorn "^8.8.2" - acorn-import-assertions "^1.9.0" - cjs-module-lexer "^1.2.2" - module-details-from-path "^1.0.3" - import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -14613,11 +11742,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== -indent-string@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - integrity sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ== - indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" @@ -14641,11 +11765,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -14732,11 +11851,6 @@ internal-slot@^1.0.4, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - invariant@2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -14777,20 +11891,6 @@ is-absolute@^0.2.2: is-relative "^0.2.1" is-windows "^0.2.0" -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -14813,11 +11913,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-base64@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-base64/-/is-base64-1.1.0.tgz#8ce1d719895030a457c59a7dcaf39b66d99d56b4" - integrity sha512-Nlhg7Z2dVC4/PTvIFkgVVNvPHSO2eR/Yd0XzhGiXCXEvWnptXlXa/clQ8aePPiMuxEGcWfzWbGw2Fe3d+Y3v1g== - is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -14862,13 +11957,6 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-ci@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.8.1: version "2.12.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" @@ -14876,27 +11964,6 @@ is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.8.1: dependencies: has "^1.0.3" -is-core-module@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -14904,24 +11971,6 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" @@ -14956,19 +12005,12 @@ is-extendable@^0.1.0, is-extendable@^0.1.1: resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" integrity sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww== -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== @@ -15024,14 +12066,7 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -15094,13 +12129,6 @@ is-number@^2.1.0: dependencies: kind-of "^3.0.2" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - dependencies: - kind-of "^3.0.2" - is-number@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" @@ -15136,7 +12164,7 @@ is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -15173,7 +12201,7 @@ is-relative@^0.2.1: dependencies: is-unc-path "^0.1.1" -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: +is-retry-allowed@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== @@ -15229,18 +12257,6 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-subdir@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-subdir/-/is-subdir-1.2.0.tgz#b791cd28fab5202e91a08280d51d9d7254fd20d4" - integrity sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw== - dependencies: - better-path-resolve "1.0.0" - -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - integrity sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw== - is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" @@ -15264,14 +12280,7 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: call-bind "^1.0.2" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-typed-array@^1.1.12: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" + has-tostringtag "^1.0.0" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" @@ -15324,16 +12333,11 @@ is-windows@^0.2.0: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" integrity sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q== -is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -15346,12 +12350,12 @@ isarray@0.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -isarray@^2.0.1, isarray@^2.0.5: +isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== @@ -15373,7 +12377,7 @@ isobject@^2.0.0: dependencies: isarray "1.0.0" -isobject@^3.0.0, isobject@^3.0.1: +isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== @@ -15394,11 +12398,6 @@ isomorphic-fetch@^3.0.0: node-fetch "^2.6.1" whatwg-fetch "^3.4.1" -isomorphic-ws@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" - integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - isomorphic-ws@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" @@ -15533,17 +12532,6 @@ jackspeak@^2.3.5: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jaeger-client@^3.15.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.19.0.tgz#9b5bd818ebd24e818616ee0f5cffe1722a53ae6e" - integrity sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw== - dependencies: - node-int64 "^0.4.0" - opentracing "^0.14.4" - thriftrw "^3.5.0" - uuid "^8.3.2" - xorshift "^1.1.1" - jake@^10.8.5: version "10.8.5" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" @@ -15920,22 +12908,6 @@ jest@^29.0.2: import-local "^3.0.2" jest-cli "^29.5.0" -jmespath@0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" - integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== - -joi@^17.3.0: - version "17.11.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.11.0.tgz#aa9da753578ec7720e6f0ca2c7046996ed04fc1a" - integrity sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.1" - "@sideway/pinpoint" "^2.0.0" - js-sdsl@^4.1.4: version "4.4.0" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" @@ -15969,7 +12941,7 @@ js-yaml@3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@3.14.1, js-yaml@3.x, js-yaml@^3.10.0, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1: +js-yaml@3.14.1, js-yaml@3.x, js-yaml@^3.10.0, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -16281,14 +13253,6 @@ keccak@^3.0.0: node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keytar@^7.3.0: - version "7.9.0" - resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.9.0.tgz#4c6225708f51b50cbf77c5aae81721964c2918cb" - integrity sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ== - dependencies: - node-addon-api "^4.3.0" - prebuild-install "^7.0.1" - keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -16315,25 +13279,13 @@ kind-of@^2.0.0: dependencies: is-buffer "^1.0.2" -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: +kind-of@^3.0.2: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -16363,11 +13315,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -kleur@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" - integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== - lazy-cache@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.1.0.tgz#d6cd450251d415b70103765f63130a0049a03795" @@ -16726,17 +13673,6 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -load-json-file@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" - integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== - dependencies: - graceful-fs "^4.1.15" - parse-json "^4.0.0" - pify "^4.0.1" - strip-bom "^3.0.0" - type-fest "^0.3.0" - load-json-file@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" @@ -16752,16 +13688,6 @@ load-tsconfig@^0.2.0: resolved "https://registry.yarnpkg.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz#453b8cd8961bfb912dea77eb6c168fe8cca3d3a1" integrity sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg== -load-yaml-file@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d" - integrity sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw== - dependencies: - graceful-fs "^4.1.5" - js-yaml "^3.13.0" - pify "^4.0.1" - strip-bom "^3.0.0" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -16804,11 +13730,6 @@ lodash-es@^4.2.1: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== - lodash.assign@^4.0.3, lodash.assign@^4.0.6: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -16854,11 +13775,6 @@ lodash.isboolean@^3.0.3: resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - lodash.isinteger@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" @@ -16909,32 +13825,12 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== -lodash.startcase@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== - -lodash.template@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.values@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" integrity sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q== -lodash@^4.16.4, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.2.1: +lodash@^4.16.4, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.2.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -16974,11 +13870,6 @@ loglevel@^1.6.1, loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== -long@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" - integrity sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ== - long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -17047,14 +13938,6 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^5.0.0, lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -17086,11 +13969,6 @@ ltgt@2.2.1, ltgt@^2.1.2, ltgt@~2.2.0: resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== -lunr@^2.3.9: - version "2.3.9" - resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" - integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== - make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -17154,7 +14032,7 @@ map-age-cleaner@^0.1.1: dependencies: p-defer "^1.0.0" -map-cache@^0.2.0, map-cache@^0.2.2: +map-cache@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== @@ -17169,23 +14047,11 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - markdown-table@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== -marked@^1.1.1: - version "1.2.9" - resolved "https://registry.yarnpkg.com/marked/-/marked-1.2.9.tgz#53786f8b05d4c01a2a5a76b7d1ec9943d29d72dc" - integrity sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw== - math-random@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" @@ -17283,23 +14149,6 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== -meow@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" - integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "^4.0.2" - normalize-package-data "^2.5.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.13.1" - yargs-parser "^18.1.3" - meow@^8.0.0: version "8.1.2" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" @@ -17327,7 +14176,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -17388,25 +14237,6 @@ micromatch@^2.3.11, micromatch@^2.3.7: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -17518,7 +14348,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4, minimatch@^3.1.1: +"minimatch@2 || 3", minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -17560,7 +14390,7 @@ minimatch@^9.0.1: dependencies: brace-expansion "^2.0.1" -minimist-options@4.1.0, minimist-options@^4.0.2: +minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== @@ -17574,7 +14404,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q== -minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.7: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -17666,14 +14496,6 @@ minizlib@^2.1.1, minizlib@^2.1.2: minipass "^3.0.0" yallist "^4.0.0" -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - mixin-object@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" @@ -17682,11 +14504,6 @@ mixin-object@^2.0.0: for-in "^0.1.3" is-extendable "^0.1.1" -mixme@^0.5.1: - version "0.5.9" - resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.9.tgz#a5a58e17354632179ff3ce5b0fc130899c8ba81c" - integrity sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw== - mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" @@ -17889,11 +14706,6 @@ modify-values@^1.0.0: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -module-details-from-path@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" - integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== - module-error@^1.0.1, module-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" @@ -17904,7 +14716,7 @@ module-not-found-error@^1.0.1: resolved "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz#cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0" integrity sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g== -moment@^2.10.6, moment@^2.19.3, moment@^2.22.1: +moment@^2.10.6: version "2.29.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== @@ -17934,13 +14746,6 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -msal@^1.0.2: - version "1.4.17" - resolved "https://registry.yarnpkg.com/msal/-/msal-1.4.17.tgz#b78171c0471ede506eeaabc86343f8f4e2d01634" - integrity sha512-RjHwP2cCIWQ9iUIk1SziUMb9+jj5mC4OqG2w16E5yig8jySi/TwiFvKlwcjNrPsndph0HtgCtbENnk5julf3yQ== - dependencies: - tslib "^1.9.3" - multi-progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/multi-progress/-/multi-progress-2.0.0.tgz#29ccb42cf24874b1c6384f03127ce5dff7b22f2c" @@ -18067,23 +14872,6 @@ nanoid@3.3.3: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - napi-build-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" @@ -18104,11 +14892,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -natural-orderby@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/natural-orderby/-/natural-orderby-2.0.3.tgz#8623bc518ba162f8ff1cdb8941d74deb0fdcc016" - integrity sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q== - ncp@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" @@ -18172,13 +14955,6 @@ node-abi@^2.21.0: dependencies: semver "^5.4.1" -node-abi@^3.3.0: - version "3.40.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.40.0.tgz#51d8ed44534f70ff1357dfbc3a89717b1ceac1b4" - integrity sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA== - dependencies: - semver "^7.3.5" - node-abort-controller@^3.0.1: version "3.1.1" resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" @@ -18194,7 +14970,7 @@ node-addon-api@^3.0.2, node-addon-api@^3.2.1: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== -node-addon-api@^4.2.0, node-addon-api@^4.3.0: +node-addon-api@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== @@ -18303,15 +15079,6 @@ node-hid@2.1.1: node-addon-api "^3.0.2" prebuild-install "^6.0.0" -node-hid@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.2.tgz#3145fa86ed4336a402a71e9f372c54213b88797c" - integrity sha512-qhCyQqrPpP93F/6Wc/xUR7L8mAJW0Z6R7HMQV8jCHHksAxNDe/4z4Un/H9CpLOT+5K39OPyt9tIQlavxWES3lg== - dependencies: - bindings "^1.5.0" - node-addon-api "^3.0.2" - prebuild-install "^7.1.1" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -18667,15 +15434,6 @@ object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - object-hash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" @@ -18686,11 +15444,6 @@ object-inspect@^1.12.3, object-inspect@^1.9.0, object-inspect@~1.12.3: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-inspect@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - object-is@^1.0.1: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" @@ -18709,11 +15462,6 @@ object-keys@~0.4.0: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== -object-treeify@^1.1.4: - version "1.1.33" - resolved "https://registry.yarnpkg.com/object-treeify/-/object-treeify-1.1.33.tgz#f06fece986830a3cba78ddd32d4c11d1f76cdf40" - integrity sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A== - object-visit@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-0.1.0.tgz#b1bb6749f228ee76e0c42f3851d28a14d233ce26" @@ -18721,13 +15469,6 @@ object-visit@^0.1.0: dependencies: isobject "^1.0.0" -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - object.assign@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" @@ -18775,13 +15516,6 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - oboe@2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" @@ -18796,11 +15530,6 @@ oboe@2.1.5: dependencies: http-https "^1.0.0" -obuf@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - omni-fetch@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/omni-fetch/-/omni-fetch-0.2.3.tgz#56a6f46ad170b6d978982cca5bd1c6b70597a58d" @@ -18845,7 +15574,7 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -open@^7.0.0, open@^7.4.2: +open@^7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== @@ -18862,11 +15591,6 @@ open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" -opentracing@^0.14.4: - version "0.14.7" - resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5" - integrity sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q== - openzeppelin-solidity@^2.5.0: version "2.5.1" resolved "https://registry.yarnpkg.com/openzeppelin-solidity/-/openzeppelin-solidity-2.5.1.tgz#1cdcce30c4c6a7b6625dab62ccd0440a813ab597" @@ -18970,11 +15694,6 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -outdent@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.5.0.tgz#9e10982fdc41492bb473ad13840d22f9655be2ff" - integrity sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== - p-cancelable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" @@ -19000,13 +15719,6 @@ p-defer@^1.0.0: resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== -p-filter@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" - integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== - dependencies: - p-map "^2.0.0" - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -19090,11 +15802,6 @@ p-map-series@^2.1.0: resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2" integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q== -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - p-map@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" @@ -19151,11 +15858,6 @@ p-waterfall@^2.1.1: dependencies: p-reduce "^2.0.0" -packet-reader@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" - integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== - pacote@^13.0.3, pacote@^13.6.1: version "13.6.2" resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" @@ -19347,19 +16049,6 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -password-prompt@^1.0.7, password-prompt@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.2.tgz#85b2f93896c5bd9e9f2d6ff0627fa5af3dc00923" - integrity sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA== - dependencies: - ansi-escapes "^3.1.0" - cross-spawn "^6.0.5" - patch-package@^6.2.2: version "6.5.1" resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.5.1.tgz#3e5d00c16997e6160291fee06a521c42ac99b621" @@ -19395,11 +16084,6 @@ path-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== - path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -19465,11 +16149,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== -path-to-regexp@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.4.0.tgz#35ce7f333d5616f1c1e1bfe266c3aba2e5b2e704" - integrity sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w== - path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -19491,14 +16170,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -path@^0.12.7: - version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" - integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== - dependencies: - process "^0.11.1" - util "^0.10.3" - pathe@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" @@ -19530,81 +16201,6 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -pg-connection-string@0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" - integrity sha512-i0NV/CrSkFTaiOQs9AGy3tq0dkSjtTd4d7DfsjeDVZAA4aIHInwfFEmriNYGGJUfZ5x6IAC/QddoUpUJjQAi0w== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-numeric@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pg-numeric/-/pg-numeric-1.0.2.tgz#816d9a44026086ae8ae74839acd6a09b0636aa3a" - integrity sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw== - -pg-packet-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz#e45c3ae678b901a2873af1e17b92d787962ef914" - integrity sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg== - -pg-pool@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz#842ee23b04e86824ce9d786430f8365082d81c4a" - integrity sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg== - -pg-protocol@*, pg-protocol@^1.2.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833" - integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q== - -pg-types@^2.1.0, pg-types@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg-types@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-4.0.1.tgz#31857e89d00a6c66b06a14e907c3deec03889542" - integrity sha512-hRCSDuLII9/LE3smys1hRHcu5QGcLs9ggT7I/TCs0IE+2Eesxi9+9RWAAwZ0yaGjxoWICF/YHLOEjydGujoJ+g== - dependencies: - pg-int8 "1.0.1" - pg-numeric "1.0.2" - postgres-array "~3.0.1" - postgres-bytea "~3.0.0" - postgres-date "~2.0.1" - postgres-interval "^3.0.0" - postgres-range "^1.1.1" - -pg@^7.18.0: - version "7.18.2" - resolved "https://registry.yarnpkg.com/pg/-/pg-7.18.2.tgz#4e219f05a00aff4db6aab1ba02f28ffa4513b0bb" - integrity sha512-Mvt0dGYMwvEADNKy5PMQGlzPudKcKKzJds/VbOeZJpb6f/pI3mmoXX0JksPgI3l3JPP/2Apq7F36O63J7mgveA== - dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "0.1.3" - pg-packet-stream "^1.1.0" - pg-pool "^2.0.10" - pg-types "^2.1.0" - pgpass "1.x" - semver "4.3.2" - -pgpass@1.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" - integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== - dependencies: - split2 "^4.1.0" - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -19683,70 +16279,11 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - popper.js@1.14.3: version "1.14.3" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.3.tgz#1438f98d046acf7b4d78cd502bf418ac64d4f095" integrity sha512-3lmujhsHXzb83+sI0PzfrE3O1XHZG8m8MXNMTupvA6LrM1/nnsiqYaacYc/RIente9VqnTDPztGEM8uvPAMGyg== -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-array@~3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-3.0.2.tgz#68d6182cb0f7f152a7e60dc6a6889ed74b0a5f98" - integrity sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== - -postgres-bytea@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-3.0.0.tgz#9048dc461ac7ba70a6a42d109221619ecd1cb089" - integrity sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw== - dependencies: - obuf "~1.1.2" - -postgres-date@~1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" - integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== - -postgres-date@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-2.0.1.tgz#638b62e5c33764c292d37b08f5257ecb09231457" - integrity sha512-YtMKdsDt5Ojv1wQRvUhnyDJNSr2dGIC96mQVKz7xufp07nfuFONzdaowrMHjlAzY6GDLd4f+LUHHAAM1h4MdUw== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -postgres-interval@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-3.0.0.tgz#baf7a8b3ebab19b7f38f07566c7aab0962f0c86a" - integrity sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw== - -postgres-range@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/postgres-range/-/postgres-range-1.1.3.tgz#9ccd7b01ca2789eb3c2e0888b3184225fa859f76" - integrity sha512-VdlZoocy5lCP0c/t66xAfclglEapXPCIVhqqJRncYpvbCgImF0w67aPKfbqUMr72tO2k5q0TdTZwCLjPTI6C9g== - pouchdb-abstract-mapreduce@7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz#96ff4a0f41cbe273f3f52fde003b719005a2093c" @@ -19952,39 +16489,11 @@ prebuild-install@^6.0.0: tar-fs "^2.0.0" tunnel-agent "^0.6.0" -prebuild-install@^7.0.1, prebuild-install@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" - integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== - dependencies: - detect-libc "^2.0.0" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^3.3.0" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^4.0.0" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - precond@0.2: version "0.2.3" resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" integrity sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ== -preferred-pm@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.1.2.tgz#aedb70550734a574dffcbf2ce82642bd1753bdd6" - integrity sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q== - dependencies: - find-up "^5.0.0" - find-yarn-workspace-root2 "1.2.16" - path-exists "^4.0.0" - which-pm "2.0.0" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -20028,7 +16537,7 @@ prettier-plugin-solidity@^1.0.0-dev.23: semver "^7.3.8" solidity-comments-extractor "^0.0.7" -prettier@1.19.1, prettier@^1.14.2, prettier@^1.14.3, prettier@^1.15.3: +prettier@^1.14.2, prettier@^1.14.3, prettier@^1.15.3: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== @@ -20074,12 +16583,7 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" - integrity sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA== - -process@^0.11.1, process@^0.11.10: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== @@ -20089,7 +16593,7 @@ progress@^1.1.8: resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" integrity sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw== -progress@^2.0.0, progress@^2.0.3: +progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -20236,24 +16740,6 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.0.0" -protobufjs@^7.2.3, protobufjs@^7.2.4: - version "7.2.5" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.5.tgz#45d5c57387a6d29a17aab6846dcc283f9b8e7f2d" - integrity sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/node" ">=13.7.0" - long "^5.0.0" - protocols@^2.0.0, protocols@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" @@ -20286,11 +16772,6 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - psl@^1.1.28, psl@^1.1.33: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" @@ -20341,11 +16822,6 @@ pumpify@^1.5.1: inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - punycode@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" @@ -20371,48 +16847,11 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" integrity sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg== -pvutils@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" - integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== - q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qqjs@^0.3.10: - version "0.3.11" - resolved "https://registry.yarnpkg.com/qqjs/-/qqjs-0.3.11.tgz#795b9f7d00807d75c391b1241b5be3077143d9ea" - integrity sha512-pB2X5AduTl78J+xRSxQiEmga1jQV0j43jOPs/MTgTLApGFEOn6NgdE2dEjp7nvDtjkIOZbvFIojAiYUx6ep3zg== - dependencies: - chalk "^2.4.1" - debug "^4.1.1" - execa "^0.10.0" - fs-extra "^6.0.1" - get-stream "^5.1.0" - glob "^7.1.2" - globby "^10.0.1" - http-call "^5.1.2" - load-json-file "^6.2.0" - pkg-dir "^4.2.0" - tar-fs "^2.0.0" - tmp "^0.1.0" - write-json-file "^4.1.1" - -qrcode@1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== - dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -20420,7 +16859,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.4.0, qs@^6.5.2, qs@^6.7.0: +qs@^6.4.0: version "6.11.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== @@ -20441,12 +16880,7 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== - -querystring@^0.2.0, querystring@^0.2.1: +querystring@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== @@ -20623,16 +17057,6 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -read-yaml-file@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-yaml-file/-/read-yaml-file-1.1.0.tgz#9362bbcbdc77007cc8ea4519fe1c0b821a7ce0d8" - integrity sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA== - dependencies: - graceful-fs "^4.1.5" - js-yaml "^3.6.1" - pify "^4.0.1" - strip-bom "^3.0.0" - read@1, read@1.0.x, read@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" @@ -20718,13 +17142,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -20733,13 +17150,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -redeyed@~2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" - integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== - dependencies: - esprima "~4.0.0" - redux-saga@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-1.0.0.tgz#acb8b3ed9180fecbe75f342011d75af3ac11045b" @@ -20764,21 +17174,11 @@ redux@^4.0.4: dependencies: "@babel/runtime" "^7.9.2" -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - regenerator-runtime@^0.13.11: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== - regex-cache@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" @@ -20786,14 +17186,6 @@ regex-cache@^0.4.2: dependencies: is-equal-shallow "^0.1.3" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" @@ -20803,15 +17195,6 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: define-properties "^1.2.0" functions-have-names "^1.2.3" -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" @@ -20849,7 +17232,7 @@ repeat-element@^1.1.2: resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== -repeat-string@^1.5.2, repeat-string@^1.6.1: +repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== @@ -20935,15 +17318,6 @@ require-from-string@^2.0.0, require-from-string@^2.0.1, require-from-string@^2.0 resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -require-in-the-middle@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz#b539de8f00955444dc8aed95e17c69b0a4f10fcf" - integrity sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw== - dependencies: - debug "^4.1.1" - module-details-from-path "^1.0.3" - resolve "^1.22.1" - require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" @@ -21016,11 +17390,6 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - resolve.exports@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" @@ -21031,21 +17400,12 @@ resolve@1.1.x: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.8.1, resolve@~1.22.1: +resolve@^1.10.0, resolve@^1.11.1, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2, resolve@^1.8.1, resolve@~1.22.1: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^1.22.1: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== dependencies: - is-core-module "^2.13.0" + is-core-module "^2.11.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -21094,11 +17454,6 @@ resumer@~0.0.0: dependencies: through "~2.3.4" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - retry-request@^4.0.0: version "4.2.2" resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-4.2.2.tgz#b7d82210b6d2651ed249ba3497f07ea602f1a903" @@ -21134,13 +17489,6 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - rimraf@^2.2.8, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -21148,6 +17496,13 @@ rimraf@^2.2.8, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: dependencies: glob "^7.1.3" +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + rimraf@^5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" @@ -21230,16 +17585,6 @@ safe-array-concat@^1.0.0: has-symbols "^1.0.3" isarray "^2.0.5" -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - isarray "^2.0.5" - safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -21271,24 +17616,12 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" - integrity sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA== - -sax@>=0.6.0, sax@^1.2.4: +sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -21382,11 +17715,6 @@ semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" - integrity sha512-VyFUffiBx8hABJ9HYSTXLRwyZtdDHMzMtFmID1aiNAD2BZppBmJm0Hqw3p2jkgxP9BNt1pQ9RnC49P0EcXf6cA== - semver@5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -21413,7 +17741,7 @@ semver@7.3.7: dependencies: lru-cache "^6.0.0" -semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.4.0: +semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: version "7.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== @@ -21425,7 +17753,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: +semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -21511,25 +17839,6 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== - dependencies: - define-data-property "^1.0.1" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" - set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" @@ -21543,16 +17852,6 @@ set-value@^0.2.0: isobject "^1.0.0" noncharacters "^1.1.0" -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - setimmediate@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" @@ -21627,20 +17926,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shelljs@^0.8.4: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -shimmer@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" - integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -21683,25 +17968,11 @@ simple-get@^3.0.3: once "^1.3.1" simple-concat "^1.0.0" -simple-get@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" - integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== - dependencies: - decompress-response "^6.0.0" - once "^1.3.1" - simple-concat "^1.0.0" - sisteransi@^1.0.0, sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== - slash@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" @@ -21743,18 +18014,6 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -smartwrap@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-2.0.2.tgz#7e25d3dd58b51c6ca4aba3a9e391650ea62698a4" - integrity sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA== - dependencies: - array.prototype.flat "^1.2.3" - breakword "^1.0.5" - grapheme-splitter "^1.0.4" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - yargs "^15.1.0" - snake-case@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" @@ -21775,36 +18034,6 @@ snakeize@^0.1.0: resolved "https://registry.yarnpkg.com/snakeize/-/snakeize-0.1.0.tgz#10c088d8b58eb076b3229bb5a04e232ce126422d" integrity sha512-ot3bb6pQt6IVq5G/JQ640ceSYTPtriVrwNyfoUw1LmQQGzPMAGxE5F+ded2UwSUCyf2PW1fFAYUnVEX21PWbpQ== -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - socks-proxy-agent@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" @@ -21952,17 +18181,6 @@ sort-keys@^4.0.0: dependencies: is-plain-obj "^2.0.0" -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -21979,16 +18197,6 @@ source-map-support@^0.5.0, source-map-support@^0.5.16, source-map-support@^0.5.1 buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -22006,14 +18214,6 @@ spark-md5@3.0.2: resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== -spawndamnit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/spawndamnit/-/spawndamnit-2.0.0.tgz#9f762ac5c3476abb994b42ad592b5ad22bb4b0ad" - integrity sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA== - dependencies: - cross-spawn "^5.1.0" - signal-exit "^3.0.2" - spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -22056,13 +18256,6 @@ split-array-stream@^2.0.0: dependencies: is-stream-ended "^0.1.4" -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - split2@^3.0.0: version "3.2.2" resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" @@ -22070,11 +18263,6 @@ split2@^3.0.0: dependencies: readable-stream "^3.0.0" -split2@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" @@ -22126,14 +18314,6 @@ starts-with@^1.0.0, starts-with@^1.0.2: resolved "https://registry.yarnpkg.com/starts-with/-/starts-with-1.0.2.tgz#16793a729d89d4cf3d4fb2eda2f908ae357f196f" integrity sha512-QUw5X+IMTGDm1nrdowEdDaA0MNiUmRlQFwpTTXmhuPKQc+7b0h8fOHtlt1zZqcEK5x1Fsitrobo7KEusc+d1rg== -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -22163,11 +18343,6 @@ stop-iteration-iterator@^1.0.0: dependencies: internal-slot "^1.0.4" -stoppable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" - integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== - stream-events@^1.0.1, stream-events@^1.0.4, stream-events@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" @@ -22180,13 +18355,6 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -stream-transform@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.1.3.tgz#a1c3ecd72ddbf500aa8d342b0b9df38f5aa598e3" - integrity sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ== - dependencies: - mixme "^0.5.1" - strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -22205,12 +18373,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== - -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -22263,15 +18426,6 @@ string.prototype.trim@^1.2.7, string.prototype.trim@~1.2.7: define-properties "^1.1.4" es-abstract "^1.20.4" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - string.prototype.trimend@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" @@ -22281,15 +18435,6 @@ string.prototype.trimend@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - string.prototype.trimstart@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" @@ -22299,15 +18444,6 @@ string.prototype.trimstart@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -22485,7 +18621,7 @@ supports-color@7.1.0: dependencies: has-flag "^4.0.0" -supports-color@8.1.1, supports-color@^8.0.0, supports-color@^8.1.0: +supports-color@8.1.1, supports-color@^8.0.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -22499,36 +18635,20 @@ supports-color@^3.1.0: dependencies: has-flag "^1.0.0" -supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: +supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" -supports-hyperlinks@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7" - integrity sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw== - dependencies: - has-flag "^2.0.0" - supports-color "^5.0.0" - -supports-hyperlinks@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -22730,11 +18850,6 @@ temp-dir@^1.0.0: resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -22798,15 +18913,6 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -thriftrw@^3.5.0: - version "3.11.4" - resolved "https://registry.yarnpkg.com/thriftrw/-/thriftrw-3.11.4.tgz#84c990ee89e926631c0b475909ada44ee9249870" - integrity sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA== - dependencies: - bufrw "^1.2.1" - error "7.0.2" - long "^2.4.0" - through2@3.0.2, through2@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" @@ -22894,7 +19000,7 @@ tmp@^0.1.0: dependencies: rimraf "^2.6.3" -tmp@^0.2.1, tmp@~0.2.1: +tmp@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== @@ -22916,26 +19022,11 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - dependencies: - kind-of "^3.0.2" - to-readable-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -22943,16 +19034,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" @@ -22976,23 +19057,11 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: universalify "^0.2.0" url-parse "^1.5.3" -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== - dependencies: - punycode "^2.1.0" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -treeify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" - integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== - treeverse@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca" @@ -23200,21 +19269,16 @@ tslib@1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ== -tslib@^1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== -tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - tslib@~2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" @@ -23298,19 +19362,6 @@ tsutils@^3.0.0, tsutils@^3.9.1: dependencies: tslib "^1.8.1" -tty-table@^4.1.5: - version "4.2.2" - resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.2.2.tgz#2a548db0278be5023ed40280001e1908bb823463" - integrity sha512-2gvCArMZLxgvpZ2NvQKdnYWIFLe7I/z5JClMuhrDXunmKgSZcQKcZRjN9XjAFiToMz2pUo1dEIXyrm0AwgV5Tw== - dependencies: - chalk "^4.1.2" - csv "^5.5.3" - kleur "^4.1.5" - smartwrap "^2.0.2" - strip-ansi "^6.0.1" - wcwidth "^1.0.1" - yargs "^17.7.1" - tunnel-agent@^0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" @@ -23345,11 +19396,6 @@ type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - type-fest@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" @@ -23360,11 +19406,6 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - type-fest@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" @@ -23423,36 +19464,6 @@ typechain@^4.0.3: ts-essentials "^7.0.1" ts-generator "^0.1.1" -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -23479,36 +19490,6 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typedoc-default-themes@^0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.11.4.tgz#1bc55b7c8d1132844616ff6f570e1e2cd0eb7343" - integrity sha512-Y4Lf+qIb9NTydrexlazAM46SSLrmrQRqWiD52593g53SsmUFioAsMWt8m834J6qsp+7wHRjxCXSZeiiW5cMUdw== - -typedoc-plugin-markdown@^2.2.16: - version "2.4.2" - resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-2.4.2.tgz#2d83fe4f279643436ebc44ca2f937855b0fd9f12" - integrity sha512-BBH+9/Uq5XbsqfzCDl8Jq4iaLXRMXRuAHZRFarAZX7df8+F3vUjDx/WHWoWqbZ/XUFzduLC2Iuy2qwsJX8SQ7A== - dependencies: - fs-extra "^9.0.1" - handlebars "^4.7.6" - -typedoc@^0.19.2: - version "0.19.2" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.19.2.tgz#842a63a581f4920f76b0346bb80eb2a49afc2c28" - integrity sha512-oDEg1BLEzi1qvgdQXc658EYgJ5qJLVSeZ0hQ57Eq4JXy6Vj2VX4RVo18qYxRWz75ifAaYuYNBUCnbhjd37TfOg== - dependencies: - fs-extra "^9.0.1" - handlebars "^4.7.6" - highlight.js "^10.2.0" - lodash "^4.17.20" - lunr "^2.3.9" - marked "^1.1.1" - minimatch "^3.0.0" - progress "^2.0.3" - semver "^7.3.2" - shelljs "^0.8.4" - typedoc-default-themes "^0.11.4" - typeforce@^1.11.5: version "1.18.0" resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" @@ -23610,16 +19591,6 @@ underscore@>1.4.4: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - unique-filename@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" @@ -23666,14 +19637,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - upath@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" @@ -23720,11 +19683,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - url-parse-lax@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" @@ -23760,24 +19718,11 @@ url-set-query@^1.0.0: resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== -url-template@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" - integrity sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw== - url-to-options@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== -url@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" - integrity sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ== - dependencies: - punycode "1.3.2" - querystring "0.2.0" - urlgrey@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-1.0.0.tgz#72d2f904482d0b602e3c7fa599343d699bbe1017" @@ -23793,11 +19738,6 @@ usb@^1.7.0: node-addon-api "^4.2.0" node-gyp-build "^4.3.0" -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - utf-8-validate@5.0.7: version "5.0.7" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922" @@ -23845,14 +19785,7 @@ util.promisify@^1.0.0: object.getownpropertydescriptors "^2.1.6" safe-array-concat "^1.0.0" -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -util@^0.12.0, util@^0.12.4, util@^0.12.5: +util@^0.12.0, util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -23878,17 +19811,12 @@ uuid@3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -uuid@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" - integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== - -uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.0, uuid@^8.3.2: +uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^3.2.1, uuid@^3.3.2, uuid@^3.3.3: +uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -23987,22 +19915,6 @@ viem@^1.0.0: isows "1.0.3" ws "8.13.0" -viem@~1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/viem/-/viem-1.5.4.tgz#4ba43cda4be5ec193d9f1c092955743705a37450" - integrity sha512-/B2KbAiTqiPd6fzJgz4pgS879IXbHfO44RP/0nsRvBEuFJvHQlekNIAHTa4d3LPlsHWAM8GcH4m2P5ZvtEHVxA== - dependencies: - "@adraffy/ens-normalize" "1.9.0" - "@noble/curves" "1.0.0" - "@noble/hashes" "1.3.0" - "@scure/bip32" "1.3.0" - "@scure/bip39" "1.2.0" - "@types/ws" "^8.5.4" - "@wagmi/chains" "1.6.0" - abitype "0.9.3" - isomorphic-ws "5.0.0" - ws "8.12.0" - vscode-jsonrpc@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" @@ -25241,11 +21153,6 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - websocket@^1.0.28, websocket@^1.0.32: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" @@ -25286,15 +21193,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -25316,25 +21214,6 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-pm@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae" - integrity sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w== - dependencies: - load-yaml-file "^0.2.0" - path-exists "^4.0.0" - -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - which-typed-array@^1.1.2, which-typed-array@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" @@ -25375,20 +21254,6 @@ wide-align@^1.1.0, wide-align@^1.1.5: dependencies: string-width "^1.0.2 || 2 || 3 || 4" -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - wif@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" @@ -25455,14 +21320,6 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" -wrap-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" - integrity sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -25472,15 +21329,6 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -25534,7 +21382,7 @@ write-json-file@^3.2.0: sort-keys "^2.0.0" write-file-atomic "^2.4.2" -write-json-file@^4.1.1, write-json-file@^4.3.0: +write-json-file@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-4.3.0.tgz#908493d6fd23225344af324016e4ca8f702dd12d" integrity sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ== @@ -25574,11 +21422,6 @@ ws@7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -ws@8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" - integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== - ws@8.13.0: version "8.13.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" @@ -25657,29 +21500,11 @@ xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: parse-headers "^2.0.0" xtend "^4.0.0" -xml2js@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7" - integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - xmlhttprequest@*, xmlhttprequest@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== -xorshift@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/xorshift/-/xorshift-1.2.0.tgz#30a4cdd8e9f8d09d959ed2a88c42a09c660e8148" - integrity sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g== - xss@^1.0.8: version "1.0.14" resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" @@ -25720,11 +21545,6 @@ yaeti@^0.0.6: resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== - yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -25766,14 +21586,6 @@ yargs-parser@^15.0.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.2, yargs-parser@^18.1.3: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" @@ -25813,7 +21625,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@13.3.2, yargs@^13.2.4, yargs@^13.3.0: +yargs@13.3.2, yargs@^13.3.0: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== @@ -25842,7 +21654,7 @@ yargs@16.2.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@17.7.2, yargs@^17.7.1, yargs@^17.7.2: +yargs@17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -25890,23 +21702,6 @@ yargs@^14.0.0: y18n "^4.0.0" yargs-parser "^15.0.1" -yargs@^15.1.0: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.2" - yargs@^17.3.1, yargs@^17.5.1, yargs@^17.6.2: version "17.7.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" @@ -25953,11 +21748,6 @@ yargs@^4.7.1: y18n "^3.2.1" yargs-parser "^2.4.1" -yarn@^1.21.1: - version "1.22.19" - resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.19.tgz#4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" - integrity sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ== - yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" From 560be2bc5617e7be8bde1268208af1c1c54524ac Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 10:20:54 +0200 Subject: [PATCH 02/16] fix dev utils publication --- packages/dev-utils/package.json | 10 +++++++--- scripts/hooks/pre-push.js | 5 ++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 37afef8c0d3..f82aae1e8bc 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -1,6 +1,6 @@ { "name": "@celo/dev-utils", - "version": "0.0.1", + "version": "0.0.2", "private": false, "description": "util package for celo packages that should only be a devDependency", "main": "./lib/index.js", @@ -12,9 +12,13 @@ "keywords": [ "celo" ], + "files": [ + "lib/*" + ], "scripts": { "build": "tsc -b .", - "lint": "tslint -c tslint.json --project ." + "lint": "tslint -c tslint.json --project .", + "prepack": "yarn build" }, "dependencies": { "ganache": "npm:@celo/ganache@7.8.0-unofficial.0", @@ -30,6 +34,6 @@ "@types/targz": "1.0.0" }, "engines": { - "node": ">=8.14.2" + "node": ">=18.14.2" } } \ No newline at end of file diff --git a/scripts/hooks/pre-push.js b/scripts/hooks/pre-push.js index 3451db8a9df..ddb63d83520 100644 --- a/scripts/hooks/pre-push.js +++ b/scripts/hooks/pre-push.js @@ -59,9 +59,8 @@ function getDateFromFirstCommit(fromSHA, toSHA) { /// MAIN //////////////////////////////////////////////////////////////// -// must trim otherwise the name will be 'origin\n' - -const remoteName = execSync('git remote').toString().trim() +// change if the remote name is different +const remoteName = 'origin' // create remote tracking branches to ensure we can compare current to origin/master execSync('git ls-remote --heads origin master') From dac998a2a4d8218a87162189231d8c63a61f933b Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 10:28:38 +0200 Subject: [PATCH 03/16] does not exist here --- .changeset/config.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.changeset/config.json b/.changeset/config.json index 267c3a001eb..444d0040797 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -2,11 +2,6 @@ "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", "changelog": "@changesets/cli/changelog", "commit": false, - "fixed": [ - [ - "@celo/wallet-*" - ] - ], "linked": [], "access": "public", "baseBranch": "master", From 94a7730b317fb2c03bab30e3a1bcaccde50eb53d Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 10:36:21 +0200 Subject: [PATCH 04/16] remove docker files references --- .github/workflows/container-cli.yml | 42 ----------------------------- dockerfiles/celotool/Dockerfile | 22 --------------- dockerfiles/leaderboard/Dockerfile | 40 --------------------------- 3 files changed, 104 deletions(-) delete mode 100644 .github/workflows/container-cli.yml delete mode 100644 dockerfiles/leaderboard/Dockerfile diff --git a/.github/workflows/container-cli.yml b/.github/workflows/container-cli.yml deleted file mode 100644 index 12a2994421e..00000000000 --- a/.github/workflows/container-cli.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -name: Build celocli container - -on: - push: - paths: - - 'dockerfiles/cli-standalone/**' - branches: - - master - pull_request: - paths: - - 'dockerfiles/cli-standalone/**' - workflow_dispatch: - -jobs: - celocli-build-dev: - uses: celo-org/reusable-workflows/.github/workflows/container-cicd.yaml@v1.8 - name: Build us-west1-docker.pkg.dev/devopsre/dev-images/celocli:testing - if: | - github.ref != 'refs/heads/master' - with: - workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-celo-monorepo/providers/github-by-repos - service-account: 'celo-monorepo-dev@devopsre.iam.gserviceaccount.com' - artifact-registry: us-west1-docker.pkg.dev/devopsre/dev-images/celocli - tag: testing - context: . - file: dockerfiles/cli-standalone/Dockerfile - trivy: true - - celocli-build: - uses: celo-org/reusable-workflows/.github/workflows/container-cicd.yaml@v1.8 - name: Build us-west1-docker.pkg.dev/devopsre/celo-monorepo/celocli:latest - if: | - github.ref == 'refs/heads/master' - with: - workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-celo-monorepo-master/providers/github-by-repos - service-account: 'celo-monorepo@devopsre.iam.gserviceaccount.com' - artifact-registry: us-west1-docker.pkg.dev/devopsre/celo-monorepo/celocli - tag: latest - context: . - file: dockerfiles/cli-standalone/Dockerfile - trivy: true diff --git a/dockerfiles/celotool/Dockerfile b/dockerfiles/celotool/Dockerfile index 6273c95feea..3a549081756 100644 --- a/dockerfiles/celotool/Dockerfile +++ b/dockerfiles/celotool/Dockerfile @@ -23,20 +23,9 @@ COPY packages/celotool/package.json packages/celotool/ COPY packages/dev-utils/package.json packages/dev-utils/ COPY packages/env-tests/package.json packages/env-tests/package.json COPY packages/protocol/package.json packages/protocol/ -COPY packages/sdk/base/package.json packages/sdk/base/ -COPY packages/sdk/connect/package.json packages/sdk/connect/ -COPY packages/sdk/contractkit/package.json packages/sdk/contractkit/ -COPY packages/sdk/cryptographic-utils/package.json packages/sdk/cryptographic-utils/ -COPY packages/sdk/explorer/package.json packages/sdk/explorer/ -COPY packages/sdk/governance/package.json packages/sdk/governance/ -COPY packages/sdk/network-utils/package.json packages/sdk/network-utils/ -COPY packages/sdk/utils/package.json packages/sdk/utils/ -COPY packages/sdk/wallets/wallet-base/package.json packages/sdk/wallets/wallet-base/ -COPY packages/sdk/wallets/wallet-local/package.json packages/sdk/wallets/wallet-local/ COPY packages/typescript/package.json packages/typescript/ COPY patches/ patches/ COPY scripts/ scripts/ -COPY packages/sdk/phone-utils/package.json packages/sdk/phone-utils/package.json # Makes build fail if it doesn't copy git, will be removed after build COPY .git .git COPY .gitmodules .gitmodules @@ -48,18 +37,7 @@ COPY packages/dev-utils packages/dev-utils/ COPY packages/env-tests packages/env-tests COPY packages/helm-charts packages/helm-charts COPY packages/protocol packages/protocol/ -COPY packages/sdk/base packages/sdk/base/ -COPY packages/sdk/connect packages/sdk/connect/ -COPY packages/sdk/contractkit packages/sdk/contractkit/ -COPY packages/sdk/cryptographic-utils packages/sdk/cryptographic-utils/ -COPY packages/sdk/explorer packages/sdk/explorer/ -COPY packages/sdk/governance packages/sdk/governance/ -COPY packages/sdk/network-utils packages/sdk/network-utils/ -COPY packages/sdk/utils packages/sdk/utils/ -COPY packages/sdk/wallets/wallet-base packages/sdk/wallets/wallet-base/ -COPY packages/sdk/wallets/wallet-local packages/sdk/wallets/wallet-local/ COPY packages/typescript packages/typescript/ -COPY packages/sdk/phone-utils packages/sdk/phone-utils/ RUN yarn build diff --git a/dockerfiles/leaderboard/Dockerfile b/dockerfiles/leaderboard/Dockerfile deleted file mode 100644 index 2d8240ea85f..00000000000 --- a/dockerfiles/leaderboard/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -FROM node:12 -WORKDIR /celo-monorepo - -# ensure yarn.lock is evaluated by kaniko cache diff -COPY lerna.json package.json yarn.lock ./ -COPY scripts/ scripts/ -COPY patches/ patches/ - -# Copy only pkg.json -COPY packages/typescript/package.json packages/typescript/ -COPY packages/sdk/base/package.json packages/sdk/base/ -COPY packages/sdk/utils/package.json packages/sdk/utils/ -COPY packages/dev-utils/package.json packages/dev-utils/ -COPY packages/sdk/connect/package.json packages/sdk/connect/ -COPY packages/sdk/wallets/wallet-base/package.json packages/sdk/wallets/wallet-base -COPY packages/sdk/wallets/wallet-local/package.json packages/sdk/wallets/wallet-local -COPY packages/protocol/package.json packages/protocol/ -COPY packages/sdk/contractkit/package.json packages/sdk/contractkit/ -COPY packages/leaderboard/package.json packages/leaderboard/ - -RUN yarn install --frozen-lockfile --network-timeout 100000 && yarn cache clean - -# Copy the rest -COPY packages/typescript packages/typescript/ -COPY packages/sdk/base packages/sdk/base/ -COPY packages/sdk/utils packages/sdk/utils/ -COPY packages/dev-utils packages/dev-utils/ -COPY packages/sdk/connect/package.json packages/sdk/connect/ -COPY packages/sdk/wallets/wallet-base packages/sdk/wallets/wallet-base -COPY packages/sdk/wallets/wallet-local packages/sdk/wallets/wallet-local -COPY packages/protocol packages/protocol/ -COPY packages/sdk/contractkit packages/sdk/contractkit/ -COPY packages/leaderboard packages/leaderboard/ - -# build all -RUN yarn build - -WORKDIR /celo-monorepo/packages/leaderboard - -CMD ["yarn run ts-node src/board.ts ; yarn run ts-node src/upload.ts"] From 076c31b2e9eb24bbe3c9bc7f9c4bfdbb2b143419 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 10:49:57 +0200 Subject: [PATCH 05/16] remove phone-utils --- packages/env-tests/package.json | 1 - yarn.lock | 94 ++++++--------------------------- 2 files changed, 15 insertions(+), 80 deletions(-) diff --git a/packages/env-tests/package.json b/packages/env-tests/package.json index 771ca3194f2..839d44d8f0f 100644 --- a/packages/env-tests/package.json +++ b/packages/env-tests/package.json @@ -10,7 +10,6 @@ "@celo/utils": "^5.0.6", "@celo/base": "^6.0.0", "@celo/connect": "^5.1.1", - "@celo/phone-utils": "^6.0.0", "@celo/cryptographic-utils": "^5.0.6", "bignumber.js": "^9.0.0", "bunyan": "1.8.12", diff --git a/yarn.lock b/yarn.lock index 7d31ab5a8a1..0b908b228f7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -865,6 +865,19 @@ randombytes "^2.0.1" tiny-secp256k1 "2.2.1" +"@celo/dev-utils@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@celo/dev-utils/-/dev-utils-0.0.1.tgz#9fa357664f702f3b2cc13f7804d15b1eadf399b9" + integrity sha512-2WmuDRVZK8o3ZfAM1QNOTS9wrT3XOO7GOuVubU87smqv3HtyppFXpB6SekfGvG9WepeFwsy+uvzbLqgHHGCKTQ== + dependencies: + bignumber.js "^9.0.0" + fs-extra "^8.1.0" + ganache "npm:@celo/ganache@7.8.0-unofficial.0" + targz "^1.0.1" + tmp "^0.1.0" + web3 "1.10.0" + web3-core-helpers "1.10.0" + "@celo/explorer@^5.0.7": version "5.0.7" resolved "https://registry.yarnpkg.com/@celo/explorer/-/explorer-5.0.7.tgz#4f21a500c62408e89cf6860d11498f3e3a93419c" @@ -912,22 +925,6 @@ resolved "https://registry.yarnpkg.com/@celo/odis-identifiers/-/odis-identifiers-1.0.0.tgz#9bafbb77d989f1f1064f293a54d64af3298f0e91" integrity sha512-ZcBMGrr+DRX7FqNO0dWZpOVnYi5xWUxGaDtSeWnFQH9JwQ37ZmXQLEyraDXHx3gTgVEl+xSgCfJUnc1+w88PSQ== -"@celo/phone-utils@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@celo/phone-utils/-/phone-utils-6.0.0.tgz#f11e09a4f8890e3b143278dc5f3bdc6b78340da7" - integrity sha512-NZOCNLGSZf3uOa7wWnGgTlutPa063eYbW41YgfViuSXGujd7LrEktqKVZAzzRrAktcMcvN4to4SNX9Jl9A8xJA== - dependencies: - "@celo/base" "^6.0.0" - "@celo/utils" "^5.0.6" - "@types/country-data" "^0.0.0" - "@types/google-libphonenumber" "^7.4.23" - "@types/node" "^18.7.16" - country-data "^0.0.31" - fp-ts "2.1.1" - google-libphonenumber "^3.2.27" - io-ts "2.0.1" - web3-utils "^1.10.0" - "@celo/typechain-target-web3-v1-celo@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@celo/typechain-target-web3-v1-celo/-/typechain-target-web3-v1-celo-1.0.0.tgz#9b22ae2624c06d9cddb1616fa232970b45056aa9" @@ -1326,15 +1323,6 @@ "@ethereumjs/rlp" "^4.0.1" ethereum-cryptography "^1.1.2" -"@ethereumjs/util@^8.1.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" - integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== - dependencies: - "@ethereumjs/rlp" "^4.0.1" - ethereum-cryptography "^2.0.0" - micro-ftch "^0.3.1" - "@ethereumjs/vm@npm:@celo/ethereumjs-vm@6.4.1-unofficial.0": version "6.4.1-unofficial.0" resolved "https://registry.yarnpkg.com/@celo/ethereumjs-vm/-/ethereumjs-vm-6.4.1-unofficial.0.tgz#8a6b10e08bde5fe80ad9a2e01fe1a0fa8ef74bf5" @@ -4675,11 +4663,6 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== -"@types/country-data@^0.0.0": - version "0.0.0" - resolved "https://registry.yarnpkg.com/@types/country-data/-/country-data-0.0.0.tgz#6f5563cae3d148780c5b6539803a29bd93f8f1a1" - integrity sha512-lIxCk6G7AwmUagQ4gIQGxUBnvAq664prFD9nSAz6dgd1XmBXBtZABV/op+QsJsIyaP1GZsf/iXhYKHX3azSRCw== - "@types/debug@^4.1.5": version "4.1.7" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" @@ -4758,11 +4741,6 @@ dependencies: "@types/node" "*" -"@types/google-libphonenumber@^7.4.23": - version "7.4.23" - resolved "https://registry.yarnpkg.com/@types/google-libphonenumber/-/google-libphonenumber-7.4.23.tgz#c44c9125d45f042943694d605fd8d8d796cafc3b" - integrity sha512-C3ydakLTQa8HxtYf9ge4q6uT9krDX8smSIxmmW3oACFi5g5vv6T068PRExF7UyWbWpuYiDG8Nm24q2X5XhcZWw== - "@types/graceful-fs@^4.1.3": version "4.1.6" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" @@ -6320,7 +6298,7 @@ bip32@3.1.0, bip32@^3.1.0: typeforce "^1.11.5" wif "^2.0.6" -bip39@2.5.0, bip39@^2.2.0, bip39@^2.5.0, "bip39@git+https://github.com/bitcoinjs/bip39.git#d8ea080a18b40f301d4e2219a2991cd2417e83c2", "bip39@https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2": +bip39@2.5.0, bip39@^2.2.0, bip39@^2.5.0, "bip39@https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2": version "3.0.3" resolved "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2" dependencies: @@ -7820,14 +7798,6 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -country-data@^0.0.31: - version "0.0.31" - resolved "https://registry.yarnpkg.com/country-data/-/country-data-0.0.31.tgz#80966b8e1d147fa6d6a589d32933f8793774956d" - integrity sha512-YqlY/i6ikZwoBFfdjK+hJTGaBdTgDpXLI15MCj2UsXZ2cPBb+Kx86AXmDH7PRGt0LUleck0cCgNdWeIhfbcxkQ== - dependencies: - currency-symbol-map "~2" - underscore ">1.4.4" - crc-32@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" @@ -7996,11 +7966,6 @@ csv-stringify@^4.3.1: dependencies: lodash.get "~4.4.2" -currency-symbol-map@~2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/currency-symbol-map/-/currency-symbol-map-2.2.0.tgz#2b3c1872ff1ac2ce595d8273e58e1fff0272aea2" - integrity sha512-fPZJ3jqM68+AAgqQ7UaGbgHL/39rp6l7GyqS2k1HJPu/kpS8D07x/+Uup6a9tCUKIlOFcRrDCf1qxSt8jnI5BA== - cycle@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" @@ -9335,7 +9300,7 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.1.2: +ethereum-cryptography@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz#18fa7108622e56481157a5cb7c01c0c6a672eb67" integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug== @@ -11096,11 +11061,6 @@ google-gax@^2.0.1: protobufjs "6.11.3" retry-request "^4.0.0" -google-libphonenumber@^3.2.27: - version "3.2.32" - resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.2.32.tgz#63c48a9c247b64a3bc2eec21bdf3fcfbf2e148c0" - integrity sha512-mcNgakausov/B/eTgVeX8qc8IwWjRrupk9UzZZ/QDEvdh5fAjE7Aa211bkZpZj42zKkeS6MTT8avHUwjcLxuGQ== - google-p12-pem@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-1.0.5.tgz#0b4721cdfc818759d884f0c62803518decdaf0d0" @@ -14213,11 +14173,6 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micro-ftch@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" - integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== - micromatch@^2.3.11, micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -19586,11 +19541,6 @@ underscore@1.9.1: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== -underscore@>1.4.4: - version "1.13.6" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" - integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== - unique-filename@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" @@ -21060,20 +21010,6 @@ web3-utils@1.8.2, web3-utils@^1.0.0-beta.31: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@^1.10.0: - version "1.10.3" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.3.tgz#f1db99c82549c7d9f8348f04ffe4e0188b449714" - integrity sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ== - dependencies: - "@ethereumjs/util" "^8.1.0" - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereum-cryptography "^2.1.2" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - web3@*, web3@1.8.2, web3@^1.2.4: version "1.8.2" resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.2.tgz#95a4e5398fd0f01325264bf8e5e8cdc69a7afe86" From 0228f0ac933e06088f7f11fc94073d7276792205 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 13:28:23 +0200 Subject: [PATCH 06/16] remove unneeded ignores and old command for reseting react native --- .github/workflows/publish-contracts-abi-release.yml | 4 ++-- package.json | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-contracts-abi-release.yml b/.github/workflows/publish-contracts-abi-release.yml index 7795e9d4cc0..d9a1397e8b3 100644 --- a/.github/workflows/publish-contracts-abi-release.yml +++ b/.github/workflows/publish-contracts-abi-release.yml @@ -56,9 +56,9 @@ jobs: env: GITHUB_TAG: ${{ github.ref_name }} INPUT_VERSION: ${{ inputs.npm_version }} - - name: 'Build packages which will not need abis' + - name: 'Build packages' shell: bash - run: yarn build --ignore @celo/contractkit --ignore @celo/explorer --ignore @celo/celocli --ignore @celo/governance --ignore @celo/metadata-crawler --ignore @celo/celotool --ignore @celo/env-tests --ignore @celo/transactions-uri --ignore @celo/wallet-rpc --include-dependencies + run: yarn build --ignore @celo/celotool --ignore @celo/env-tests --include-dependencies - name: Compile solidity contracts and typescript files run: yarn prepare_contracts_and_abis_publishing working-directory: packages/protocol diff --git a/package.json b/package.json index 0d224f7dc11..9169277e251 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,8 @@ "prettify": "yarn run prettier --config .prettierrc.js --write '**/*.+(ts|js|sol)'", "prettify:diff": "yarn run prettier --config .prettierrc.js --list-different '**/*.+(ts|js|sol)'", "reset": "yarn reset-modules && yarn reset-cache", - "reset-cache": "yarn reset-yarn && yarn reset-rn", + "reset-cache": "yarn reset-yarn", "reset-modules": "rm -rf node_modules/ packages/*/node_modules", - "reset-rn": "watchman watch-del-all; rm -rf $TMPDIR/metro-cache-*; rm -rf $TMPDIR/haste-map-*; rm -rf $TMPDIR/metro-symbolicate*", "reset-yarn": "yarn cache clean", "test": "yarn run lerna run test", "build": "yarn run lerna run build", From 7b23c6076209b9f3fd8f3dd73e26114b27d0280b Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 13:41:19 +0200 Subject: [PATCH 07/16] verbose to understand why install fails --- .github/workflows/celo-monorepo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/celo-monorepo.yml b/.github/workflows/celo-monorepo.yml index 1ce75dad94f..c8c9253d1df 100644 --- a/.github/workflows/celo-monorepo.yml +++ b/.github/workflows/celo-monorepo.yml @@ -71,7 +71,7 @@ jobs: restore-keys: | node-${{ runner.os }}-${{ runner.arch }}-${{ env.NODE_MODULE_CACHE_VERSION }}- - name: Install yarn dependencies - run: git config --global url."https://".insteadOf ssh:// && yarn install + run: git config --global url."https://".insteadOf ssh:// && yarn install --verbose --network-timeout 1000000 if: steps.cache_node.outputs.cache-hit != 'true' - name: Run yarn postinstall if cache hitted run: yarn run postinstall From c7d89fca5e3f1cca27bbe4477cc6fd28d201b7a0 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 13:41:50 +0200 Subject: [PATCH 08/16] dont need to ignore docs anymore --- .github/workflows/celo-monorepo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/celo-monorepo.yml b/.github/workflows/celo-monorepo.yml index c8c9253d1df..d5f576ba681 100644 --- a/.github/workflows/celo-monorepo.yml +++ b/.github/workflows/celo-monorepo.yml @@ -77,7 +77,7 @@ jobs: run: yarn run postinstall if: steps.cache_node.outputs.cache-hit == 'true' - name: Build packages - run: yarn build --ignore docs --include-dependencies + run: yarn build --include-dependencies - name: Check licenses if: steps.cache_node.outputs.cache-hit != 'true' run: | From ea9c0bf416a999668444ef43ea9ca806944c664e Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 14:00:18 +0200 Subject: [PATCH 09/16] try frozen lock --- .github/actions/sync-workspace/action.yml | 2 +- .github/workflows/celo-monorepo.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/sync-workspace/action.yml b/.github/actions/sync-workspace/action.yml index 43a82ea7c01..f6d63270f0e 100644 --- a/.github/actions/sync-workspace/action.yml +++ b/.github/actions/sync-workspace/action.yml @@ -44,4 +44,4 @@ runs: if: ${{ fromJSON(env.REBUILD_PACKAGE) }} run: | yarn install - yarn build --ignore docs --include-dependencies + yarn build --include-dependencies diff --git a/.github/workflows/celo-monorepo.yml b/.github/workflows/celo-monorepo.yml index d5f576ba681..c664da58138 100644 --- a/.github/workflows/celo-monorepo.yml +++ b/.github/workflows/celo-monorepo.yml @@ -71,7 +71,7 @@ jobs: restore-keys: | node-${{ runner.os }}-${{ runner.arch }}-${{ env.NODE_MODULE_CACHE_VERSION }}- - name: Install yarn dependencies - run: git config --global url."https://".insteadOf ssh:// && yarn install --verbose --network-timeout 1000000 + run: git config --global url."https://".insteadOf ssh:// && yarn install --verbose --frozen-lockfile --network-timeout 1000000 if: steps.cache_node.outputs.cache-hit != 'true' - name: Run yarn postinstall if cache hitted run: yarn run postinstall From 2b2b29cae130529f272d14082e8653ff51777340 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Wed, 13 Dec 2023 14:04:33 +0200 Subject: [PATCH 10/16] force the cache? --- .github/workflows/celo-monorepo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/celo-monorepo.yml b/.github/workflows/celo-monorepo.yml index c664da58138..20d77db0c9e 100644 --- a/.github/workflows/celo-monorepo.yml +++ b/.github/workflows/celo-monorepo.yml @@ -25,7 +25,7 @@ defaults: env: # Increment these to force cache rebuilding - NODE_MODULE_CACHE_VERSION: 4 + NODE_MODULE_CACHE_VERSION: 5 NODE_OPTIONS: '--max-old-space-size=4096' TERM: dumb GRADLE_OPTS: '-Dorg.gradle.daemon=false -Dorg.gradle.parallel=false -Dorg.gradle.configureondemand=true -Dorg.gradle.jvmargs="-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError"' From bcbd48fbfc00dadb502c765f32c692f34cbc753f Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Thu, 14 Dec 2023 12:18:24 +0200 Subject: [PATCH 11/16] add back metadata crawler --- packages/metadata-crawler/.gitignore | 3 + packages/metadata-crawler/CHANGELOG.md | 67 +++++++++ packages/metadata-crawler/README.md | 36 +++++ packages/metadata-crawler/index.d.ts | 1 + packages/metadata-crawler/package.json | 37 +++++ packages/metadata-crawler/src/crawler.ts | 183 +++++++++++++++++++++++ packages/metadata-crawler/src/env.ts | 19 +++ packages/metadata-crawler/src/logger.ts | 30 ++++ packages/metadata-crawler/tsconfig.json | 9 ++ 9 files changed, 385 insertions(+) create mode 100644 packages/metadata-crawler/.gitignore create mode 100644 packages/metadata-crawler/CHANGELOG.md create mode 100644 packages/metadata-crawler/README.md create mode 100644 packages/metadata-crawler/index.d.ts create mode 100644 packages/metadata-crawler/package.json create mode 100644 packages/metadata-crawler/src/crawler.ts create mode 100644 packages/metadata-crawler/src/env.ts create mode 100644 packages/metadata-crawler/src/logger.ts create mode 100644 packages/metadata-crawler/tsconfig.json diff --git a/packages/metadata-crawler/.gitignore b/packages/metadata-crawler/.gitignore new file mode 100644 index 00000000000..4fd586cad7a --- /dev/null +++ b/packages/metadata-crawler/.gitignore @@ -0,0 +1,3 @@ +lib/ +tmp/ +.tmp/ \ No newline at end of file diff --git a/packages/metadata-crawler/CHANGELOG.md b/packages/metadata-crawler/CHANGELOG.md new file mode 100644 index 00000000000..0d85ca35b43 --- /dev/null +++ b/packages/metadata-crawler/CHANGELOG.md @@ -0,0 +1,67 @@ +# @celo/metadata-crawler + +## 0.0.4-beta.0 + +### Patch Changes + +- Updated dependencies [1c9c844cf] + - @celo/contractkit@6.0.0-beta.0 +## 0.0.4 + +### Patch Changes + +- Updated dependencies [9ab9d00eb] +- Updated dependencies [1c9c844cf] +- Updated dependencies [9ab9d00eb] + - @celo/contractkit@6.0.0 + +## 0.0.3 + +### Patch Changes + +- Updated dependencies +- Updated dependencies [679ef0c60] +- Updated dependencies [32face3d8] +- Updated dependencies [87647b46b] + - @celo/contractkit@5.2.0 + - @celo/connect@5.1.1 + - @celo/utils@5.0.6 + +## 0.0.3-beta.0 + +### Patch Changes + +- Updated dependencies +- Updated dependencies [32face3d8] +- Updated dependencies [87647b46b] + - @celo/contractkit@5.2.0-beta.0 + - @celo/connect@5.1.1-beta.0 + - @celo/utils@5.0.6-beta.0 + +## 0.0.2 + +### Patch Changes + +- Updated dependencies [d48c68afc] +- Updated dependencies [d48c68afc] +- Updated dependencies [53bbd4958] +- Updated dependencies [d48c68afc] +- Updated dependencies [53bbd4958] +- Updated dependencies [d48c68afc] + - @celo/contractkit@5.1.0 + - @celo/connect@5.1.0 + - @celo/utils@5.0.5 + +## 0.0.2-beta.0 + +### Patch Changes + +- Updated dependencies [d48c68afc] +- Updated dependencies [d48c68afc] +- Updated dependencies [53bbd4958] +- Updated dependencies [d48c68afc] +- Updated dependencies [53bbd4958] +- Updated dependencies [d48c68afc] + - @celo/contractkit@5.1.0-beta.0 + - @celo/connect@5.1.0-beta.0 + - @celo/utils@5.0.5-beta.0 diff --git a/packages/metadata-crawler/README.md b/packages/metadata-crawler/README.md new file mode 100644 index 00000000000..4f7ad561fd5 --- /dev/null +++ b/packages/metadata-crawler/README.md @@ -0,0 +1,36 @@ +# Metadata Crawler + +This package connects to Blockscout database, get all the metadata urls, +verify the metadata claims and update the database if the user claims +could be verified succesfully. + +For this package to work properly, the software must have SELECT and UPDATE +access to the Blockscout database. + + +## Build + +You can build the crawler executing: + +```bash +yarn && yarn build +``` + +## Running the crawler + +For connecting to the Blockscout is necessary to setup the following environment variables: + +```bash +export PGUSER="postgres" # Database user +export PGPASSWORD="" # Database password +export PGHOST="127.0.0.1" # Database host +export PGPORT="5432" # Database port +export PGDATABASE="blockscout" # Database name +export PROVIDER_URL="http://localhost:8545" # Provider Url +``` + +You can start the crawler executing: + +```bash +yarn dev +``` diff --git a/packages/metadata-crawler/index.d.ts b/packages/metadata-crawler/index.d.ts new file mode 100644 index 00000000000..102dc17cf17 --- /dev/null +++ b/packages/metadata-crawler/index.d.ts @@ -0,0 +1 @@ +declare module 'bunyan-debug-stream' diff --git a/packages/metadata-crawler/package.json b/packages/metadata-crawler/package.json new file mode 100644 index 00000000000..7bf08abfe2c --- /dev/null +++ b/packages/metadata-crawler/package.json @@ -0,0 +1,37 @@ +{ + "name": "@celo/metadata-crawler", + "version": "0.0.4", + "description": "Celo metadata crawler", + "main": "index.js", + "types": "./lib/index.d.ts", + "author": "Celo", + "license": "Apache-2.0", + "homepage": "https://github.com/celo-org/celo-monorepo/tree/master/packages/metadata-crawler", + "repository": "https://github.com/celo-org/celo-monorepo/tree/master/packages/metadata-crawler", + "dependencies": { + "@celo/connect": "^5.1.1", + "@celo/contractkit": "^6.0.0", + "@celo/utils": "^5.0.6", + "@types/pg": "^7.14.3", + "bunyan": "1.8.12", + "bunyan-gke-stackdriver": "0.1.2", + "debug": "^4.1.1", + "dotenv": "^8.2.0", + "googleapis": "^39.2.0", + "pg": "^7.18.0", + "ts-node": "^10.9.1", + "web3": "1.10.0" + }, + "devDependencies": { + "@types/bunyan": "1.8.8", + "@types/dotenv": "^8.2.0", + "bunyan-debug-stream": "^2.0.0" + }, + "scripts": { + "dev": "ts-node src/crawler.ts", + "build": "tsc -b .", + "clean": "tsc -b . --clean", + "clean:all": "yarn clean && rm -rf lib" + }, + "private": true +} diff --git a/packages/metadata-crawler/src/crawler.ts b/packages/metadata-crawler/src/crawler.ts new file mode 100644 index 00000000000..bc6f8d1d132 --- /dev/null +++ b/packages/metadata-crawler/src/crawler.ts @@ -0,0 +1,183 @@ +import { Address } from '@celo/connect' +import { newKitFromWeb3 } from '@celo/contractkit' +import { ClaimTypes, IdentityMetadataWrapper } from '@celo/contractkit/lib/identity' +import { + verifyAccountClaim, + verifyDomainRecord, +} from '@celo/contractkit/lib/identity/claims/verify' +import { normalizeAddressWith0x, trimLeading0x } from '@celo/utils/lib/address' +import { concurrentMap } from '@celo/utils/lib/async' +import Logger from 'bunyan' +import { Client } from 'pg' +import Web3 from 'web3' +import { dataLogger, logger, operationalLogger } from './logger' + +const CONCURRENCY = 10 + +const PGUSER = process.env['PGUSER'] || 'postgres' +const PGPASSWORD = process.env['PGPASSWORD'] || '' +const PGHOST = process.env['PGHOST'] || '127.0.0.1' +const PGPORT = process.env['PGPORT'] || '5432' +const PGDATABASE = process.env['PGDATABASE'] || 'blockscout' +const PROVIDER_URL = process.env['PROVIDER_URL'] || 'http://localhost:8545' + +const client = new Client({ + user: PGUSER, + password: PGPASSWORD, + host: PGHOST, + port: Number(PGPORT), + database: PGDATABASE, +}) + +const kit = newKitFromWeb3(new Web3(PROVIDER_URL)) + +async function jsonQuery(query: string) { + let res = await client.query(`SELECT json_agg(t) FROM (${query}) t`) + return res.rows[0].json_agg +} + +async function createVerificationClaims( + address: string, + domain: string, + verified: boolean, + accounts: Array
+) { + await addDatabaseVerificationClaims(address, domain, verified) + await concurrentMap(CONCURRENCY, accounts, (account) => + addDatabaseVerificationClaims(account, domain, verified) + ) +} + +async function addDatabaseVerificationClaims(address: string, domain: string, verified: boolean) { + try { + const query = `INSERT INTO celo_claims (address, type, element, verified, timestamp, inserted_at, updated_at) VALUES + (decode($1, 'hex'), 'domain', $2, $3, now(), now(), now()) + ON CONFLICT (address, type, element) DO + UPDATE SET verified=$3, timestamp=now(), updated_at=now() ` + // Trim 0x to match Blockscout convention + const values = [trimLeading0x(address), domain, verified] + + await client + .query(query, values) + .catch((err) => logger.error({ err, query }, 'addDataBaseVerificationClaims error')) + .then(() => dataLogger.info({ domain, address }, 'VERIFIED_DOMAIN_CLAIM')) + } catch (err) { + logger.error({ err }, 'addDataBaseVerificationClaims error') + } +} + +async function getVerifiedAccounts(metadata: IdentityMetadataWrapper, address: Address) { + const unverifiedAccounts = metadata.filterClaims(ClaimTypes.ACCOUNT) + const accountVerification = await Promise.all( + unverifiedAccounts.map(async (claim) => ({ + claim, + verified: await verifyAccountClaim(kit, claim, address), + })) + ) + const accounts = accountVerification + .filter(({ verified }) => verified === undefined) + .map((a) => a.claim.address) + + return accounts +} + +async function getVerifiedDomains( + metadata: IdentityMetadataWrapper, + address: Address, + logger: Logger +) { + const unverifiedDomains = metadata.filterClaims(ClaimTypes.DOMAIN) + + const domainVerification = await concurrentMap(CONCURRENCY, unverifiedDomains, async (claim) => { + try { + const verificationStatus = await verifyDomainRecord(kit, claim, address) + logger.debug({ claim, verificationStatus }, `verified_domain`) + return { + claim, + verified: verificationStatus === undefined, + } + } catch (err) { + logger.error({ err, claim }) + return { + claim, + verified: false, + } + } + }) + + const domains = domainVerification.filter(({ verified }) => verified).map((_) => _.claim.domain) + + return domains +} + +async function processDomainClaimForValidator(item: { url: string; address: string }) { + const itemLogger = operationalLogger.child({ url: item.url, address: item.address }) + try { + itemLogger.debug('fetch_metadata') + const metadata = await IdentityMetadataWrapper.fetchFromURL( + await kit.contracts.getAccounts(), + item.url + ) + const verifiedAccounts = await getVerifiedAccounts(metadata, item.address) + const verifiedDomains = await getVerifiedDomains(metadata, item.address, itemLogger) + + await concurrentMap(CONCURRENCY, verifiedDomains, (domain) => + createVerificationClaims(item.address, domain, true, verifiedAccounts) + ) + + itemLogger.debug( + { + verfiedAccountClaims: verifiedAccounts.length, + verifiedDomainClaims: verifiedDomains.length, + }, + 'processDomainClaimForValidator done' + ) + } catch (err) { + itemLogger.error({ err }, 'processDomainClaimForValidator error') + } +} + +async function processDomainClaims() { + let items: { address: string; url: string }[] = await jsonQuery( + `SELECT address, url FROM celo_account WHERE url is NOT NULL ` + ) + + operationalLogger.debug({ length: items.length }, 'fetching all accounts') + + items = items || [] + items = items.map((a) => ({ + ...a, + // Addresses are stored by blockscout as just the bytes prepended with \x + address: normalizeAddressWith0x(a.address.substring(2)), + })) + + return concurrentMap(CONCURRENCY, items, (item) => processDomainClaimForValidator(item)) + .then(() => { + operationalLogger.info('Closing DB connecting and finishing') + }) + .catch((err) => { + operationalLogger.error({ err }, 'processDomainClaimForValidator error') + client.end() + process.exit(1) + }) +} + +async function main() { + operationalLogger.info({ host: PGHOST }, 'Connecting DB') + await client.connect() + + client.on('error', (err) => { + operationalLogger.error({ err }, 'Reconnecting after error') + client.connect() + }) + + await processDomainClaims() + + client.end() + process.exit(0) +} + +main().catch((err) => { + operationalLogger.error({ err }) + process.exit(1) +}) diff --git a/packages/metadata-crawler/src/env.ts b/packages/metadata-crawler/src/env.ts new file mode 100644 index 00000000000..fc8e9306b08 --- /dev/null +++ b/packages/metadata-crawler/src/env.ts @@ -0,0 +1,19 @@ +import * as dotenv from 'dotenv' + +if (process.env.CONFIG) { + dotenv.config({ path: process.env.CONFIG }) +} + +export function fetchEnv(name: string): string { + if (process.env[name] === undefined || process.env[name] === '') { + console.error(`ENV var '${name}' was not defined`) + throw new Error(`ENV var '${name}' was not defined`) + } + return process.env[name] as string +} + +export function fetchEnvOrDefault(name: string, defaultValue: string): string { + return process.env[name] === undefined || process.env[name] === '' + ? defaultValue + : (process.env[name] as string) +} diff --git a/packages/metadata-crawler/src/logger.ts b/packages/metadata-crawler/src/logger.ts new file mode 100644 index 00000000000..d5a18a8288b --- /dev/null +++ b/packages/metadata-crawler/src/logger.ts @@ -0,0 +1,30 @@ +import Logger, { createLogger, levelFromName, LogLevelString, stdSerializers } from 'bunyan' +// @ts-ignore +import bunyanDebugStream from 'bunyan-debug-stream' +import { createStream } from 'bunyan-gke-stackdriver' +import { fetchEnvOrDefault } from './env' + +const logLevel = fetchEnvOrDefault('LOG_LEVEL', 'debug') as LogLevelString +const logFormat = fetchEnvOrDefault('LOG_FORMAT', 'human') + +let stream: any +switch (logFormat) { + case 'stackdriver': + stream = createStream(levelFromName[logLevel]) + break + case 'json': + stream = { stream: process.stdout, level: logLevel } + break + default: + stream = { level: logLevel, stream: bunyanDebugStream() } + break +} + +export const logger: Logger = createLogger({ + name: 'metadata-crawler', + serializers: stdSerializers, + streams: [stream], +}) + +export const operationalLogger = logger.child({ logger: 'operation' }) +export const dataLogger = logger.child({ logger: 'data' }) diff --git a/packages/metadata-crawler/tsconfig.json b/packages/metadata-crawler/tsconfig.json new file mode 100644 index 00000000000..bda5598040e --- /dev/null +++ b/packages/metadata-crawler/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@celo/typescript/tsconfig.library.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "lib" + }, + "include": ["src", "types/", "index.d.ts"], + "references": [{ "path": "../sdk/utils" }] +} \ No newline at end of file From 5cafcce3dbdfec71397c7a0f867e3103d33848cb Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Thu, 14 Dec 2023 12:31:16 +0200 Subject: [PATCH 12/16] fix build --- packages/metadata-crawler/tsconfig.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/metadata-crawler/tsconfig.json b/packages/metadata-crawler/tsconfig.json index bda5598040e..9e6a36d7be4 100644 --- a/packages/metadata-crawler/tsconfig.json +++ b/packages/metadata-crawler/tsconfig.json @@ -5,5 +5,4 @@ "outDir": "lib" }, "include": ["src", "types/", "index.d.ts"], - "references": [{ "path": "../sdk/utils" }] -} \ No newline at end of file +} From 8317850079c72737044463c49151309f6375973e Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Thu, 14 Dec 2023 13:17:03 +0200 Subject: [PATCH 13/16] reyarn since metadata crawler is back --- yarn.lock | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 155 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0b908b228f7..692565df105 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4964,6 +4964,15 @@ dependencies: "@types/node" "*" +"@types/pg@^7.14.3": + version "7.14.11" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-7.14.11.tgz#daf5555504a1f7af4263df265d91f140fece52e3" + integrity sha512-EnZkZ1OMw9DvNfQkn2MTJrwKmhJYDEs5ujWrPfvseWNoI95N8B4HzU/Ltrq5ZfYxDX/Zg8mTzwr6UAyTjjFvXA== + dependencies: + "@types/node" "*" + pg-protocol "^1.2.0" + pg-types "^2.2.0" + "@types/prettier@^1.13.2": version "1.19.1" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" @@ -6624,6 +6633,11 @@ buffer-to-arraybuffer@^0.0.5: resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" integrity sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ== +buffer-writer@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" + integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -6698,6 +6712,14 @@ bunyan-debug-stream@2.0.0: colors "^1.0.3" exception-formatter "^1.0.4" +bunyan-debug-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bunyan-debug-stream/-/bunyan-debug-stream-2.0.1.tgz#9bd7c7e30c7b2cf711317e9d37529b0464c3b164" + integrity sha512-MCEoqggU7NMt7f2O+PU8VkqfSkoQoa4lmN/OWhaRfqFRBF1Se2TOXQyLF6NxC+EtfrdthnquQe8jOe83fpEoGA== + dependencies: + colors "1.4.0" + exception-formatter "^1.0.4" + bunyan-gke-stackdriver@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/bunyan-gke-stackdriver/-/bunyan-gke-stackdriver-0.1.2.tgz#a47e3724bbb324b1ec0b7dc4350c4d7073aae66d" @@ -8516,6 +8538,11 @@ dotenv@8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +dotenv@^8.2.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + dotenv@~10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" @@ -10480,7 +10507,7 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaxios@^1.0.2, gaxios@^1.0.4, gaxios@^1.2.1, gaxios@^1.5.0: +gaxios@^1.0.2, gaxios@^1.0.4, gaxios@^1.2.1, gaxios@^1.2.2, gaxios@^1.5.0: version "1.8.4" resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-1.8.4.tgz#e08c34fe93c0a9b67a52b7b9e7a64e6435f9a339" integrity sha512-BoENMnu1Gav18HcpV9IleMPZ9exM+AvUjrAOV4Mzs/vfz2Lu/ABv451iEXByKiMPn2M140uul1txXCg83sAENw== @@ -11085,6 +11112,26 @@ google-proto-files@^0.20.0: protobufjs "^6.8.0" walkdir "^0.3.0" +googleapis-common@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-0.7.2.tgz#a694f55d979cb7c2eac21a0e0439af12f9b418ba" + integrity sha512-9DEJIiO4nS7nw0VE1YVkEfXEj8x8MxsuB+yZIpOBULFSN9OIKcUU8UuKgSZFU4lJmRioMfngktrbkMwWJcUhQg== + dependencies: + gaxios "^1.2.2" + google-auth-library "^3.0.0" + pify "^4.0.0" + qs "^6.5.2" + url-template "^2.0.8" + uuid "^3.2.1" + +googleapis@^39.2.0: + version "39.2.0" + resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-39.2.0.tgz#5c81f721e9da2e80cb0b25821ed60d3bc200c3da" + integrity sha512-66X8TG1B33zAt177sG1CoKoYHPP/B66tEpnnSANGCqotMuY5gqSQO8G/0gqHZR2jRgc5CHSSNOJCnpI0SuDxMQ== + dependencies: + google-auth-library "^3.0.0" + googleapis-common "^0.7.0" + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -15813,6 +15860,11 @@ p-waterfall@^2.1.1: dependencies: p-reduce "^2.0.0" +packet-reader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" + integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== + pacote@^13.0.3, pacote@^13.6.1: version "13.6.2" resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" @@ -16156,6 +16208,63 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== +pg-connection-string@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7" + integrity sha512-i0NV/CrSkFTaiOQs9AGy3tq0dkSjtTd4d7DfsjeDVZAA4aIHInwfFEmriNYGGJUfZ5x6IAC/QddoUpUJjQAi0w== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-packet-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz#e45c3ae678b901a2873af1e17b92d787962ef914" + integrity sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg== + +pg-pool@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz#842ee23b04e86824ce9d786430f8365082d81c4a" + integrity sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg== + +pg-protocol@^1.2.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833" + integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q== + +pg-types@^2.1.0, pg-types@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@^7.18.0: + version "7.18.2" + resolved "https://registry.yarnpkg.com/pg/-/pg-7.18.2.tgz#4e219f05a00aff4db6aab1ba02f28ffa4513b0bb" + integrity sha512-Mvt0dGYMwvEADNKy5PMQGlzPudKcKKzJds/VbOeZJpb6f/pI3mmoXX0JksPgI3l3JPP/2Apq7F36O63J7mgveA== + dependencies: + buffer-writer "2.0.0" + packet-reader "1.0.0" + pg-connection-string "0.1.3" + pg-packet-stream "^1.1.0" + pg-pool "^2.0.10" + pg-types "^2.1.0" + pgpass "1.x" + semver "4.3.2" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -16239,6 +16348,28 @@ popper.js@1.14.3: resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.3.tgz#1438f98d046acf7b4d78cd502bf418ac64d4f095" integrity sha512-3lmujhsHXzb83+sI0PzfrE3O1XHZG8m8MXNMTupvA6LrM1/nnsiqYaacYc/RIente9VqnTDPztGEM8uvPAMGyg== +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + pouchdb-abstract-mapreduce@7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/pouchdb-abstract-mapreduce/-/pouchdb-abstract-mapreduce-7.3.1.tgz#96ff4a0f41cbe273f3f52fde003b719005a2093c" @@ -16821,6 +16952,13 @@ qs@^6.4.0: dependencies: side-channel "^1.0.4" +qs@^6.5.2: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + qs@~6.5.2: version "6.5.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" @@ -17670,6 +17808,11 @@ semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" + integrity sha512-VyFUffiBx8hABJ9HYSTXLRwyZtdDHMzMtFmID1aiNAD2BZppBmJm0Hqw3p2jkgxP9BNt1pQ9RnC49P0EcXf6cA== + semver@5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -18218,6 +18361,11 @@ split2@^3.0.0: dependencies: readable-stream "^3.0.0" +split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" @@ -19668,6 +19816,11 @@ url-set-query@^1.0.0: resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" integrity sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg== +url-template@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" + integrity sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw== + url-to-options@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" @@ -19766,7 +19919,7 @@ uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^3.3.2, uuid@^3.3.3: +uuid@^3.2.1, uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== From 69b9e7704fcd521bb3b98f0b63c744c0fa2cd8d9 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Thu, 14 Dec 2023 13:36:22 +0200 Subject: [PATCH 14/16] fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c928e424862..d7077d80aed 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ }, "workspaces": { "packages": [ - "packages/*" + "packages/*", "packages/protocol/abis" ], "nohoist": [ From 69bab4e508d5b803d6db0b9877acfe8dca945f57 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Tue, 19 Dec 2023 16:15:00 +0200 Subject: [PATCH 15/16] turn off verbose mode --- .github/workflows/celo-monorepo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/celo-monorepo.yml b/.github/workflows/celo-monorepo.yml index 9513746cab1..9dbee240790 100644 --- a/.github/workflows/celo-monorepo.yml +++ b/.github/workflows/celo-monorepo.yml @@ -71,7 +71,7 @@ jobs: restore-keys: | node-${{ runner.os }}-${{ runner.arch }}-${{ env.NODE_MODULE_CACHE_VERSION }}- - name: Install yarn dependencies - run: git config --global url."https://".insteadOf ssh:// && yarn install --verbose --frozen-lockfile --network-timeout 1000000 + run: git config --global url."https://".insteadOf ssh:// && yarn install --frozen-lockfile --network-timeout 1000000 if: steps.cache_node.outputs.cache-hit != 'true' - name: Run yarn postinstall if cache hitted run: yarn run postinstall From 53dc705fa2549f547fdb18289c073a0c50c5a4b0 Mon Sep 17 00:00:00 2001 From: Aaron DeRuvo Date: Tue, 19 Dec 2023 16:21:32 +0200 Subject: [PATCH 16/16] the is no cli here --- .github/workflows/containers.yaml | 32 ------------------------------- 1 file changed, 32 deletions(-) diff --git a/.github/workflows/containers.yaml b/.github/workflows/containers.yaml index bcb0681a74d..0c193ddf112 100644 --- a/.github/workflows/containers.yaml +++ b/.github/workflows/containers.yaml @@ -94,38 +94,6 @@ jobs: file: dockerfiles/all-monorepo/Dockerfile trivy: true - # CeloCli images - celocli-build-dev: - uses: celo-org/reusable-workflows/.github/workflows/container-cicd.yaml@v1.13.1 - needs: changed-files - name: Build us-west1-docker.pkg.dev/devopsre/dev-images/celocli:testing - if: | - github.ref != 'refs/heads/master' && - contains(needs.changed-files.outputs.all_modified_files, ',dockerfiles/cli-standalone/Dockerfile') - with: - workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-celo-monorepo/providers/github-by-repos - service-account: 'celo-monorepo-dev@devopsre.iam.gserviceaccount.com' - artifact-registry: us-west1-docker.pkg.dev/devopsre/dev-images/celocli - tags: testing - context: . - file: dockerfiles/cli-standalone/Dockerfile - trivy: true - celocli-build: - uses: celo-org/reusable-workflows/.github/workflows/container-cicd.yaml@v1.13.1 - needs: changed-files - name: Build us-west1-docker.pkg.dev/devopsre/celo-monorepo/celocli:latest - if: | - github.ref == 'refs/heads/master' && - contains(needs.changed-files.outputs.all_modified_files, ',dockerfiles/cli-standalone/Dockerfile') - with: - workload-id-provider: projects/1094498259535/locations/global/workloadIdentityPools/gh-celo-monorepo-master/providers/github-by-repos - service-account: 'celo-monorepo@devopsre.iam.gserviceaccount.com' - artifact-registry: us-west1-docker.pkg.dev/devopsre/celo-monorepo/celocli - tags: latest - context: . - file: dockerfiles/cli-standalone/Dockerfile - trivy: true - # Blockscout Metadata crawler images metadata-crawler-build-dev: uses: celo-org/reusable-workflows/.github/workflows/container-cicd.yaml@v1.13.1