From 635ad3d333610871c93e29c5b5498bf8806835df Mon Sep 17 00:00:00 2001 From: Youngjoon Lee Date: Fri, 3 Jun 2022 11:17:32 +0900 Subject: [PATCH 1/5] upgrade cosmjs --- package.json | 16 +-- yarn.lock | 369 +++++++++++++++++++-------------------------------- 2 files changed, 148 insertions(+), 237 deletions(-) diff --git a/package.json b/package.json index 41ac301..1252a49 100644 --- a/package.json +++ b/package.json @@ -37,14 +37,14 @@ }, "homepage": "https://medibloc.org", "dependencies": { - "@cosmjs/amino": "0.25.5", - "@cosmjs/crypto": "0.25.5", - "@cosmjs/encoding": "0.25.5", - "@cosmjs/math": "0.25.5", - "@cosmjs/proto-signing": "0.25.5", - "@cosmjs/stargate": "0.25.5", - "@cosmjs/tendermint-rpc": "0.25.5", - "@cosmjs/utils": "0.25.5", + "@cosmjs/amino": "0.28.4", + "@cosmjs/crypto": "0.28.4", + "@cosmjs/encoding": "0.28.4", + "@cosmjs/math": "0.28.4", + "@cosmjs/proto-signing": "0.28.4", + "@cosmjs/stargate": "0.28.4", + "@cosmjs/tendermint-rpc": "0.28.4", + "@cosmjs/utils": "0.28.4", "@types/bs58": "4.0.1", "@types/secp256k1": "4.0.3", "bs58": "4.0.1", diff --git a/yarn.lock b/yarn.lock index b6cd56f..b696c48 100644 --- a/yarn.lock +++ b/yarn.lock @@ -283,127 +283,130 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@confio/ics23@^0.6.3": - version "0.6.5" - resolved "https://registry.yarnpkg.com/@confio/ics23/-/ics23-0.6.5.tgz#9c21a61089d4c3c2429875a69d6d9cd8c87512aa" - integrity sha512-1GdPMsaP/l8JSF4P4HWFLBhdcxHcJT8lS0nknBYNSZ1XrJOsJKUy6EkOwd9Pa1qJkXzY2gyNv7MdHR+AIwSTAg== +"@confio/ics23@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@confio/ics23/-/ics23-0.6.8.tgz#2a6b4f1f2b7b20a35d9a0745bb5a446e72930b3d" + integrity sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w== dependencies: - js-sha512 "^0.8.0" + "@noble/hashes" "^1.0.0" protobufjs "^6.8.8" - ripemd160 "^2.0.2" - sha.js "^2.4.11" - -"@cosmjs/amino@0.25.5", "@cosmjs/amino@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.25.5.tgz#a22abac74057848834f1e3b0d2b90a0a328dd119" - integrity sha512-q9tU2b9hJ3S/KxYCLSyiZCfkaidbSPBr2sJ5HPLxz48y5O4k9sYM7bPa0zioeePaIBnby3AOgyjucVxlbzUlYg== - dependencies: - "@cosmjs/crypto" "^0.25.5" - "@cosmjs/encoding" "^0.25.5" - "@cosmjs/math" "^0.25.5" - "@cosmjs/utils" "^0.25.5" - -"@cosmjs/crypto@0.25.5", "@cosmjs/crypto@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.25.5.tgz#4b8e4a8693f9f597b4de92df1b1057f61ec7a735" - integrity sha512-i0Nfbk4JXAwyKNGPFu0o1xV6IJUbYmmveySytbU/yweybcZppxoczjSQ1sGrUaLVLvgfcpfwZte3jKqDR67+dg== - dependencies: - "@cosmjs/encoding" "^0.25.5" - "@cosmjs/math" "^0.25.5" - "@cosmjs/utils" "^0.25.5" - bip39 "^3.0.2" - bn.js "^4.11.8" + +"@cosmjs/amino@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.28.4.tgz#9315f6876dba80148cf715ced44d1dc7a9b68b94" + integrity sha512-b8y5gFC0eGrH0IoYSNtDmTdsTgeQ1KFZ5YVOeIiKmzF91MeiciYO/MNqc027kctacZ+UbnVWGEUGyRBPi9ta/g== + dependencies: + "@cosmjs/crypto" "0.28.4" + "@cosmjs/encoding" "0.28.4" + "@cosmjs/math" "0.28.4" + "@cosmjs/utils" "0.28.4" + +"@cosmjs/crypto@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.28.4.tgz#b2f1ccb9edee7d357ed1dcd92bdb61f6a1ca06d3" + integrity sha512-JRxNLlED3DDh9d04A0RcRw3mYkoobN7q7wafUFy3vI1TjoyWx33v0gqqaYE6/hoo9ghUrJSVOfzVihl8fZajJA== + dependencies: + "@cosmjs/encoding" "0.28.4" + "@cosmjs/math" "0.28.4" + "@cosmjs/utils" "0.28.4" + "@noble/hashes" "^1" + bn.js "^5.2.0" elliptic "^6.5.3" - js-sha3 "^0.8.0" libsodium-wrappers "^0.7.6" - ripemd160 "^2.0.2" - sha.js "^2.4.11" -"@cosmjs/encoding@0.25.5", "@cosmjs/encoding@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.25.5.tgz#edc90084b112b57ca73ec82c1682ac9c4da3bb3a" - integrity sha512-QT7MaPBiMeCaMJ6VZZKeOqDQlAxMEzTFjBFhbkdyx5DVRc4dPOVO4HbTggmIN5/eizIv4/CNJSVTR//tO53J0A== +"@cosmjs/encoding@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.28.4.tgz#ea39eb4c27ebf7b35e62e9898adae189b86d0da7" + integrity sha512-N6Qnjs4dd8KwjW5m9t3L+rWYYGW2wyS+iLtJJ9DD8DiTTxpW9h7/AmUVO/dsRe5H2tV8/DzH/B9pFfpsgro22A== dependencies: base64-js "^1.3.0" bech32 "^1.1.4" readonly-date "^1.0.0" -"@cosmjs/json-rpc@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.25.5.tgz#34c7489fc6ae32a4acaabf658e057a55c431a193" - integrity sha512-WFDallAolxBqB8V/mYxU0riF/OBoc6Fc2DDsZhds5xOZxeN9sTX0qWhu1UiFyURw4Z9D+SjB9QngqSDBTMTdjw== +"@cosmjs/json-rpc@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.28.4.tgz#19bc38b895bbb74122832a22aea5b25087143636" + integrity sha512-An8ZQi9OKbnS8ew/MyHhF90zQpXBF8RTj2wdvIH+Hr8yA6QjynY8hxRpUwYUt3Skc5NeUnTZNuWCzlluHnoxVg== dependencies: - "@cosmjs/stream" "^0.25.5" + "@cosmjs/stream" "0.28.4" xstream "^11.14.0" -"@cosmjs/math@0.25.5", "@cosmjs/math@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.25.5.tgz#0f586610353c95b2055d1b2556a232622cd2d453" - integrity sha512-LWovT1uTHlr+VEce27/14Wrgc4INJYOYk1+ncyvbZertixNFH6OMnc9Xkk0DIV4RYmW+/fvB9kCXVnNtQGSuHg== +"@cosmjs/math@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.28.4.tgz#ddc35b69fa1ffeaf5928f70d4c2faf9284627d84" + integrity sha512-wsWjbxFXvk46Dsx8jQ5vsBZOIQuiUIyaaZbUvxsgIhAMpuuBnV5O/drK87+B+4cL+umTelFqTbWnkqueVCIFxQ== dependencies: - bn.js "^4.11.8" + bn.js "^5.2.0" -"@cosmjs/proto-signing@0.25.5", "@cosmjs/proto-signing@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.25.5.tgz#93122ed1d57518a1c520917afde62e5aa9754033" - integrity sha512-YWVp+dGHt7v6ZKjOs8CI9xkpOV49eweHbYMv/vCVYF4cEh0kWwy2WzbWIkUH9zwwUqCxigVOTBYUCfbsjEbfug== +"@cosmjs/proto-signing@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.28.4.tgz#7007651042bd05b3eee7e1c8562417bbed630198" + integrity sha512-4vgCLK9gOsdWzD78V5XbAsupSSyntPEzokWYhgRQNwgVTcKX1kg0eKZqUvF5ua5iL9x6MevfH/sgwPyiYleMBw== dependencies: - "@cosmjs/amino" "^0.25.5" + "@cosmjs/amino" "0.28.4" + "@cosmjs/crypto" "0.28.4" + "@cosmjs/encoding" "0.28.4" + "@cosmjs/math" "0.28.4" + "@cosmjs/utils" "0.28.4" + cosmjs-types "^0.4.0" long "^4.0.0" protobufjs "~6.10.2" -"@cosmjs/socket@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.25.5.tgz#2b565afd310cdfaf3b106b901302ae93d849ec54" - integrity sha512-wcJVbD4xlF4+5hMum4tOmAy5ppX+E9qrB9Pvt3T7BK+6T5uobxiBQCLEiDwHP3n42RBj+xQWJrScPf5IEWmZKg== +"@cosmjs/socket@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.28.4.tgz#f2c337bee18c631739ba6c2357fe564dbf17df45" + integrity sha512-jAEL3Ri+s8XuBM3mqgO4yvmeQu+R+704V37lGROC1B6kAbGxWRyOWrMdOOiFJzCZ35sSMB7L+xKjpE8ug0vJjg== dependencies: - "@cosmjs/stream" "^0.25.5" + "@cosmjs/stream" "0.28.4" isomorphic-ws "^4.0.1" ws "^7" xstream "^11.14.0" -"@cosmjs/stargate@0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.25.5.tgz#29d0ce8d50f5c3030bd8c127bee355460a88c609" - integrity sha512-cOZ+fOC16YT7W2vjBnnk9oJfuIlB02KdK6dn6aigMd4mx+7DS2jvNslpQrfKmtrwB9AVsgc6tklBkYwG5qAuKQ== - dependencies: - "@confio/ics23" "^0.6.3" - "@cosmjs/amino" "^0.25.5" - "@cosmjs/encoding" "^0.25.5" - "@cosmjs/math" "^0.25.5" - "@cosmjs/proto-signing" "^0.25.5" - "@cosmjs/stream" "^0.25.5" - "@cosmjs/tendermint-rpc" "^0.25.5" - "@cosmjs/utils" "^0.25.5" +"@cosmjs/stargate@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.28.4.tgz#a5acbaa3451f7c853739064f799dec21097a06df" + integrity sha512-tdwudilP5iLNwDm4TOMBjWuL5YehLPqGlC5/7hjJM/kVHyzLFo4Lzt0dVEwr5YegH+RsRXH/VtFLQz+NYlCobw== + dependencies: + "@confio/ics23" "^0.6.8" + "@cosmjs/amino" "0.28.4" + "@cosmjs/encoding" "0.28.4" + "@cosmjs/math" "0.28.4" + "@cosmjs/proto-signing" "0.28.4" + "@cosmjs/stream" "0.28.4" + "@cosmjs/tendermint-rpc" "0.28.4" + "@cosmjs/utils" "0.28.4" + cosmjs-types "^0.4.0" long "^4.0.0" protobufjs "~6.10.2" + xstream "^11.14.0" -"@cosmjs/stream@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.25.5.tgz#5c538fc11e9d3d3ef16849164730dafee180e22e" - integrity sha512-a+0sDNKZTxw9p4j5tl7SI0siMTii7AQot1+5vkH5BkQoAv3C3D8jagPouUz3RUFuh13qftPxPLiHzDFLNSjTnQ== +"@cosmjs/stream@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.28.4.tgz#88a294c2404107327f8e293b952db047ab182179" + integrity sha512-BDwDdFOrOgRx/Wm5nknb9YCV9HHIUcsOxykTDZqdArCUsn4QJBq79QIjp919G05Z8UemkoHwiUCUNB2BfoKmFw== dependencies: xstream "^11.14.0" -"@cosmjs/tendermint-rpc@0.25.5", "@cosmjs/tendermint-rpc@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.25.5.tgz#5467391f430f648d46d9f39aa4324515affb8578" - integrity sha512-WlUCFVdhbwA3IDA1C858S8WOtLseZLXKTdj5fz1sTKSBmtrig4l1ZMKHHlZRprvmjSpkpbjgSQU+RjjvBd75BA== - dependencies: - "@cosmjs/crypto" "^0.25.5" - "@cosmjs/encoding" "^0.25.5" - "@cosmjs/json-rpc" "^0.25.5" - "@cosmjs/math" "^0.25.5" - "@cosmjs/socket" "^0.25.5" - "@cosmjs/stream" "^0.25.5" - axios "^0.21.1" +"@cosmjs/tendermint-rpc@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.4.tgz#78835fdc8126baa3122c8b2b396c1d7d290c7167" + integrity sha512-iz6p4UW2QUZNh55WeJy9wHbMdqM8COo0AJdrGU4Ikb/xU0/H6b0dFPoEK+i6ngR0cSizh+hpTMzh3AA7ySUKlA== + dependencies: + "@cosmjs/crypto" "0.28.4" + "@cosmjs/encoding" "0.28.4" + "@cosmjs/json-rpc" "0.28.4" + "@cosmjs/math" "0.28.4" + "@cosmjs/socket" "0.28.4" + "@cosmjs/stream" "0.28.4" + "@cosmjs/utils" "0.28.4" + axios "^0.21.2" readonly-date "^1.0.0" xstream "^11.14.0" -"@cosmjs/utils@0.25.5", "@cosmjs/utils@^0.25.5": - version "0.25.5" - resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.25.5.tgz#6dc9d8de81acb9d49b6d1420f61ea2390f5d5f07" - integrity sha512-U4YdgJadFgXWblthgyXqP28Yw5rsw2IX/cOES0pa6fiB81hoYl2LXqXiuKp2yVPoAgk8JpkFh3i5KchcD9muJg== +"@cosmjs/utils@0.28.4": + version "0.28.4" + resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.28.4.tgz#ecbc72458cdaffa6eeef572bc691502b3151330f" + integrity sha512-lb3TU6833arPoPZF8HTeG9V418CpurvqH5Aa/ls0I0wYdPDEMO6622+PQNQhQ8Vw8Az2MXoSyc8jsqrgawT84Q== "@eslint/eslintrc@^0.1.3": version "0.1.3" @@ -618,6 +621,11 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@noble/hashes@^1", "@noble/hashes@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.0.0.tgz#d5e38bfbdaba174805a4e649f13be9a9ed3351ae" + integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== + "@nodelib/fs.scandir@2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" @@ -811,11 +819,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.8.tgz#fe2012f2355e4ce08bca44aeb3abbb21cf88d33f" integrity sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw== -"@types/node@11.11.6": - version "11.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" - integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== - "@types/node@14.10.1": version "14.10.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.10.1.tgz#cc323bad8e8a533d4822f45ce4e5326f36e42177" @@ -1114,12 +1117,12 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== -axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== +axios@^0.21.2: + 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.10.0" + follow-redirects "^1.14.0" babel-jest@^26.6.3: version "26.6.3" @@ -1224,25 +1227,20 @@ bech32@^1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bip39@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.2.tgz#2baf42ff3071fc9ddd5103de92e8f80d9257ee32" - integrity sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ== - dependencies: - "@types/node" "11.11.6" - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^4.11.8, bn.js@^4.4.0: +bn.js@^4.4.0: version "4.11.9" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== brace-expansion@^1.1.7: version "1.1.11" @@ -1388,14 +1386,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== -cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - cjs-module-lexer@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" @@ -1496,28 +1486,13 @@ core-util-is@1.0.2: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== +cosmjs-types@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.4.1.tgz#3b2a53ba60d33159dd075596ce8267cfa7027063" + integrity sha512-I7E/cHkIgoJzMNQdFF0YVqPlaTqrqKHrskuSTIqlEyxfB5Lf3WKCajSXVK2yHOfOFfSux/RxEdpMzw/eO4DIog== dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" + long "^4.0.0" + protobufjs "~6.11.2" cross-spawn@^6.0.0: version "6.0.5" @@ -2083,10 +2058,10 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== -follow-redirects@^1.10.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" - integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== +follow-redirects@^1.14.0: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== for-in@^1.0.2: version "1.0.2" @@ -2296,15 +2271,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -3035,16 +3001,6 @@ jest@26.4.2: import-local "^3.0.2" jest-cli "^26.4.2" -js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-sha512@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha512/-/js-sha512-0.8.0.tgz#dd22db8d02756faccf19f218e3ed61ec8249f7d4" - integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3274,15 +3230,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -3651,17 +3598,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== -pbkdf2@^3.0.9: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -3777,6 +3713,25 @@ protobufjs@~6.10.2: "@types/node" "^13.7.0" long "^4.0.0" +protobufjs@~6.11.2: + version "6.11.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" + integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== + 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/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + psl@^1.1.28: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" @@ -3800,13 +3755,6 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -randombytes@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - react-is@^16.12.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -3836,15 +3784,6 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readonly-date@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9" @@ -3991,14 +3930,6 @@ rimraf@^3.0.0: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -4009,7 +3940,7 @@ run-parallel@^1.1.9: resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -4094,14 +4025,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -4323,13 +4246,6 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - strip-ansi@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -4650,11 +4566,6 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - uuid@8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" From 344dd3ab24a8dbf1e8f97667da294a6aeb169ca9 Mon Sep 17 00:00:00 2001 From: Youngjoon Lee Date: Fri, 3 Jun 2022 12:35:10 +0900 Subject: [PATCH 2/5] fix --- package.json | 1 + src/group-signing-panacea-client.spec.ts | 15 ++-- src/group-signing-panacea-client.ts | 23 +++--- src/panacea-client.ts | 21 +++--- src/signing-panacea-client.spec.ts | 26 +++---- src/signing-panacea-client.ts | 92 ++++++------------------ yarn.lock | 8 +++ 7 files changed, 77 insertions(+), 109 deletions(-) diff --git a/package.json b/package.json index 1252a49..8a13886 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "@types/bs58": "4.0.1", "@types/secp256k1": "4.0.3", "bs58": "4.0.1", + "cosmjs-types": "0.5.0", "secp256k1": "4.0.2", "uuid": "8.3.0" }, diff --git a/src/group-signing-panacea-client.spec.ts b/src/group-signing-panacea-client.spec.ts index 8a45164..ae29f0c 100644 --- a/src/group-signing-panacea-client.spec.ts +++ b/src/group-signing-panacea-client.spec.ts @@ -65,7 +65,7 @@ describe("GroupSigningPanaceaClient", () => { denom: "umed", amount: "5000000", } - const res = await client.sendTokens(ownerAddress, writerAddress, [amount]) + const res = await client.sendTokens(ownerAddress, writerAddress, [amount], "auto") expect(res).toBeTruthy(); topicName = uuidv4(); @@ -75,10 +75,10 @@ describe("GroupSigningPanaceaClient", () => { beforeAll(async () => { const client = await SigningPanaceaClient.connectWithSigner(panacead.tendermintUrl, ownerWallet); - let res = await client.createTopic(ownerAddress, topicName, "", ""); + let res = await client.createTopic(ownerAddress, topicName, "", "auto", ""); expect(res).toBeTruthy(); - res = await client.addWriter(ownerAddress, topicName, writerAddress, "", "", ""); + res = await client.addWriter(ownerAddress, topicName, writerAddress, "", "", "auto", ""); expect(res).toBeTruthy(); client.disconnect(); @@ -90,7 +90,14 @@ describe("GroupSigningPanaceaClient", () => { const key = new TextEncoder().encode("key1"); const value = new TextEncoder().encode("value1"); - const res = await client.addRecordWithFeePayer(ownerAddress, topicName, key, value, writerAddress, feePayerAddress, ""); + const fee = { + amount: [{ + denom: "umed", + amount: "1000000", + }], + gas: "200000", + } + const res = await client.addRecordWithFeePayer(ownerAddress, topicName, key, value, writerAddress, feePayerAddress, fee, ""); expect(res).toBeTruthy(); const record = await client.getPanaceaClient().getRecord(ownerAddress, topicName, Long.fromInt(0)); diff --git a/src/group-signing-panacea-client.ts b/src/group-signing-panacea-client.ts index 5ccbb34..57c4faa 100644 --- a/src/group-signing-panacea-client.ts +++ b/src/group-signing-panacea-client.ts @@ -7,18 +7,19 @@ import { OfflineSigner, TxBodyEncodeObject } from "@cosmjs/proto-signing"; -import { BroadcastTxResponse, SignerData, StdFee } from "@cosmjs/stargate"; -import { AuthInfo, SignerInfo, TxRaw } from "@cosmjs/stargate/build/codec/cosmos/tx/v1beta1/tx"; +import { DeliverTxResponse, SignerData, StdFee } from "@cosmjs/stargate"; import { assert } from "@cosmjs/utils"; import { encodeSecp256k1Pubkey } from "@cosmjs/amino"; -import { Any } from "@cosmjs/stargate/build/codec/google/protobuf/any"; -import { Coin } from "@cosmjs/stargate/build/codec/cosmos/base/v1beta1/coin"; -import { SignMode } from "@cosmjs/stargate/build/codec/cosmos/tx/signing/v1beta1/signing"; import Long from "long"; import { Int53 } from "@cosmjs/math"; import { fromBase64 } from "@cosmjs/encoding"; -import { SigningPanaceaClient, SigningPanaceaClientOptions } from "./signing-panacea-client"; +import { SigningPanaceaClient } from "./signing-panacea-client"; import { Tendermint34Client } from "@cosmjs/tendermint-rpc"; +import { SigningStargateClientOptions } from "@cosmjs/stargate/build/signingstargateclient"; +import { AuthInfo, SignerInfo, TxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx"; +import { Any } from "cosmjs-types/google/protobuf/any"; +import { Coin } from "cosmjs-types/cosmos/base/v1beta1/coin"; +import { SignMode } from "cosmjs-types/cosmos/tx/signing/v1beta1/signing"; /** * A class for executing transactions to Panacea with signing by multiple addresses (aka. Group Signing). @@ -40,7 +41,7 @@ export class GroupSigningPanaceaClient extends SigningPanaceaClient { public static async connectWithSigners( endpoint: string, signers: OfflineSigner[], - options: SigningPanaceaClientOptions = {}, + options: SigningStargateClientOptions = {}, ): Promise { const tmClient = await Tendermint34Client.connect(endpoint); return new GroupSigningPanaceaClient(tmClient, signers, options); @@ -49,7 +50,7 @@ export class GroupSigningPanaceaClient extends SigningPanaceaClient { protected constructor( tmClient: Tendermint34Client | undefined, signers: OfflineSigner[], - options: SigningPanaceaClientOptions, + options: SigningStargateClientOptions, ) { // Use the first signer for SigningPanaceaClient super(tmClient, signers[0], options); @@ -71,7 +72,7 @@ export class GroupSigningPanaceaClient extends SigningPanaceaClient { * * Make sure that GroupSigningPanaceaClient was created with [feePayerSigner, writerSigner]. The order matters. */ - public async addRecordWithFeePayer(ownerAddress: string, topicName: string, key: Uint8Array, value: Uint8Array, writerAddress: string, feePayerAddress: string, memo?: string): Promise { + public async addRecordWithFeePayer(ownerAddress: string, topicName: string, key: Uint8Array, value: Uint8Array, writerAddress: string, feePayerAddress: string, fee: StdFee, memo?: string): Promise { const msg = { typeUrl: GroupSigningPanaceaClient.msgTypeAddRecord, value: { @@ -83,7 +84,7 @@ export class GroupSigningPanaceaClient extends SigningPanaceaClient { feePayerAddress: feePayerAddress, } } - return this.groupSignAndBroadcast([feePayerAddress, writerAddress], [msg], this.panaceaFees.addWriter, memo); + return this.groupSignAndBroadcast([feePayerAddress, writerAddress], [msg], fee, memo); } // Reference: https://github.com/cosmos/cosmjs/blob/06fbc34f72f12c30a396c3ca296f80eca9fa60b0/packages/stargate/src/signingstargateclient.ts#L280 @@ -92,7 +93,7 @@ export class GroupSigningPanaceaClient extends SigningPanaceaClient { messages: readonly EncodeObject[], fee: StdFee, memo = "", - ): Promise { + ): Promise { const txRaw = await this.groupSign(signerAddresses, messages, fee, memo); const txBytes = TxRaw.encode(txRaw).finish(); return this.broadcastTx(txBytes, this.broadcastTimeoutMs, this.broadcastPollIntervalMs); diff --git a/src/panacea-client.ts b/src/panacea-client.ts index 2535303..73feaf7 100644 --- a/src/panacea-client.ts +++ b/src/panacea-client.ts @@ -18,6 +18,7 @@ import { Record } from "./proto/panacea/aol/v2/record"; import Long from "long"; import { DIDDocumentWithSeq } from "./proto/panacea/did/v2/did"; import { Token } from "./proto/panacea/token/v2/token"; +import { StargateClientOptions } from "@cosmjs/stargate/build/stargateclient"; const rpcErrMsgNotFound = /rpc error: code = NotFound/i; @@ -26,8 +27,8 @@ const rpcErrMsgNotFound = /rpc error: code = NotFound/i; * It extends StargateClient, so that you can call Stargate general queries, such as getBalance. */ export class PanaceaClient extends StargateClient { - constructor(tmClient: Tendermint34Client | undefined) { - super(tmClient); + constructor(tmClient: Tendermint34Client | undefined, options: StargateClientOptions) { + super(tmClient, options); } /** @@ -35,13 +36,13 @@ export class PanaceaClient extends StargateClient { */ static async connect(endpoint: string): Promise { const tmClient = await Tendermint34Client.connect(endpoint); - return new PanaceaClient(tmClient); + return new PanaceaClient(tmClient, {}); } async getTopic(ownerAddress: string, topicName: string): Promise { const queryService = new AolQueryClientImpl(createProtobufRpcClient(this.forceGetQueryClient())); try { - const resp = await queryService.Topic({ownerAddress: ownerAddress, topicName: topicName}); + const resp = await queryService.Topic({ ownerAddress: ownerAddress, topicName: topicName }); return resp.topic ?? null; } catch (error) { if (rpcErrMsgNotFound.test(error)) { @@ -53,7 +54,7 @@ export class PanaceaClient extends StargateClient { async getTopics(ownerAddress: string, pageRequest?: PageRequest): Promise { const queryService = new AolQueryClientImpl(createProtobufRpcClient(this.forceGetQueryClient())); - return await queryService.Topics({ownerAddress: ownerAddress, pagination: pageRequest}); + return await queryService.Topics({ ownerAddress: ownerAddress, pagination: pageRequest }); } async getWriter(ownerAddress: string, topicName: string, writerAddress: string): Promise { @@ -75,13 +76,13 @@ export class PanaceaClient extends StargateClient { async getWriters(ownerAddress: string, topicName: string, pageRequest?: PageRequest): Promise { const queryService = new AolQueryClientImpl(createProtobufRpcClient(this.forceGetQueryClient())); - return await queryService.Writers({ownerAddress: ownerAddress, topicName: topicName, pagination: pageRequest}); + return await queryService.Writers({ ownerAddress: ownerAddress, topicName: topicName, pagination: pageRequest }); } async getRecord(ownerAddress: string, topicName: string, offset: Long): Promise { const queryService = new AolQueryClientImpl(createProtobufRpcClient(this.forceGetQueryClient())); try { - const resp = await queryService.Record({ownerAddress: ownerAddress, topicName: topicName, offset: offset}) + const resp = await queryService.Record({ ownerAddress: ownerAddress, topicName: topicName, offset: offset }); return resp.record ?? null; } catch (error) { if (rpcErrMsgNotFound.test(error)) { @@ -94,7 +95,7 @@ export class PanaceaClient extends StargateClient { async getDid(did: string): Promise { const queryService = new DidQueryClientImpl(createProtobufRpcClient(this.forceGetQueryClient())); try { - const resp = await queryService.DID({didBase64: new Buffer(did).toString('base64')}); + const resp = await queryService.DID({ didBase64: new Buffer(did).toString('base64') }); return resp.didDocumentWithSeq ?? null; } catch (error) { if (rpcErrMsgNotFound.test(error)) { @@ -107,7 +108,7 @@ export class PanaceaClient extends StargateClient { async getToken(symbol: string): Promise { const queryService = new TokenQueryClientImpl(createProtobufRpcClient(this.forceGetQueryClient())); try { - const resp = await queryService.Token({symbol: symbol}); + const resp = await queryService.Token({ symbol: symbol }); return resp.token ?? null; } catch (error) { if (rpcErrMsgNotFound.test(error)) { @@ -119,6 +120,6 @@ export class PanaceaClient extends StargateClient { async getTokens(pageRequest?: PageRequest): Promise { const queryService = new TokenQueryClientImpl(createProtobufRpcClient(this.forceGetQueryClient())); - return await queryService.Tokens({pagination: pageRequest}); + return await queryService.Tokens({ pagination: pageRequest }); } } diff --git a/src/signing-panacea-client.spec.ts b/src/signing-panacea-client.spec.ts index 88e0c4c..9de08f4 100644 --- a/src/signing-panacea-client.spec.ts +++ b/src/signing-panacea-client.spec.ts @@ -5,7 +5,7 @@ import { v4 as uuidv4 } from "uuid"; import { TextEncoder } from "util"; import Long from "long"; import { DIDDocument } from "./proto/panacea/did/v2/did"; -import { isBroadcastTxSuccess } from "@cosmjs/stargate"; +import { isDeliverTxSuccess } from "@cosmjs/stargate"; import { Secp256k1 } from "./crypto/secp256k1"; import { DidUtil } from "./did/util"; import assert from "assert"; @@ -48,7 +48,7 @@ describe("SigningPanaceaClient", () => { describe("createTopic", () => { it("works", async () => { - const res = await client.createTopic(ownerAddress, topicName, "description!", "memo!"); + const res = await client.createTopic(ownerAddress, topicName, "description!", "auto", "memo!"); expect(res).toBeTruthy(); const topic = await client.getPanaceaClient().getTopic(ownerAddress, topicName); @@ -60,7 +60,7 @@ describe("SigningPanaceaClient", () => { describe("addWriter", () => { it("works", async () => { const writerAddress = ownerAddress; - const res = await client.addWriter(ownerAddress, topicName, writerAddress, "jack", "hello", "memo!"); + const res = await client.addWriter(ownerAddress, topicName, writerAddress, "jack", "hello", "auto", "memo!"); expect(res).toBeTruthy(); const writer = await client.getPanaceaClient().getWriter(ownerAddress, topicName, writerAddress); @@ -81,7 +81,7 @@ describe("SigningPanaceaClient", () => { const writerClient = await SigningPanaceaClient.connectWithSigner(panacead.tendermintUrl, writerWallet); - const res = await writerClient.addRecord(ownerAddress, topicName, key, value, writerAddress, "memo!"); + const res = await writerClient.addRecord(ownerAddress, topicName, key, value, writerAddress, "auto", "memo!"); expect(res).toBeTruthy(); const record = await client.getPanaceaClient().getRecord(ownerAddress, topicName, Long.fromInt(0)); @@ -97,7 +97,7 @@ describe("SigningPanaceaClient", () => { describe("deleteWriter", () => { it("works", async () => { const writerAddress = ownerAddress; - const res = await client.deleteWriter(ownerAddress, topicName, writerAddress, "memo!"); + const res = await client.deleteWriter(ownerAddress, topicName, writerAddress, "auto", "memo!"); expect(res).toBeTruthy(); const writer = await client.getPanaceaClient().getWriter(ownerAddress, topicName, writerAddress); @@ -128,8 +128,8 @@ describe("SigningPanaceaClient", () => { const didDocument = generateDidDocument(privKey); const signature = DidUtil.signDidDocument(privKey, didDocument); - const res = await client.createDid(didDocument, didDocument.verificationMethods[0].id, signature, fromAddress); - expect(isBroadcastTxSuccess(res)).toBeTruthy(); + const res = await client.createDid(didDocument, didDocument.verificationMethods[0].id, signature, fromAddress, "auto"); + expect(isDeliverTxSuccess(res)).toBeTruthy(); const didDocumentWithSeq = await client.getPanaceaClient().getDid(didDocument.id); assert(didDocumentWithSeq); @@ -145,8 +145,8 @@ describe("SigningPanaceaClient", () => { didDocument = generateDidDocument(privKey); const signature = DidUtil.signDidDocument(privKey, didDocument); - const res = await client.createDid(didDocument, didDocument.verificationMethods[0].id, signature, fromAddress); - expect(isBroadcastTxSuccess(res)).toBeTruthy(); + const res = await client.createDid(didDocument, didDocument.verificationMethods[0].id, signature, fromAddress, "auto"); + expect(isDeliverTxSuccess(res)).toBeTruthy(); }); it("updateDid", async () => { @@ -156,8 +156,8 @@ describe("SigningPanaceaClient", () => { }); const signature = DidUtil.signDidDocument(privKey, didDocument); - const res = await client.updateDid(didDocument, didDocument.verificationMethods[0].id, signature, fromAddress); - expect(isBroadcastTxSuccess(res)).toBeTruthy(); + const res = await client.updateDid(didDocument, didDocument.verificationMethods[0].id, signature, fromAddress, "auto"); + expect(isDeliverTxSuccess(res)).toBeTruthy(); const didDocumentWithSeq = await client.getPanaceaClient().getDid(didDocument.id); assert(didDocumentWithSeq); @@ -167,8 +167,8 @@ describe("SigningPanaceaClient", () => { it("deactivateDid", async () => { const signature = DidUtil.signDid(privKey, didDocument.id); - const res = await client.deactivateDid(didDocument.id, didDocument.verificationMethods[0].id, signature, fromAddress); - expect(isBroadcastTxSuccess(res)).toBeTruthy(); + const res = await client.deactivateDid(didDocument.id, didDocument.verificationMethods[0].id, signature, fromAddress, "auto"); + expect(isDeliverTxSuccess(res)).toBeTruthy(); const didDocumentWithSeq = await client.getPanaceaClient().getDid(didDocument.id); expect(didDocumentWithSeq).toBeNull(); diff --git a/src/signing-panacea-client.ts b/src/signing-panacea-client.ts index 8c27535..b29bfff 100644 --- a/src/signing-panacea-client.ts +++ b/src/signing-panacea-client.ts @@ -1,8 +1,6 @@ import { - BroadcastTxResponse, - buildFeeTable, defaultRegistryTypes, - FeeTable, - GasLimits, + DeliverTxResponse, + defaultRegistryTypes, GasPrice, SigningStargateClient, StdFee @@ -18,45 +16,11 @@ import { MsgIssueToken } from "./proto/panacea/token/v2/tx"; import { DIDDocument } from "./proto/panacea/did/v2/did"; import { IntProto } from "./proto/cosmos/base/v1beta1/coin"; -////////////////////////////////////////////////////////////////////////////////////////////////// -// TODO: This FeeTable concept is removed on the latest CosmJS (not released yet). -// https://github.com/cosmos/cosmjs/blob/main/CHANGELOG.md#removed /** * A default gas price for all transactions (Panacea & Stargate), when a user doesn't specify it. */ export const panaceaDefaultGasPrice = GasPrice.fromString("5umed"); -/** - * A default gas limits table for only Panacea transactions, when a user doesn't specify it. - * - * For example, when executing a createTopic Tx, the fee would be `gasLimits.createTopic * gasPrice`. - */ -export const panaceaDefaultGasLimits: GasLimits = { - createTopic: 200000, - addWriter: 200000, - deleteWriter: 200000, - addRecord: 200000, - createDid: 200000, - updateDid: 200000, - deactivateDid: 200000, - issueToken: 200000, -} - -/** - * A fee table for only Panacea transactions. - */ -export interface PanaceaFeeTable extends FeeTable { - readonly createTopic: StdFee; - readonly addWriter: StdFee; - readonly deleteWriter: StdFee; - readonly addRecord: StdFee; - readonly createDid: StdFee; - readonly updateDid: StdFee; - readonly deactivateDid: StdFee; - readonly issueToken: StdFee; -} -////////////////////////////////////////////////////////////////////////////////////////////////// - /** * Options for creating HD Wallet (e.g. DirectSecp256k1HdWallet) for Panacea. */ @@ -65,21 +29,11 @@ export const panaceaWalletOpts = { prefix: "panacea", } -/** - * Options for creating a SigningPanaceaClient. - * It extends the SigningStargateClientOptions, but contains additional Panacea-specific options. - */ -export interface SigningPanaceaClientOptions extends SigningStargateClientOptions { - readonly panaceaGasLimits?: Partial> -} - /** * A class for executing transactions to Panacea. * It extends SigningStargateClient, so that you can call Stargate general transactions as well, such as sendTokens. */ export class SigningPanaceaClient extends SigningStargateClient { - readonly panaceaFees: PanaceaFeeTable; - protected static msgTypeCreateTopic = "/panacea.aol.v2.MsgCreateTopic"; protected static msgTypeAddWriter = "/panacea.aol.v2.MsgAddWriter"; protected static msgTypeDeleteWriter = "/panacea.aol.v2.MsgDeleteWriter"; @@ -100,7 +54,7 @@ export class SigningPanaceaClient extends SigningStargateClient { [SigningPanaceaClient.msgTypeIssueToken, MsgIssueToken], ]; - constructor(tmClient: Tendermint34Client | undefined, signer: OfflineSigner, options: SigningPanaceaClientOptions) { + constructor(tmClient: Tendermint34Client | undefined, signer: OfflineSigner, options: SigningStargateClientOptions) { // Before calling super(), set Panacea default options if not specified. if (!options.gasPrice) { options = { ...options, gasPrice: panaceaDefaultGasPrice }; @@ -111,17 +65,13 @@ export class SigningPanaceaClient extends SigningStargateClient { } super(tmClient, signer, options); - - // Build a PanaceaFeeTable - const { gasPrice = panaceaDefaultGasPrice, panaceaGasLimits = panaceaDefaultGasLimits } = options; // Use the default one, if not specified - this.panaceaFees = buildFeeTable(gasPrice, panaceaDefaultGasLimits, panaceaGasLimits) } /** * Creates a SigningPanaceaClient. * Note that it is important to specify options.gasPrice. If not, the default gas price will be used. */ - static async connectWithSigner(endpoint: string, signer: OfflineSigner, options: SigningPanaceaClientOptions = {}): Promise { + static async connectWithSigner(endpoint: string, signer: OfflineSigner, options: SigningStargateClientOptions = {}): Promise { const tmClient = await Tendermint34Client.connect(endpoint); return new SigningPanaceaClient(tmClient, signer, options); } @@ -130,10 +80,10 @@ export class SigningPanaceaClient extends SigningStargateClient { * Returns a PanaceaClient which can be used for querying Panacea. */ getPanaceaClient(): PanaceaClient { - return new PanaceaClient(this.forceGetTmClient()); + return new PanaceaClient(this.forceGetTmClient(), {}); } - async createTopic(ownerAddress: string, topicName: string, description: string, memo?: string): Promise { + async createTopic(ownerAddress: string, topicName: string, description: string, fee: StdFee | "auto", memo?: string): Promise { const msg = { typeUrl: SigningPanaceaClient.msgTypeCreateTopic, value: { @@ -142,10 +92,10 @@ export class SigningPanaceaClient extends SigningStargateClient { ownerAddress: ownerAddress, }, }; - return this.signAndBroadcast(ownerAddress, [msg], this.panaceaFees.createTopic, memo); + return this.signAndBroadcast(ownerAddress, [msg], fee, memo); } - async addWriter(ownerAddress: string, topicName: string, writerAddress: string, moniker: string, description: string, memo?: string): Promise { + async addWriter(ownerAddress: string, topicName: string, writerAddress: string, moniker: string, description: string, fee: StdFee | "auto", memo?: string): Promise { const msg = { typeUrl: SigningPanaceaClient.msgTypeAddWriter, value: { @@ -156,10 +106,10 @@ export class SigningPanaceaClient extends SigningStargateClient { ownerAddress: ownerAddress, }, }; - return this.signAndBroadcast(ownerAddress, [msg], this.panaceaFees.addWriter, memo); + return this.signAndBroadcast(ownerAddress, [msg], fee, memo); } - async deleteWriter(ownerAddress: string, topicName: string, writerAddress: string, memo?: string): Promise { + async deleteWriter(ownerAddress: string, topicName: string, writerAddress: string, fee: StdFee | "auto", memo?: string): Promise { const msg = { typeUrl: SigningPanaceaClient.msgTypeDeleteWriter, value: { @@ -168,10 +118,10 @@ export class SigningPanaceaClient extends SigningStargateClient { ownerAddress: ownerAddress, }, }; - return this.signAndBroadcast(ownerAddress, [msg], this.panaceaFees.deleteWriter, memo); + return this.signAndBroadcast(ownerAddress, [msg], fee, memo); } - async addRecord(ownerAddress: string, topicName: string, key: Uint8Array, value: Uint8Array, writerAddress: string, memo?: string): Promise { + async addRecord(ownerAddress: string, topicName: string, key: Uint8Array, value: Uint8Array, writerAddress: string, fee: StdFee | "auto", memo?: string): Promise { const msg = { typeUrl: SigningPanaceaClient.msgTypeAddRecord, value: { @@ -182,10 +132,10 @@ export class SigningPanaceaClient extends SigningStargateClient { ownerAddress: ownerAddress, }, }; - return this.signAndBroadcast(writerAddress, [msg], this.panaceaFees.addWriter, memo); + return this.signAndBroadcast(writerAddress, [msg], fee, memo); } - async createDid(didDocument: DIDDocument, verficationMethodId: string, signature: Uint8Array, fromAddress: string, memo?: string): Promise { + async createDid(didDocument: DIDDocument, verficationMethodId: string, signature: Uint8Array, fromAddress: string, fee: StdFee | "auto", memo?: string): Promise { const msg = { typeUrl: SigningPanaceaClient.msgTypeCreateDid, value: { @@ -196,10 +146,10 @@ export class SigningPanaceaClient extends SigningStargateClient { fromAddress: fromAddress, }, }; - return this.signAndBroadcast(fromAddress, [msg], this.panaceaFees.createDid, memo); + return this.signAndBroadcast(fromAddress, [msg], fee, memo); } - async updateDid(didDocument: DIDDocument, verficationMethodId: string, signature: Uint8Array, fromAddress: string, memo?: string): Promise { + async updateDid(didDocument: DIDDocument, verficationMethodId: string, signature: Uint8Array, fromAddress: string, fee: StdFee | "auto", memo?: string): Promise { const msg = { typeUrl: SigningPanaceaClient.msgTypeUpdateDid, value: { @@ -210,10 +160,10 @@ export class SigningPanaceaClient extends SigningStargateClient { fromAddress: fromAddress, }, }; - return this.signAndBroadcast(fromAddress, [msg], this.panaceaFees.updateDid, memo); + return this.signAndBroadcast(fromAddress, [msg], fee, memo); } - async deactivateDid(did: string, verficationMethodId: string, signature: Uint8Array, fromAddress: string, memo?: string): Promise { + async deactivateDid(did: string, verficationMethodId: string, signature: Uint8Array, fromAddress: string, fee: StdFee | "auto", memo?: string): Promise { const msg = { typeUrl: SigningPanaceaClient.msgTypeDeactivateDid, value: { @@ -223,10 +173,10 @@ export class SigningPanaceaClient extends SigningStargateClient { fromAddress: fromAddress, }, }; - return this.signAndBroadcast(fromAddress, [msg], this.panaceaFees.deactivateDid, memo); + return this.signAndBroadcast(fromAddress, [msg], fee, memo); } - async issueToken(name: string, shortSymbol: string, totalSupplyMicro: IntProto, mintable: boolean, ownerAddress: string, memo?: string): Promise { + async issueToken(name: string, shortSymbol: string, totalSupplyMicro: IntProto, mintable: boolean, ownerAddress: string, fee: StdFee | "auto", memo?: string): Promise { const msg = { typeUrl: SigningPanaceaClient.msgTypeIssueToken, value: { @@ -237,6 +187,6 @@ export class SigningPanaceaClient extends SigningStargateClient { ownerAddress: ownerAddress, }, }; - return this.signAndBroadcast(ownerAddress, [msg], this.panaceaFees.issueToken, memo); + return this.signAndBroadcast(ownerAddress, [msg], fee, memo); } } diff --git a/yarn.lock b/yarn.lock index b696c48..a71f890 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1486,6 +1486,14 @@ core-util-is@1.0.2: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +cosmjs-types@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.5.0.tgz#2497a2c5ddf62a8e8dea03e0725b8cd763d4ab4f" + integrity sha512-Qy2yxDp5HasBUnBV5OL9EOuTJw94LAbCWfiRb5QcW1sqh93KSSY5PpNMB3rTsxwuPcf/k3CNRY02DeQMjrsJuA== + dependencies: + long "^4.0.0" + protobufjs "~6.11.2" + cosmjs-types@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.4.1.tgz#3b2a53ba60d33159dd075596ce8267cfa7027063" From c3ade555d318d3a5c5f245a60cd0bd30726d22db Mon Sep 17 00:00:00 2001 From: Youngjoon Lee Date: Fri, 3 Jun 2022 12:56:42 +0900 Subject: [PATCH 3/5] fix --- src/signing-panacea-client.ts | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/src/signing-panacea-client.ts b/src/signing-panacea-client.ts index b29bfff..b5853eb 100644 --- a/src/signing-panacea-client.ts +++ b/src/signing-panacea-client.ts @@ -1,12 +1,6 @@ -import { - DeliverTxResponse, - defaultRegistryTypes, - GasPrice, - SigningStargateClient, - StdFee -} from "@cosmjs/stargate"; +import { defaultRegistryTypes, DeliverTxResponse, GasPrice, SigningStargateClient, StdFee } from "@cosmjs/stargate"; import { Tendermint34Client } from "@cosmjs/tendermint-rpc"; -import { GeneratedType, OfflineSigner, Registry } from "@cosmjs/proto-signing"; +import { DirectSecp256k1HdWalletOptions, GeneratedType, OfflineSigner, Registry } from "@cosmjs/proto-signing"; import { SigningStargateClientOptions } from "@cosmjs/stargate/build/signingstargateclient"; import { PanaceaClient } from "./panacea-client"; import { stringToPath } from "@cosmjs/crypto"; @@ -24,10 +18,10 @@ export const panaceaDefaultGasPrice = GasPrice.fromString("5umed"); /** * Options for creating HD Wallet (e.g. DirectSecp256k1HdWallet) for Panacea. */ -export const panaceaWalletOpts = { +export const panaceaWalletOpts: Partial = { hdPaths: [stringToPath("m/44'/371'/0'/0/0")], prefix: "panacea", -} +}; /** * A class for executing transactions to Panacea. @@ -60,8 +54,8 @@ export class SigningPanaceaClient extends SigningStargateClient { options = { ...options, gasPrice: panaceaDefaultGasPrice }; } if (!options.registry) { - const registry = new Registry([...defaultRegistryTypes, ...SigningPanaceaClient.panaceaRegistryTypes]) - options = { ...options, registry: registry}; + const registry = new Registry([...defaultRegistryTypes, ...SigningPanaceaClient.panaceaRegistryTypes]); + options = { ...options, registry: registry }; } super(tmClient, signer, options); @@ -141,7 +135,7 @@ export class SigningPanaceaClient extends SigningStargateClient { value: { did: didDocument.id, document: didDocument, - verificationMethodId: verficationMethodId, + verificationMethodId: verficationMethodId, signature: signature, fromAddress: fromAddress, }, @@ -155,7 +149,7 @@ export class SigningPanaceaClient extends SigningStargateClient { value: { did: didDocument.id, document: didDocument, - verificationMethodId: verficationMethodId, + verificationMethodId: verficationMethodId, signature: signature, fromAddress: fromAddress, }, @@ -168,7 +162,7 @@ export class SigningPanaceaClient extends SigningStargateClient { typeUrl: SigningPanaceaClient.msgTypeDeactivateDid, value: { did: did, - verificationMethodId: verficationMethodId, + verificationMethodId: verficationMethodId, signature: signature, fromAddress: fromAddress, }, From 4e0aa6579b6e0168c1f6de1891e198ca74a637ed Mon Sep 17 00:00:00 2001 From: Youngjoon Lee Date: Fri, 3 Jun 2022 13:57:56 +0900 Subject: [PATCH 4/5] readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1601944..c2f0f57 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ So, it exposes CosmJS basic functions as they are, such as `connectWithSigner` a ### Installation ```bash -yarn add @medibloc/panacea-js @cosmjs/proto-signing @cosmjs/stargate +yarn add @medibloc/panacea-js @cosmjs/proto-signing @cosmjs/stargate cosmjs-types ``` ### Examples From 7c0e895e5aa3505e32fadfdf09412e8976b8224a Mon Sep 17 00:00:00 2001 From: Youngjoon Lee Date: Fri, 3 Jun 2022 14:00:56 +0900 Subject: [PATCH 5/5] docs --- docs/examples.md | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/docs/examples.md b/docs/examples.md index d4aedd6..8ec358a 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -5,7 +5,7 @@ ```ts import { panaceaWalletOpts, SigningPanaceaClient } from "@medibloc/panacea-js"; import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; -import { assertIsBroadcastTxSuccess } from "@cosmjs/stargate"; +import { assertIsDeliverTxSuccess } from "@cosmjs/stargate"; const mnemonic = "bulb rail ..."; const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, panaceaWalletOpts); @@ -19,8 +19,17 @@ const amount = { denom: "umed", amount: "123456789", }; -const result = await client.sendTokens(firstAccount.address, recipient, [amount], "memo"); -assertIsBroadcastTxSuccess(result); +const fee = { + amount: [{ + denom: "umed", + amount: "1000000", + }], + gas: "200000", +}; + +// or, you can set the fee as "auto" +const result = await client.sendTokens(firstAccount.address, recipient, [amount], fee, "memo"); +assertIsDeliverTxSuccess(result); ``` ## Creating AOL topics and adding records @@ -28,7 +37,7 @@ assertIsBroadcastTxSuccess(result); ```ts import { panaceaWalletOpts, SigningPanaceaClient } from "@medibloc/panacea-js"; import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; -import { assertIsBroadcastTxSuccess } from "@cosmjs/stargate"; +import { assertIsDeliverTxSuccess } from "@cosmjs/stargate"; import { TextEncoder } from "util"; import Long from "long"; @@ -42,15 +51,15 @@ const client = await SigningPanaceaClient.connectWithSigner(tendermintRpcEndpoin const ownerAddress = firstAccount.address; const topicName = "topic-1" -let result = await client.createTopic(ownerAddress, topicName, "description", "memo"); -assertIsBroadcastTxSuccess(result); +let result = await client.createTopic(ownerAddress, topicName, "description", "auto", "memo"); +assertIsDeliverTxSuccess(result); const topic = await client.getPanaceaClient().getTopic(ownerAddress, topicName); console.log(topic); const writerAddress = ownerAddress; -result = await client.addWriter(ownerAddress, topicName, writerAddress, "moniker", "description", "memo"); -assertIsBroadcastTxSuccess(result); +result = await client.addWriter(ownerAddress, topicName, writerAddress, "moniker", "description", "auto", "memo"); +assertIsDeliverTxSuccess(result); const writer = await client.getPanaceaClient().getWriter(ownerAddress, topicName, writerAddress); console.log(writer); @@ -58,8 +67,8 @@ console.log(writer); // Encode key and value as you want const key = new TextEncoder().encode("key1"); const value = new TextEncoder().encode("value1"); -result = await client.addRecord(ownerAddress, topicName, key, value, writerAddress, "memo"); -assertIsBroadcastTxSuccess(result); +result = await client.addRecord(ownerAddress, topicName, key, value, writerAddress, "auto", "memo"); +assertIsDeliverTxSuccess(result); const record = await client.getPanaceaClient().getRecord(ownerAddress, topicName, Long.fromInt(0)); console.log(record); @@ -77,7 +86,7 @@ const writerWallet = await DirectSecp256k1HdWallet.fromMnemonic("...", panaceaWa const tendermintRpcEndpoint = "http://localhost:26657"; const client = await GroupSigningPanaceaClient.connectWithSigner(tendermintRpcEndpoint, [feePayerWallet, writerWallet]); -const result = await client.addRecordWithFeePayer(ownerAddress, topicName, key, value, writerAddress, feePayerAddress, ""); +const result = await client.addRecordWithFeePayer(ownerAddress, topicName, key, value, writerAddress, feePayerAddress, "auto", ""); ``` ## Creating DIDs @@ -85,7 +94,7 @@ const result = await client.addRecordWithFeePayer(ownerAddress, topicName, key, ```ts import { panaceaWalletOpts, SigningPanaceaClient, Secp256k1, DidUtil } from "@medibloc/panacea-js"; import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; -import { assertIsBroadcastTxSuccess } from "@cosmjs/stargate"; +import { assertIsDeliverTxSuccess } from "@cosmjs/stargate"; const mnemonic = "bulb rail ..."; const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, panaceaWalletOpts); @@ -129,8 +138,8 @@ const didDocument = { const signature = DidUtil.signDidDocument(privKey, didDocument); -const result = await client.createDid(didDocument, verificationMethodId, signature, firstAccount.address); -assertIsBroadcastTxSuccess(result); +const result = await client.createDid(didDocument, verificationMethodId, signature, firstAccount.address, "auto"); +assertIsDeliverTxSuccess(result); const didDocumentWithSeq = await client.getPanaceaClient().getDid(didDocument.id); console.log(didDocumentWithSeq);