Ic.rocks - The IC Explorer

I built this small app that may be useful for both developers and users.

Fleek site (issue with paths):

Features:

  • Shows ICP price oracle info
  • Canister devs can upload their Candid interfaces
  • Compiles .did to JS/TS bindings
  • Deployed on Fleek

Future ideas:

  • Generate Motoko and Rust bindings (@chenyan how to do this?)
  • Allow devs to upload canister source code
  • Compile code for verification
  • Improve Candid UI
  • Charts & stats for ICP price
  • More NNS tools

Canister devs: Feel free to upload your interfaces for public consumption. Questions/comments/PRs welcome

16 Likes

Wow, this is great!

Generate Motoko and Rust bindings

Motoko binding is generated in the Motoko compiler, it’s not available in the Rust library, but we can easily add one.

Rust binding may require some human intervention. I’m not sure the best way to solve these problems:

  • The fundamental difference between Candid typing and Rust is structural typing vs nominal typing. That is, when you create a struct/enum type in Rust, you have to give the type a name, which doesn’t necessarily exist in the did file, or may not the best name you want. There’s also the question of what traits to derive for each struct.
  • A candid type can map to multiple Rust types. For example, vec record { text; int } can map to Vec<(String, Int)>, HashMap<&str, Int>, or even &[Box<(Cow<str>, Arc<i128>)>].

syntax highlighting

Not sure what syntax highlighter you are using, but we have a syntax highlighter for did files:

1 Like

Nice, I just updated to support syntax highlighting.

This would be great, looking forward to it.

For rust, what if we just assign default names and assume the most basic type? This would save users some amount of work, at least.

1 Like

Amazing stuff, Norton!

Curious – for stuff like “nns-ui”, I couldn’t find it in any open dfinity repo. How did you able to locate those canisters and get their interfaces?

Source here:
https://nns.ic0.app/assets/assets/dfinity_agent.js

ctrl+f qoctq-giaaa-aaaaa-aaaea-cai

2 Likes

ahh! magic. what about the DID file?

Manually for now, maybe I can hack together a script for js → did conversions.

1 Like

Nice. Internet Identity .did file at internet-identity/internet_identity.did at main · dfinity/internet-identity · GitHub

New features!

  • Search by canister
  • Shows canister module hash, subnet, and controller

There seems to be an issue with the Fleek site, so here’s a Vercel alternative:

2 Likes

I did the same work for candid-kt. If you’re interested we could arrange a call or something and I could walk you through the library and its code-generator logic.

I think it is simpler to generate rust code than kotlin code, because we already have all the needed libraries like candid and agent-rs. In kotlin I had to implement them myself.

2 Likes

Do you have any plans to decentralize decision making stuff?
Right now it seems like you decide whether a canister should be on the list or not.

Or I’m misunderstanding something.

I just went with Github PRs since that’s the easiest to get started with. In the future, it could be a token-curated registry or a reputation-based wiki. This would be a good project for someone to build, hint hint!

For candid-kt, do you have anything that can convert did → kt in the browser?

1 Like

I never thought about it, but I think there should be a way to do that.
They have official kt → js compiler.

New features!

  • Candid UI on canisters if available
  • If not available, try fetching from canister (motoko only)
  • Multiple encoding and input/output formats

Try it out on the governance canister

1 Like

