@wopr-network/crypto-plugins 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.github/workflows/ci.yml +0 -2
  2. package/dist/bitcoin/encoder.d.ts +1 -1
  3. package/dist/bitcoin/encoder.d.ts.map +1 -1
  4. package/dist/bitcoin/index.d.ts +1 -1
  5. package/dist/bitcoin/index.d.ts.map +1 -1
  6. package/dist/dogecoin/encoder.d.ts +1 -1
  7. package/dist/dogecoin/encoder.d.ts.map +1 -1
  8. package/dist/dogecoin/index.d.ts +1 -1
  9. package/dist/dogecoin/index.d.ts.map +1 -1
  10. package/dist/evm/encoder.d.ts +1 -1
  11. package/dist/evm/encoder.d.ts.map +1 -1
  12. package/dist/evm/eth-watcher.d.ts +1 -1
  13. package/dist/evm/eth-watcher.d.ts.map +1 -1
  14. package/dist/evm/index.d.ts +1 -1
  15. package/dist/evm/index.d.ts.map +1 -1
  16. package/dist/evm/watcher.d.ts +1 -1
  17. package/dist/evm/watcher.d.ts.map +1 -1
  18. package/dist/litecoin/encoder.d.ts +1 -1
  19. package/dist/litecoin/encoder.d.ts.map +1 -1
  20. package/dist/litecoin/index.d.ts +1 -1
  21. package/dist/litecoin/index.d.ts.map +1 -1
  22. package/dist/shared/test-helpers/index.d.ts +1 -1
  23. package/dist/shared/test-helpers/index.d.ts.map +1 -1
  24. package/dist/shared/utxo/watcher.d.ts +1 -1
  25. package/dist/shared/utxo/watcher.d.ts.map +1 -1
  26. package/dist/solana/encoder.d.ts +1 -1
  27. package/dist/solana/encoder.d.ts.map +1 -1
  28. package/dist/solana/index.d.ts +1 -1
  29. package/dist/solana/index.d.ts.map +1 -1
  30. package/dist/solana/sweeper.d.ts +5 -6
  31. package/dist/solana/sweeper.d.ts.map +1 -1
  32. package/dist/solana/sweeper.js +230 -10
  33. package/dist/solana/sweeper.js.map +1 -1
  34. package/dist/solana/watcher.d.ts +1 -1
  35. package/dist/solana/watcher.d.ts.map +1 -1
  36. package/dist/sweep/evm-sweeper.d.ts +1 -1
  37. package/dist/sweep/evm-sweeper.d.ts.map +1 -1
  38. package/dist/sweep/index.js +90 -4
  39. package/dist/sweep/index.js.map +1 -1
  40. package/dist/sweep/tron-sweeper.d.ts +1 -1
  41. package/dist/sweep/tron-sweeper.d.ts.map +1 -1
  42. package/dist/sweep/utxo-sweeper.d.ts +1 -1
  43. package/dist/sweep/utxo-sweeper.d.ts.map +1 -1
  44. package/dist/tron/encoder.d.ts +1 -1
  45. package/dist/tron/encoder.d.ts.map +1 -1
  46. package/dist/tron/index.d.ts +1 -1
  47. package/dist/tron/index.d.ts.map +1 -1
  48. package/dist/tron/watcher.d.ts +1 -1
  49. package/dist/tron/watcher.d.ts.map +1 -1
  50. package/package.json +3 -3
  51. package/src/__tests__/registry.test.ts +1 -1
  52. package/src/bitcoin/encoder.ts +1 -1
  53. package/src/bitcoin/index.ts +1 -1
  54. package/src/dogecoin/encoder.ts +1 -1
  55. package/src/dogecoin/index.ts +1 -1
  56. package/src/evm/encoder.ts +1 -1
  57. package/src/evm/eth-watcher.ts +1 -1
  58. package/src/evm/index.ts +1 -1
  59. package/src/evm/watcher.ts +1 -1
  60. package/src/litecoin/encoder.ts +1 -1
  61. package/src/litecoin/index.ts +1 -1
  62. package/src/shared/test-helpers/index.ts +1 -1
  63. package/src/shared/utxo/watcher.ts +1 -1
  64. package/src/solana/encoder.ts +1 -1
  65. package/src/solana/index.ts +1 -1
  66. package/src/solana/sweeper.ts +270 -15
  67. package/src/solana/watcher.ts +1 -1
  68. package/src/sweep/evm-sweeper.ts +1 -1
  69. package/src/sweep/index.ts +103 -5
  70. package/src/sweep/tron-sweeper.ts +1 -1
  71. package/src/sweep/utxo-sweeper.ts +1 -1
  72. package/src/tron/encoder.ts +1 -1
  73. package/src/tron/index.ts +1 -1
  74. package/src/tron/watcher.ts +1 -1
