Files
monero_c/impls/monero.ts
cyan fcc2924f31 initial zano commit (#83)
* initial zano commit

* update checksum, fix zano patches on CI

* fix monero builds

* fix cmake command

* fix: devcontainer on x64
ffigen: add zano
zano: add missing free
dart: implement zano

* update boost filenames

* unboost the cmakelists

* fix zano boost issues

* added patch into proper location

* fix various build issues

* [skip ci] update tor-connect

* fix zano builds for ios

* fix apply patches and don't fail-fast

* uncomment build depends for monero

* build_single.sh fix for macos native builds

* disable qemu on arm64 builders from buildjet

* fix boost, fix missing symbols (maybe)

* fix ordering of crypto and ssl libraries

* fix wownero mingw

* fetch zano releases to release-bulk

* build things 'the zano way'

* proper cmake config

* Zano.. yeah...

* Update zano release to 2.0.1.367

* update zano patches

* update zano builds

* update zano build

* fix zano build

* move zlibstatic to the top (this shouldn't matter anyway)

* fix patch location, update tor-connect

* update ci runner

* fix zano build on the CI

* enable zano for other targets

* nvm

* don't use darwin in single release file

* Increase max password length

* build contrib/depends offline

* zano support for macos

* Update dependencies to work on multithread via rosetta2

* different way of adding .patch-applied

* Improve performance of incremental builds

* remove unnecessary patches

* update coin-control patch

* fix test

* remove contrib/depends patches in wownero

* chore: support fallback names in the download_deps util

---------

Co-authored-by: Im-Beast <franik.mateusz@gmail.com>
2025-01-04 09:02:44 +01:00
..
2024-09-19 10:59:07 +02:00
2024-12-30 16:15:33 +00:00
2025-01-04 09:02:44 +01:00
2024-09-19 10:59:07 +02:00

monero.ts

monero_c bindings for Deno.

Usage

This library does not ship with monero_c libraries.
To use these bindings you have to bring your own monero_c libraries.
There are at least two ways to do so:

  • Ahead-of-time, during builds where you only ship necessary library for a given platform.
    See monero-tui build workflow as an example of doing so.
    import {
      loadMoneroDylib,
      Wallet,
      WalletManager,
    } from "https://raw.githubusercontent.com/MrCyjaneK/monero_c/master/impls/monero.ts/mod.ts";
    
    // Try to load dylib from the default lib/* path
    // You can also use loadWowneroDylib for Wownero
    loadMoneroDylib();
    
    const wm = await WalletManager.new();
    const wallet = await wm.createWallet("./my_wallet", "password");
    
    console.log(await wallet.address());
    
    await wallet.store();
    
  • Just-in-time, where you download and cache the library at runtime.
    You can use something like plug to achieve the result.
    import { dlopen } from "jsr:@denosaurs/plug";
    // It's recommened to put the monero.ts github link into your import_map to reduce the url clutter
    import { loadMoneroDylib, symbols, Wallet, WalletManager } from "https://raw.githubusercontent.com/MrCyjaneK/monero_c/master/impls/monero.ts/mod.ts";
    
    // Load dylib loaded by plug
    const lib = await dlopen(..., symbols);
    loadMoneroDylib(lib);
    
    const wm = await WalletManager.new();
    const wallet = await wm.createWallet("./my_wallet", "password");
    
    console.log(await wallet.address());
    
    await wallet.store();