hive-stream 3.0.2 → 3.0.4
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.
- package/DOCUMENTATION.md +50 -2
- package/README.md +282 -4
- package/dist/adapters/base.adapter.d.ts +5 -0
- package/dist/adapters/base.adapter.js +9 -0
- package/dist/adapters/base.adapter.js.map +1 -1
- package/dist/adapters/mongodb.adapter.d.ts +6 -6
- package/dist/adapters/mongodb.adapter.js +36 -21
- package/dist/adapters/mongodb.adapter.js.map +1 -1
- package/dist/adapters/postgresql.adapter.d.ts +7 -0
- package/dist/adapters/postgresql.adapter.js +46 -19
- package/dist/adapters/postgresql.adapter.js.map +1 -1
- package/dist/adapters/sqlite.adapter.d.ts +4 -0
- package/dist/adapters/sqlite.adapter.js +10 -0
- package/dist/adapters/sqlite.adapter.js.map +1 -1
- package/dist/api.d.ts +13 -3
- package/dist/api.js +96 -62
- package/dist/api.js.map +1 -1
- package/dist/builders.d.ts +176 -0
- package/dist/builders.js +727 -0
- package/dist/builders.js.map +1 -0
- package/dist/config.d.ts +16 -1
- package/dist/config.js +95 -3
- package/dist/config.js.map +1 -1
- package/dist/contracts/auctionhouse.contract.d.ts +4 -0
- package/dist/contracts/auctionhouse.contract.js +234 -0
- package/dist/contracts/auctionhouse.contract.js.map +1 -0
- package/dist/contracts/booking.contract.d.ts +4 -0
- package/dist/contracts/booking.contract.js +225 -0
- package/dist/contracts/booking.contract.js.map +1 -0
- package/dist/contracts/bountyboard.contract.d.ts +4 -0
- package/dist/contracts/bountyboard.contract.js +233 -0
- package/dist/contracts/bountyboard.contract.js.map +1 -0
- package/dist/contracts/bundlemarketplace.contract.d.ts +4 -0
- package/dist/contracts/bundlemarketplace.contract.js +195 -0
- package/dist/contracts/bundlemarketplace.contract.js.map +1 -0
- package/dist/contracts/charitymatch.contract.d.ts +4 -0
- package/dist/contracts/charitymatch.contract.js +172 -0
- package/dist/contracts/charitymatch.contract.js.map +1 -0
- package/dist/contracts/coinflip.contract.js +25 -22
- package/dist/contracts/coinflip.contract.js.map +1 -1
- package/dist/contracts/crowdfund.contract.d.ts +4 -0
- package/dist/contracts/crowdfund.contract.js +290 -0
- package/dist/contracts/crowdfund.contract.js.map +1 -0
- package/dist/contracts/dcabot.contract.d.ts +4 -0
- package/dist/contracts/dcabot.contract.js +217 -0
- package/dist/contracts/dcabot.contract.js.map +1 -0
- package/dist/contracts/dice.contract.js +25 -22
- package/dist/contracts/dice.contract.js.map +1 -1
- package/dist/contracts/domainregistry.contract.d.ts +4 -0
- package/dist/contracts/domainregistry.contract.js +232 -0
- package/dist/contracts/domainregistry.contract.js.map +1 -0
- package/dist/contracts/exchange.contract.js +209 -168
- package/dist/contracts/exchange.contract.js.map +1 -1
- package/dist/contracts/fanclub.contract.d.ts +4 -0
- package/dist/contracts/fanclub.contract.js +193 -0
- package/dist/contracts/fanclub.contract.js.map +1 -0
- package/dist/contracts/giftcard.contract.d.ts +4 -0
- package/dist/contracts/giftcard.contract.js +158 -0
- package/dist/contracts/giftcard.contract.js.map +1 -0
- package/dist/contracts/grantrounds.contract.d.ts +4 -0
- package/dist/contracts/grantrounds.contract.js +265 -0
- package/dist/contracts/grantrounds.contract.js.map +1 -0
- package/dist/contracts/groupbuy.contract.d.ts +4 -0
- package/dist/contracts/groupbuy.contract.js +198 -0
- package/dist/contracts/groupbuy.contract.js.map +1 -0
- package/dist/contracts/helpers.d.ts +66 -0
- package/dist/contracts/helpers.js +166 -0
- package/dist/contracts/helpers.js.map +1 -0
- package/dist/contracts/insurancepool.contract.d.ts +4 -0
- package/dist/contracts/insurancepool.contract.js +281 -0
- package/dist/contracts/insurancepool.contract.js.map +1 -0
- package/dist/contracts/invoice.contract.d.ts +4 -0
- package/dist/contracts/invoice.contract.js +193 -0
- package/dist/contracts/invoice.contract.js.map +1 -0
- package/dist/contracts/launchpad.contract.d.ts +4 -0
- package/dist/contracts/launchpad.contract.js +225 -0
- package/dist/contracts/launchpad.contract.js.map +1 -0
- package/dist/contracts/lotto.contract.js +53 -37
- package/dist/contracts/lotto.contract.js.map +1 -1
- package/dist/contracts/multisigtreasury.contract.d.ts +4 -0
- package/dist/contracts/multisigtreasury.contract.js +245 -0
- package/dist/contracts/multisigtreasury.contract.js.map +1 -0
- package/dist/contracts/nft.contract.d.ts +1 -0
- package/dist/contracts/nft.contract.js +234 -195
- package/dist/contracts/nft.contract.js.map +1 -1
- package/dist/contracts/oraclebounty.contract.d.ts +4 -0
- package/dist/contracts/oraclebounty.contract.js +250 -0
- package/dist/contracts/oraclebounty.contract.js.map +1 -0
- package/dist/contracts/payroll.contract.d.ts +4 -0
- package/dist/contracts/payroll.contract.js +232 -0
- package/dist/contracts/payroll.contract.js.map +1 -0
- package/dist/contracts/paywall.contract.d.ts +4 -0
- package/dist/contracts/paywall.contract.js +185 -0
- package/dist/contracts/paywall.contract.js.map +1 -0
- package/dist/contracts/poll.contract.js +2 -0
- package/dist/contracts/poll.contract.js.map +1 -1
- package/dist/contracts/predictionmarket.contract.d.ts +4 -0
- package/dist/contracts/predictionmarket.contract.js +213 -0
- package/dist/contracts/predictionmarket.contract.js.map +1 -0
- package/dist/contracts/proposaltimelock.contract.d.ts +4 -0
- package/dist/contracts/proposaltimelock.contract.js +250 -0
- package/dist/contracts/proposaltimelock.contract.js.map +1 -0
- package/dist/contracts/questpass.contract.d.ts +4 -0
- package/dist/contracts/questpass.contract.js +214 -0
- package/dist/contracts/questpass.contract.js.map +1 -0
- package/dist/contracts/referral.contract.d.ts +4 -0
- package/dist/contracts/referral.contract.js +238 -0
- package/dist/contracts/referral.contract.js.map +1 -0
- package/dist/contracts/rental.contract.d.ts +4 -0
- package/dist/contracts/rental.contract.js +221 -0
- package/dist/contracts/rental.contract.js.map +1 -0
- package/dist/contracts/revenuesplit.contract.d.ts +4 -0
- package/dist/contracts/revenuesplit.contract.js +211 -0
- package/dist/contracts/revenuesplit.contract.js.map +1 -0
- package/dist/contracts/rps.contract.js +48 -20
- package/dist/contracts/rps.contract.js.map +1 -1
- package/dist/contracts/savings.contract.d.ts +4 -0
- package/dist/contracts/savings.contract.js +208 -0
- package/dist/contracts/savings.contract.js.map +1 -0
- package/dist/contracts/subscription.contract.d.ts +4 -0
- package/dist/contracts/subscription.contract.js +241 -0
- package/dist/contracts/subscription.contract.js.map +1 -0
- package/dist/contracts/sweepstakes.contract.d.ts +4 -0
- package/dist/contracts/sweepstakes.contract.js +209 -0
- package/dist/contracts/sweepstakes.contract.js.map +1 -0
- package/dist/contracts/ticketing.contract.d.ts +4 -0
- package/dist/contracts/ticketing.contract.js +185 -0
- package/dist/contracts/ticketing.contract.js.map +1 -0
- package/dist/contracts/tipjar.contract.js +2 -0
- package/dist/contracts/tipjar.contract.js.map +1 -1
- package/dist/contracts/token.contract.js +135 -125
- package/dist/contracts/token.contract.js.map +1 -1
- package/dist/index.d.ts +40 -0
- package/dist/index.js +72 -1
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +20 -0
- package/dist/metadata.js +320 -1
- package/dist/metadata.js.map +1 -1
- package/dist/providers/block-provider.d.ts +22 -0
- package/dist/providers/block-provider.js +3 -0
- package/dist/providers/block-provider.js.map +1 -0
- package/dist/providers/haf-client.d.ts +30 -0
- package/dist/providers/haf-client.js +119 -0
- package/dist/providers/haf-client.js.map +1 -0
- package/dist/providers/haf-provider.d.ts +49 -0
- package/dist/providers/haf-provider.js +256 -0
- package/dist/providers/haf-provider.js.map +1 -0
- package/dist/providers/hive-provider.d.ts +13 -0
- package/dist/providers/hive-provider.js +25 -0
- package/dist/providers/hive-provider.js.map +1 -0
- package/dist/providers/index.d.ts +4 -0
- package/dist/providers/index.js +21 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/streamer.d.ts +65 -4
- package/dist/streamer.js +768 -72
- package/dist/streamer.js.map +1 -1
- package/dist/types/hive-stream.d.ts +317 -0
- package/dist/utils.d.ts +33 -0
- package/dist/utils.js +198 -2
- package/dist/utils.js.map +1 -1
- package/package.json +16 -1
- package/.claude/settings.local.json +0 -12
- package/.env.example +0 -3
- package/.travis.yml +0 -11
- package/AGENTS.md +0 -35
- package/CLAUDE.md +0 -75
- package/ecosystem.config.js +0 -17
- package/examples/contracts/README.md +0 -8
- package/examples/contracts/exchange.ts +0 -38
- package/examples/contracts/poll.ts +0 -21
- package/examples/contracts/rps.ts +0 -19
- package/examples/contracts/tipjar.ts +0 -19
- package/jest.config.js +0 -9
- package/test-contract-block.md +0 -19
- package/tests/actions.spec.ts +0 -252
- package/tests/adapters/actions-persistence.spec.ts +0 -144
- package/tests/adapters/postgresql.adapter.spec.ts +0 -127
- package/tests/adapters/sqlite.adapter.spec.ts +0 -181
- package/tests/config-input.spec.ts +0 -90
- package/tests/contracts/coinflip.contract.spec.ts +0 -94
- package/tests/contracts/dice.contract.spec.ts +0 -87
- package/tests/contracts/entrants.json +0 -729
- package/tests/contracts/exchange.contract.spec.ts +0 -84
- package/tests/contracts/lotto.contract.spec.ts +0 -59
- package/tests/contracts/nft.contract.spec.ts +0 -948
- package/tests/contracts/token.contract.spec.ts +0 -90
- package/tests/exchanges/coingecko.exchange.spec.ts +0 -169
- package/tests/exchanges/exchange.base.spec.ts +0 -246
- package/tests/helpers/mock-adapter.ts +0 -214
- package/tests/helpers/mock-fetch.ts +0 -165
- package/tests/hive-chain-features.spec.ts +0 -319
- package/tests/hive-rates.spec.ts +0 -443
- package/tests/integration/hive-rates.integration.spec.ts +0 -35
- package/tests/metadata.spec.ts +0 -63
- package/tests/setup.ts +0 -30
- package/tests/streamer-actions.spec.ts +0 -274
- package/tests/streamer.spec.ts +0 -342
- package/tests/types/rates.spec.ts +0 -216
- package/tests/utils.spec.ts +0 -113
- package/tsconfig.build.json +0 -4
- package/tslint.json +0 -21
- package/wallaby.js +0 -26
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Streamer } from '../../src/streamer';
|
|
2
|
-
import { SqliteAdapter } from '../../src/adapters/sqlite.adapter';
|
|
3
|
-
import { createExchangeContract } from '../../src/contracts/exchange.contract';
|
|
4
|
-
|
|
5
|
-
describe('Exchange Contract', () => {
|
|
6
|
-
let streamer: Streamer;
|
|
7
|
-
let adapter: SqliteAdapter;
|
|
8
|
-
let contract: ReturnType<typeof createExchangeContract>;
|
|
9
|
-
|
|
10
|
-
beforeEach(async () => {
|
|
11
|
-
streamer = new Streamer({
|
|
12
|
-
JSON_ID: 'hivestream',
|
|
13
|
-
PAYLOAD_IDENTIFIER: 'hive_stream'
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
adapter = new SqliteAdapter(':memory:');
|
|
17
|
-
await streamer.registerAdapter(adapter);
|
|
18
|
-
|
|
19
|
-
contract = createExchangeContract({ name: 'exchange' });
|
|
20
|
-
await streamer.registerContract(contract);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
afterEach(async () => {
|
|
24
|
-
await streamer.stop();
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
const baseContext = (trigger: 'custom_json' | 'transfer' | 'time', sender: string) => ({
|
|
28
|
-
trigger,
|
|
29
|
-
streamer,
|
|
30
|
-
adapter,
|
|
31
|
-
config: streamer['config'],
|
|
32
|
-
block: { number: 100, id: 'block', previousId: 'prev', time: new Date() },
|
|
33
|
-
transaction: { id: `trx-${trigger}-${sender}` },
|
|
34
|
-
sender,
|
|
35
|
-
customJson: trigger === 'custom_json' ? { id: 'hivestream', json: {}, isSignedWithActiveKey: true } : undefined,
|
|
36
|
-
transfer: trigger === 'transfer' ? { from: sender, to: 'exchange', rawAmount: '', amount: '', asset: '', memo: '' } : undefined
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test('Deposits, places orders, and matches', async () => {
|
|
40
|
-
await contract.actions.createPair.handler({ base: 'HIVE', quote: 'HBD' }, baseContext('custom_json', 'alice'));
|
|
41
|
-
|
|
42
|
-
const aliceDepositContext = baseContext('transfer', 'alice');
|
|
43
|
-
aliceDepositContext.transfer.rawAmount = '100.000 HBD';
|
|
44
|
-
aliceDepositContext.transfer.amount = '100.000';
|
|
45
|
-
aliceDepositContext.transfer.asset = 'HBD';
|
|
46
|
-
await contract.actions.deposit.handler({}, aliceDepositContext);
|
|
47
|
-
|
|
48
|
-
const bobDepositContext = baseContext('transfer', 'bob');
|
|
49
|
-
bobDepositContext.transfer.rawAmount = '10.000 HIVE';
|
|
50
|
-
bobDepositContext.transfer.amount = '10.000';
|
|
51
|
-
bobDepositContext.transfer.asset = 'HIVE';
|
|
52
|
-
await contract.actions.deposit.handler({}, bobDepositContext);
|
|
53
|
-
|
|
54
|
-
await contract.actions.placeOrder.handler({
|
|
55
|
-
side: 'buy',
|
|
56
|
-
base: 'HIVE',
|
|
57
|
-
quote: 'HBD',
|
|
58
|
-
price: '2',
|
|
59
|
-
amount: '5'
|
|
60
|
-
}, baseContext('custom_json', 'alice'));
|
|
61
|
-
|
|
62
|
-
await contract.actions.placeOrder.handler({
|
|
63
|
-
side: 'sell',
|
|
64
|
-
base: 'HIVE',
|
|
65
|
-
quote: 'HBD',
|
|
66
|
-
price: '2',
|
|
67
|
-
amount: '5'
|
|
68
|
-
}, baseContext('custom_json', 'bob'));
|
|
69
|
-
|
|
70
|
-
await contract.actions.matchOrders.handler({ base: 'HIVE', quote: 'HBD', limit: 10, snapshot: true, depth: 20 }, baseContext('time', 'system'));
|
|
71
|
-
|
|
72
|
-
const aliceHive = await adapter.query('SELECT available, locked FROM exchange_balances WHERE account = ? AND asset = ?', ['alice', 'HIVE']);
|
|
73
|
-
const bobHbd = await adapter.query('SELECT available, locked FROM exchange_balances WHERE account = ? AND asset = ?', ['bob', 'HBD']);
|
|
74
|
-
|
|
75
|
-
expect(aliceHive[0].available).toBe('4.995');
|
|
76
|
-
expect(bobHbd[0].available).toBe('9.980');
|
|
77
|
-
|
|
78
|
-
const snapshots = await adapter.query(
|
|
79
|
-
'SELECT bids, asks FROM exchange_orderbook_snapshots WHERE base_asset = ? AND quote_asset = ?',
|
|
80
|
-
['HIVE', 'HBD']
|
|
81
|
-
);
|
|
82
|
-
expect(snapshots.length).toBeGreaterThan(0);
|
|
83
|
-
});
|
|
84
|
-
});
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { createLottoContract } from './../../src/contracts/lotto.contract';
|
|
2
|
-
import { Streamer } from '../../src/streamer';
|
|
3
|
-
import { createMockAdapter } from '../helpers/mock-adapter';
|
|
4
|
-
|
|
5
|
-
const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
|
|
6
|
-
|
|
7
|
-
describe('Lotto Contract', () => {
|
|
8
|
-
let sut: Streamer;
|
|
9
|
-
let contract: ReturnType<typeof createLottoContract>;
|
|
10
|
-
let adapter: any;
|
|
11
|
-
|
|
12
|
-
beforeEach(async () => {
|
|
13
|
-
sut = new Streamer();
|
|
14
|
-
adapter = createMockAdapter();
|
|
15
|
-
await sut.registerAdapter(adapter);
|
|
16
|
-
|
|
17
|
-
contract = createLottoContract({ name: 'testlotto' });
|
|
18
|
-
|
|
19
|
-
// @ts-ignore
|
|
20
|
-
sut.api = jest.fn();
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
afterEach(async () => {
|
|
24
|
-
await sut.stop();
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
test('Registers the lotto contract', async () => {
|
|
28
|
-
await sut.registerContract(contract);
|
|
29
|
-
|
|
30
|
-
const findContract = sut['contracts'].find(c => c.name === 'testlotto');
|
|
31
|
-
expect(findContract).not.toBeUndefined();
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
test('Buys a lotto ticket and inserts a draw entry', async () => {
|
|
35
|
-
await sut.registerContract(contract);
|
|
36
|
-
|
|
37
|
-
jest.spyOn(sut, 'getTransaction').mockResolvedValue({ test: 123 } as any);
|
|
38
|
-
jest.spyOn(sut, 'verifyTransfer').mockResolvedValue(true as any);
|
|
39
|
-
|
|
40
|
-
const insertSpy = jest.spyOn(adapter, 'insert').mockResolvedValue(true as any);
|
|
41
|
-
jest.spyOn(adapter, 'find').mockResolvedValue([] as any);
|
|
42
|
-
|
|
43
|
-
const memo = JSON.stringify({
|
|
44
|
-
hive_stream: {
|
|
45
|
-
contract: 'testlotto',
|
|
46
|
-
action: 'buy',
|
|
47
|
-
payload: {
|
|
48
|
-
type: 'hourly'
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
await sut.processOperation(['transfer', { from: 'testuser', amount: '10.000 HIVE', memo }], 778782, 'blockid', 'prev', 'trxid', '2019-06-23' as any);
|
|
54
|
-
|
|
55
|
-
await wait(50);
|
|
56
|
-
|
|
57
|
-
expect(insertSpy).toHaveBeenCalled();
|
|
58
|
-
});
|
|
59
|
-
});
|