@@ -13,8 +13,6 @@ jobs:
13
13
  - uses: actions/checkout@v4
14
14
 
15
15
  - uses: pnpm/action-setup@v4
16
- with:
17
- version: 9
18
16
 
19
17
  - uses: actions/setup-node@v4
20
18
  with:
@@ -1,4 +1,4 @@
1
- import type { IAddressEncoder } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IAddressEncoder } from "@wopr-network/platform-crypto-server/plugin";
2
2
  /** HASH160 = RIPEMD-160(SHA-256(data)). Standard Bitcoin address hash. */
3
3
  export declare function hash160(data: Uint8Array): Uint8Array;
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/bitcoin/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAkSjG,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAEpD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAK9E;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,eAQ3B,CAAC"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/bitcoin/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAkSnG,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAEpD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAK9E;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,eAQ3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { IChainPlugin } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IChainPlugin } from "@wopr-network/platform-crypto-server/plugin";
2
2
  export { bech32Encoder, encodeBech32Address, hash160 } from "./encoder.js";
3
3
  export declare const bitcoinPlugin: IChainPlugin;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bitcoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,2CAA2C,CAAC;AAM3F,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE3E,eAAO,MAAM,aAAa,EAAE,YAc3B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bitcoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,6CAA6C,CAAC;AAM7F,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE3E,eAAO,MAAM,aAAa,EAAE,YAc3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { IAddressEncoder } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IAddressEncoder } from "@wopr-network/platform-crypto-server/plugin";
2
2
  /**
3
3
  * Encode a compressed public key as a P2PKH (Base58Check) address.
4
4
  * Used for DOGE (version 0x1e), etc.
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/dogecoin/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,2CAA2C,CAAC;AA6HjG;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAUrF;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,eAQ1B,CAAC"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/dogecoin/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,6CAA6C,CAAC;AA6HnG;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAUrF;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,eAQ1B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { IChainPlugin } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IChainPlugin } from "@wopr-network/platform-crypto-server/plugin";
2
2
  export { encodeP2pkhAddress, p2pkhEncoder } from "./encoder.js";
3
3
  export declare const dogecoinPlugin: IChainPlugin;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dogecoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,2CAA2C,CAAC;AAM3F,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhE,eAAO,MAAM,cAAc,EAAE,YAc5B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dogecoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,6CAA6C,CAAC;AAM7F,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhE,eAAO,MAAM,cAAc,EAAE,YAc5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { EncodingParams, IAddressEncoder } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { EncodingParams, IAddressEncoder } from "@wopr-network/platform-crypto-server/plugin";
2
2
  /** EVM address encoder implementing IAddressEncoder. */
