@shipload/sdk 1.0.0-next.6 → 1.0.0-next.61
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/lib/scan.d.ts +52 -0
- package/lib/scan.js +162 -0
- package/lib/scan.js.map +1 -0
- package/lib/scan.m.js +152 -0
- package/lib/scan.m.js.map +1 -0
- package/lib/shipload.d.ts +3601 -1364
- package/lib/shipload.js +15671 -5261
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +15392 -5209
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +1173 -0
- package/lib/testing.js +4971 -0
- package/lib/testing.js.map +1 -0
- package/lib/testing.m.js +4965 -0
- package/lib/testing.m.js.map +1 -0
- package/package.json +20 -2
- package/src/capabilities/craftable.test.ts +82 -0
- package/src/capabilities/craftable.ts +82 -0
- package/src/capabilities/crafting.test.ts +35 -0
- package/src/capabilities/crafting.ts +34 -7
- package/src/capabilities/gathering.test.ts +29 -0
- package/src/capabilities/gathering.ts +37 -19
- package/src/capabilities/hauling.ts +0 -5
- package/src/capabilities/index.ts +0 -1
- package/src/capabilities/modules.ts +27 -30
- package/src/capabilities/movement.ts +1 -1
- package/src/capabilities/storage.ts +16 -1
- package/src/contracts/platform.ts +231 -3
- package/src/contracts/server.ts +1518 -501
- package/src/coordinates/address.ts +88 -0
- package/src/coordinates/constants.test.ts +15 -0
- package/src/coordinates/constants.ts +23 -0
- package/src/coordinates/index.ts +15 -0
- package/src/coordinates/memo.test.ts +47 -0
- package/src/coordinates/memo.ts +20 -0
- package/src/coordinates/permutation.ts +77 -0
- package/src/coordinates/regions.ts +48 -0
- package/src/coordinates/sectors.ts +115 -0
- package/src/data/capabilities.ts +49 -18
- package/src/data/capability-formulas.ts +26 -14
- package/src/data/catalog.ts +7 -8
- package/src/data/colors.ts +14 -48
- package/src/data/entities.json +380 -15
- package/src/data/item-ids.ts +51 -13
- package/src/data/items.json +318 -77
- package/src/data/kind-registry.json +195 -0
- package/src/data/kind-registry.ts +182 -0
- package/src/data/metadata.ts +291 -51
- package/src/data/recipes-runtime.ts +6 -23
- package/src/data/recipes.json +2260 -173
- package/src/data/tiers.ts +9 -6
- package/src/derivation/build-methods.test.ts +13 -0
- package/src/derivation/build-methods.ts +48 -0
- package/src/derivation/capabilities.test.ts +348 -0
- package/src/derivation/capabilities.ts +693 -0
- package/src/derivation/capability-mappings.ts +60 -16
- package/src/derivation/crafting.test.ts +17 -0
- package/src/derivation/crafting.ts +57 -34
- package/src/derivation/index.ts +27 -2
- package/src/derivation/recipe-usage.test.ts +90 -0
- package/src/derivation/recipe-usage.ts +141 -0
- package/src/derivation/reserve-regen.ts +34 -0
- package/src/derivation/resources.ts +9 -1
- package/src/derivation/rollups.test.ts +55 -0
- package/src/derivation/rollups.ts +72 -0
- package/src/derivation/stars.test.ts +67 -0
- package/src/derivation/stars.ts +25 -0
- package/src/derivation/stat-scaling.ts +12 -0
- package/src/derivation/stats.ts +6 -6
- package/src/derivation/stratum.ts +26 -22
- package/src/derivation/tiers.ts +40 -7
- package/src/derivation/upgrades.ts +14 -0
- package/src/derivation/wormhole.ts +154 -0
- package/src/entities/entity.ts +102 -0
- package/src/entities/gamestate.ts +3 -28
- package/src/entities/makers.ts +141 -135
- package/src/entities/slot-multiplier.ts +43 -0
- package/src/errors.ts +12 -16
- package/src/format.ts +26 -4
- package/src/index-module.ts +333 -35
- package/src/managers/actions.ts +668 -103
- package/src/managers/base.ts +6 -2
- package/src/managers/cluster.test.ts +39 -0
- package/src/managers/cluster.ts +53 -0
- package/src/managers/construction-types.ts +80 -0
- package/src/managers/construction.ts +443 -0
- package/src/managers/context.ts +29 -1
- package/src/managers/coordinates.ts +14 -0
- package/src/managers/entities.ts +27 -66
- package/src/managers/epochs.ts +40 -0
- package/src/managers/index.ts +20 -1
- package/src/managers/locations.ts +25 -29
- package/src/managers/nft.test.ts +14 -0
- package/src/managers/nft.ts +70 -0
- package/src/managers/players.ts +25 -0
- package/src/managers/plot.ts +122 -0
- package/src/nft/atomicassets.abi.json +1342 -0
- package/src/nft/atomicassets.ts +237 -0
- package/src/nft/atomicdata.ts +130 -0
- package/src/nft/buildImmutableData.ts +388 -0
- package/src/nft/description.ts +215 -99
- package/src/nft/index.ts +3 -0
- package/src/planner/index.ts +242 -0
- package/src/planner/planner.test.ts +334 -0
- package/src/resolution/describe-module.ts +43 -25
- package/src/resolution/display-name.ts +38 -10
- package/src/resolution/resolve-item.test.ts +48 -0
- package/src/resolution/resolve-item.ts +112 -58
- package/src/scan/index.ts +244 -0
- package/src/scan/scan-wasm.base64.ts +2 -0
- package/src/scheduling/accessor.ts +65 -23
- package/src/scheduling/availability.test.ts +204 -0
- package/src/scheduling/availability.ts +211 -0
- package/src/scheduling/cancel.test.ts +542 -0
- package/src/scheduling/cancel.ts +254 -0
- package/src/scheduling/cluster-stock.test.ts +31 -0
- package/src/scheduling/cluster-stock.ts +15 -0
- package/src/scheduling/energy.ts +47 -0
- package/src/scheduling/idle-resolve.ts +45 -0
- package/src/scheduling/jobs.ts +71 -0
- package/src/scheduling/lane-core.ts +128 -0
- package/src/scheduling/lanes.test.ts +250 -0
- package/src/scheduling/lanes.ts +227 -0
- package/src/scheduling/projection.ts +257 -133
- package/src/scheduling/schedule.test.ts +119 -0
- package/src/scheduling/schedule.ts +257 -117
- package/src/scheduling/task-cargo.test.ts +44 -0
- package/src/scheduling/task-cargo.ts +46 -0
- package/src/scheduling/unwrap.test.ts +86 -0
- package/src/scheduling/unwrap.ts +190 -0
- package/src/shipload.ts +26 -1
- package/src/subscriptions/manager.cluster.test.ts +51 -0
- package/src/subscriptions/manager.ts +245 -172
- package/src/subscriptions/mappers.ts +5 -8
- package/src/subscriptions/types.ts +28 -3
- package/src/testing/catalog-hash.ts +19 -0
- package/src/testing/index.ts +2 -0
- package/src/testing/projection-parity.ts +167 -0
- package/src/travel/reach.ts +21 -0
- package/src/travel/route-planner.ts +288 -0
- package/src/travel/route-simulator.ts +170 -0
- package/src/travel/travel.ts +188 -122
- package/src/types/capabilities.ts +37 -8
- package/src/types/entity.ts +3 -3
- package/src/types/index.ts +0 -1
- package/src/types.ts +51 -16
- package/src/utils/cargo.test.ts +14 -0
- package/src/utils/cargo.ts +29 -0
- package/src/utils/display-name.ts +70 -0
- package/src/utils/system.ts +15 -16
- package/src/capabilities/loading.ts +0 -8
- package/src/entities/container.ts +0 -123
- package/src/entities/ship-deploy.ts +0 -295
- package/src/entities/ship.ts +0 -221
- package/src/entities/warehouse.ts +0 -127
- package/src/types/entity-traits.ts +0 -69
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {UInt32} from '@wharfkit/antelope'
|
|
2
2
|
import {CRAFT_ENERGY_DIVISOR} from '../types'
|
|
3
|
-
import type {EntityCapabilities} from '../types/capabilities'
|
|
4
|
-
import type {ServerContract} from '../contracts'
|
|
3
|
+
import type {CrafterStats, EntityCapabilities} from '../types/capabilities'
|
|
5
4
|
|
|
6
5
|
export interface CrafterCapability {
|
|
7
|
-
crafter:
|
|
6
|
+
crafter: CrafterStats
|
|
8
7
|
}
|
|
9
8
|
|
|
10
9
|
export function capsHasCrafter(caps: EntityCapabilities): boolean {
|
|
@@ -13,10 +12,38 @@ export function capsHasCrafter(caps: EntityCapabilities): boolean {
|
|
|
13
12
|
|
|
14
13
|
export function calc_craft_duration(speed: number, totalInputMass: number): UInt32 {
|
|
15
14
|
const duration = Math.floor(totalInputMass / speed)
|
|
16
|
-
return UInt32.from(
|
|
15
|
+
return UInt32.from(duration + 1)
|
|
17
16
|
}
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
// Mirrors contract config.hpp INTAKE_RATE (provisional; a numbers pass will retune it).
|
|
19
|
+
export const INTAKE_RATE = 36000
|
|
20
|
+
|
|
21
|
+
// Mirrors calc_cluster_intake: whole seconds of intake for cargo sourced off other cluster members.
|
|
22
|
+
export function calcClusterIntake(sourcedMass: number): number {
|
|
23
|
+
return Math.floor(sourcedMass / INTAKE_RATE)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Mirrors clustercraft duration: base craft duration + intake time.
|
|
27
|
+
export function calcClustercraftDuration(
|
|
28
|
+
speed: number,
|
|
29
|
+
totalInputMass: number,
|
|
30
|
+
sourcedMass: number
|
|
31
|
+
): UInt32 {
|
|
32
|
+
return UInt32.from(
|
|
33
|
+
calc_craft_duration(speed, totalInputMass).toNumber() + calcClusterIntake(sourcedMass)
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function calc_craft_energy(drain: number, totalInputMass: number): UInt32 {
|
|
20
38
|
const raw = Math.floor((totalInputMass * drain) / CRAFT_ENERGY_DIVISOR)
|
|
21
|
-
return
|
|
39
|
+
return UInt32.from(Math.min(Math.max(raw + 1, 1000), 4294967295))
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Craft-identical today; forked so build balance can diverge from craft without touching it.
|
|
43
|
+
export function calc_build_duration(speed: number, totalInputMass: number): UInt32 {
|
|
44
|
+
return calc_craft_duration(speed, totalInputMass)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function calc_build_energy(drain: number, totalInputMass: number): UInt32 {
|
|
48
|
+
return calc_craft_energy(drain, totalInputMass)
|
|
22
49
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {expect, test} from 'bun:test'
|
|
2
|
+
import type {GathererStats} from '../types/capabilities'
|
|
3
|
+
import {calc_gather_duration, calc_gather_energy} from './gathering'
|
|
4
|
+
|
|
5
|
+
function gatherer(drain: number): GathererStats {
|
|
6
|
+
return {
|
|
7
|
+
yield: {toNumber: () => 1},
|
|
8
|
+
drain: {toNumber: () => drain},
|
|
9
|
+
depth: {toNumber: () => 0, toString: () => '0'},
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
test('calc_gather_energy does not clamp above the old uint16 ceiling', () => {
|
|
14
|
+
const energy = calc_gather_energy(gatherer(30), 400_000_000)
|
|
15
|
+
expect(Number(energy)).toBeGreaterThan(65535)
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
test('splitting a bulk gather never undercuts total lane-time', () => {
|
|
19
|
+
const g: GathererStats = {
|
|
20
|
+
yield: {toNumber: () => 413},
|
|
21
|
+
drain: {toNumber: () => 30},
|
|
22
|
+
depth: {toNumber: () => 0, toString: () => '0'},
|
|
23
|
+
}
|
|
24
|
+
const bulk = Number(calc_gather_duration(g, 1000, 10, 8, 500))
|
|
25
|
+
const unit = Number(calc_gather_duration(g, 1000, 1, 8, 500))
|
|
26
|
+
// d1 >= 1 regime (bulk > quantity), where the split exploit lived
|
|
27
|
+
expect(bulk).toBeGreaterThan(10)
|
|
28
|
+
expect(unit * 10).toBeGreaterThanOrEqual(bulk)
|
|
29
|
+
})
|
|
@@ -1,36 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
1
|
+
import {UInt32} from '@wharfkit/antelope'
|
|
2
|
+
import type {GathererStats} from '../types/capabilities'
|
|
3
3
|
import {PRECISION} from '../types'
|
|
4
4
|
|
|
5
5
|
const GATHER_TIME_SCALE = 100
|
|
6
|
+
export const GATHER_MASS_DIVISOR = 228
|
|
6
7
|
const DEPTH_PENALTY_DIVISOR = 5000
|
|
7
|
-
const SPEED_TIME_SCALE = 300
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
gatherer:
|
|
9
|
+
function gather_duration_raw(
|
|
10
|
+
gatherer: GathererStats,
|
|
11
11
|
itemMass: number,
|
|
12
12
|
quantity: number,
|
|
13
13
|
stratum: number,
|
|
14
14
|
richness: number
|
|
15
|
-
):
|
|
15
|
+
): number {
|
|
16
16
|
const yieldValue = gatherer.yield.toNumber()
|
|
17
|
-
const speed = gatherer.speed.toNumber()
|
|
18
17
|
|
|
19
|
-
if (yieldValue === 0 ||
|
|
18
|
+
if (yieldValue === 0 || richness === 0) return 0
|
|
20
19
|
|
|
21
|
-
const massFactor =
|
|
20
|
+
const massFactor = itemMass / GATHER_MASS_DIVISOR
|
|
22
21
|
const depthPenalty = 1 + stratum / DEPTH_PENALTY_DIVISOR
|
|
23
22
|
const richnessMul = richness / 1000
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
return (quantity * massFactor * GATHER_TIME_SCALE * depthPenalty) / (yieldValue * richnessMul)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function calc_gather_duration(
|
|
27
|
+
gatherer: GathererStats,
|
|
28
|
+
itemMass: number,
|
|
29
|
+
quantity: number,
|
|
30
|
+
stratum: number,
|
|
31
|
+
richness: number
|
|
32
|
+
): UInt32 {
|
|
33
|
+
const raw = gather_duration_raw(gatherer, itemMass, quantity, stratum, richness)
|
|
34
|
+
// +1 per-gather setup cost mirrors the contract: splitting a bulk gather must not undercut lane-time
|
|
35
|
+
return UInt32.from(raw <= 0 ? 0 : Math.floor(raw) + 1)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function calc_gather_rate(
|
|
39
|
+
gatherer: GathererStats,
|
|
40
|
+
itemMass: number,
|
|
41
|
+
stratum: number,
|
|
42
|
+
richness: number
|
|
43
|
+
): {unitsPerSec: number; unitsPerMin: number; secPerUnit: number} {
|
|
44
|
+
const secPerUnit = gather_duration_raw(gatherer, itemMass, 1, stratum, richness)
|
|
45
|
+
if (secPerUnit <= 0) return {unitsPerSec: 0, unitsPerMin: 0, secPerUnit: 0}
|
|
46
|
+
const unitsPerSec = 1 / secPerUnit
|
|
47
|
+
return {unitsPerSec, unitsPerMin: unitsPerSec * 60, secPerUnit}
|
|
28
48
|
}
|
|
29
49
|
|
|
30
|
-
export function calc_gather_energy(
|
|
31
|
-
|
|
32
|
-
duration
|
|
33
|
-
)
|
|
34
|
-
const energy = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION)
|
|
35
|
-
return UInt16.from(energy)
|
|
50
|
+
export function calc_gather_energy(gatherer: GathererStats, duration: number): UInt32 {
|
|
51
|
+
if (duration <= 0) return UInt32.from(0)
|
|
52
|
+
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION)
|
|
53
|
+
return UInt32.from(Math.min(Math.max(raw, 1000), 4294967295))
|
|
36
54
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const BASE_HAUL_PENALTY_MILLI = 300
|
|
2
2
|
const HAULER_EFFICIENCY_DENOM = 10000
|
|
3
|
-
const PRECISION = 10000
|
|
4
3
|
|
|
5
4
|
export function computeHaulPenalty(
|
|
6
5
|
totalThrust: number,
|
|
@@ -16,7 +15,3 @@ export function computeHaulPenalty(
|
|
|
16
15
|
)
|
|
17
16
|
return Math.floor((totalThrust * 1000) / penaltyMilli)
|
|
18
17
|
}
|
|
19
|
-
|
|
20
|
-
export function computeHaulerDrain(distance: number, drain: number, haulCount: number): number {
|
|
21
|
-
return Math.floor(distance / PRECISION) * drain * haulCount
|
|
22
|
-
}
|
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
ITEM_ENGINE_T1,
|
|
4
|
-
ITEM_GATHERER_T1,
|
|
5
|
-
ITEM_GENERATOR_T1,
|
|
6
|
-
ITEM_HAULER_T1,
|
|
7
|
-
ITEM_LOADER_T1,
|
|
8
|
-
ITEM_STORAGE_T1,
|
|
9
|
-
ITEM_WARP_T1,
|
|
10
|
-
} from '../data/item-ids'
|
|
1
|
+
import {getItem, tryGetItem} from '../data/catalog'
|
|
2
|
+
import type {EntitySlot} from '../data/recipes-runtime'
|
|
11
3
|
|
|
12
4
|
export const MODULE_ANY = 0
|
|
13
5
|
export const MODULE_ENGINE = 1
|
|
@@ -19,6 +11,9 @@ export const MODULE_CRAFTER = 6
|
|
|
19
11
|
export const MODULE_LAUNCHER = 7
|
|
20
12
|
export const MODULE_STORAGE = 8
|
|
21
13
|
export const MODULE_HAULER = 9
|
|
14
|
+
export const MODULE_BATTERY = 10
|
|
15
|
+
export const MODULE_BUILDER = 12
|
|
16
|
+
export const MODULE_AUX = 13
|
|
22
17
|
|
|
23
18
|
export interface PackedModule {
|
|
24
19
|
itemId: number
|
|
@@ -31,30 +26,19 @@ export interface ModuleEntry {
|
|
|
31
26
|
}
|
|
32
27
|
|
|
33
28
|
export function moduleAccepts(slotType: number, moduleType: number): boolean {
|
|
29
|
+
if (slotType === MODULE_AUX) {
|
|
30
|
+
return (
|
|
31
|
+
moduleType === MODULE_GENERATOR ||
|
|
32
|
+
moduleType === MODULE_ENGINE ||
|
|
33
|
+
moduleType === MODULE_BATTERY
|
|
34
|
+
)
|
|
35
|
+
}
|
|
34
36
|
return slotType === MODULE_ANY || slotType === moduleType
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
export function getModuleCapabilityType(itemId: number): number {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return MODULE_ENGINE
|
|
41
|
-
case ITEM_GENERATOR_T1:
|
|
42
|
-
return MODULE_GENERATOR
|
|
43
|
-
case ITEM_GATHERER_T1:
|
|
44
|
-
return MODULE_GATHERER
|
|
45
|
-
case ITEM_LOADER_T1:
|
|
46
|
-
return MODULE_LOADER
|
|
47
|
-
case ITEM_CRAFTER_T1:
|
|
48
|
-
return MODULE_CRAFTER
|
|
49
|
-
case ITEM_STORAGE_T1:
|
|
50
|
-
return MODULE_STORAGE
|
|
51
|
-
case ITEM_HAULER_T1:
|
|
52
|
-
return MODULE_HAULER
|
|
53
|
-
case ITEM_WARP_T1:
|
|
54
|
-
return MODULE_WARP
|
|
55
|
-
default:
|
|
56
|
-
return 0xff
|
|
57
|
-
}
|
|
40
|
+
const item = tryGetItem(itemId)
|
|
41
|
+
return item?.type === 'module' && item.moduleType ? moduleSlotTypeToCode(item.moduleType) : 0xff
|
|
58
42
|
}
|
|
59
43
|
|
|
60
44
|
export function isModuleItem(itemId: number): boolean {
|
|
@@ -77,13 +61,26 @@ export function moduleSlotTypeToCode(slotType: string): number {
|
|
|
77
61
|
return MODULE_WARP
|
|
78
62
|
case 'crafter':
|
|
79
63
|
return MODULE_CRAFTER
|
|
64
|
+
case 'builder':
|
|
65
|
+
return MODULE_BUILDER
|
|
80
66
|
case 'launcher':
|
|
81
67
|
return MODULE_LAUNCHER
|
|
82
68
|
case 'storage':
|
|
83
69
|
return MODULE_STORAGE
|
|
84
70
|
case 'hauler':
|
|
85
71
|
return MODULE_HAULER
|
|
72
|
+
case 'battery':
|
|
73
|
+
return MODULE_BATTERY
|
|
74
|
+
case 'aux':
|
|
75
|
+
return MODULE_AUX
|
|
86
76
|
default:
|
|
87
77
|
return MODULE_ANY
|
|
88
78
|
}
|
|
89
79
|
}
|
|
80
|
+
|
|
81
|
+
export function slotAcceptsModule(slot: EntitySlot, moduleItemId: number): boolean {
|
|
82
|
+
const moduleType = getModuleCapabilityType(moduleItemId)
|
|
83
|
+
if (moduleType === 0xff) return false
|
|
84
|
+
if (!moduleAccepts(moduleSlotTypeToCode(slot.type), moduleType)) return false
|
|
85
|
+
return getItem(moduleItemId).tier <= slot.maxTier
|
|
86
|
+
}
|
|
@@ -9,7 +9,7 @@ export function maxTravelDistance(entity: MovementCapability): UInt32 {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export function calcEnergyUsage(entity: MovementCapability, distance: UInt64): UInt64 {
|
|
12
|
-
return distance.
|
|
12
|
+
return distance.multiplying(entity.engines.drain).dividing(PRECISION)
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export function hasEnergyForDistance(
|
|
@@ -97,7 +97,7 @@ export function cargoItemToStack(item: ServerContract.Types.cargo_item): CargoSt
|
|
|
97
97
|
return {
|
|
98
98
|
item_id: UInt16.from(item.item_id),
|
|
99
99
|
quantity: UInt32.from(item.quantity),
|
|
100
|
-
stats: item.stats,
|
|
100
|
+
stats: UInt64.from(item.stats),
|
|
101
101
|
modules: item.modules ?? [],
|
|
102
102
|
}
|
|
103
103
|
}
|
|
@@ -157,3 +157,18 @@ export function removeFromStacks(stacks: CargoStack[], remove: CargoStack): Carg
|
|
|
157
157
|
result[idx] = {...target, quantity: remaining}
|
|
158
158
|
return result
|
|
159
159
|
}
|
|
160
|
+
|
|
161
|
+
// Tolerant subtraction mirroring the contract's subtract_cargo (projection replay): missing or oversized removal clamps to zero, never throws.
|
|
162
|
+
export function subtractFromStacks(stacks: CargoStack[], remove: CargoStack): CargoStack[] {
|
|
163
|
+
const idx = stacks.findIndex((s) => stackIdentityEqual(s, remove))
|
|
164
|
+
if (idx === -1) {
|
|
165
|
+
return stacks
|
|
166
|
+
}
|
|
167
|
+
const target = stacks[idx]
|
|
168
|
+
if (target.quantity.lte(remove.quantity)) {
|
|
169
|
+
return [...stacks.slice(0, idx), ...stacks.slice(idx + 1)]
|
|
170
|
+
}
|
|
171
|
+
const result = stacks.slice()
|
|
172
|
+
result[idx] = {...target, quantity: UInt32.from(target.quantity.subtracting(remove.quantity))}
|
|
173
|
+
return result
|
|
174
|
+
}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
Action,
|
|
3
|
+
AssetType,
|
|
4
|
+
Checksum256Type,
|
|
5
|
+
ExtendedAssetType,
|
|
6
|
+
NameType,
|
|
7
|
+
UInt32Type,
|
|
8
|
+
UInt64Type,
|
|
9
|
+
} from '@wharfkit/antelope'
|
|
2
10
|
import {
|
|
3
11
|
ABI,
|
|
12
|
+
Asset,
|
|
4
13
|
Blob,
|
|
5
14
|
Checksum256,
|
|
15
|
+
ExtendedAsset,
|
|
6
16
|
Name,
|
|
7
17
|
Struct,
|
|
8
18
|
TimePointSec,
|
|
@@ -12,10 +22,17 @@ import {
|
|
|
12
22
|
import type {ActionOptions, ContractArgs, PartialBy, Table} from '@wharfkit/contract'
|
|
13
23
|
import {Contract as BaseContract} from '@wharfkit/contract'
|
|
14
24
|
export const abiBlob = Blob.from(
|
|
15
|
-
'DmVvc2lvOjphYmkvMS4yAA0KY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAplbmFibGVnYW1lAAIIY29udHJhY3QEbmFtZQdlbmFibGVkBGJvb2wMZm91bmRjb21wYW55AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nC2dhbWVfY29uZmlnAAQEc2VlZAtjaGVja3N1bTI1NgllcG9jaHRpbWUGdWludDMyBXN0YXJ0DnRpbWVfcG9pbnRfc2VjA2VuZA50aW1lX3BvaW50X3NlYwlnYW1lX21ldGEABARuYW1lBnN0cmluZwtkZXNjcmlwdGlvbgZzdHJpbmcDdXJsBnN0cmluZwd2ZXJzaW9uBnN0cmluZwhnYW1lX3JvdwAECGNvbnRyYWN0BG5hbWUGY29uZmlnC2dhbWVfY29uZmlnBG1ldGEJZ2FtZV9tZXRhBXN0YXRlCmdhbWVfc3RhdGUKZ2FtZV9zdGF0ZQABB2VuYWJsZWQEYm9vbAlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAHAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAACoeMxUBmVuYWJsZfMBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2FibGUgcGxhdGZvcm0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgcGxhdGZvcm0gY29udHJhY3QuAICShql4zFQKZW5hYmxlZ2FtZfwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZWdhbWUKc3VtbWFyeTogJ0VuYWJsZS9kaXNiYWJsZSBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3Qu4KepkqI0NV0MZm91bmRjb21wYW55gwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZm91bmRjb21wYW55CnN1bW1hcnk6ICdGb3VuZCBhIG5ldyBjb21wYW55JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRm91bmQgYSBuZXcgY29tcGFueSBpbiB0aGUgU2hpcGxvYWQgcGxhdGZvcm0gY29udHJhY3QuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AgJKGqWxS1Qp1cGRhdGVnYW1ljQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBkYXRlZ2FtZQpzdW1tYXJ5OiAnVXBkYXRlIGdhbWUgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpVcGRhdGUgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0DAAAAwE9TJUUDaTY0AAALY29tcGFueV9yb3cAAAAAAKykYQNpNjQAAAhnYW1lX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA=='
|
|
25
|
+
'DmVvc2lvOjphYmkvMS4yAB0LYmFsYW5jZV9yb3cAAg50b2tlbl9jb250cmFjdARuYW1lB2JhbGFuY2UFYXNzZXQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BWNsb3NlAAMFb3duZXIEbmFtZQ50b2tlbl9jb250cmFjdARuYW1lDHRva2VuX3N5bWJvbAZzeW1ib2wLY29tcGFueV9yb3cAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcMZGViaXRkZXBvc2l0AAUFb3duZXIEbmFtZQV0b2tlbgRuYW1lBmxvY2tlZAVhc3NldAtmZWVfYWNjb3VudARuYW1lA2ZlZQVhc3NldA5kZXBvc2l0Y2ZnX3JvdwACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAZlbmFibGUAAQdlbmFibGVkBGJvb2wKZW5hYmxlZ2FtZQACCGNvbnRyYWN0BG5hbWUHZW5hYmxlZARib29sDGZvdW5kY29tcGFueQACB2FjY291bnQEbmFtZQRuYW1lBnN0cmluZwtnYW1lX2NvbmZpZwAEBHNlZWQLY2hlY2tzdW0yNTYJZXBvY2h0aW1lBnVpbnQzMgVzdGFydA50aW1lX3BvaW50X3NlYwNlbmQOdGltZV9wb2ludF9zZWMJZ2FtZV9tZXRhAAQEbmFtZQZzdHJpbmcLZGVzY3JpcHRpb24Gc3RyaW5nA3VybAZzdHJpbmcHdmVyc2lvbgZzdHJpbmcIZ2FtZV9yb3cABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCmdhbWVfc3RhdGUAAQdlbmFibGVkBGJvb2wEb3BlbgADBW93bmVyBG5hbWUOdG9rZW5fY29udHJhY3QEbmFtZQx0b2tlbl9zeW1ib2wGc3ltYm9sDHJlbGdhdGVhc3NldAABCGFzc2V0X2lkBnVpbnQ2NAxyZWxnYXRlb3duZXIAAQVvd25lcgRuYW1lDHNldGVwb2NodGltZQACCGNvbnRyYWN0BG5hbWUJZXBvY2h0aW1lBnVpbnQzMghzZXR0b2tlbgACDnRva2VuX2NvbnRyYWN0BG5hbWUMdG9rZW5fc3ltYm9sBnN5bWJvbAlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAt1bndyYXBjYXJnbwADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA51bndyYXBjdXN0X3JvdwACCGFzc2V0X2lkBnVpbnQ2NAVvd25lcgRuYW1lDHVud3JhcGVudGl0eQADBGdhbWUEbmFtZQVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAId2l0aGRyYXcAAwVvd25lcgRuYW1lCHF1YW50aXR5DmV4dGVuZGVkX2Fzc2V0BG1lbW8Gc3RyaW5nCXdyYXBjYXJnbwAGBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0CGNhcmdvX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQKd3JhcGVudGl0eQAEBGdhbWUEbmFtZQVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHdyYXBnYXRlX3JvdwADBW93bmVyBG5hbWUEZ2FtZQRuYW1lDWxhc3RfYXNzZXRfaWQGdWludDY0EwCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAAIVpRAVjbG9zZeICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsb3NlCnN1bW1hcnk6ICdDbG9zZSBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpDbG9zZSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2Ugcm93IGZvciB0aGUgZ2l2ZW4gdG9rZW4gYW5kIGZyZWUgaXRzIFJBTS4gVGhlIGJhbGFuY2UgbXVzdCBiZSB6ZXJvIGJlZm9yZSBjbG9zaW5nLiBSZXF1aXJlcyB0aGUgb3duZXIncyBhdXRob3JpdHkukB2mVaXsjkoMZGViaXRkZXBvc2l0nQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGViaXRkZXBvc2l0CnN1bW1hcnk6ICdEZWJpdCBhIGRlcG9zaXQgYmFsYW5jZSBmb3IgYSB3cmFwIG9wZXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IGEgcmVnaXN0ZXJlZCwgZW5hYmxlZCBnYW1lIGNvbnRyYWN0IG9ubHkuIERlYml0cyB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UgYnkgdGhlIGxvY2tlZCBhbW91bnQgcGx1cyB0aGUgZmVlLCBhbmQgY3JlZGl0cyB0aGUgZmVlIHRvIHRoZSBjb25maWd1cmVkIGZlZSBhY2NvdW50LiBVc2VkIGJ5IGEgZ2FtZSdzIHdyYXAgZmxvdyB0byBjb2xsZWN0IHRoZSB3cmFwIGNvc3QuIENhbm5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgcGxheWVycyBvciB1bnJlZ2lzdGVyZWQgYWNjb3VudHMuAAAAAKh4zFQGZW5hYmxl8wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdFbmFibGUvZGlzYWJsZSBwbGF0Zm9ybScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBwbGF0Zm9ybSBjb250cmFjdC4AgJKGqXjMVAplbmFibGVnYW1l/AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlZ2FtZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2JhYmxlIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC7gp6mSojQ1XQxmb3VuZGNvbXBhbnmDAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3VuZGNvbXBhbnkKc3VtbWFyeTogJ0ZvdW5kIGEgbmV3IGNvbXBhbnknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpGb3VuZCBhIG5ldyBjb21wYW55IGluIHRoZSBTaGlwbG9hZCBwbGF0Zm9ybSBjb250cmFjdC4AAAAAADBVpQRvcGVumwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogb3BlbgpzdW1tYXJ5OiAnT3BlbiBhIGRlcG9zaXQgYmFsYW5jZSByb3cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpPcGVuIGEgemVyby1iYWxhbmNlIGRlcG9zaXQgcm93IGZvciB0aGUgZ2l2ZW4gb3duZXIgYW5kIHRva2VuLCB3aXRoIFJBTSBwYWlkIGJ5IHRoZSBvd25lci4gSGFzIG5vIGVmZmVjdCBpZiB0aGUgcm93IGFscmVhZHkgZXhpc3RzLiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIG93bmVyIGNhbiByZWNlaXZlIHRva2VuIGRlcG9zaXRzIG9yIHdyYXAgcmVmdW5kcy6QFcZGZcOiugxyZWxnYXRlYXNzZXQAcNXkVGXDoroMcmVsZ2F0ZW93bmVyAKCkyw3RqrLCDHNldGVwb2NodGltZcQCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldGVwb2NodGltZQpzdW1tYXJ5OiAnREVCVUc6IG92ZXJyaWRlIGEgZ2FtZScncyBlcG9jaCB0aW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpPdmVycmlkZSB0aGUgZXBvY2ggZHVyYXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNwZWNpZmllZCBnYW1lIGNvbnRyYWN0LiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAAAAU0Gas8IIc2V0dG9rZW6dAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXR0b2tlbgpzdW1tYXJ5OiAnU2V0IHRoZSBhY2NlcHRlZCBkZXBvc2l0IHRva2VuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKQWRtaW4gYWN0aW9uIHRoYXQgc2V0cyB0aGUgYWNjZXB0ZWQgZGVwb3NpdCB0b2tlbiAoY29udHJhY3QgYWNjb3VudCBhbmQgc3ltYm9sKSBmb3IgdGhlIHBsYXRmb3JtLiBBbGwgcGxheWVyIGRlcG9zaXRzIGFuZCB3cmFwIGNvc3RzIGFyZSBkZW5vbWluYXRlZCBpbiB0aGlzIHRva2VuLiBSZXF1aXJlcyBwbGF0Zm9ybSBjb250cmFjdCBhdXRob3JpdHkuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AKLsGVXP51At1bndyYXBjYXJnb88ELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVud3JhcGNhcmdvCnN1bW1hcnk6ICdEZXBvc2l0IGFuIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlcG9zaXQgYW4gQXRvbWljQXNzZXRzIE5GVCBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnby4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAndW53cmFwJyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgY2FsbGVyIG11c3Qgb3duIHRoZSBob3N0LCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycywgYW5kIHRoZSBob3N0IG11c3QgaGF2ZSBjYXBhY2l0eSBoZWFkcm9vbSBmb3IgdGhlIHVud3JhcHBlZCBtYXNzLiBTY2hlZHVsZXMgYSBUQVNLX1VOV1JBUCBvbiB0aGUgaG9zdCB0aGF0LCBvbiByZXNvbHV0aW9uLCBwbGFjZXMgdGhlIGRlY29kZWQgaXRlbSBpbnRvIHRoZSBob3N0J3MgY2FyZ28gYW5kIGJ1cm5zIHRoZSBORlQu4LPLU1Vz+dQMdW53cmFwZW50aXR54gQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW53cmFwZW50aXR5CnN1bW1hcnk6ICdEZXBsb3kgYW4gZW50aXR5IE5GVCBkaXJlY3RseSB0byBhIG5leHVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZXBsb3kgYSBwYWNrZWQtZW50aXR5IEF0b21pY0Fzc2V0cyBORlQgKG9yYml0YWwgdmVzc2VsOiBzaGlwIG9yIGNvbnRhaW5lcikgZGlyZWN0bHkgYXMgYSBsaXZlIGVudGl0eS4gUGFpcnMgd2l0aCBhbiBhdG9taWNhc3NldHM6OnRyYW5zZmVyIGNhcnJ5aW5nIHRoZSAnZGVwbG95JyBtZW1vIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uLiBUaGUgTkZUIGlzIGJ1cm5lZCwgYSBuZXcgZW50aXR5IHJvdyBpcyBlbXBsYWNlZCBhdCB0aGUgTkZUJ3Mgd3JhcCBvcmlnaW4gcGFpZCBieSB0aGUgb3duZXIsIGFuZCBUQVNLX1RSQVZFTCBwbHVzIFRBU0tfUkVDSEFSR0UgYXJlIHF1ZXVlZCB0byBkZWxpdmVyIHRoZSBlbnRpdHkgdG8gdGhlIHRhcmdldCBuZXh1cyBhbmQgYnJpbmcgaXQgdG8gZnVsbCBlbmVyZ3kuAICShqlsUtUKdXBkYXRlZ2FtZY0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWdhbWUKc3VtbWFyeTogJ1VwZGF0ZSBnYW1lIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKVXBkYXRlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3QuCgotLS0AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAA3NzUsuMId2l0aGRyYXeXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXRoZHJhdwpzdW1tYXJ5OiAnV2l0aGRyYXcgdG9rZW5zIGZyb20gYSBkZXBvc2l0IGJhbGFuY2UnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpXaXRoZHJhdyB0b2tlbnMgZnJvbSB0aGUgb3duZXIncyBkZXBvc2l0IGJhbGFuY2UuIERlYml0cyB0aGUgbGVkZ2VyIGJ5IHRoZSByZXF1ZXN0ZWQgYW1vdW50IGFuZCB0cmFuc2ZlcnMgdGhlIHRva2VucyB0byB0aGUgb3duZXIuIFJlcXVpcmVzIGEgc3VmZmljaWVudCBiYWxhbmNlIGFuZCB0aGUgb3duZXIncyBhdXRob3JpdHkuAACg7BpUzeUJd3JhcGNhcmdvAACAzy5PVc3lCndyYXBlbnRpdHm1BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3cmFwZW50aXR5CnN1bW1hcnk6ICdXcmFwIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpXcmFwIGFuIGVudGl0eSBpbnRvIGFuIEF0b21pY0Fzc2V0cyBORlQgbWludGVkIHRvIGl0cyBvd25lci4gVGhlIGVudGl0eSBtdXN0IGJlIGF0IGEgbmV4dXMsIGlkbGUgd2l0aCBlbXB0eSBjYXJnbywgYW5kIGhhdmUgYW4gbmZ0Y29uZmlnIG1hcHBpbmcgZm9yIGl0cyBpdGVtIGlkLiBFcmFzZXMgdGhlIGVudGl0eSBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUsIHByZXNlcnZpbmcgaXRzIHN0YXRzIGFuZCBpbnN0YWxsZWQgbW9kdWxlczsgdGhlIHBsYXllciBwYXlzIFJBTSBmb3IgdGhlIG5ldyBhc3NldCByb3cuIFJlcXVpcmVzIHRoZSBvd25lcidzIGFjdGl2ZSBwZXJtaXNzaW9uIChubyBzZXNzaW9uLWtleSBjb21wYXRpYmlsaXR5KS4HAAAAQKFpojkDaTY0AAALYmFsYW5jZV9yb3cAAADAT1MlRQNpNjQAAAtjb21wYW55X3JvdwAAWyg7TKtKA2k2NAAADmRlcG9zaXRjZmdfcm93AAAAAACspGEDaTY0AAAIZ2FtZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAQMYaVXP51ANpNjQAAA51bndyYXBjdXN0X3JvdwAAACobVs3lA2k2NAAADHdyYXBnYXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA=='
|
|
16
26
|
)
|
|
17
27
|
export const abi = ABI.from(abiBlob)
|
|
18
28
|
export namespace Types {
|
|
29
|
+
@Struct.type('balance_row')
|
|
30
|
+
export class balance_row extends Struct {
|
|
31
|
+
@Struct.field(Name)
|
|
32
|
+
declare token_contract: Name
|
|
33
|
+
@Struct.field(Asset)
|
|
34
|
+
declare balance: Asset
|
|
35
|
+
}
|
|
19
36
|
@Struct.type('cleartable')
|
|
20
37
|
export class cleartable extends Struct {
|
|
21
38
|
@Struct.field(Name)
|
|
@@ -25,6 +42,15 @@ export namespace Types {
|
|
|
25
42
|
@Struct.field(UInt64, {optional: true})
|
|
26
43
|
declare max_rows?: UInt64
|
|
27
44
|
}
|
|
45
|
+
@Struct.type('close')
|
|
46
|
+
export class close extends Struct {
|
|
47
|
+
@Struct.field(Name)
|
|
48
|
+
declare owner: Name
|
|
49
|
+
@Struct.field(Name)
|
|
50
|
+
declare token_contract: Name
|
|
51
|
+
@Struct.field(Asset.Symbol)
|
|
52
|
+
declare token_symbol: Asset.Symbol
|
|
53
|
+
}
|
|
28
54
|
@Struct.type('company_row')
|
|
29
55
|
export class company_row extends Struct {
|
|
30
56
|
@Struct.field(Name)
|
|
@@ -32,6 +58,26 @@ export namespace Types {
|
|
|
32
58
|
@Struct.field('string')
|
|
33
59
|
declare name: string
|
|
34
60
|
}
|
|
61
|
+
@Struct.type('debitdeposit')
|
|
62
|
+
export class debitdeposit extends Struct {
|
|
63
|
+
@Struct.field(Name)
|
|
64
|
+
declare owner: Name
|
|
65
|
+
@Struct.field(Name)
|
|
66
|
+
declare token: Name
|
|
67
|
+
@Struct.field(Asset)
|
|
68
|
+
declare locked: Asset
|
|
69
|
+
@Struct.field(Name)
|
|
70
|
+
declare fee_account: Name
|
|
71
|
+
@Struct.field(Asset)
|
|
72
|
+
declare fee: Asset
|
|
73
|
+
}
|
|
74
|
+
@Struct.type('depositcfg_row')
|
|
75
|
+
export class depositcfg_row extends Struct {
|
|
76
|
+
@Struct.field(Name)
|
|
77
|
+
declare token_contract: Name
|
|
78
|
+
@Struct.field(Asset.Symbol)
|
|
79
|
+
declare token_symbol: Asset.Symbol
|
|
80
|
+
}
|
|
35
81
|
@Struct.type('enable')
|
|
36
82
|
export class enable extends Struct {
|
|
37
83
|
@Struct.field('bool')
|
|
@@ -89,6 +135,39 @@ export namespace Types {
|
|
|
89
135
|
@Struct.field(game_state)
|
|
90
136
|
declare state: game_state
|
|
91
137
|
}
|
|
138
|
+
@Struct.type('open')
|
|
139
|
+
export class open extends Struct {
|
|
140
|
+
@Struct.field(Name)
|
|
141
|
+
declare owner: Name
|
|
142
|
+
@Struct.field(Name)
|
|
143
|
+
declare token_contract: Name
|
|
144
|
+
@Struct.field(Asset.Symbol)
|
|
145
|
+
declare token_symbol: Asset.Symbol
|
|
146
|
+
}
|
|
147
|
+
@Struct.type('relgateasset')
|
|
148
|
+
export class relgateasset extends Struct {
|
|
149
|
+
@Struct.field(UInt64)
|
|
150
|
+
declare asset_id: UInt64
|
|
151
|
+
}
|
|
152
|
+
@Struct.type('relgateowner')
|
|
153
|
+
export class relgateowner extends Struct {
|
|
154
|
+
@Struct.field(Name)
|
|
155
|
+
declare owner: Name
|
|
156
|
+
}
|
|
157
|
+
@Struct.type('setepochtime')
|
|
158
|
+
export class setepochtime extends Struct {
|
|
159
|
+
@Struct.field(Name)
|
|
160
|
+
declare contract: Name
|
|
161
|
+
@Struct.field(UInt32)
|
|
162
|
+
declare epochtime: UInt32
|
|
163
|
+
}
|
|
164
|
+
@Struct.type('settoken')
|
|
165
|
+
export class settoken extends Struct {
|
|
166
|
+
@Struct.field(Name)
|
|
167
|
+
declare token_contract: Name
|
|
168
|
+
@Struct.field(Asset.Symbol)
|
|
169
|
+
declare token_symbol: Asset.Symbol
|
|
170
|
+
}
|
|
92
171
|
@Struct.type('startgame')
|
|
93
172
|
export class startgame extends Struct {
|
|
94
173
|
@Struct.field(Name)
|
|
@@ -105,6 +184,31 @@ export namespace Types {
|
|
|
105
184
|
@Struct.field('bool')
|
|
106
185
|
declare enabled: boolean
|
|
107
186
|
}
|
|
187
|
+
@Struct.type('unwrapcargo')
|
|
188
|
+
export class unwrapcargo extends Struct {
|
|
189
|
+
@Struct.field(Name)
|
|
190
|
+
declare game: Name
|
|
191
|
+
@Struct.field(Name)
|
|
192
|
+
declare owner: Name
|
|
193
|
+
@Struct.field(UInt64)
|
|
194
|
+
declare asset_id: UInt64
|
|
195
|
+
}
|
|
196
|
+
@Struct.type('unwrapcust_row')
|
|
197
|
+
export class unwrapcust_row extends Struct {
|
|
198
|
+
@Struct.field(UInt64)
|
|
199
|
+
declare asset_id: UInt64
|
|
200
|
+
@Struct.field(Name)
|
|
201
|
+
declare owner: Name
|
|
202
|
+
}
|
|
203
|
+
@Struct.type('unwrapentity')
|
|
204
|
+
export class unwrapentity extends Struct {
|
|
205
|
+
@Struct.field(Name)
|
|
206
|
+
declare game: Name
|
|
207
|
+
@Struct.field(Name)
|
|
208
|
+
declare owner: Name
|
|
209
|
+
@Struct.field(UInt64)
|
|
210
|
+
declare asset_id: UInt64
|
|
211
|
+
}
|
|
108
212
|
@Struct.type('updategame')
|
|
109
213
|
export class updategame extends Struct {
|
|
110
214
|
@Struct.field(Name)
|
|
@@ -114,16 +218,68 @@ export namespace Types {
|
|
|
114
218
|
}
|
|
115
219
|
@Struct.type('wipe')
|
|
116
220
|
export class wipe extends Struct {}
|
|
221
|
+
@Struct.type('withdraw')
|
|
222
|
+
export class withdraw extends Struct {
|
|
223
|
+
@Struct.field(Name)
|
|
224
|
+
declare owner: Name
|
|
225
|
+
@Struct.field(ExtendedAsset)
|
|
226
|
+
declare quantity: ExtendedAsset
|
|
227
|
+
@Struct.field('string')
|
|
228
|
+
declare memo: string
|
|
229
|
+
}
|
|
230
|
+
@Struct.type('wrapcargo')
|
|
231
|
+
export class wrapcargo extends Struct {
|
|
232
|
+
@Struct.field(Name)
|
|
233
|
+
declare game: Name
|
|
234
|
+
@Struct.field(Name)
|
|
235
|
+
declare owner: Name
|
|
236
|
+
@Struct.field(UInt64)
|
|
237
|
+
declare entity_id: UInt64
|
|
238
|
+
@Struct.field(UInt64)
|
|
239
|
+
declare nexus_id: UInt64
|
|
240
|
+
@Struct.field(UInt64)
|
|
241
|
+
declare cargo_id: UInt64
|
|
242
|
+
@Struct.field(UInt64)
|
|
243
|
+
declare quantity: UInt64
|
|
244
|
+
}
|
|
245
|
+
@Struct.type('wrapentity')
|
|
246
|
+
export class wrapentity extends Struct {
|
|
247
|
+
@Struct.field(Name)
|
|
248
|
+
declare game: Name
|
|
249
|
+
@Struct.field(Name)
|
|
250
|
+
declare owner: Name
|
|
251
|
+
@Struct.field(UInt64)
|
|
252
|
+
declare entity_id: UInt64
|
|
253
|
+
@Struct.field(UInt64)
|
|
254
|
+
declare nexus_id: UInt64
|
|
255
|
+
}
|
|
256
|
+
@Struct.type('wrapgate_row')
|
|
257
|
+
export class wrapgate_row extends Struct {
|
|
258
|
+
@Struct.field(Name)
|
|
259
|
+
declare owner: Name
|
|
260
|
+
@Struct.field(Name)
|
|
261
|
+
declare game: Name
|
|
262
|
+
@Struct.field(UInt64)
|
|
263
|
+
declare last_asset_id: UInt64
|
|
264
|
+
}
|
|
117
265
|
}
|
|
118
266
|
export const TableMap = {
|
|
267
|
+
balance: Types.balance_row,
|
|
119
268
|
company: Types.company_row,
|
|
269
|
+
depositcfg: Types.depositcfg_row,
|
|
120
270
|
games: Types.game_row,
|
|
121
271
|
state: Types.state_row,
|
|
272
|
+
unwrapcust: Types.unwrapcust_row,
|
|
273
|
+
wrapgate: Types.wrapgate_row,
|
|
122
274
|
}
|
|
123
275
|
export interface TableTypes {
|
|
276
|
+
balance: Types.balance_row
|
|
124
277
|
company: Types.company_row
|
|
278
|
+
depositcfg: Types.depositcfg_row
|
|
125
279
|
games: Types.game_row
|
|
126
280
|
state: Types.state_row
|
|
281
|
+
unwrapcust: Types.unwrapcust_row
|
|
282
|
+
wrapgate: Types.wrapgate_row
|
|
127
283
|
}
|
|
128
284
|
export type RowType<T> = T extends keyof TableTypes ? TableTypes[T] : any
|
|
129
285
|
export type TableNames = keyof TableTypes
|
|
@@ -150,6 +306,18 @@ export namespace ActionParams {
|
|
|
150
306
|
scope?: NameType
|
|
151
307
|
max_rows?: UInt64Type
|
|
152
308
|
}
|
|
309
|
+
export interface close {
|
|
310
|
+
owner: NameType
|
|
311
|
+
token_contract: NameType
|
|
312
|
+
token_symbol: Asset.SymbolType
|
|
313
|
+
}
|
|
314
|
+
export interface debitdeposit {
|
|
315
|
+
owner: NameType
|
|
316
|
+
token: NameType
|
|
317
|
+
locked: AssetType
|
|
318
|
+
fee_account: NameType
|
|
319
|
+
fee: AssetType
|
|
320
|
+
}
|
|
153
321
|
export interface enable {
|
|
154
322
|
enabled: boolean
|
|
155
323
|
}
|
|
@@ -161,26 +329,86 @@ export namespace ActionParams {
|
|
|
161
329
|
account: NameType
|
|
162
330
|
name: string
|
|
163
331
|
}
|
|
332
|
+
export interface open {
|
|
333
|
+
owner: NameType
|
|
334
|
+
token_contract: NameType
|
|
335
|
+
token_symbol: Asset.SymbolType
|
|
336
|
+
}
|
|
337
|
+
export interface relgateasset {
|
|
338
|
+
asset_id: UInt64Type
|
|
339
|
+
}
|
|
340
|
+
export interface relgateowner {
|
|
341
|
+
owner: NameType
|
|
342
|
+
}
|
|
343
|
+
export interface setepochtime {
|
|
344
|
+
contract: NameType
|
|
345
|
+
epochtime: UInt32Type
|
|
346
|
+
}
|
|
347
|
+
export interface settoken {
|
|
348
|
+
token_contract: NameType
|
|
349
|
+
token_symbol: Asset.SymbolType
|
|
350
|
+
}
|
|
164
351
|
export interface startgame {
|
|
165
352
|
contract: NameType
|
|
166
353
|
config: Type.game_config
|
|
167
354
|
meta: Type.game_meta
|
|
168
355
|
state: Type.game_state
|
|
169
356
|
}
|
|
357
|
+
export interface unwrapcargo {
|
|
358
|
+
game: NameType
|
|
359
|
+
owner: NameType
|
|
360
|
+
asset_id: UInt64Type
|
|
361
|
+
}
|
|
362
|
+
export interface unwrapentity {
|
|
363
|
+
game: NameType
|
|
364
|
+
owner: NameType
|
|
365
|
+
asset_id: UInt64Type
|
|
366
|
+
}
|
|
170
367
|
export interface updategame {
|
|
171
368
|
contract: NameType
|
|
172
369
|
meta: Type.game_meta
|
|
173
370
|
}
|
|
174
371
|
export interface wipe {}
|
|
372
|
+
export interface withdraw {
|
|
373
|
+
owner: NameType
|
|
374
|
+
quantity: ExtendedAssetType
|
|
375
|
+
memo: string
|
|
376
|
+
}
|
|
377
|
+
export interface wrapcargo {
|
|
378
|
+
game: NameType
|
|
379
|
+
owner: NameType
|
|
380
|
+
entity_id: UInt64Type
|
|
381
|
+
nexus_id: UInt64Type
|
|
382
|
+
cargo_id: UInt64Type
|
|
383
|
+
quantity: UInt64Type
|
|
384
|
+
}
|
|
385
|
+
export interface wrapentity {
|
|
386
|
+
game: NameType
|
|
387
|
+
owner: NameType
|
|
388
|
+
entity_id: UInt64Type
|
|
389
|
+
nexus_id: UInt64Type
|
|
390
|
+
}
|
|
175
391
|
}
|
|
176
392
|
export interface ActionNameParams {
|
|
177
393
|
cleartable: ActionParams.cleartable
|
|
394
|
+
close: ActionParams.close
|
|
395
|
+
debitdeposit: ActionParams.debitdeposit
|
|
178
396
|
enable: ActionParams.enable
|
|
179
397
|
enablegame: ActionParams.enablegame
|
|
180
398
|
foundcompany: ActionParams.foundcompany
|
|
399
|
+
open: ActionParams.open
|
|
400
|
+
relgateasset: ActionParams.relgateasset
|
|
401
|
+
relgateowner: ActionParams.relgateowner
|
|
402
|
+
setepochtime: ActionParams.setepochtime
|
|
403
|
+
settoken: ActionParams.settoken
|
|
181
404
|
startgame: ActionParams.startgame
|
|
405
|
+
unwrapcargo: ActionParams.unwrapcargo
|
|
406
|
+
unwrapentity: ActionParams.unwrapentity
|
|
182
407
|
updategame: ActionParams.updategame
|
|
183
408
|
wipe: ActionParams.wipe
|
|
409
|
+
withdraw: ActionParams.withdraw
|
|
410
|
+
wrapcargo: ActionParams.wrapcargo
|
|
411
|
+
wrapentity: ActionParams.wrapentity
|
|
184
412
|
}
|
|
185
413
|
export type ActionNames = keyof ActionNameParams
|
|
186
414
|
export class Contract extends BaseContract {
|
|
@@ -188,7 +416,7 @@ export class Contract extends BaseContract {
|
|
|
188
416
|
super({
|
|
189
417
|
client: args.client,
|
|
190
418
|
abi: abi,
|
|
191
|
-
account: args.account || Name.from('
|
|
419
|
+
account: args.account || Name.from('nex.shipload'),
|
|
192
420
|
})
|
|
193
421
|
}
|
|
194
422
|
action<T extends ActionNames>(
|