gitextract_d4szp668/ ├── .gitignore ├── .jvmopts ├── .scalafix.conf ├── .scalafmt.conf ├── README.md ├── build.sbt ├── docs/ │ ├── LeisureMeta_Chain_API.md │ ├── api_with_example.md │ ├── creator-dao-documentation.md │ └── dao-voting-system-design-english.md ├── modules/ │ ├── api/ │ │ ├── src/ │ │ │ └── main/ │ │ │ └── scala/ │ │ │ └── io/ │ │ │ └── leisuremeta/ │ │ │ └── chain/ │ │ │ └── api/ │ │ │ ├── LeisureMetaChainApi.scala │ │ │ └── model/ │ │ │ ├── Account.scala │ │ │ ├── AccountData.scala │ │ │ ├── AccountSignature.scala │ │ │ ├── Block.scala │ │ │ ├── GroupData.scala │ │ │ ├── GroupId.scala │ │ │ ├── NetworkId.scala │ │ │ ├── NodeStatus.scala │ │ │ ├── PublicKeySummary.scala │ │ │ ├── Signed.scala │ │ │ ├── StateRoot.scala │ │ │ ├── Transaction.scala │ │ │ ├── TransactionWithResult.scala │ │ │ ├── account/ │ │ │ │ ├── EthAddress.scala │ │ │ │ ├── ExternalChain.scala │ │ │ │ └── ExternalChainAddress.scala │ │ │ ├── agenda/ │ │ │ │ └── AgendaId.scala │ │ │ ├── api_model/ │ │ │ │ ├── AccountInfo.scala │ │ │ │ ├── ActivityInfo.scala │ │ │ │ ├── BalanceInfo.scala │ │ │ │ ├── BlockInfo.scala │ │ │ │ ├── CreatorDaoInfo.scala │ │ │ │ ├── GroupInfo.scala │ │ │ │ ├── NftBalanceInfo.scala │ │ │ │ ├── RewardInfo.scala │ │ │ │ └── TxInfo.scala │ │ │ ├── creator_dao/ │ │ │ │ ├── CreatorDaoData.scala │ │ │ │ └── CreatorDaoId.scala │ │ │ ├── reward/ │ │ │ │ ├── ActivityLog.scala │ │ │ │ ├── ActivityRewardLog.scala │ │ │ │ ├── ActivitySnapshot.scala │ │ │ │ ├── DaoActivity.scala │ │ │ │ ├── DaoInfo.scala │ │ │ │ ├── OwnershipRewardLog.scala │ │ │ │ └── OwnershipSnapshot.scala │ │ │ ├── token/ │ │ │ │ ├── NftInfo.scala │ │ │ │ ├── NftInfoWithPrecision.scala │ │ │ │ ├── NftState.scala │ │ │ │ ├── Rarity.scala │ │ │ │ ├── SnapshotState.scala │ │ │ │ ├── TokenDefinition.scala │ │ │ │ ├── TokenDefinitionId.scala │ │ │ │ ├── TokenDetail.scala │ │ │ │ └── TokenId.scala │ │ │ └── voting/ │ │ │ ├── Proposal.scala │ │ │ ├── ProposalId.scala │ │ │ └── VoteType.scala │ │ └── tx_type.txt │ ├── archive/ │ │ └── src/ │ │ └── main/ │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── archive/ │ │ └── ArchiveMain.scala │ ├── bulk-insert/ │ │ └── src/ │ │ └── main/ │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── bulkinsert/ │ │ ├── BulkInsertMain.scala │ │ ├── FungibleBalanceState.scala │ │ ├── InvalidTx.scala │ │ ├── NftBalanceState.scala │ │ └── RecoverTx.scala │ ├── eth-gateway/ │ │ └── src/ │ │ └── main/ │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── gateway/ │ │ └── eth/ │ │ └── EthGatewayMain.scala │ ├── eth-gateway-common/ │ │ └── src/ │ │ ├── main/ │ │ │ └── scala/ │ │ │ └── io/ │ │ │ └── leisuremeta/ │ │ │ └── chain/ │ │ │ └── gateway/ │ │ │ └── eth/ │ │ │ └── common/ │ │ │ ├── GatewayApi.scala │ │ │ ├── GatewayConf.scala │ │ │ ├── GatewayDecryptService.scala │ │ │ ├── GatewayResource.scala │ │ │ ├── GatewayServer.scala │ │ │ ├── GatewaySimpleConf.scala │ │ │ ├── GatewayWeb3Service.scala │ │ │ └── client/ │ │ │ ├── GatewayApiClient.scala │ │ │ ├── GatewayDatabaseClient.scala │ │ │ └── GatewayKmsClient.scala │ │ └── test/ │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── gateway/ │ │ └── eth/ │ │ └── common/ │ │ └── GatewayServerTest.scala │ ├── eth-gateway-deposit/ │ │ └── src/ │ │ └── main/ │ │ ├── resources/ │ │ │ └── application.conf.sample │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── gateway/ │ │ └── eth/ │ │ └── EthGatewayDepositMain.scala │ ├── eth-gateway-setup/ │ │ └── src/ │ │ └── main/ │ │ ├── resources/ │ │ │ └── application.conf.sample │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── gateway/ │ │ └── eth/ │ │ └── setup/ │ │ ├── EthGatewaySetupConfig.scala │ │ ├── EthGatewaySetupMain.scala │ │ └── EthGatewaySetupSimpleConfig.scala │ ├── eth-gateway-withdraw/ │ │ └── src/ │ │ └── main/ │ │ ├── resources/ │ │ │ └── application.conf.sample │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── gateway/ │ │ └── eth/ │ │ └── EthGatewayWithdrawMain.scala │ ├── jvm-client/ │ │ └── src/ │ │ └── main/ │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── jvmclient/ │ │ └── JvmClientMain.scala │ ├── lib/ │ │ ├── js/ │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── scala/ │ │ │ └── io/ │ │ │ └── leisuremeta/ │ │ │ └── chain/ │ │ │ └── lib/ │ │ │ └── crypto/ │ │ │ └── CryptoOps.scala │ │ ├── jvm/ │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── scala/ │ │ │ └── io/ │ │ │ └── leisuremeta/ │ │ │ └── chain/ │ │ │ └── lib/ │ │ │ └── crypto/ │ │ │ └── CryptoOps.scala │ │ └── shared/ │ │ └── src/ │ │ ├── main/ │ │ │ └── scala/ │ │ │ └── io/ │ │ │ └── leisuremeta/ │ │ │ └── chain/ │ │ │ └── lib/ │ │ │ ├── application/ │ │ │ │ └── DAppState.scala │ │ │ ├── codec/ │ │ │ │ └── byte/ │ │ │ │ ├── ByteCodec.scala │ │ │ │ ├── ByteDecoder.scala │ │ │ │ └── ByteEncoder.scala │ │ │ ├── crypto/ │ │ │ │ ├── Hash.scala │ │ │ │ ├── KeyPair.scala │ │ │ │ ├── PublicKey.scala │ │ │ │ ├── Recover.scala │ │ │ │ ├── Sign.scala │ │ │ │ └── Signature.scala │ │ │ ├── datatype/ │ │ │ │ ├── BigNat.scala │ │ │ │ ├── UInt256.scala │ │ │ │ └── Utf8.scala │ │ │ ├── failure/ │ │ │ │ └── LmChainFailure.scala │ │ │ ├── merkle/ │ │ │ │ ├── MerkleTrie.scala │ │ │ │ ├── MerkleTrieNode.scala │ │ │ │ ├── MerkleTrieState.scala │ │ │ │ ├── MerkleTrieStateDiff.scala │ │ │ │ └── package.scala │ │ │ └── util/ │ │ │ ├── iron/ │ │ │ │ └── package.scala │ │ │ └── refined/ │ │ │ └── bitVector.scala │ │ └── test/ │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── lib/ │ │ ├── codec/ │ │ │ └── ByteCodecTest.scala │ │ ├── crypto/ │ │ │ └── CryptoOpsTest.scala │ │ ├── datatype/ │ │ │ ├── BigNatTest.scala │ │ │ └── UInt256Test.scala │ │ └── merkle/ │ │ ├── MerkleTrieNodeTest.scala │ │ ├── MerkleTrieTest.scala │ │ └── NibblesTest.scala │ ├── lmscan-agent/ │ │ └── src/ │ │ └── main/ │ │ ├── resources/ │ │ │ └── application.conf.sample │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── lmscan/ │ │ └── agent/ │ │ ├── ScanAgentApp.scala │ │ ├── ScanAgentConfig.scala │ │ ├── ScanAgentMain.scala │ │ ├── apps/ │ │ │ ├── BalanceStoreApp.scala │ │ │ ├── NftStoreApp.scala │ │ │ ├── NodeDataStoreApp.scala │ │ │ └── SummaryStoreApp.scala │ │ └── service/ │ │ ├── RequestService.scala │ │ ├── StoreService.scala │ │ └── store/ │ │ ├── AccountStore.scala │ │ ├── BalanceStore.scala │ │ ├── BlockStore.scala │ │ ├── NftStore.scala │ │ ├── SummaryStore.scala │ │ └── TxStore.scala │ ├── lmscan-backend/ │ │ ├── docs/ │ │ │ └── flyway.md │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ ├── application.sample.properties │ │ │ │ └── db/ │ │ │ │ ├── dist/ │ │ │ │ │ ├── V20230116164800__Alter_ts_pgdefault.sql │ │ │ │ │ ├── V20230116164800__Alter_ts_pgglobal.sql │ │ │ │ │ └── V20230116164801__Create_r_playnomm.sql │ │ │ │ ├── common/ │ │ │ │ │ ├── V20230116164802__Create_t_account.sql │ │ │ │ │ ├── V20230116164803__Create_t_block.sql │ │ │ │ │ ├── V20230116164805__Create_t_nft.sql │ │ │ │ │ └── V20230116164809__Create_t_transaction.sql │ │ │ │ ├── seed/ │ │ │ │ │ └── R__001_Seed_account.sql │ │ │ │ └── test/ │ │ │ │ └── V20230116164801__Create_r_playnomm.sql │ │ │ └── scala/ │ │ │ └── io/ │ │ │ └── leisuremeta/ │ │ │ └── chain/ │ │ │ └── lmscan/ │ │ │ └── backend/ │ │ │ ├── LmscanBackendMain.scala │ │ │ ├── docs/ │ │ │ │ └── Lmscan_API.md │ │ │ ├── entity/ │ │ │ │ ├── Account.scala │ │ │ │ ├── AccountMapper.scala │ │ │ │ ├── Balance.scala │ │ │ │ ├── Block.scala │ │ │ │ ├── CollectionInfo.scala │ │ │ │ ├── Nft.scala │ │ │ │ ├── NftFile.scala │ │ │ │ ├── NftInfo.scala │ │ │ │ ├── NftOwner.scala │ │ │ │ ├── NftSeason.scala │ │ │ │ ├── Summary.scala │ │ │ │ ├── Tx.scala │ │ │ │ ├── TxState.scala │ │ │ │ └── Validator.scala │ │ │ ├── repository/ │ │ │ │ ├── AccountRepository.scala │ │ │ │ ├── BlockRepository.scala │ │ │ │ ├── CommonQuery.scala │ │ │ │ ├── NftFileRepository.scala │ │ │ │ ├── NftInfoRepository.scala │ │ │ │ ├── NftOwnerRepository.scala │ │ │ │ ├── NftRepository.scala │ │ │ │ ├── SummaryRepository.scala │ │ │ │ ├── TransactionRepository.scala │ │ │ │ └── ValidatorRepository.scala │ │ │ └── service/ │ │ │ ├── AccountService.scala │ │ │ ├── BlockService.scala │ │ │ ├── NftService.scala │ │ │ ├── SearchService.scala │ │ │ ├── SummaryService.scala │ │ │ ├── TransactionService.scala │ │ │ └── ValidatorService.scala │ │ └── test/ │ │ └── scala/ │ │ └── EmbeddedPostgreFlywayTest.scala │ ├── lmscan-common/ │ │ ├── .js/ │ │ │ └── package.json │ │ ├── js/ │ │ │ └── package.json │ │ └── shared/ │ │ └── src/ │ │ └── main/ │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ ├── ExplorerAPI.scala │ │ └── model/ │ │ ├── AccountDetail.scala │ │ ├── AccountInfo.scala │ │ ├── ApiModel.scala │ │ ├── BlockDetail.scala │ │ ├── BlockInfo.scala │ │ ├── NftActivity.scala │ │ ├── NftDetail.scala │ │ ├── NftFileModel.scala │ │ ├── NftInfo.scala │ │ ├── NftOwnerInfo.scala │ │ ├── NftSeasonModel.scala │ │ ├── PageNavigation.scala │ │ ├── PageResponse.scala │ │ ├── SearchResult.scala │ │ ├── SummaryModel.scala │ │ ├── TxDetail.scala │ │ ├── TxInfo.scala │ │ └── Validator.scala │ ├── lmscan-frontend/ │ │ ├── .parcelrc │ │ ├── assets/ │ │ │ ├── css/ │ │ │ │ ├── desktop.css │ │ │ │ ├── footer.css │ │ │ │ ├── index.html │ │ │ │ ├── loading.css │ │ │ │ ├── mobile.css │ │ │ │ ├── reset.css │ │ │ │ ├── style.css │ │ │ │ └── tooltip.css │ │ │ ├── index.html │ │ │ └── load-main.js │ │ ├── package.json │ │ ├── project/ │ │ │ └── build.properties │ │ ├── readme.md │ │ └── src/ │ │ └── main/ │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── lmscan/ │ │ └── frontend/ │ │ ├── LmscanFrontendApp.scala │ │ ├── components/ │ │ │ ├── BoardView.scala │ │ │ ├── Footer.scala │ │ │ ├── Loader.scala │ │ │ ├── NavBar.scala │ │ │ ├── SearchView.scala │ │ │ ├── common/ │ │ │ │ ├── Body.scala │ │ │ │ ├── Head.scala │ │ │ │ ├── Pagination.scala │ │ │ │ └── Table.scala │ │ │ └── detail/ │ │ │ ├── AccountDetailTable.scala │ │ │ ├── blockDetailTable.scala │ │ │ ├── nftDetailTable.scala │ │ │ └── txDetailTableCommon.scala │ │ ├── controllers/ │ │ │ ├── Model.scala │ │ │ └── Msg.scala │ │ ├── layouts/ │ │ │ └── DefaultLayout.scala │ │ ├── pages/ │ │ │ ├── AccountDetailPage.scala │ │ │ ├── AccountPage.scala │ │ │ ├── BlockDetailPage.scala │ │ │ ├── BlockPage.scala │ │ │ ├── ErrorPage.scala │ │ │ ├── MainPage.scala │ │ │ ├── NftPage.scala │ │ │ ├── NftTokenPage.scala │ │ │ ├── NtfDetailPage.scala │ │ │ ├── TxDetailPage.scala │ │ │ ├── TxPage.scala │ │ │ ├── VdDetailPage.scala │ │ │ └── VdPage.scala │ │ └── utils/ │ │ ├── Cell.scala │ │ ├── DataProcess.scala │ │ └── ValidData.scala │ ├── node/ │ │ └── src/ │ │ ├── main/ │ │ │ ├── resources/ │ │ │ │ └── application.conf.sample │ │ │ └── scala/ │ │ │ └── io/ │ │ │ └── leisuremeta/ │ │ │ └── chain/ │ │ │ └── node/ │ │ │ ├── NodeApp.scala │ │ │ ├── NodeConfig.scala │ │ │ ├── NodeMain.scala │ │ │ ├── dapp/ │ │ │ │ ├── PlayNommDApp.scala │ │ │ │ ├── PlayNommDAppFailure.scala │ │ │ │ ├── PlayNommState.scala │ │ │ │ └── submodule/ │ │ │ │ ├── PlayNommDAppAccount.scala │ │ │ │ ├── PlayNommDAppAgenda.scala │ │ │ │ ├── PlayNommDAppCreatorDao.scala │ │ │ │ ├── PlayNommDAppGroup.scala │ │ │ │ ├── PlayNommDAppReward.scala │ │ │ │ ├── PlayNommDAppToken.scala │ │ │ │ ├── PlayNommDAppVoting.scala │ │ │ │ └── package.scala │ │ │ ├── repository/ │ │ │ │ ├── BlockRepository.scala │ │ │ │ ├── StateRepository.scala │ │ │ │ └── TransactionRepository.scala │ │ │ ├── service/ │ │ │ │ ├── BlockService.scala │ │ │ │ ├── LocalStatusService.scala │ │ │ │ ├── NodeInitializationService.scala │ │ │ │ ├── RewardService.scala │ │ │ │ ├── StateReadService.scala │ │ │ │ └── TransactionService.scala │ │ │ └── store/ │ │ │ ├── HashStore.scala │ │ │ ├── KeyValueStore.scala │ │ │ ├── SingleValueStore.scala │ │ │ └── interpreter/ │ │ │ ├── Bag.scala │ │ │ ├── MultiInterpreter.scala │ │ │ ├── RedisInterpreter.scala │ │ │ └── SwayInterpreter.scala │ │ └── test/ │ │ └── scala/ │ │ └── io/ │ │ └── leisuremeta/ │ │ └── chain/ │ │ └── node/ │ │ └── dapp/ │ │ └── PlayNommDAppTest.scala │ └── node-proxy/ │ └── src/ │ └── main/ │ ├── resources/ │ │ └── migration-node.json │ └── scala/ │ └── io/ │ └── leisuremeta/ │ └── chain/ │ └── node/ │ └── proxy/ │ ├── NodeProxyApi.scala │ ├── NodeProxyApp.scala │ ├── NodeProxyMain.scala │ ├── model/ │ │ ├── NodeConfig.scala │ │ └── TxModel.scala │ └── service/ │ ├── InternalApiService.scala │ ├── NodeBalancer.scala │ ├── NodeWatchService.scala │ └── PostTxQueue.scala └── project/ ├── Settings.scala.sample ├── build.properties └── plugins.sbt