3
3
  export declare class EvmAddressEncoder implements IAddressEncoder {
4
4
  encode(publicKey: Uint8Array, _params: EncodingParams): string;
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/evm/encoder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAqCjG,wDAAwD;AACxD,qBAAa,iBAAkB,YAAW,eAAe;IACxD,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM;IAI9D,YAAY,IAAI,MAAM;CAGtB"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/evm/encoder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAqCnG,wDAAwD;AACxD,qBAAa,iBAAkB,YAAW,eAAe;IACxD,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM;IAI9D,YAAY,IAAI,MAAM;CAGtB"}
@@ -1,4 +1,4 @@
1
- import type { IChainWatcher, PaymentEvent, WatcherOpts } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IChainWatcher, PaymentEvent, WatcherOpts } from "@wopr-network/platform-crypto-server/plugin";
2
2
  /**
3
3
  * Native ETH transfer watcher.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"eth-watcher.d.ts","sourceRoot":"","sources":["../../src/evm/eth-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAGb,YAAY,EACZ,WAAW,EACX,MAAM,2CAA2C,CAAC;AAsBnD;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,YAAW,aAAa;IAC/C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAAc;gBAE3B,IAAI,EAAE,WAAW;IAYvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAI9C,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,IAAI;IAIZ;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAgFrC"}
1
+ {"version":3,"file":"eth-watcher.d.ts","sourceRoot":"","sources":["../../src/evm/eth-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAGb,YAAY,EACZ,WAAW,EACX,MAAM,6CAA6C,CAAC;AAsBrD;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,YAAW,aAAa;IAC/C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAAc;gBAE3B,IAAI,EAAE,WAAW;IAYvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAI9C,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,IAAI;IAIZ;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAgFrC"}
@@ -1,4 +1,4 @@
1
- import type { IChainPlugin } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IChainPlugin } from "@wopr-network/platform-crypto-server/plugin";
2
2
  export { EvmAddressEncoder } from "./encoder.js";
3
3
  export { EthWatcher } from "./eth-watcher.js";
4
4
  export type { ChainConfig, EvmChain, RpcCall, RpcLog, RpcTransaction, StablecoinToken, TokenConfig, } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,2CAA2C,CAAC;AAKxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,MAAM,EACN,cAAc,EACd,eAAe,EACf,WAAW,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI3D;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,YAgBvB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,6CAA6C,CAAC;AAK1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,MAAM,EACN,cAAc,EACd,eAAe,EACf,WAAW,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI3D;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,YAgBvB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { IChainWatcher, PaymentEvent, WatcherOpts } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IChainWatcher, PaymentEvent, WatcherOpts } from "@wopr-network/platform-crypto-server/plugin";
2
2
  import type { RpcCall } from "./types.js";
3
3
  /** Create an RPC caller for a given URL (plain JSON-RPC over fetch). */
4
4
  export declare function createRpcCaller(rpcUrl: string, extraHeaders?: Record<string, string>): RpcCall;
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/evm/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,YAAY,CAAC;AAIlD,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAqB9F;AAUD;;;;;;GAMG;AACH,qBAAa,UAAW,YAAW,aAAa;IAC/C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAAW;gBAExB,IAAI,EAAE,WAAW;IAavB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAI9C,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,IAAI;IAIZ;;;;;;;;;;OAUG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAqFrC"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/evm/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,YAAY,CAAC;AAIlD,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAqB9F;AAUD;;;;;;GAMG;AACH,qBAAa,UAAW,YAAW,aAAa;IAC/C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAAW;gBAExB,IAAI,EAAE,WAAW;IAavB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAI9C,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,IAAI;IAIZ;;;;;;;;;;OAUG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAqFrC"}
@@ -1,4 +1,4 @@
1
- import type { IAddressEncoder } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IAddressEncoder } from "@wopr-network/platform-crypto-server/plugin";
2
2
  /**
3
3
  * Litecoin bech32 address encoder.
4
4
  * Implements IAddressEncoder for the litecoin plugin.
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/litecoin/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAIjG;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,eAQ3B,CAAC"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/litecoin/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAInG;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,eAQ3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { IChainPlugin } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IChainPlugin } from "@wopr-network/platform-crypto-server/plugin";
2
2
  export { bech32Encoder } from "./encoder.js";
3
3
  export declare const litecoinPlugin: IChainPlugin;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/litecoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,2CAA2C,CAAC;AAM3F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,cAAc,EAAE,YAc5B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/litecoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,6CAA6C,CAAC;AAM7F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,cAAc,EAAE,YAc5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { IPriceOracle, IWatcherCursorStore } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IPriceOracle, IWatcherCursorStore } from "@wopr-network/platform-crypto-server/plugin";
2
2
  /** In-memory mock cursor store for testing UTXO watchers. */
3
3
  export declare function createMockCursorStore(): IWatcherCursorStore & {
4
4
  _cursors: Map<string, number>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/test-helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEnG,6DAA6D;AAC7D,wBAAgB,qBAAqB,IAAI,mBAAmB,GAAG;IAC9D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAoBA;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,WAAW,SAAkB,GAAG,YAAY,CAM5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/test-helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAErG,6DAA6D;AAC7D,wBAAgB,qBAAqB,IAAI,mBAAmB,GAAG;IAC9D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAoBA;AAED,oDAAoD;AACpD,wBAAgB,gBAAgB,CAAC,WAAW,SAAkB,GAAG,YAAY,CAM5E"}
@@ -1,4 +1,4 @@
1
- import type { IChainWatcher, IPriceOracle, IWatcherCursorStore, PaymentEvent, WatcherOpts } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IChainWatcher, IPriceOracle, IWatcherCursorStore, PaymentEvent, WatcherOpts } from "@wopr-network/platform-crypto-server/plugin";
2
2
  import type { RpcCall } from "./types.js";
3
3
  export interface UtxoWatcherConfig {
4
4
  /** JSON-RPC call function for the node. */
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/shared/utxo/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EAKX,OAAO,EACP,MAAM,YAAY,CAAC;AAqBpB,MAAM,WAAW,iBAAiB;IACjC,2CAA2C;IAC3C,GAAG,EAAE,OAAO,CAAC;IACb,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,wDAAwD;IACxD,WAAW,EAAE,mBAAmB,CAAC;CACjC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,iBAAiB;IAW/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAK9C,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,IAAI;IAIZ;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAwDrC;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAUhF"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/shared/utxo/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAKX,OAAO,EACP,MAAM,YAAY,CAAC;AAqBpB,MAAM,WAAW,iBAAiB;IACjC,2CAA2C;IAC3C,GAAG,EAAE,OAAO,CAAC;IACb,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,wDAAwD;IACxD,WAAW,EAAE,mBAAmB,CAAC;CACjC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,iBAAiB;IAW/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAK9C,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,IAAI;IAIZ;;;OAGG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAwDrC;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CAUhF"}
@@ -1,4 +1,4 @@
1
- import type { EncodingParams, IAddressEncoder } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { EncodingParams, IAddressEncoder } from "@wopr-network/platform-crypto-server/plugin";
2
2
  /**
3
3
  * Encode a Uint8Array as a Base58 string (Bitcoin/Solana alphabet).
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/solana/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAKjG;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAqCtD;AAeD,2DAA2D;AAC3D,qBAAa,oBAAqB,YAAW,eAAe;IAC3D,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM;IAI9D,YAAY,IAAI,MAAM;CAGtB"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/solana/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAKnG;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAqCtD;AAeD,2DAA2D;AAC3D,qBAAa,oBAAqB,YAAW,eAAe;IAC3D,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM;IAI9D,YAAY,IAAI,MAAM;CAGtB"}
@@ -1,4 +1,4 @@
1
- import type { IChainPlugin } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IChainPlugin } from "@wopr-network/platform-crypto-server/plugin";
2
2
  export { base58Encode, SolanaAddressEncoder } from "./encoder.js";
3
3
  export { SolanaSweeper } from "./sweeper.js";
4
4
  export type { SignatureInfo, SolanaRpcCall, SolanaTransaction, TokenBalance, TransactionMeta } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/solana/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,2CAA2C,CAAC;AAKxG,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjH,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIpE;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,YAa1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/solana/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,6CAA6C,CAAC;AAK1G,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjH,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIpE;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,YAa1B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { DepositInfo, ISweepStrategy, KeyPair, SweeperOpts, SweepResult } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { DepositInfo, ISweepStrategy, KeyPair, SweeperOpts, SweepResult } from "@wopr-network/platform-crypto-server/plugin";
2
2
  /**
3
3
  * Solana sweep strategy.
4
4
  *
@@ -30,17 +30,16 @@ export declare class SolanaSweeper implements ISweepStrategy {
30
30
  */
31
31
  sweep(keys: KeyPair[], treasury: string, dryRun: boolean): Promise<SweepResult[]>;
32
32
  /**
33
- * Submit a native SOL transfer.
33
+ * Submit a native SOL transfer via SystemProgram.transfer.
34
34
  *
35
- * Builds a SystemProgram.transfer instruction, signs with the deposit keypair,
36
- * and submits via sendTransaction.
35
+ * Builds the instruction manually, signs with Ed25519, and submits via sendTransaction.
37
36
  */
38
37
  private submitSolTransfer;
39
38
  /**
40
39
  * Submit an SPL token transfer.
41
40
  *
42
- * Builds a TokenProgram.transfer instruction for the given mint,
43
- * signs with the deposit keypair, and submits via sendTransaction.
41
+ * Finds or derives the associated token accounts for sender and receiver,
42
+ * then builds a TokenProgram.Transfer instruction.
44
43
  */
45
44
  private submitSplTransfer;
46
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sweeper.d.ts","sourceRoot":"","sources":["../../src/solana/sweeper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,cAAc,EACd,OAAO,EACP,WAAW,EACX,WAAW,EACX,MAAM,2CAA2C,CAAC;AAOnD;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,cAAc;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,IAAI,EAAE,WAAW;IAQ7B;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAuDtE;;;;;;;OAOG;IACG,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6DvF;;;;;OAKG;YACW,iBAAiB;IAa/B;;;;;OAKG;YACW,iBAAiB;CAK/B"}
1
+ {"version":3,"file":"sweeper.d.ts","sourceRoot":"","sources":["../../src/solana/sweeper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,WAAW,EACX,cAAc,EACd,OAAO,EACP,WAAW,EACX,WAAW,EACX,MAAM,6CAA6C,CAAC;AAoMrD;;;;;GAKG;AACH,qBAAa,aAAc,YAAW,cAAc;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,IAAI,EAAE,WAAW;IAQ7B;;;;;;OAMG;IACG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAuDtE;;;;;;;OAOG;IACG,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6DvF;;;;OAIG;YACW,iBAAiB;IA+B/B;;;;;OAKG;YACW,iBAAiB;CAqD/B"}
@@ -1,6 +1,172 @@
1
+ import { ed25519 } from "@noble/curves/ed25519.js";
1
2
  import { createSolanaRpcCaller } from "./watcher.js";
2
3
  /** Transaction fee estimate (in lamports). */
3
4
  const TX_FEE = 5000n;
5
+ /** SPL Token program ID. */
6
+ const TOKEN_PROGRAM_ID = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
7
+ /** System program ID. */
8
+ const SYSTEM_PROGRAM_ID = "11111111111111111111111111111111";
9
+ // --- Base58 for Solana ---
10
+ const BASE58_ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
11
+ function base58decode(str) {
12
+ let num = 0n;
13
+ for (const ch of str) {
14
+ const idx = BASE58_ALPHABET.indexOf(ch);
15
+ if (idx < 0)
16
+ throw new Error(`Invalid Base58 char: ${ch}`);
17
+ num = num * 58n + BigInt(idx);
18
+ }
19
+ const bytes = [];
20
+ while (num > 0n) {
21
+ bytes.unshift(Number(num % 256n));
22
+ num = num / 256n;
23
+ }
24
+ let leadingZeros = 0;
25
+ for (const ch of str) {
26
+ if (ch !== "1")
27
+ break;
28
+ leadingZeros++;
29
+ }
30
+ return new Uint8Array([...new Array(leadingZeros).fill(0), ...bytes]);
31
+ }
32
+ function base58encode(data) {
33
+ let num = 0n;
34
+ for (const byte of data)
35
+ num = num * 256n + BigInt(byte);
36
+ let encoded = "";
37
+ while (num > 0n) {
38
+ encoded = BASE58_ALPHABET[Number(num % 58n)] + encoded;
39
+ num = num / 58n;
40
+ }
41
+ for (const byte of data) {
42
+ if (byte !== 0)
43
+ break;
44
+ encoded = `1${encoded}`;
45
+ }
46
+ return encoded || "1";
47
+ }
48
+ // --- Solana transaction helpers ---
49
+ /** Compact-u16 encoding used by Solana for array lengths. */
50
+ function encodeCompactU16(value) {
51
+ if (value < 0x80)
52
+ return new Uint8Array([value]);
53
+ if (value < 0x4000)
54
+ return new Uint8Array([(value & 0x7f) | 0x80, value >> 7]);
55
+ return new Uint8Array([(value & 0x7f) | 0x80, ((value >> 7) & 0x7f) | 0x80, value >> 14]);
56
+ }
57
+ /** Write a u32 as little-endian bytes. */
58
+ function writeU32LE(value) {
59
+ const buf = new Uint8Array(4);
60
+ buf[0] = value & 0xff;
61
+ buf[1] = (value >> 8) & 0xff;
62
+ buf[2] = (value >> 16) & 0xff;
63
+ buf[3] = (value >> 24) & 0xff;
64
+ return buf;
65
+ }
66
+ /** Write a u64 as little-endian bytes. */
67
+ function writeU64LE(value) {
68
+ const buf = new Uint8Array(8);
69
+ for (let i = 0; i < 8; i++) {
70
+ buf[i] = Number(value & 0xffn);
71
+ value = value >> 8n;
72
+ }
73
+ return buf;
74
+ }
75
+ /** Concatenate multiple Uint8Arrays. */
76
+ function concatBytes(...arrays) {
77
+ const total = arrays.reduce((sum, a) => sum + a.length, 0);
78
+ const result = new Uint8Array(total);
79
+ let offset = 0;
80
+ for (const a of arrays) {
81
+ result.set(a, offset);
82
+ offset += a.length;
83
+ }
84
+ return result;
85
+ }
86
+ /**
87
+ * Build a Solana transaction message (v0 legacy format).
88
+ * Returns the serialized message bytes for signing.
89
+ */
90
+ function buildTransactionMessage(recentBlockhash, feePayer, instructions) {
91
+ // Collect all unique accounts
92
+ const accountMap = new Map();
93
+ const feePayerKey = base58encode(feePayer);
94
+ accountMap.set(feePayerKey, { pubkey: feePayer, isSigner: true, isWritable: true });
95
+ for (const ix of instructions) {
96
+ const progKey = base58encode(ix.programId);
97
+ if (!accountMap.has(progKey)) {
98
+ accountMap.set(progKey, { pubkey: ix.programId, isSigner: false, isWritable: false });
99
+ }
100
+ for (const acc of ix.accounts) {
101
+ const key = base58encode(acc.pubkey);
102
+ const existing = accountMap.get(key);
103
+ if (existing) {
104
+ existing.isSigner = existing.isSigner || acc.isSigner;
105
+ existing.isWritable = existing.isWritable || acc.isWritable;
106
+ }
107
+ else {
108
+ accountMap.set(key, { ...acc });
109
+ }
110
+ }
111
+ }
112
+ // Sort: signers+writable first, then signers+readonly, then non-signers+writable, then non-signers+readonly
113
+ // Fee payer is always first
114
+ const accounts = [...accountMap.values()];
115
+ accounts.sort((a, b) => {
116
+ const aKey = base58encode(a.pubkey);
117
+ const bKey = base58encode(b.pubkey);
118
+ if (aKey === feePayerKey)
119
+ return -1;
120
+ if (bKey === feePayerKey)
121
+ return 1;
122
+ if (a.isSigner !== b.isSigner)
123
+ return a.isSigner ? -1 : 1;
124
+ if (a.isWritable !== b.isWritable)
125
+ return a.isWritable ? -1 : 1;
126
+ return 0;
127
+ });
128
+ const numRequiredSignatures = accounts.filter((a) => a.isSigner).length;
129
+ const numReadonlySignedAccounts = accounts.filter((a) => a.isSigner && !a.isWritable).length;
130
+ const numReadonlyUnsignedAccounts = accounts.filter((a) => !a.isSigner && !a.isWritable).length;
131
+ const accountKeyIndex = new Map();
132
+ for (let i = 0; i < accounts.length; i++) {
133
+ accountKeyIndex.set(base58encode(accounts[i].pubkey), i);
134
+ }
135
+ // Serialize message
136
+ const header = new Uint8Array([numRequiredSignatures, numReadonlySignedAccounts, numReadonlyUnsignedAccounts]);
137
+ const accountKeysLen = encodeCompactU16(accounts.length);
138
+ const accountKeysData = concatBytes(...accounts.map((a) => a.pubkey));
139
+ const blockhashBytes = base58decode(recentBlockhash);
140
+ const instructionsLen = encodeCompactU16(instructions.length);
141
+ const ixData = [];
142
+ for (const ix of instructions) {
143
+ const progIdx = accountKeyIndex.get(base58encode(ix.programId));
144
+ if (progIdx === undefined)
145
+ throw new Error("Program ID not in account list");
146
+ const accountIdxs = ix.accounts.map((a) => {
147
+ const idx = accountKeyIndex.get(base58encode(a.pubkey));
148
+ if (idx === undefined)
149
+ throw new Error("Account not in account list");
150
+ return idx;
151
+ });
152
+ ixData.push(concatBytes(new Uint8Array([progIdx]), encodeCompactU16(accountIdxs.length), new Uint8Array(accountIdxs), encodeCompactU16(ix.data.length), ix.data));
153
+ }
154
+ return concatBytes(header, accountKeysLen, accountKeysData, blockhashBytes, instructionsLen, ...ixData);
155
+ }
156
+ /**
157
+ * Sign and serialize a full Solana transaction (legacy format).
158
+ * Returns base58-encoded wire format ready for sendTransaction.
159
+ */
160
+ function signAndSerialize(messageBytes, signers) {
161
+ const signatures = [];
162
+ for (const secretKey of signers) {
163
+ const sig = ed25519.sign(messageBytes, secretKey.slice(0, 32));
164
+ signatures.push(sig);
165
+ }
166
+ const numSigs = encodeCompactU16(signatures.length);
167
+ const wire = concatBytes(numSigs, ...signatures, messageBytes);
168
+ return base58encode(wire);
169
+ }
4
170
  /**
5
171
  * Solana sweep strategy.
6
172
  *
@@ -126,26 +292,80 @@ export class SolanaSweeper {
126
292
  return results;
127
293
  }
128
294
  /**
129
- * Submit a native SOL transfer.
295
+ * Submit a native SOL transfer via SystemProgram.transfer.
130
296
  *
131
- * Builds a SystemProgram.transfer instruction, signs with the deposit keypair,
132
- * and submits via sendTransaction.
297
+ * Builds the instruction manually, signs with Ed25519, and submits via sendTransaction.
133
298
  */
134
299
  async submitSolTransfer(key, treasury, lamports) {
135
- // Get recent blockhash
136
300
  const blockhashResult = (await this.rpc("getLatestBlockhash", [{ commitment: "finalized" }]));
137
- // In production, build + sign the transaction using @solana/web3.js or manual serialization.
138
- // For Phase 1, we use a simplified approach:
139
- throw new Error(`SOL transfer not yet implemented — would send ${lamports} lamports from ${key.address} to ${treasury} with blockhash ${blockhashResult.value.blockhash}`);
301
+ const fromPubkey = base58decode(key.address);
302
+ const toPubkey = base58decode(treasury);
303
+ const systemProgramId = base58decode(SYSTEM_PROGRAM_ID);
304
+ // SystemProgram.Transfer instruction: index 2, followed by u64 lamports
305
+ const ixData = concatBytes(writeU32LE(2), writeU64LE(lamports));
306
+ const message = buildTransactionMessage(blockhashResult.value.blockhash, fromPubkey, [
307
+ {
308
+ programId: systemProgramId,
309
+ accounts: [
310
+ { pubkey: fromPubkey, isSigner: true, isWritable: true },
311
+ { pubkey: toPubkey, isSigner: false, isWritable: true },
312
+ ],
313
+ data: ixData,
314
+ },
315
+ ]);
316
+ // Ed25519 signing requires the 64-byte secret key (32-byte seed + 32-byte pubkey)
317
+ const secretKey = concatBytes(key.privateKey, fromPubkey);
318
+ const serialized = signAndSerialize(message, [secretKey]);
319
+ const result = (await this.rpc("sendTransaction", [serialized, { encoding: "base58" }]));
320
+ return result;
140
321
  }
141
322
  /**
142
323
  * Submit an SPL token transfer.
143
324
  *
144
- * Builds a TokenProgram.transfer instruction for the given mint,
145
- * signs with the deposit keypair, and submits via sendTransaction.
325
+ * Finds or derives the associated token accounts for sender and receiver,
326
+ * then builds a TokenProgram.Transfer instruction.
146
327
  */
147
328
  async submitSplTransfer(key, treasury, mint, amount) {
148
- throw new Error(`SPL transfer not yet implemented — would send ${amount} of ${mint} from ${key.address} to ${treasury}`);
329
+ const blockhashResult = (await this.rpc("getLatestBlockhash", [{ commitment: "finalized" }]));
330
+ const fromPubkey = base58decode(key.address);
331
+ const tokenProgramId = base58decode(TOKEN_PROGRAM_ID);
332
+ // Find sender's token account for this mint
333
+ const senderAccounts = (await this.rpc("getTokenAccountsByOwner", [
334
+ key.address,
335
+ { mint },
336
+ { encoding: "jsonParsed" },
337
+ ]));
338
+ if (senderAccounts.value.length === 0) {
339
+ throw new Error(`No token account found for ${key.address} mint ${mint}`);
340
+ }
341
+ const senderTokenAccount = base58decode(senderAccounts.value[0].pubkey);
342
+ // Find receiver's token account for this mint
343
+ const receiverAccounts = (await this.rpc("getTokenAccountsByOwner", [
344
+ treasury,
345
+ { mint },
346
+ { encoding: "jsonParsed" },
347
+ ]));
348
+ if (receiverAccounts.value.length === 0) {
349
+ throw new Error(`No token account found for treasury ${treasury} mint ${mint} — create ATA first`);
350
+ }
351
+ const receiverTokenAccount = base58decode(receiverAccounts.value[0].pubkey);
352
+ // SPL Token Transfer instruction: index 3, followed by u64 amount
353
+ const ixData = concatBytes(new Uint8Array([3]), writeU64LE(amount));
354
+ const message = buildTransactionMessage(blockhashResult.value.blockhash, fromPubkey, [
355
+ {
356
+ programId: tokenProgramId,
357
+ accounts: [
358
+ { pubkey: senderTokenAccount, isSigner: false, isWritable: true },
359
+ { pubkey: receiverTokenAccount, isSigner: false, isWritable: true },
360
+ { pubkey: fromPubkey, isSigner: true, isWritable: false },
361
+ ],
362
+ data: ixData,
363
+ },
364
+ ]);
365
+ const secretKey = concatBytes(key.privateKey, fromPubkey);
366
+ const serialized = signAndSerialize(message, [secretKey]);
367
+ const result = (await this.rpc("sendTransaction", [serialized, { encoding: "base58" }]));
368
+ return result;
149
369
  }
150
370
  }
151
371
  //# sourceMappingURL=sweeper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sweeper.js","sourceRoot":"","sources":["../../src/solana/sweeper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sweeper.js","sourceRoot":"","sources":["../../src/solana/sweeper.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { IChainWatcher, PaymentEvent, WatcherOpts } from "@wopr-network/platform-core/crypto-plugin";
1
+ import type { IChainWatcher, PaymentEvent, WatcherOpts } from "@wopr-network/platform-crypto-server/plugin";
2
2
  import type { SolanaRpcCall } from "./types.js";
3
3
  /** Create a Solana JSON-RPC caller. */
4
4
  export declare function createSolanaRpcCaller(rpcUrl: string, extraHeaders?: Record<string, string>): SolanaRpcCall;
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/solana/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAiB,aAAa,EAAqB,MAAM,YAAY,CAAC;AAQlF,uCAAuC;AACvC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAiB1G;AAaD;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,aAAa;IAClD,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,iBAAiB,CAAc;gBAE3B,IAAI,EAAE,WAAW;IAavB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAI9C,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,IAAI;IAIZ;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAgDrC,0EAA0E;YAC5D,mBAAmB;IAOjC;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAkDnC;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;CAwDhC"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/solana/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAiB,aAAa,EAAqB,MAAM,YAAY,CAAC;AAQlF,uCAAuC;AACvC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAiB1G;AAaD;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,aAAa;IAClD,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,iBAAiB,CAAc;gBAE3B,IAAI,EAAE,WAAW;IAavB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAI9C,SAAS,IAAI,MAAM;IAInB,IAAI,IAAI,IAAI;IAIZ;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAgDrC,0EAA0E;YAC5D,mBAAmB;IAOjC;;;;;OAKG;IACH,OAAO,CAAC,2BAA2B;IAkDnC;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;CAwDhC"}
@@ -6,7 +6,7 @@
6
6
  * 2. Fund gas -- treasury sends ETH to ERC-20 deposit addresses
7
7
  * 3. Sweep ERC-20s -- deposit addresses send all tokens to treasury
8
8
  */
9
- import type { DepositInfo, ISweepStrategy, KeyPair, SweepResult } from "@wopr-network/platform-core/crypto-plugin";
9
+ import type { DepositInfo, ISweepStrategy, KeyPair, SweepResult } from "@wopr-network/platform-crypto-server/plugin";
10
10
  import { type Address } from "viem";
11
11
  export interface EvmToken {
12
12
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"evm-sweeper.d.ts","sourceRoot":"","sources":["../../src/sweep/evm-sweeper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AACnH,OAAO,EACN,KAAK,OAAO,EAUZ,MAAM,MAAM,CAAC;AAuBd,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,UAAW,YAAW,cAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;gBAElD,IAAI,EAAE,cAAc;IAkB1B,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAyChE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CA0KvF"}
1
+ {"version":3,"file":"evm-sweeper.d.ts","sourceRoot":"","sources":["../../src/sweep/evm-sweeper.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AACrH,OAAO,EACN,KAAK,OAAO,EAUZ,MAAM,MAAM,CAAC;AAuBd,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,UAAW,YAAW,cAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;gBAElD,IAAI,EAAE,cAAc;IAkB1B,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAyChE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CA0KvF"}