“Go to Candid UI” button redirects to an empty response.
https://a4gq6-oaaaa-aaaab-qaa4q-cai.raw.ic0.app/?id=rrkah-fqaaa-aaaaa-aaaaq-cai&did=dHlwZSBBY2NvdW50SWRlbnRpZmllciA9IHJlY29yZCB7IGhhc2ggOiB2ZWMgbmF0OCB9Owp0eXBlIEFjdGlvbiA9IHZhcmlhbnQgewogIE1hbmFnZU5ldXJvbiA6IE1hbmFnZU5ldXJvbjsKICBFeGVjdXRlTm5zRnVuY3Rpb24gOiBFeGVjdXRlTm5zRnVuY3Rpb247CiAgUmV3YXJkTm9kZVByb3ZpZGVyIDogUmV3YXJkTm9kZVByb3ZpZGVyOwogIFNldERlZmF1bHRGb2xsb3dlZXMgOiBTZXREZWZhdWx0Rm9sbG93ZWVzOwogIE1hbmFnZU5ldHdvcmtFY29ub21pY3MgOiBOZXR3b3JrRWNvbm9taWNzOwogIEFwcHJvdmVHZW5lc2lzS3ljIDogQXBwcm92ZUdlbmVzaXNLeWM7CiAgQWRkT3JSZW1vdmVOb2RlUHJvdmlkZXIgOiBBZGRPclJlbW92ZU5vZGVQcm92aWRlcjsKICBNb3Rpb24gOiBNb3Rpb247Cn07CnR5cGUgQWRkSG90S2V5ID0gcmVjb3JkIHsgbmV3X2hvdF9rZXkgOiBvcHQgcHJpbmNpcGFsIH07CnR5cGUgQWRkT3JSZW1vdmVOb2RlUHJvdmlkZXIgPSByZWNvcmQgeyBjaGFuZ2UgOiBvcHQgQ2hhbmdlIH07CnR5cGUgQW1vdW50ID0gcmVjb3JkIHsgZThzIDogbmF0NjQgfTsKdHlwZSBBcHByb3ZlR2VuZXNpc0t5YyA9IHJlY29yZCB7IHByaW5jaXBhbHMgOiB2ZWMgcHJpbmNpcGFsIH07CnR5cGUgQXV0aHpDaGFuZ2VPcCA9IHZhcmlhbnQgewogIEF1dGhvcml6ZSA6IHJlY29yZCB7IGFkZF9zZWxmIDogYm9vbCB9OwogIERlYXV0aG9yaXplOwp9Owp0eXBlIEJhbGxvdCA9IHJlY29yZCB7IHZvdGUgOiBpbnQzMjsgdm90aW5nX3Bvd2VyIDogbmF0NjQgfTsKdHlwZSBCYWxsb3RJbmZvID0gcmVjb3JkIHsgdm90ZSA6IGludDMyOyBwcm9wb3NhbF9pZCA6IG9wdCBOZXVyb25JZCB9Owp0eXBlIENhbmlzdGVyQXV0aHpJbmZvID0gcmVjb3JkIHsgbWV0aG9kc19hdXRoeiA6IHZlYyBNZXRob2RBdXRoekluZm8gfTsKdHlwZSBDaGFuZ2UgPSB2YXJpYW50IHsgVG9SZW1vdmUgOiBOb2RlUHJvdmlkZXI7IFRvQWRkIDogTm9kZVByb3ZpZGVyIH07CnR5cGUgQ29tbWFuZCA9IHZhcmlhbnQgewogIFNwYXduIDogU3Bhd247CiAgU3BsaXQgOiBTcGxpdDsKICBGb2xsb3cgOiBGb2xsb3c7CiAgQ29uZmlndXJlIDogQ29uZmlndXJlOwogIFJlZ2lzdGVyVm90ZSA6IFJlZ2lzdGVyVm90ZTsKICBEaXNidXJzZVRvTmV1cm9uIDogRGlzYnVyc2VUb05ldXJvbjsKICBNYWtlUHJvcG9zYWwgOiBQcm9wb3NhbDsKICBEaXNidXJzZSA6IERpc2J1cnNlOwp9Owp0eXBlIENvbW1hbmRfMSA9IHZhcmlhbnQgewogIEVycm9yIDogR292ZXJuYW5jZUVycm9yOwogIFNwYXduIDogU3Bhd25SZXNwb25zZTsKICBTcGxpdCA6IFNwYXduUmVzcG9uc2U7CiAgRm9sbG93IDogcmVjb3JkIHt9OwogIENvbmZpZ3VyZSA6IHJlY29yZCB7fTsKICBSZWdpc3RlclZvdGUgOiByZWNvcmQge307CiAgRGlzYnVyc2VUb05ldXJvbiA6IFNwYXduUmVzcG9uc2U7CiAgTWFrZVByb3Bvc2FsIDogTWFrZVByb3Bvc2FsUmVzcG9uc2U7CiAgRGlzYnVyc2UgOiBEaXNidXJzZVJlc3BvbnNlOwp9Owp0eXBlIENvbW1hbmRfMiA9IHZhcmlhbnQgewogIFNwYXduIDogU3Bhd247CiAgU3BsaXQgOiBTcGxpdDsKICBEaXNidXJzZVRvTmV1cm9uIDogRGlzYnVyc2VUb05ldXJvbjsKICBEaXNidXJzZSA6IERpc2J1cnNlOwp9Owp0eXBlIENvbmZpZ3VyZSA9IHJlY29yZCB7IG9wZXJhdGlvbiA6IG9wdCBPcGVyYXRpb24gfTsKdHlwZSBDcmVhdGVOZXVyb24gPSByZWNvcmQgeyBkaXNzb2x2ZV9kZWxheV9zZWNvbmRzIDogbmF0NjQgfTsKdHlwZSBEaXNidXJzZSA9IHJlY29yZCB7CiAgdG9fYWNjb3VudCA6IG9wdCBBY2NvdW50SWRlbnRpZmllcjsKICBhbW91bnQgOiBvcHQgQW1vdW50Owp9Owp0eXBlIERpc2J1cnNlUmVzcG9uc2UgPSByZWNvcmQgeyB0cmFuc2Zlcl9ibG9ja19oZWlnaHQgOiBuYXQ2NCB9Owp0eXBlIERpc2J1cnNlVG9OZXVyb24gPSByZWNvcmQgewogIGRpc3NvbHZlX2RlbGF5X3NlY29uZHMgOiBuYXQ2NDsKICBreWNfdmVyaWZpZWQgOiBib29sOwogIGFtb3VudF9lOHMgOiBuYXQ2NDsKICBuZXdfY29udHJvbGxlciA6IG9wdCBwcmluY2lwYWw7CiAgbm9uY2UgOiBuYXQ2NDsKfTsKdHlwZSBEaXNzb2x2ZVN0YXRlID0gdmFyaWFudCB7CiAgRGlzc29sdmVEZWxheVNlY29uZHMgOiBuYXQ2NDsKICBXaGVuRGlzc29sdmVkVGltZXN0YW1wU2Vjb25kcyA6IG5hdDY0Owp9Owp0eXBlIEV4ZWN1dGVObnNGdW5jdGlvbiA9IHJlY29yZCB7IG5uc19mdW5jdGlvbiA6IGludDMyOyBwYXlsb2FkIDogdmVjIG5hdDggfTsKdHlwZSBGb2xsb3cgPSByZWNvcmQgeyB0b3BpYyA6IGludDMyOyBmb2xsb3dlZXMgOiB2ZWMgTmV1cm9uSWQgfTsKdHlwZSBGb2xsb3dlZXMgPSByZWNvcmQgeyBmb2xsb3dlZXMgOiB2ZWMgTmV1cm9uSWQgfTsKdHlwZSBHb3Zlcm5hbmNlID0gcmVjb3JkIHsKICBkZWZhdWx0X2ZvbGxvd2VlcyA6IHZlYyByZWNvcmQgeyBpbnQzMjsgRm9sbG93ZWVzIH07CiAgd2FpdF9mb3JfcXVpZXRfdGhyZXNob2xkX3NlY29uZHMgOiBuYXQ2NDsKICBhdXRoeiA6IG9wdCBDYW5pc3RlckF1dGh6SW5mbzsKICBub2RlX3Byb3ZpZGVycyA6IHZlYyBOb2RlUHJvdmlkZXI7CiAgZWNvbm9taWNzIDogb3B0IE5ldHdvcmtFY29ub21pY3M7CiAgbGF0ZXN0X3Jld2FyZF9ldmVudCA6IG9wdCBSZXdhcmRFdmVudDsKICB0b19jbGFpbV90cmFuc2ZlcnMgOiB2ZWMgTmV1cm9uU3Rha2VUcmFuc2ZlcjsKICBzaG9ydF92b3RpbmdfcGVyaW9kX3NlY29uZHMgOiBuYXQ2NDsKICBwcm9wb3NhbHMgOiB2ZWMgcmVjb3JkIHsgbmF0NjQ7IFByb3Bvc2FsRGF0YSB9OwogIGluX2ZsaWdodF9jb21tYW5kcyA6IHZlYyByZWNvcmQgeyBuYXQ2NDsgTmV1cm9uSW5GbGlnaHRDb21tYW5kIH07CiAgbmV1cm9ucyA6IHZlYyByZWNvcmQgeyBuYXQ2NDsgTmV1cm9uIH07CiAgZ2VuZXNpc190aW1lc3RhbXBfc2Vjb25kcyA6IG5hdDY0Owp9Owp0eXBlIEdvdmVybmFuY2VFcnJvciA9IHJlY29yZCB7IGVycm9yX21lc3NhZ2UgOiB0ZXh0OyBlcnJvcl90eXBlIDogaW50MzIgfTsKdHlwZSBJbmNyZWFzZURpc3NvbHZlRGVsYXkgPSByZWNvcmQgewogIGFkZGl0aW9uYWxfZGlzc29sdmVfZGVsYXlfc2Vjb25kcyA6IG5hdDMyOwp9Owp0eXBlIExpc3ROZXVyb25zID0gcmVjb3JkIHsKICBuZXVyb25faWRzIDogdmVjIG5hdDY0OwogIGluY2x1ZGVfbmV1cm9uc19yZWFkYWJsZV9ieV9jYWxsZXIgOiBib29sOwp9Owp0eXBlIExpc3ROZXVyb25zUmVzcG9uc2UgPSByZWNvcmQgewogIG5ldXJvbl9pbmZvcyA6IHZlYyByZWNvcmQgeyBuYXQ2NDsgTmV1cm9uSW5mbyB9OwogIGZ1bGxfbmV1cm9ucyA6IHZlYyBOZXVyb247Cn07CnR5cGUgTGlzdFByb3Bvc2FsSW5mbyA9IHJlY29yZCB7CiAgaW5jbHVkZV9yZXdhcmRfc3RhdHVzIDogdmVjIGludDMyOwogIGJlZm9yZV9wcm9wb3NhbCA6IG9wdCBOZXVyb25JZDsKICBsaW1pdCA6IG5hdDMyOwogIGV4Y2x1ZGVfdG9waWMgOiB2ZWMgaW50MzI7CiAgaW5jbHVkZV9zdGF0dXMgOiB2ZWMgaW50MzI7Cn07CnR5cGUgTGlzdFByb3Bvc2FsSW5mb1Jlc3BvbnNlID0gcmVjb3JkIHsgcHJvcG9zYWxfaW5mbyA6IHZlYyBQcm9wb3NhbEluZm8gfTsKdHlwZSBNYWtlUHJvcG9zYWxSZXNwb25zZSA9IHJlY29yZCB7IHByb3Bvc2FsX2lkIDogb3B0IE5ldXJvbklkIH07CnR5cGUgTWFuYWdlTmV1cm9uID0gcmVjb3JkIHsgaWQgOiBvcHQgTmV1cm9uSWQ7IGNvbW1hbmQgOiBvcHQgQ29tbWFuZCB9Owp0eXBlIE1hbmFnZU5ldXJvblJlc3BvbnNlID0gcmVjb3JkIHsgY29tbWFuZCA6IG9wdCBDb21tYW5kXzEgfTsKdHlwZSBNZXRob2RBdXRoekNoYW5nZSA9IHJlY29yZCB7CiAgInByaW5jaXBhbCIgOiBvcHQgcHJpbmNpcGFsOwogIG1ldGhvZF9uYW1lIDogdGV4dDsKICBjYW5pc3RlciA6IHByaW5jaXBhbDsKICBvcGVyYXRpb24gOiBBdXRoekNoYW5nZU9wOwp9Owp0eXBlIE1ldGhvZEF1dGh6SW5mbyA9IHJlY29yZCB7CiAgbWV0aG9kX25hbWUgOiB0ZXh0OwogIHByaW5jaXBhbF9pZHMgOiB2ZWMgdmVjIG5hdDg7Cn07CnR5cGUgTW90aW9uID0gcmVjb3JkIHsgbW90aW9uX3RleHQgOiB0ZXh0IH07CnR5cGUgTmV0d29ya0Vjb25vbWljcyA9IHJlY29yZCB7CiAgbmV1cm9uX21pbmltdW1fc3Rha2VfZThzIDogbmF0NjQ7CiAgbWF4X3Byb3Bvc2Fsc190b19rZWVwX3Blcl90b3BpYyA6IG5hdDMyOwogIG5ldXJvbl9tYW5hZ2VtZW50X2ZlZV9wZXJfcHJvcG9zYWxfZThzIDogbmF0NjQ7CiAgcmVqZWN0X2Nvc3RfZThzIDogbmF0NjQ7CiAgdHJhbnNhY3Rpb25fZmVlX2U4cyA6IG5hdDY0OwogIG5ldXJvbl9zcGF3bl9kaXNzb2x2ZV9kZWxheV9zZWNvbmRzIDogbmF0NjQ7CiAgbWluaW11bV9pY3BfeGRyX3JhdGUgOiBuYXQ2NDsKICBtYXhpbXVtX25vZGVfcHJvdmlkZXJfcmV3YXJkc19lOHMgOiBuYXQ2NDsKfTsKdHlwZSBOZXVyb24gPSByZWNvcmQgewogIGlkIDogb3B0IE5ldXJvbklkOwogIGNvbnRyb2xsZXIgOiBvcHQgcHJpbmNpcGFsOwogIHJlY2VudF9iYWxsb3RzIDogdmVjIEJhbGxvdEluZm87CiAga3ljX3ZlcmlmaWVkIDogYm9vbDsKICBub3RfZm9yX3Byb2ZpdCA6IGJvb2w7CiAgbWF0dXJpdHlfZThzX2VxdWl2YWxlbnQgOiBuYXQ2NDsKICBjYWNoZWRfbmV1cm9uX3N0YWtlX2U4cyA6IG5hdDY0OwogIGNyZWF0ZWRfdGltZXN0YW1wX3NlY29uZHMgOiBuYXQ2NDsKICBhZ2luZ19zaW5jZV90aW1lc3RhbXBfc2Vjb25kcyA6IG5hdDY0OwogIGhvdF9rZXlzIDogdmVjIHByaW5jaXBhbDsKICBhY2NvdW50IDogdmVjIG5hdDg7CiAgZGlzc29sdmVfc3RhdGUgOiBvcHQgRGlzc29sdmVTdGF0ZTsKICBmb2xsb3dlZXMgOiB2ZWMgcmVjb3JkIHsgaW50MzI7IEZvbGxvd2VlcyB9OwogIG5ldXJvbl9mZWVzX2U4cyA6IG5hdDY0OwogIHRyYW5zZmVyIDogb3B0IE5ldXJvblN0YWtlVHJhbnNmZXI7Cn07CnR5cGUgTmV1cm9uSWQgPSByZWNvcmQgeyBpZCA6IG5hdDY0IH07CnR5cGUgTmV1cm9uSW5GbGlnaHRDb21tYW5kID0gcmVjb3JkIHsKICBjb21tYW5kIDogb3B0IENvbW1hbmRfMjsKICB0aW1lc3RhbXAgOiBuYXQ2NDsKfTsKdHlwZSBOZXVyb25JbmZvID0gcmVjb3JkIHsKICBkaXNzb2x2ZV9kZWxheV9zZWNvbmRzIDogbmF0NjQ7CiAgcmVjZW50X2JhbGxvdHMgOiB2ZWMgQmFsbG90SW5mbzsKICBjcmVhdGVkX3RpbWVzdGFtcF9zZWNvbmRzIDogbmF0NjQ7CiAgc3RhdGUgOiBpbnQzMjsKICByZXRyaWV2ZWRfYXRfdGltZXN0YW1wX3NlY29uZHMgOiBuYXQ2NDsKICB2b3RpbmdfcG93ZXIgOiBuYXQ2NDsKICBhZ2Vfc2Vjb25kcyA6IG5hdDY0Owp9Owp0eXBlIE5ldXJvblN0YWtlVHJhbnNmZXIgPSByZWNvcmQgewogIHRvX3N1YmFjY291bnQgOiB2ZWMgbmF0ODsKICBuZXVyb25fc3Rha2VfZThzIDogbmF0NjQ7CiAgZnJvbSA6IG9wdCBwcmluY2lwYWw7CiAgbWVtbyA6IG5hdDY0OwogIGZyb21fc3ViYWNjb3VudCA6IHZlYyBuYXQ4OwogIHRyYW5zZmVyX3RpbWVzdGFtcCA6IG5hdDY0OwogIGJsb2NrX2hlaWdodCA6IG5hdDY0Owp9Owp0eXBlIE5vZGVQcm92aWRlciA9IHJlY29yZCB7IGlkIDogb3B0IHByaW5jaXBhbCB9Owp0eXBlIE9wZXJhdGlvbiA9IHZhcmlhbnQgewogIFJlbW92ZUhvdEtleSA6IFJlbW92ZUhvdEtleTsKICBBZGRIb3RLZXkgOiBBZGRIb3RLZXk7CiAgU3RvcERpc3NvbHZpbmcgOiByZWNvcmQge307CiAgU3RhcnREaXNzb2x2aW5nIDogcmVjb3JkIHt9OwogIEluY3JlYXNlRGlzc29sdmVEZWxheSA6IEluY3JlYXNlRGlzc29sdmVEZWxheTsKfTsKdHlwZSBQcm9wb3NhbCA9IHJlY29yZCB7IHVybCA6IHRleHQ7IGFjdGlvbiA6IG9wdCBBY3Rpb247IHN1bW1hcnkgOiB0ZXh0IH07CnR5cGUgUHJvcG9zYWxEYXRhID0gcmVjb3JkIHsKICBpZCA6IG9wdCBOZXVyb25JZDsKICBiYWxsb3RzIDogdmVjIHJlY29yZCB7IG5hdDY0OyBCYWxsb3QgfTsKICBwcm9wb3NhbF90aW1lc3RhbXBfc2Vjb25kcyA6IG5hdDY0OwogIHJld2FyZF9ldmVudF9yb3VuZCA6IG5hdDY0OwogIGZhaWxlZF90aW1lc3RhbXBfc2Vjb25kcyA6IG5hdDY0OwogIHJlamVjdF9jb3N0X2U4cyA6IG5hdDY0OwogIGxhdGVzdF90YWxseSA6IG9wdCBUYWxseTsKICBkZWNpZGVkX3RpbWVzdGFtcF9zZWNvbmRzIDogbmF0NjQ7CiAgcHJvcG9zYWwgOiBvcHQgUHJvcG9zYWw7CiAgcHJvcG9zZXIgOiBvcHQgTmV1cm9uSWQ7CiAgZXhlY3V0ZWRfdGltZXN0YW1wX3NlY29uZHMgOiBuYXQ2NDsKfTsKdHlwZSBQcm9wb3NhbEluZm8gPSByZWNvcmQgewogIGlkIDogb3B0IE5ldXJvbklkOwogIHN0YXR1cyA6IGludDMyOwogIHRvcGljIDogaW50MzI7CiAgYmFsbG90cyA6IHZlYyByZWNvcmQgeyBuYXQ2NDsgQmFsbG90IH07CiAgcHJvcG9zYWxfdGltZXN0YW1wX3NlY29uZHMgOiBuYXQ2NDsKICByZXdhcmRfZXZlbnRfcm91bmQgOiBuYXQ2NDsKICBmYWlsZWRfdGltZXN0YW1wX3NlY29uZHMgOiBuYXQ2NDsKICByZWplY3RfY29zdF9lOHMgOiBuYXQ2NDsKICBsYXRlc3RfdGFsbHkgOiBvcHQgVGFsbHk7CiAgcmV3YXJkX3N0YXR1cyA6IGludDMyOwogIGRlY2lkZWRfdGltZXN0YW1wX3NlY29uZHMgOiBuYXQ2NDsKICBwcm9wb3NhbCA6IG9wdCBQcm9wb3NhbDsKICBwcm9wb3NlciA6IG9wdCBOZXVyb25JZDsKICBleGVjdXRlZF90aW1lc3RhbXBfc2Vjb25kcyA6IG5hdDY0Owp9Owp0eXBlIFJlZ2lzdGVyVm90ZSA9IHJlY29yZCB7IHZvdGUgOiBpbnQzMjsgcHJvcG9zYWwgOiBvcHQgTmV1cm9uSWQgfTsKdHlwZSBSZW1vdmVIb3RLZXkgPSByZWNvcmQgeyBob3Rfa2V5X3RvX3JlbW92ZSA6IG9wdCBwcmluY2lwYWwgfTsKdHlwZSBSZXN1bHQgPSB2YXJpYW50IHsgT2s7IEVyciA6IEdvdmVybmFuY2VFcnJvciB9Owp0eXBlIFJlc3VsdF8xID0gdmFyaWFudCB7IE9rIDogTmV1cm9uOyBFcnIgOiBHb3Zlcm5hbmNlRXJyb3IgfTsKdHlwZSBSZXN1bHRfMiA9IHZhcmlhbnQgeyBPayA6IE5ldXJvbkluZm87IEVyciA6IEdvdmVybmFuY2VFcnJvciB9Owp0eXBlIFJld2FyZEV2ZW50ID0gcmVjb3JkIHsKICBkYXlfYWZ0ZXJfZ2VuZXNpcyA6IG5hdDY0OwogIGFjdHVhbF90aW1lc3RhbXBfc2Vjb25kcyA6IG5hdDY0OwogIGRpc3RyaWJ1dGVkX2U4c19lcXVpdmFsZW50IDogbmF0NjQ7CiAgc2V0dGxlZF9wcm9wb3NhbHMgOiB2ZWMgTmV1cm9uSWQ7Cn07CnR5cGUgUmV3YXJkTm9kZVByb3ZpZGVyID0gcmVjb3JkIHsKICBub2RlX3Byb3ZpZGVyIDogb3B0IE5vZGVQcm92aWRlcjsKICBhbW91bnRfZThzIDogbmF0NjQ7CiAgY3JlYXRlX25ldXJvbiA6IG9wdCBDcmVhdGVOZXVyb247Cn07CnR5cGUgU2V0RGVmYXVsdEZvbGxvd2VlcyA9IHJlY29yZCB7CiAgZGVmYXVsdF9mb2xsb3dlZXMgOiB2ZWMgcmVjb3JkIHsgaW50MzI7IEZvbGxvd2VlcyB9Owp9Owp0eXBlIFNwYXduID0gcmVjb3JkIHsgbmV3X2NvbnRyb2xsZXIgOiBvcHQgcHJpbmNpcGFsIH07CnR5cGUgU3Bhd25SZXNwb25zZSA9IHJlY29yZCB7IGNyZWF0ZWRfbmV1cm9uX2lkIDogb3B0IE5ldXJvbklkIH07CnR5cGUgU3BsaXQgPSByZWNvcmQgeyBhbW91bnRfZThzIDogbmF0NjQgfTsKdHlwZSBUYWxseSA9IHJlY29yZCB7CiAgbm8gOiBuYXQ2NDsKICB5ZXMgOiBuYXQ2NDsKICB0b3RhbCA6IG5hdDY0OwogIHRpbWVzdGFtcF9zZWNvbmRzIDogbmF0NjQ7Cn07CnNlcnZpY2UgOiAoR292ZXJuYW5jZSkgLT4gewogIGNsYWltX2d0Y19uZXVyb25zIDogKHByaW5jaXBhbCwgdmVjIE5ldXJvbklkKSAtPiAoUmVzdWx0KTsKICBjdXJyZW50X2F1dGh6IDogKCkgLT4gKENhbmlzdGVyQXV0aHpJbmZvKSBxdWVyeTsKICBnZXRfZnVsbF9uZXVyb24gOiAobmF0NjQpIC0%2BIChSZXN1bHRfMSkgcXVlcnk7CiAgZ2V0X25ldXJvbl9pZHMgOiAoKSAtPiAodmVjIG5hdDY0KSBxdWVyeTsKICBnZXRfbmV1cm9uX2luZm8gOiAobmF0NjQpIC0%2BIChSZXN1bHRfMikgcXVlcnk7CiAgZ2V0X3BlbmRpbmdfcHJvcG9zYWxzIDogKCkgLT4gKHZlYyBQcm9wb3NhbEluZm8pIHF1ZXJ5OwogIGdldF9wcm9wb3NhbF9pbmZvIDogKG5hdDY0KSAtPiAob3B0IFByb3Bvc2FsSW5mbykgcXVlcnk7CiAgbGlzdF9uZXVyb25zIDogKExpc3ROZXVyb25zKSAtPiAoTGlzdE5ldXJvbnNSZXNwb25zZSkgcXVlcnk7CiAgbGlzdF9wcm9wb3NhbHMgOiAoTGlzdFByb3Bvc2FsSW5mbykgLT4gKExpc3RQcm9wb3NhbEluZm9SZXNwb25zZSkgcXVlcnk7CiAgbWFuYWdlX25ldXJvbiA6IChNYW5hZ2VOZXVyb24pIC0%2BIChNYW5hZ2VOZXVyb25SZXNwb25zZSk7CiAgc3VibWl0X3Byb3Bvc2FsIDogKG5hdDY0LCBQcm9wb3NhbCwgcHJpbmNpcGFsKSAtPiAobmF0NjQpOwogIHRyYW5zZmVyX2d0Y19uZXVyb24gOiAoTmV1cm9uSWQsIE5ldXJvbklkKSAtPiAoUmVzdWx0KTsKICB1cGRhdGVfYXV0aHogOiAodmVjIE1ldGhvZEF1dGh6Q2hhbmdlKSAtPiAoKTsKfQo%3D

I guess that URL is just too long for the http handler?

@wang Motoko binding added in candid 0.7.0: candid/motoko.rs at master · dfinity/candid · GitHub

1 Like

New features!

6 Likes

Many new features!

  • Database of canisters, modules, ledger accounts & transactions
  • ICP prices in ledger explorer
  • Canister version tracking
  • Duplicate modules
5 Likes

Very cool, already supported :motoko_go: